[PATCH] ACPICA: Update to version 20180927

Ivan Hu ivan.hu at canonical.com
Mon Oct 1 07:59:38 UTC 2018


changes in this release of ACPICA are detailed at the following
link on the ACPICA developer mailing list:

https://lists.acpica.org/pipermail/devel/2018-September/001824.html

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/acpica/Makefile.am                             |   1 +
 src/acpica/fwts_acpica.c                           |  20 +-
 src/acpica/source/common/adisasm.c                 |   6 +-
 src/acpica/source/common/ahtable.c                 |   6 +-
 src/acpica/source/common/dmextern.c                |  20 +-
 src/acpica/source/common/dmtable.c                 |  12 +-
 src/acpica/source/compiler/aslallocate.c           |  38 +-
 src/acpica/source/compiler/aslanalyze.c            |  10 +-
 src/acpica/source/compiler/aslcache.c              | 141 +++---
 src/acpica/source/compiler/aslcodegen.c            |  61 +--
 src/acpica/source/compiler/aslcompile.c            | 137 +++---
 src/acpica/source/compiler/aslcompiler.l           |   8 +-
 src/acpica/source/compiler/asldefine.h             |   4 +-
 src/acpica/source/compiler/aslerror.c              | 102 ++--
 src/acpica/source/compiler/aslexternal.c           |  54 +--
 src/acpica/source/compiler/aslfileio.c             |  40 +-
 src/acpica/source/compiler/aslfiles.c              | 109 ++---
 src/acpica/source/compiler/aslfold.c               |   2 +-
 src/acpica/source/compiler/aslglobal.h             | 266 +++++------
 src/acpica/source/compiler/aslhex.c                |   8 +-
 src/acpica/source/compiler/aslkeywords.y           |   4 +-
 src/acpica/source/compiler/asllength.c             |   6 +-
 src/acpica/source/compiler/asllisting.c            |  48 +-
 src/acpica/source/compiler/asllistsup.c            |  98 ++--
 src/acpica/source/compiler/aslload.c               |  14 +-
 src/acpica/source/compiler/asllookup.c             |  16 +-
 src/acpica/source/compiler/aslmain.c               |  24 +-
 src/acpica/source/compiler/aslmap.c                |  23 +-
 src/acpica/source/compiler/aslmapoutput.c          |  18 +-
 src/acpica/source/compiler/aslmessages.c           |   5 +-
 src/acpica/source/compiler/aslmessages.h           |   1 +
 src/acpica/source/compiler/aslmethod.c             |   8 +-
 src/acpica/source/compiler/aslnamesp.c             |  12 +-
 src/acpica/source/compiler/asloffset.c             |  44 +-
 src/acpica/source/compiler/aslopcodes.c            |  18 +-
 src/acpica/source/compiler/asloperands.c           |  57 ++-
 src/acpica/source/compiler/aslopt.c                |   4 +-
 src/acpica/source/compiler/aslparseop.c            |  40 +-
 src/acpica/source/compiler/aslpld.c                |   6 +-
 src/acpica/source/compiler/aslpredef.c             |  44 +-
 src/acpica/source/compiler/aslprepkg.c             |  18 +-
 src/acpica/source/compiler/aslprune.c              |   2 +-
 src/acpica/source/compiler/aslresource.c           |   4 +-
 src/acpica/source/compiler/aslstartup.c            | 138 +++---
 src/acpica/source/compiler/aslsupport.l            | 178 +++----
 src/acpica/source/compiler/aslsupport.y            |   6 +-
 src/acpica/source/compiler/asltokens.y             |   2 +-
 src/acpica/source/compiler/asltransform.c          |  16 +-
 src/acpica/source/compiler/asltree.c               |  32 +-
 src/acpica/source/compiler/aslutils.c              |  64 +--
 src/acpica/source/compiler/aslwalks.c              |  14 +-
 src/acpica/source/compiler/aslxref.c               |  20 +-
 src/acpica/source/compiler/aslxrefout.c            |  10 +-
 src/acpica/source/compiler/cvcompiler.c            |  48 +-
 src/acpica/source/compiler/cvdisasm.c              |   4 +-
 src/acpica/source/compiler/cvparser.c              |   4 +-
 src/acpica/source/compiler/dtcompile.c             |  54 +--
 src/acpica/source/compiler/dtcompiler.h            |  26 +-
 src/acpica/source/compiler/dtexpress.c             |  20 +-
 src/acpica/source/compiler/dtfield.c               |  16 +-
 src/acpica/source/compiler/dtio.c                  | 104 ++--
 src/acpica/source/compiler/dtparser.y              |   6 +-
 src/acpica/source/compiler/dtsubtable.c            |  14 +-
 src/acpica/source/compiler/dttable.c               |  12 +-
 src/acpica/source/compiler/dttable2.c              |  12 +-
 src/acpica/source/compiler/dttemplate.c            |   2 +-
 src/acpica/source/compiler/dtutils.c               |  22 +-
 src/acpica/source/compiler/fwts_iasl_interface.c   |  46 +-
 src/acpica/source/compiler/preprocess.h            |  25 +-
 src/acpica/source/compiler/prexpress.c             |  28 +-
 src/acpica/source/compiler/prmacros.c              |  56 +--
 src/acpica/source/compiler/prparser.l              |   4 +-
 src/acpica/source/compiler/prparser.y              |   6 +-
 src/acpica/source/compiler/prscan.c                | 213 ++++-----
 src/acpica/source/compiler/prutils.c               |  60 +--
 src/acpica/source/components/debugger/dbinput.c    |   2 +-
 .../source/components/disassembler/dmutils.c       |  10 +-
 src/acpica/source/components/events/evregion.c     |  18 +-
 src/acpica/source/components/events/evrgnini.c     |   8 +-
 src/acpica/source/components/events/evxfregn.c     |   1 -
 src/acpica/source/components/executer/exfield.c    | 341 +++-----------
 src/acpica/source/components/executer/exserial.c   | 524 +++++++++++++++++++++
 src/acpica/source/components/hardware/hwsleep.c    |  12 +-
 src/acpica/source/include/acconfig.h               |  18 +-
 src/acpica/source/include/acdisasm.h               |   2 +-
 src/acpica/source/include/acevents.h               |   4 +
 src/acpica/source/include/acexcep.h                |   8 +-
 src/acpica/source/include/acinterp.h               |  31 ++
 src/acpica/source/include/aclocal.h                |   2 +-
 src/acpica/source/include/acpixf.h                 |   2 +-
 src/acpica/source/include/amlcode.h                |  20 +-
 src/acpica/source/tools/acpiexec/aeregion.c        | 162 +++----
 92 files changed, 2169 insertions(+), 1817 deletions(-)
 create mode 100755 src/acpica/source/components/executer/exserial.c

diff --git a/src/acpica/Makefile.am b/src/acpica/Makefile.am
index 73d1044..c906be3 100644
--- a/src/acpica/Makefile.am
+++ b/src/acpica/Makefile.am
@@ -156,6 +156,7 @@ libfwtsacpica_la_SOURCES =				\
 	source/components/executer/exresnte.c		\
 	source/components/executer/exresolv.c		\
 	source/components/executer/exresop.c		\
+        source/components/executer/exserial.c           \
 	source/components/executer/exstore.c		\
 	source/components/executer/exstoren.c		\
 	source/components/executer/exstorob.c		\
diff --git a/src/acpica/fwts_acpica.c b/src/acpica/fwts_acpica.c
index 1d7d1ab..4ffe80f 100644
--- a/src/acpica/fwts_acpica.c
+++ b/src/acpica/fwts_acpica.c
@@ -300,21 +300,21 @@ static ACPI_STATUS fwts_region_handler(
 		case ACPI_READ:
 			switch (function >> 16) {
 			case AML_FIELD_ATTRIB_QUICK:
-			case AML_FIELD_ATTRIB_SEND_RCV:
+			case AML_FIELD_ATTRIB_SEND_RECEIVE:
 			case AML_FIELD_ATTRIB_BYTE:
 				length = 1;
 				break;
 			case AML_FIELD_ATTRIB_WORD:
-			case AML_FIELD_ATTRIB_WORD_CALL:
+			case AML_FIELD_ATTRIB_PROCESS_CALL:
 				length = 2;
 				break;
 			case AML_FIELD_ATTRIB_BLOCK:
-			case AML_FIELD_ATTRIB_BLOCK_CALL:
+			case AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL:
 				length = 32;
 				break;
-			case AML_FIELD_ATTRIB_MULTIBYTE:
+			case AML_FIELD_ATTRIB_BYTES:
 			case AML_FIELD_ATTRIB_RAW_BYTES:
-			case AML_FIELD_ATTRIB_RAW_PROCESS:
+			case AML_FIELD_ATTRIB_RAW_PROCESS_BYTES:
 				if (!context)
 					return AE_BAD_PARAMETER;
 				length = context->AccessLength - 2;
@@ -327,21 +327,21 @@ static ACPI_STATUS fwts_region_handler(
 		case ACPI_WRITE:
 			switch (function >> 16) {
 			case AML_FIELD_ATTRIB_QUICK:
-			case AML_FIELD_ATTRIB_SEND_RCV:
+			case AML_FIELD_ATTRIB_SEND_RECEIVE:
 			case AML_FIELD_ATTRIB_BYTE:
 			case AML_FIELD_ATTRIB_WORD:
 			case AML_FIELD_ATTRIB_BLOCK:
 				length = 0;
 				break;
-			case AML_FIELD_ATTRIB_WORD_CALL:
+			case AML_FIELD_ATTRIB_PROCESS_CALL:
 				length = 2;
 				break;
-			case AML_FIELD_ATTRIB_BLOCK_CALL:
+			case AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL:
 				length = 32;
 				break;
-			case AML_FIELD_ATTRIB_MULTIBYTE:
+			case AML_FIELD_ATTRIB_BYTES:
 			case AML_FIELD_ATTRIB_RAW_BYTES:
-			case AML_FIELD_ATTRIB_RAW_PROCESS:
+			case AML_FIELD_ATTRIB_RAW_PROCESS_BYTES:
 				if (!context)
 					return AE_BAD_PARAMETER;
 				length = context->AccessLength - 2;
diff --git a/src/acpica/source/common/adisasm.c b/src/acpica/source/common/adisasm.c
index 0489f7e..ed35f31 100644
--- a/src/acpica/source/common/adisasm.c
+++ b/src/acpica/source/common/adisasm.c
@@ -576,11 +576,11 @@ AdDisassembleOneTable (
                 DisasmFilename, CmGetFileSize (File));
         }
 
-        if (Gbl_MapfileFlag)
+        if (AslGbl_MapfileFlag)
         {
             fprintf (stderr, "%14s %s - %u bytes\n",
-                Gbl_Files[ASL_FILE_MAP_OUTPUT].ShortDescription,
-                Gbl_Files[ASL_FILE_MAP_OUTPUT].Filename,
+                AslGbl_Files[ASL_FILE_MAP_OUTPUT].ShortDescription,
+                AslGbl_Files[ASL_FILE_MAP_OUTPUT].Filename,
                 FlGetFileSize (ASL_FILE_MAP_OUTPUT));
         }
     }
diff --git a/src/acpica/source/common/ahtable.c b/src/acpica/source/common/ahtable.c
index 740ab53..7d5833e 100644
--- a/src/acpica/source/common/ahtable.c
+++ b/src/acpica/source/common/ahtable.c
@@ -159,7 +159,7 @@ const AH_TABLE *
 AcpiAhGetTableInfo (
     char                    *Signature);
 
-extern const AH_TABLE      Gbl_AcpiSupportedTables[];
+extern const AH_TABLE      AcpiGbl_SupportedTables[];
 
 
 /*******************************************************************************
@@ -181,7 +181,7 @@ AcpiAhGetTableInfo (
     const AH_TABLE      *Info;
 
 
-    for (Info = Gbl_AcpiSupportedTables; Info->Signature; Info++)
+    for (Info = AcpiGbl_SupportedTables; Info->Signature; Info++)
     {
         if (ACPI_COMPARE_NAME (Signature, Info->Signature))
         {
@@ -197,7 +197,7 @@ AcpiAhGetTableInfo (
  * Note: Any tables added here should be duplicated within AcpiDmTableData
  * in the file common/dmtable.c
  */
-const AH_TABLE      Gbl_AcpiSupportedTables[] =
+const AH_TABLE      AcpiGbl_SupportedTables[] =
 {
     {ACPI_SIG_ASF,  "Alert Standard Format table"},
     {ACPI_SIG_BERT, "Boot Error Record Table"},
diff --git a/src/acpica/source/common/dmextern.c b/src/acpica/source/common/dmextern.c
index df0e1b9..3ab428d 100644
--- a/src/acpica/source/common/dmextern.c
+++ b/src/acpica/source/common/dmextern.c
@@ -520,27 +520,27 @@ AcpiDmGetExternalsFromFile (
     UINT32                  ImportCount = 0;
 
 
-    if (!Gbl_ExternalRefFilename)
+    if (!AslGbl_ExternalRefFilename)
     {
         return;
     }
 
     /* Open the file */
 
-    ExternalRefFile = fopen (Gbl_ExternalRefFilename, "r");
+    ExternalRefFile = fopen (AslGbl_ExternalRefFilename, "r");
     if (!ExternalRefFile)
     {
         fprintf (stderr, "Could not open external reference file \"%s\"\n",
-            Gbl_ExternalRefFilename);
+            AslGbl_ExternalRefFilename);
         AslAbort ();
         return;
     }
 
     /* Each line defines a method */
 
-    while (fgets (StringBuffer, ASL_STRING_BUFFER_SIZE, ExternalRefFile))
+    while (fgets (AslGbl_StringBuffer, ASL_STRING_BUFFER_SIZE, ExternalRefFile))
     {
-        Token = strtok (StringBuffer, METHOD_SEPARATORS);   /* "External" */
+        Token = strtok (AslGbl_StringBuffer, METHOD_SEPARATORS);   /* "External" */
         if (!Token)
         {
             continue;
@@ -593,7 +593,7 @@ AcpiDmGetExternalsFromFile (
         /* Add this external to the global list */
 
         AcpiOsPrintf ("%s: Importing method external (%u arguments) %s\n",
-            Gbl_ExternalRefFilename, ArgCount, MethodName);
+            AslGbl_ExternalRefFilename, ArgCount, MethodName);
 
         AcpiDmAddPathToExternalList (MethodName, ACPI_TYPE_METHOD,
             ArgCount, (ACPI_EXT_RESOLVED_REFERENCE | ACPI_EXT_ORIGIN_FROM_FILE));
@@ -604,7 +604,7 @@ AcpiDmGetExternalsFromFile (
     {
         fprintf (stderr,
             "Did not find any external methods in reference file \"%s\"\n",
-            Gbl_ExternalRefFilename);
+            AslGbl_ExternalRefFilename);
     }
     else
     {
@@ -613,7 +613,7 @@ AcpiDmGetExternalsFromFile (
         AcpiDmAddExternalListToNamespace ();
 
         AcpiOsPrintf ("%s: Imported %u external method definitions\n",
-            Gbl_ExternalRefFilename, ImportCount);
+            AslGbl_ExternalRefFilename, ImportCount);
     }
 
     fclose (ExternalRefFile);
@@ -1394,12 +1394,12 @@ AcpiDmEmitExternals (
 
     AcpiDmUnresolvedWarning (1);
 
-    if (Gbl_ExternalRefFilename)
+    if (AslGbl_ExternalRefFilename)
     {
         AcpiOsPrintf (
             "    /*\n     * External declarations were imported from\n"
             "     * a reference file -- %s\n     */\n\n",
-            Gbl_ExternalRefFilename);
+            AslGbl_ExternalRefFilename);
     }
 
     /*
diff --git a/src/acpica/source/common/dmtable.c b/src/acpica/source/common/dmtable.c
index 07df5d3..5bdf478 100644
--- a/src/acpica/source/common/dmtable.c
+++ b/src/acpica/source/common/dmtable.c
@@ -637,7 +637,7 @@ AcpiDmDumpDataTable (
 
     if (AcpiUtIsAmlTable (Table))
     {
-        if (Gbl_VerboseTemplates)
+        if (AslGbl_VerboseTemplates)
         {
             /* Dump the raw table data */
 
@@ -732,7 +732,7 @@ AcpiDmDumpDataTable (
         }
     }
 
-    if (!Gbl_DoTemplates || Gbl_VerboseTemplates)
+    if (!AslGbl_DoTemplates || AslGbl_VerboseTemplates)
     {
         /* Dump the raw table data */
 
@@ -774,7 +774,7 @@ AcpiDmLineHeader (
         Name = "";
     }
 
-    if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */
+    if (AslGbl_DoTemplates && !AslGbl_VerboseTemplates) /* Terse template */
     {
         if (ByteLength)
         {
@@ -821,7 +821,7 @@ AcpiDmLineHeader2 (
     UINT32                  Value)
 {
 
-    if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */
+    if (AslGbl_DoTemplates && !AslGbl_VerboseTemplates) /* Terse template */
     {
         if (ByteLength)
         {
@@ -1232,9 +1232,9 @@ AcpiDmDumpTable (
 
             /* Convert 16-byte UUID buffer to 36-byte formatted UUID string */
 
-            (void) AuConvertUuidToString ((char *) Target, MsgBuffer);
+            (void) AuConvertUuidToString ((char *) Target, AslGbl_MsgBuffer);
 
-            AcpiOsPrintf ("%s\n", MsgBuffer);
+            AcpiOsPrintf ("%s\n", AslGbl_MsgBuffer);
             break;
 
         case ACPI_DMT_STRING:
diff --git a/src/acpica/source/compiler/aslallocate.c b/src/acpica/source/compiler/aslallocate.c
index 49d22b7..bf67626 100644
--- a/src/acpica/source/compiler/aslallocate.c
+++ b/src/acpica/source/compiler/aslallocate.c
@@ -186,16 +186,16 @@ UtLocalCalloc (
     if (!Allocated)
     {
         AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
-            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-            Gbl_InputByteCount, Gbl_CurrentColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+            AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+            AslGbl_InputByteCount, AslGbl_CurrentColumn,
+            AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
 
         CmCleanupAndExit ();
         exit (1);
     }
 
-    TotalAllocations++;
-    TotalAllocated += Size;
+    AslGbl_TotalAllocations++;
+    AslGbl_TotalAllocated += Size;
     return (Allocated);
 }
 
@@ -209,7 +209,7 @@ UtLocalCalloc (
  * RETURN:      None. Reallocates the global line buffers
  *
  * DESCRIPTION: Called if the current line buffer becomes filled. Reallocates
- *              all global line buffers and updates Gbl_LineBufferSize. NOTE:
+ *              all global line buffers and updates AslGbl_LineBufferSize. NOTE:
  *              Also used for the initial allocation of the buffers, when
  *              all of the buffer pointers are NULL. Initial allocations are
  *              of size ASL_DEFAULT_LINE_BUFFER_SIZE
@@ -225,21 +225,21 @@ UtExpandLineBuffers (
 
     /* Attempt to double the size of all line buffers */
 
-    NewSize = Gbl_LineBufferSize * 2;
-    if (Gbl_CurrentLineBuffer)
+    NewSize = AslGbl_LineBufferSize * 2;
+    if (AslGbl_CurrentLineBuffer)
     {
         DbgPrint (ASL_DEBUG_OUTPUT,
             "Increasing line buffer size from %u to %u\n",
-            Gbl_LineBufferSize, NewSize);
+            AslGbl_LineBufferSize, NewSize);
     }
 
-    UtReallocLineBuffers (&Gbl_CurrentLineBuffer, Gbl_LineBufferSize, NewSize);
-    UtReallocLineBuffers (&Gbl_MainTokenBuffer, Gbl_LineBufferSize, NewSize);
-    UtReallocLineBuffers (&Gbl_MacroTokenBuffer, Gbl_LineBufferSize, NewSize);
-    UtReallocLineBuffers (&Gbl_ExpressionTokenBuffer, Gbl_LineBufferSize, NewSize);
+    UtReallocLineBuffers (&AslGbl_CurrentLineBuffer, AslGbl_LineBufferSize, NewSize);
+    UtReallocLineBuffers (&AslGbl_MainTokenBuffer, AslGbl_LineBufferSize, NewSize);
+    UtReallocLineBuffers (&AslGbl_MacroTokenBuffer, AslGbl_LineBufferSize, NewSize);
+    UtReallocLineBuffers (&AslGbl_ExpressionTokenBuffer, AslGbl_LineBufferSize, NewSize);
 
-    Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
-    Gbl_LineBufferSize = NewSize;
+    AslGbl_LineBufPtr = AslGbl_CurrentLineBuffer;
+    AslGbl_LineBufferSize = NewSize;
 }
 
 
@@ -296,8 +296,8 @@ UtFreeLineBuffers (
     void)
 {
 
-    free (Gbl_CurrentLineBuffer);
-    free (Gbl_MainTokenBuffer);
-    free (Gbl_MacroTokenBuffer);
-    free (Gbl_ExpressionTokenBuffer);
+    free (AslGbl_CurrentLineBuffer);
+    free (AslGbl_MainTokenBuffer);
+    free (AslGbl_MacroTokenBuffer);
+    free (AslGbl_ExpressionTokenBuffer);
 }
diff --git a/src/acpica/source/compiler/aslanalyze.c b/src/acpica/source/compiler/aslanalyze.c
index 82e76eb..1fd742c 100644
--- a/src/acpica/source/compiler/aslanalyze.c
+++ b/src/acpica/source/compiler/aslanalyze.c
@@ -452,8 +452,8 @@ AnCheckMethodReturnValue (
     {
         /* Method returns a value, but the type is wrong */
 
-        AnFormatBtype (StringBuffer, ThisNodeBtype);
-        AnFormatBtype (StringBuffer2, RequiredBtypes);
+        AnFormatBtype (AslGbl_StringBuffer, ThisNodeBtype);
+        AnFormatBtype (AslGbl_StringBuffer2, RequiredBtypes);
 
         /*
          * The case where the method does not return any value at all
@@ -463,11 +463,11 @@ AnCheckMethodReturnValue (
          */
         if (ThisNodeBtype != 0)
         {
-            sprintf (MsgBuffer,
+            sprintf (AslGbl_MsgBuffer,
                 "Method returns [%s], %s operator requires [%s]",
-                StringBuffer, OpInfo->Name, StringBuffer2);
+                AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
 
-            AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, MsgBuffer);
+            AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
         }
     }
 }
diff --git a/src/acpica/source/compiler/aslcache.c b/src/acpica/source/compiler/aslcache.c
index 1d6971a..103193b 100644
--- a/src/acpica/source/compiler/aslcache.c
+++ b/src/acpica/source/compiler/aslcache.c
@@ -187,25 +187,25 @@ UtLocalCacheCalloc (
     {
         CacheSize = Length;
 
-        if (Gbl_StringCacheList)
+        if (AslGbl_StringCacheList)
         {
             Cache = UtLocalCalloc (sizeof (Cache->Next) + CacheSize);
 
             /* Link new cache buffer just following head of list */
 
-            Cache->Next = Gbl_StringCacheList->Next;
-            Gbl_StringCacheList->Next = Cache;
+            Cache->Next = AslGbl_StringCacheList->Next;
+            AslGbl_StringCacheList->Next = Cache;
 
             /* Leave cache management pointers alone as they pertain to head */
 
-            Gbl_StringCount++;
-            Gbl_StringSize += Length;
+            AslGbl_StringCount++;
+            AslGbl_StringSize += Length;
 
             return (Cache->Buffer);
         }
     }
 
-    if ((Gbl_StringCacheNext + Length) >= Gbl_StringCacheLast)
+    if ((AslGbl_StringCacheNext + Length) >= AslGbl_StringCacheLast)
     {
         /* Allocate a new buffer */
 
@@ -213,20 +213,20 @@ UtLocalCacheCalloc (
 
         /* Link new cache buffer to head of list */
 
-        Cache->Next = Gbl_StringCacheList;
-        Gbl_StringCacheList = Cache;
+        Cache->Next = AslGbl_StringCacheList;
+        AslGbl_StringCacheList = Cache;
 
         /* Setup cache management pointers */
 
-        Gbl_StringCacheNext = Cache->Buffer;
-        Gbl_StringCacheLast = Gbl_StringCacheNext + CacheSize;
+        AslGbl_StringCacheNext = Cache->Buffer;
+        AslGbl_StringCacheLast = AslGbl_StringCacheNext + CacheSize;
     }
 
-    Gbl_StringCount++;
-    Gbl_StringSize += Length;
+    AslGbl_StringCount++;
+    AslGbl_StringSize += Length;
 
-    Buffer = Gbl_StringCacheNext;
-    Gbl_StringCacheNext += Length;
+    Buffer = AslGbl_StringCacheNext;
+    AslGbl_StringCacheNext += Length;
     return (Buffer);
 }
 
@@ -252,7 +252,7 @@ UtParseOpCacheCalloc (
     ASL_CACHE_INFO          *Cache;
 
 
-    if (Gbl_ParseOpCacheNext >= Gbl_ParseOpCacheLast)
+    if (AslGbl_ParseOpCacheNext >= AslGbl_ParseOpCacheLast)
     {
         /* Allocate a new buffer */
 
@@ -261,17 +261,17 @@ UtParseOpCacheCalloc (
 
         /* Link new cache buffer to head of list */
 
-        Cache->Next = Gbl_ParseOpCacheList;
-        Gbl_ParseOpCacheList = Cache;
+        Cache->Next = AslGbl_ParseOpCacheList;
+        AslGbl_ParseOpCacheList = Cache;
 
         /* Setup cache management pointers */
 
-        Gbl_ParseOpCacheNext = ACPI_CAST_PTR (ACPI_PARSE_OBJECT, Cache->Buffer);
-        Gbl_ParseOpCacheLast = Gbl_ParseOpCacheNext + ASL_PARSEOP_CACHE_SIZE;
+        AslGbl_ParseOpCacheNext = ACPI_CAST_PTR (ACPI_PARSE_OBJECT, Cache->Buffer);
+        AslGbl_ParseOpCacheLast = AslGbl_ParseOpCacheNext + ASL_PARSEOP_CACHE_SIZE;
     }
 
-    Gbl_ParseOpCount++;
-    return (Gbl_ParseOpCacheNext++);
+    AslGbl_ParseOpCount++;
+    return (AslGbl_ParseOpCacheNext++);
 }
 
 
@@ -296,7 +296,7 @@ UtSubtableCacheCalloc (
     ASL_CACHE_INFO          *Cache;
 
 
-    if (Gbl_SubtableCacheNext >= Gbl_SubtableCacheLast)
+    if (AslGbl_SubtableCacheNext >= AslGbl_SubtableCacheLast)
     {
         /* Allocate a new buffer */
 
@@ -305,17 +305,17 @@ UtSubtableCacheCalloc (
 
         /* Link new cache buffer to head of list */
 
-        Cache->Next = Gbl_SubtableCacheList;
-        Gbl_SubtableCacheList = Cache;
+        Cache->Next = AslGbl_SubtableCacheList;
+        AslGbl_SubtableCacheList = Cache;
 
         /* Setup cache management pointers */
 
-        Gbl_SubtableCacheNext = ACPI_CAST_PTR (DT_SUBTABLE, Cache->Buffer);
-        Gbl_SubtableCacheLast = Gbl_SubtableCacheNext + ASL_SUBTABLE_CACHE_SIZE;
+        AslGbl_SubtableCacheNext = ACPI_CAST_PTR (DT_SUBTABLE, Cache->Buffer);
+        AslGbl_SubtableCacheLast = AslGbl_SubtableCacheNext + ASL_SUBTABLE_CACHE_SIZE;
     }
 
-    Gbl_SubtableCount++;
-    return (Gbl_SubtableCacheNext++);
+    AslGbl_SubtableCount++;
+    return (AslGbl_SubtableCacheNext++);
 }
 
 
@@ -340,7 +340,7 @@ UtFieldCacheCalloc (
     ASL_CACHE_INFO          *Cache;
 
 
-    if (Gbl_FieldCacheNext >= Gbl_FieldCacheLast)
+    if (AslGbl_FieldCacheNext >= AslGbl_FieldCacheLast)
     {
         /* Allocate a new buffer */
 
@@ -349,17 +349,17 @@ UtFieldCacheCalloc (
 
         /* Link new cache buffer to head of list */
 
-        Cache->Next = Gbl_FieldCacheList;
-        Gbl_FieldCacheList = Cache;
+        Cache->Next = AslGbl_FieldCacheList;
+        AslGbl_FieldCacheList = Cache;
 
         /* Setup cache management pointers */
 
-        Gbl_FieldCacheNext = ACPI_CAST_PTR (DT_FIELD, Cache->Buffer);
-        Gbl_FieldCacheLast = Gbl_FieldCacheNext + ASL_FIELD_CACHE_SIZE;
+        AslGbl_FieldCacheNext = ACPI_CAST_PTR (DT_FIELD, Cache->Buffer);
+        AslGbl_FieldCacheLast =AslGbl_FieldCacheNext + ASL_FIELD_CACHE_SIZE;
     }
 
-    Gbl_FieldCount++;
-    return (Gbl_FieldCacheNext++);
+    AslGbl_FieldCount++;
+    return (AslGbl_FieldCacheNext++);
 }
 
 
@@ -387,95 +387,92 @@ UtDeleteLocalCaches (
      * Generic cache, arbitrary size allocations
      */
     BufferCount = 0;
-    while (Gbl_StringCacheList)
+    while (AslGbl_StringCacheList)
     {
-        Next = Gbl_StringCacheList->Next;
-        ACPI_FREE (Gbl_StringCacheList);
-        Gbl_StringCacheList = Next;
+        Next = AslGbl_StringCacheList->Next;
+        ACPI_FREE (AslGbl_StringCacheList);
+        AslGbl_StringCacheList = Next;
         BufferCount++;
     }
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "%u Strings (%u bytes), Buffer size: %u bytes, %u Buffers\n",
-        Gbl_StringCount, Gbl_StringSize, ASL_STRING_CACHE_SIZE, BufferCount);
+        AslGbl_StringCount, AslGbl_StringSize, ASL_STRING_CACHE_SIZE, BufferCount);
 
     /* Reset cache globals */
 
-    Gbl_StringSize = 0;
-    Gbl_StringCount = 0;
-    Gbl_StringCacheNext = NULL;
-    Gbl_StringCacheLast = NULL;
-
+    AslGbl_StringSize = 0;
+    AslGbl_StringCount = 0;
+    AslGbl_StringCacheNext = NULL;
+    AslGbl_StringCacheLast = NULL;
 
     /*
      * Parse Op cache
      */
     BufferCount = 0;
-    while (Gbl_ParseOpCacheList)
+    while (AslGbl_ParseOpCacheList)
     {
-        Next = Gbl_ParseOpCacheList->Next;
-        ACPI_FREE (Gbl_ParseOpCacheList);
-        Gbl_ParseOpCacheList = Next;
+        Next = AslGbl_ParseOpCacheList->Next;
+        ACPI_FREE (AslGbl_ParseOpCacheList);
+        AslGbl_ParseOpCacheList = Next;
         BufferCount++;
     }
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "%u ParseOps, Buffer size: %u ops (%u bytes), %u Buffers\n",
-        Gbl_ParseOpCount, ASL_PARSEOP_CACHE_SIZE,
+        AslGbl_ParseOpCount, ASL_PARSEOP_CACHE_SIZE,
         (sizeof (ACPI_PARSE_OBJECT) * ASL_PARSEOP_CACHE_SIZE), BufferCount);
 
     /* Reset cache globals */
 
-    Gbl_ParseOpCount = 0;
-    Gbl_ParseOpCacheNext = NULL;
-    Gbl_ParseOpCacheLast = NULL;
-    Gbl_ParseTreeRoot = NULL;
-
+    AslGbl_ParseOpCount = 0;
+    AslGbl_ParseOpCacheNext = NULL;
+    AslGbl_ParseOpCacheLast = NULL;
+    AslGbl_ParseTreeRoot = NULL;
 
     /*
      * Table Compiler - Field cache
      */
     BufferCount = 0;
-    while (Gbl_FieldCacheList)
+    while (AslGbl_FieldCacheList)
     {
-        Next = Gbl_FieldCacheList->Next;
-        ACPI_FREE (Gbl_FieldCacheList);
-        Gbl_FieldCacheList = Next;
+        Next = AslGbl_FieldCacheList->Next;
+        ACPI_FREE (AslGbl_FieldCacheList);
+        AslGbl_FieldCacheList = Next;
         BufferCount++;
     }
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "%u Fields, Buffer size: %u fields (%u bytes), %u Buffers\n",
-        Gbl_FieldCount, ASL_FIELD_CACHE_SIZE,
+        AslGbl_FieldCount, ASL_FIELD_CACHE_SIZE,
         (sizeof (DT_FIELD) * ASL_FIELD_CACHE_SIZE), BufferCount);
 
     /* Reset cache globals */
 
-    Gbl_FieldCount = 0;
-    Gbl_FieldCacheNext = NULL;
-    Gbl_FieldCacheLast = NULL;
-
+    AslGbl_FieldCount = 0;
+    AslGbl_FieldCacheNext = NULL;
+    AslGbl_FieldCacheLast = NULL;
 
     /*
      * Table Compiler - Subtable cache
      */
     BufferCount = 0;
-    while (Gbl_SubtableCacheList)
+    while (AslGbl_SubtableCacheList)
     {
-        Next = Gbl_SubtableCacheList->Next;
-        ACPI_FREE (Gbl_SubtableCacheList);
-        Gbl_SubtableCacheList = Next;
+        Next = AslGbl_SubtableCacheList->Next;
+        ACPI_FREE (AslGbl_SubtableCacheList);
+        AslGbl_SubtableCacheList = Next;
         BufferCount++;
     }
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "%u Subtables, Buffer size: %u subtables (%u bytes), %u Buffers\n",
-        Gbl_SubtableCount, ASL_SUBTABLE_CACHE_SIZE,
+        AslGbl_SubtableCount, ASL_SUBTABLE_CACHE_SIZE,
         (sizeof (DT_SUBTABLE) * ASL_SUBTABLE_CACHE_SIZE), BufferCount);
 
     /* Reset cache globals */
 
-    Gbl_SubtableCount = 0;
-    Gbl_SubtableCacheNext = NULL;
-    Gbl_SubtableCacheLast = NULL;
+    AslGbl_SubtableCount = 0;
+    AslGbl_SubtableCacheNext = NULL;
+    AslGbl_SubtableCacheLast = NULL;
 }
diff --git a/src/acpica/source/compiler/aslcodegen.c b/src/acpica/source/compiler/aslcodegen.c
index a6a8f7a..7b2e3e5 100644
--- a/src/acpica/source/compiler/aslcodegen.c
+++ b/src/acpica/source/compiler/aslcodegen.c
@@ -203,10 +203,10 @@ CgGenerateAmlOutput (
     /* Generate the AML output file */
 
     FlSeekFile (ASL_FILE_SOURCE_OUTPUT, 0);
-    Gbl_SourceLine = 0;
-    Gbl_NextError = Gbl_ErrorLog;
+    AslGbl_SourceLine = 0;
+    AslGbl_NextError = AslGbl_ErrorLog;
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         CgAmlWriteWalk, NULL, NULL);
 
     DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER2);
@@ -237,7 +237,7 @@ CgAmlWriteWalk (
 
     CgWriteNode (Op);
 
-    if (!Gbl_DebugFlag)
+    if (!AslGbl_DebugFlag)
     {
         return (AE_OK);
     }
@@ -556,46 +556,46 @@ CgWriteTableHeader (
         Child->Asl.Value.String = ACPI_SIG_XXXX;
     }
 
-    strncpy (TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
+    strncpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
 
     /* Revision */
 
     Child = Child->Asl.Next;
-    TableHeader.Revision = (UINT8) Child->Asl.Value.Integer;
+    AslGbl_TableHeader.Revision = (UINT8) Child->Asl.Value.Integer;
 
     /* Command-line Revision override */
 
-    if (Gbl_RevisionOverride)
+    if (AslGbl_RevisionOverride)
     {
-        TableHeader.Revision = Gbl_RevisionOverride;
+        AslGbl_TableHeader.Revision = AslGbl_RevisionOverride;
     }
 
     /* OEMID */
 
     Child = Child->Asl.Next;
-    strncpy (TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
+    strncpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
 
     /* OEM TableID */
 
     Child = Child->Asl.Next;
-    strncpy (TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
+    strncpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
 
     /* OEM Revision */
 
     Child = Child->Asl.Next;
-    TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
+    AslGbl_TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
 
     /* Compiler ID */
 
-    ACPI_MOVE_NAME (TableHeader.AslCompilerId, ASL_CREATOR_ID);
+    ACPI_MOVE_NAME (AslGbl_TableHeader.AslCompilerId, ASL_CREATOR_ID);
 
     /* Compiler version */
 
-    TableHeader.AslCompilerRevision = ACPI_CA_VERSION;
+    AslGbl_TableHeader.AslCompilerRevision = ACPI_CA_VERSION;
 
     /* Table length. Checksum zero for now, will rewrite later */
 
-    TableHeader.Length = sizeof (ACPI_TABLE_HEADER) +
+    AslGbl_TableHeader.Length = sizeof (ACPI_TABLE_HEADER) +
         Op->Asl.AmlSubtreeLength;
 
     /* Calculate the comment lengths for this definition block parseOp */
@@ -609,12 +609,14 @@ CgWriteTableHeader (
          * Take the filename without extensions, add 3 for the new extension
          * and another 3 for the a908 bytecode and null terminator.
          */
-        TableHeader.Length += strrchr (Gbl_ParseTreeRoot->Asl.Filename, '.')
-            - Gbl_ParseTreeRoot->Asl.Filename + 1 + 3 + 3;
+        AslGbl_TableHeader.Length += strrchr (AslGbl_ParseTreeRoot->Asl.Filename, '.')
+            - AslGbl_ParseTreeRoot->Asl.Filename + 1 + 3 + 3;
+
         Op->Asl.AmlSubtreeLength +=
-            strlen (Gbl_ParseTreeRoot->Asl.Filename) + 3;
-    CvDbgPrint ("     Length: %lu\n",
-            strlen (Gbl_ParseTreeRoot->Asl.Filename) + 3);
+            strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3;
+
+        CvDbgPrint ("     Length: %lu\n",
+            strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3);
 
         if (Op->Asl.CommentList)
         {
@@ -624,10 +626,10 @@ CgWriteTableHeader (
                 CommentLength = strlen (Current->Comment)+3;
                 CvDbgPrint ("Length of standard comment): %d\n", CommentLength);
                 CvDbgPrint ("    Comment string: %s\n\n", Current->Comment);
-                TableHeader.Length += CommentLength;
+                AslGbl_TableHeader.Length += CommentLength;
                 Op->Asl.AmlSubtreeLength += CommentLength;
                 Current = Current->Next;
-            CvDbgPrint ("    Length: %u\n", CommentLength);
+                CvDbgPrint ("    Length: %u\n", CommentLength);
             }
         }
         if (Op->Asl.CloseBraceComment)
@@ -635,20 +637,19 @@ CgWriteTableHeader (
             CommentLength = strlen (Op->Asl.CloseBraceComment)+3;
             CvDbgPrint ("Length of inline comment +3: %d\n", CommentLength);
             CvDbgPrint ("    Comment string: %s\n\n", Op->Asl.CloseBraceComment);
-            TableHeader.Length += CommentLength;
+            AslGbl_TableHeader.Length += CommentLength;
             Op->Asl.AmlSubtreeLength += CommentLength;
-        CvDbgPrint ("    Length: %u\n", CommentLength);
+            CvDbgPrint ("    Length: %u\n", CommentLength);
         }
     }
 
-    TableHeader.Checksum = 0;
-
-    Op->Asl.FinalAmlOffset = ftell (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle);
+    AslGbl_TableHeader.Checksum = 0;
+    Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
 
     /* Write entire header and clear the table header global */
 
-    CgLocalWriteAmlData (Op, &TableHeader, sizeof (ACPI_TABLE_HEADER));
-    memset (&TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
+    CgLocalWriteAmlData (Op, &AslGbl_TableHeader, sizeof (ACPI_TABLE_HEADER));
+    memset (&AslGbl_TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
 }
 
 
@@ -727,7 +728,7 @@ CgCloseTable (
 
     /* Process all definition blocks */
 
-    Op = Gbl_ParseTreeRoot->Asl.Child;
+    Op = AslGbl_ParseTreeRoot->Asl.Child;
     while (Op)
     {
         CgUpdateHeader (Op);
@@ -773,7 +774,7 @@ CgWriteNode (
     }
 
     if ((Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
-        Gbl_DoExternals == FALSE)
+        AslGbl_DoExternals == FALSE)
     {
         return;
     }
diff --git a/src/acpica/source/compiler/aslcompile.c b/src/acpica/source/compiler/aslcompile.c
index b0a06e6..e08442e 100644
--- a/src/acpica/source/compiler/aslcompile.c
+++ b/src/acpica/source/compiler/aslcompile.c
@@ -205,7 +205,7 @@ CmDoCompile (
     UtEndEvent (Event);
 
     Event = UtBeginEvent ("Preprocess input file");
-    if (Gbl_PreprocessFlag)
+    if (AslGbl_PreprocessFlag)
     {
         /* Enter compiler name as a #define */
 
@@ -214,10 +214,10 @@ CmDoCompile (
         /* Preprocessor */
 
         PrDoPreprocess ();
-        Gbl_CurrentLineNumber = 1;
-        Gbl_LogicalLineNumber = 1;
+        AslGbl_CurrentLineNumber = 1;
+        AslGbl_LogicalLineNumber = 1;
 
-        if (Gbl_PreprocessOnly)
+        if (AslGbl_PreprocessOnly)
         {
             UtEndEvent (Event);
             CmCleanupAndExit ();
@@ -235,7 +235,7 @@ CmDoCompile (
 
     /* Check for parser-detected syntax errors */
 
-    if (Gbl_SyntaxError)
+    if (AslGbl_SyntaxError)
     {
         fprintf (stderr,
             "Compiler aborting due to parser-detected syntax error(s)\n");
@@ -245,7 +245,7 @@ CmDoCompile (
 
     /* Did the parse tree get successfully constructed? */
 
-    if (!Gbl_ParseTreeRoot)
+    if (!AslGbl_ParseTreeRoot)
     {
         /*
          * If there are no errors, then we have some sort of
@@ -264,23 +264,23 @@ CmDoCompile (
 
     /* Prune the parse tree if requested (debug purposes only) */
 
-    if (Gbl_PruneParseTree)
+    if (AslGbl_PruneParseTree)
     {
-        AslPruneParseTree (Gbl_PruneDepth, Gbl_PruneType);
+        AslPruneParseTree (AslGbl_PruneDepth, AslGbl_PruneType);
     }
 
     /* Optional parse tree dump, compiler debug output only */
 
     LsDumpParseTree ();
 
-    OpcGetIntegerWidth (Gbl_ParseTreeRoot->Asl.Child);
+    OpcGetIntegerWidth (AslGbl_ParseTreeRoot->Asl.Child);
     UtEndEvent (Event);
 
     /* Pre-process parse tree for any operator transforms */
 
     Event = UtBeginEvent ("Parse tree transforms");
     DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
         TrAmlTransformWalkBegin, TrAmlTransformWalkEnd, NULL);
     UtEndEvent (Event);
 
@@ -288,7 +288,7 @@ CmDoCompile (
 
     Event = UtBeginEvent ("Generate AML opcodes");
     DbgPrint (ASL_DEBUG_OUTPUT, "Generating AML opcodes\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
         OpcAmlOpcodeWalk, NULL);
     UtEndEvent (Event);
 
@@ -298,7 +298,7 @@ CmDoCompile (
      * descriptor within the input file.
      */
     Event = UtBeginEvent ("Open AML output file");
-    Status = FlOpenAmlOutputFile (Gbl_OutputFilenamePrefix);
+    Status = FlOpenAmlOutputFile (AslGbl_OutputFilenamePrefix);
     UtEndEvent (Event);
     if (ACPI_FAILURE (Status))
     {
@@ -312,9 +312,9 @@ CmDoCompile (
     DbgPrint (ASL_DEBUG_OUTPUT,
         "Interpreting compile-time constant expressions\n\n");
 
-    if (Gbl_FoldConstants)
+    if (AslGbl_FoldConstants)
     {
-        TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
+        TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
             NULL, OpcAmlConstantWalk, NULL);
     }
     else
@@ -328,7 +328,7 @@ CmDoCompile (
     Event = UtBeginEvent ("Updating AML opcodes after constant folding");
     DbgPrint (ASL_DEBUG_OUTPUT,
         "Updating AML opcodes after constant folding\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
         NULL, OpcAmlOpcodeUpdateWalk, NULL);
     UtEndEvent (Event);
 
@@ -336,15 +336,15 @@ CmDoCompile (
 
     Event = UtBeginEvent ("Generate AML package lengths");
     DbgPrint (ASL_DEBUG_OUTPUT, "Generating Package lengths\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
         LnPackageLengthWalk, NULL);
     UtEndEvent (Event);
 
-    if (Gbl_ParseOnlyFlag)
+    if (AslGbl_ParseOnlyFlag)
     {
         AePrintErrorLog (ASL_FILE_STDERR);
         UtDisplaySummary (ASL_FILE_STDERR);
-        if (Gbl_DebugFlag)
+        if (AslGbl_DebugFlag)
         {
             /* Print error summary to the stdout also */
 
@@ -363,7 +363,7 @@ CmDoCompile (
 
     Event = UtBeginEvent ("Create ACPI Namespace");
     DbgPrint (ASL_DEBUG_OUTPUT, "Creating ACPI Namespace\n\n");
-    Status = LdLoadNamespace (Gbl_ParseTreeRoot);
+    Status = LdLoadNamespace (AslGbl_ParseTreeRoot);
     UtEndEvent (Event);
     if (ACPI_FAILURE (Status))
     {
@@ -388,19 +388,19 @@ CmDoCompile (
 
     /* Resolve External Declarations */
 
-    if (Gbl_DoExternals)
+    if (AslGbl_DoExternals)
     {
         Event = UtBeginEvent ("Resolve all Externals");
         DbgPrint (ASL_DEBUG_OUTPUT, "\nResolve Externals\n\n");
 
-        if (Gbl_DoExternalsInPlace)
+        if (AslGbl_DoExternalsInPlace)
         {
-            TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+            TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
                 ExAmlExternalWalkBegin, NULL, NULL);
         }
         else
         {
-            TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
+            TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
                 ExAmlExternalWalkBegin, ExAmlExternalWalkEnd, NULL);
         }
         UtEndEvent (Event);
@@ -413,19 +413,19 @@ CmDoCompile (
      * part one - check control methods
      */
     Event = UtBeginEvent ("Analyze control method return types");
-    AnalysisWalkInfo.MethodStack = NULL;
+    AslGbl_AnalysisWalkInfo.MethodStack = NULL;
 
     DbgPrint (ASL_DEBUG_OUTPUT, "Semantic analysis - Method analysis\n\n");
 
-    if (Gbl_CrossReferenceOutput)
+    if (AslGbl_CrossReferenceOutput)
     {
         OtPrintHeaders ("Part 1: Object Reference Map "
             "(Object references from within each control method)");
     }
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
         MtMethodAnalysisWalkBegin,
-        MtMethodAnalysisWalkEnd, &AnalysisWalkInfo);
+        MtMethodAnalysisWalkEnd, &AslGbl_AnalysisWalkInfo);
     UtEndEvent (Event);
 
     /* Generate the object cross-reference file if requested */
@@ -438,7 +438,7 @@ CmDoCompile (
 
     Event = UtBeginEvent ("Determine object types returned by methods");
     DbgPrint (ASL_DEBUG_OUTPUT, "Semantic analysis - Method typing\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
         NULL, AnMethodTypingWalkEnd, NULL);
     UtEndEvent (Event);
 
@@ -447,10 +447,10 @@ CmDoCompile (
     Event = UtBeginEvent ("Analyze AML operand types");
     DbgPrint (ASL_DEBUG_OUTPUT,
         "Semantic analysis - Operand type checking\n\n");
-    if (Gbl_DoTypechecking)
+    if (AslGbl_DoTypechecking)
     {
-        TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
-            NULL, AnOperandTypecheckWalkEnd, &AnalysisWalkInfo);
+        TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD,
+            NULL, AnOperandTypecheckWalkEnd, &AslGbl_AnalysisWalkInfo);
     }
     UtEndEvent (Event);
 
@@ -458,9 +458,9 @@ CmDoCompile (
 
     Event = UtBeginEvent ("Miscellaneous analysis");
     DbgPrint (ASL_DEBUG_OUTPUT, "Semantic analysis - miscellaneous\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         AnOtherSemanticAnalysisWalkBegin,
-        NULL, &AnalysisWalkInfo);
+        NULL, &AslGbl_AnalysisWalkInfo);
     UtEndEvent (Event);
 
     /*
@@ -471,17 +471,17 @@ CmDoCompile (
      */
     if (AcpiGbl_CaptureComments)
     {
-        AcpiGbl_LastListHead = Gbl_ParseTreeRoot->Asl.CommentList;
-        Gbl_ParseTreeRoot->Asl.CommentList = NULL;
+        AcpiGbl_LastListHead = AslGbl_ParseTreeRoot->Asl.CommentList;
+        AslGbl_ParseTreeRoot->Asl.CommentList = NULL;
     }
 
     /* Calculate all AML package lengths */
 
     Event = UtBeginEvent ("Finish AML package length generation");
     DbgPrint (ASL_DEBUG_OUTPUT, "Generating Package lengths\n\n");
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
         LnInitLengthsWalk, NULL);
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL,
         LnPackageLengthWalk, NULL);
     UtEndEvent (Event);
 
@@ -539,12 +539,12 @@ AslCompilerSignon (
 
     case ASL_FILE_HEX_OUTPUT:
 
-        if (Gbl_HexOutputFlag == HEX_OUTPUT_ASM)
+        if (AslGbl_HexOutputFlag == HEX_OUTPUT_ASM)
         {
             Prefix = "; ";
         }
-        else if ((Gbl_HexOutputFlag == HEX_OUTPUT_C) ||
-                 (Gbl_HexOutputFlag == HEX_OUTPUT_ASL))
+        else if ((AslGbl_HexOutputFlag == HEX_OUTPUT_C) ||
+                 (AslGbl_HexOutputFlag == HEX_OUTPUT_ASL))
         {
             FlPrintFile (ASL_FILE_HEX_OUTPUT, "/*\n");
             Prefix = " * ";
@@ -616,12 +616,12 @@ AslCompilerFileHeader (
 
     case ASL_FILE_HEX_OUTPUT:
 
-        if (Gbl_HexOutputFlag == HEX_OUTPUT_ASM)
+        if (AslGbl_HexOutputFlag == HEX_OUTPUT_ASM)
         {
             Prefix = "; ";
         }
-        else if ((Gbl_HexOutputFlag == HEX_OUTPUT_C) ||
-                 (Gbl_HexOutputFlag == HEX_OUTPUT_ASL))
+        else if ((AslGbl_HexOutputFlag == HEX_OUTPUT_C) ||
+                 (AslGbl_HexOutputFlag == HEX_OUTPUT_ASL))
         {
             Prefix = " * ";
         }
@@ -648,7 +648,7 @@ AslCompilerFileHeader (
 
     FlPrintFile (FileId,
         "%sCompilation of \"%s\" - %s%s\n",
-        Prefix, Gbl_Files[ASL_FILE_INPUT].Filename, asctime (NewTime),
+        Prefix, AslGbl_Files[ASL_FILE_INPUT].Filename, asctime (NewTime),
         Prefix);
 
     switch (FileId)
@@ -756,7 +756,7 @@ CmDumpAllEvents (
     Event = AslGbl_Events;
 
     DbgPrint (ASL_DEBUG_OUTPUT, "\n\nElapsed time for major events\n\n");
-    if (Gbl_CompileTimesFlag)
+    if (AslGbl_CompileTimesFlag)
     {
         printf ("\nElapsed time for major events\n\n");
     }
@@ -782,7 +782,7 @@ CmDumpAllEvents (
             DbgPrint (ASL_DEBUG_OUTPUT, "%8u usec %8u msec - %s\n",
                 MicroSeconds, MilliSeconds, Event->EventName);
 
-            if (Gbl_CompileTimesFlag)
+            if (AslGbl_CompileTimesFlag)
             {
                 printf ("%8u usec %8u msec - %s\n",
                     MicroSeconds, MilliSeconds, Event->EventName);
@@ -816,7 +816,7 @@ CmCleanupAndExit (
 
     AslCheckExpectedExceptions ();
     AePrintErrorLog (ASL_FILE_STDERR);
-    if (Gbl_DebugFlag)
+    if (AslGbl_DebugFlag)
     {
         /* Print error summary to stdout also */
 
@@ -827,36 +827,36 @@ CmCleanupAndExit (
 
     CmDumpAllEvents ();
 
-    if (Gbl_CompileTimesFlag)
+    if (AslGbl_CompileTimesFlag)
     {
         printf ("\nMiscellaneous compile statistics\n\n");
-        printf ("%11u : %s\n", TotalParseNodes, "Parse nodes");
-        printf ("%11u : %s\n", Gbl_NsLookupCount, "Namespace searches");
-        printf ("%11u : %s\n", TotalNamedObjects, "Named objects");
-        printf ("%11u : %s\n", TotalMethods, "Control methods");
-        printf ("%11u : %s\n", TotalAllocations, "Memory Allocations");
-        printf ("%11u : %s\n", TotalAllocated, "Total allocated memory");
-        printf ("%11u : %s\n", TotalFolds, "Constant subtrees folded");
+        printf ("%11u : %s\n", AslGbl_TotalParseNodes, "Parse nodes");
+        printf ("%11u : %s\n", AslGbl_NsLookupCount, "Namespace searches");
+        printf ("%11u : %s\n", AslGbl_TotalNamedObjects, "Named objects");
+        printf ("%11u : %s\n", AslGbl_TotalMethods, "Control methods");
+        printf ("%11u : %s\n", AslGbl_TotalAllocations, "Memory Allocations");
+        printf ("%11u : %s\n", AslGbl_TotalAllocated, "Total allocated memory");
+        printf ("%11u : %s\n", AslGbl_TotalFolds, "Constant subtrees folded");
         printf ("\n");
     }
 
-    if (Gbl_NsLookupCount)
+    if (AslGbl_NsLookupCount)
     {
         DbgPrint (ASL_DEBUG_OUTPUT,
             "\n\nMiscellaneous compile statistics\n\n");
 
         DbgPrint (ASL_DEBUG_OUTPUT,
             "%32s : %u\n", "Total Namespace searches",
-            Gbl_NsLookupCount);
+            AslGbl_NsLookupCount);
 
         DbgPrint (ASL_DEBUG_OUTPUT,
             "%32s : %u usec\n", "Time per search", ((UINT32)
             (AslGbl_Events[AslGbl_NamespaceEvent].EndTime -
                 AslGbl_Events[AslGbl_NamespaceEvent].StartTime) / 10) /
-                Gbl_NsLookupCount);
+                AslGbl_NsLookupCount);
     }
 
-    if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
+    if (AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
     {
         printf ("\nMaximum error count (%u) exceeded\n",
             ASL_MAX_ERROR_COUNT);
@@ -868,9 +868,9 @@ CmCleanupAndExit (
      * We will delete the AML file if there are errors and the
      * force AML output option has not been used.
      */
-    if ((Gbl_ExceptionCount[ASL_ERROR] > 0) &&
-        (!Gbl_IgnoreErrors) &&
-        Gbl_Files[ASL_FILE_AML_OUTPUT].Handle)
+    if ((AslGbl_ExceptionCount[ASL_ERROR] > 0) &&
+        (!AslGbl_IgnoreErrors) &&
+        AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle)
     {
         DeleteAmlFile = TRUE;
     }
@@ -883,10 +883,10 @@ CmCleanupAndExit (
      * or aborted. Prevent attempt to close the same file twice in
      * loop below.
      */
-    if (Gbl_Files[ASL_FILE_PREPROCESSOR].Handle ==
-        Gbl_Files[ASL_FILE_INPUT].Handle)
+    if (AslGbl_Files[ASL_FILE_PREPROCESSOR].Handle ==
+        AslGbl_Files[ASL_FILE_INPUT].Handle)
     {
-        Gbl_Files[ASL_FILE_PREPROCESSOR].Handle = NULL;
+        AslGbl_Files[ASL_FILE_PREPROCESSOR].Handle = NULL;
     }
 
     /* Close the standard I/O files */
@@ -905,7 +905,7 @@ CmCleanupAndExit (
 
     /* Delete the preprocessor temp file unless full debug was specified */
 
-    if (Gbl_PreprocessFlag && !Gbl_KeepPreprocessorTempFile)
+    if (AslGbl_PreprocessFlag && !AslGbl_KeepPreprocessorTempFile)
     {
         FlDeleteFile (ASL_FILE_PREPROCESSOR);
     }
@@ -922,16 +922,15 @@ CmCleanupAndExit (
      * filename instead, to determine if the .SRC file was actually
      * created.
      */
-    if (!Gbl_SourceOutputFlag)
+    if (!AslGbl_SourceOutputFlag)
     {
         FlDeleteFile (ASL_FILE_SOURCE_OUTPUT);
     }
 
     /* Final cleanup after compiling one file */
 
-    if (!Gbl_DoAslConversion)
+    if (!AslGbl_DoAslConversion)
     {
         UtDeleteLocalCaches ();
     }
-
 }
diff --git a/src/acpica/source/compiler/aslcompiler.l b/src/acpica/source/compiler/aslcompiler.l
index 88c0617..8ee931d 100644
--- a/src/acpica/source/compiler/aslcompiler.l
+++ b/src/acpica/source/compiler/aslcompiler.l
@@ -566,7 +566,7 @@ NamePathTail                [.]{NameSeg}
 
     /* ExtendedAttribKeyword: Bus attributes, AccessAs operator (ACPI 5.0) */
 
-"AttribBytes"               { count (0); return (PARSEOP_ACCESSATTRIB_MULTIBYTE); }
+"AttribBytes"               { count (0); return (PARSEOP_ACCESSATTRIB_BYTES); }
 "AttribRawBytes"            { count (0); return (PARSEOP_ACCESSATTRIB_RAW_BYTES); }
 "AttribRawProcessBytes"     { count (0); return (PARSEOP_ACCESSATTRIB_RAW_PROCESS); }
 
@@ -836,17 +836,17 @@ NamePathTail                [.]{NameSeg}
 .                           { count (1);
                                 if (isprint ((int) *AslCompilertext))
                                 {
-                                    sprintf (MsgBuffer,
+                                    sprintf (AslGbl_MsgBuffer,
                                         "Invalid character (%c), expecting ASL keyword or name",
                                         *AslCompilertext);
                                 }
                                 else
                                 {
-                                    sprintf (MsgBuffer,
+                                    sprintf (AslGbl_MsgBuffer,
                                         "Invalid character (0x%2.2X), expecting ASL keyword or name",
                                         *AslCompilertext);
                                 }
-                                AslCompilererror (MsgBuffer);}
+                                AslCompilererror (AslGbl_MsgBuffer);}
 
 <<EOF>>                     { if (AslPopInputFileStack ())
                                 {yyterminate();}
diff --git a/src/acpica/source/compiler/asldefine.h b/src/acpica/source/compiler/asldefine.h
index 8d5f4ba..0283b20 100644
--- a/src/acpica/source/compiler/asldefine.h
+++ b/src/acpica/source/compiler/asldefine.h
@@ -295,8 +295,8 @@
 /*
  * Macros for ASL/ASL+ converter
  */
-#define COMMENT_CAPTURE_ON    Gbl_CommentState.CaptureComments = TRUE;
-#define COMMENT_CAPTURE_OFF   Gbl_CommentState.CaptureComments = FALSE;
+#define COMMENT_CAPTURE_ON    AslGbl_CommentState.CaptureComments = TRUE;
+#define COMMENT_CAPTURE_OFF   AslGbl_CommentState.CaptureComments = FALSE;
 
 
 #endif /* ASLDEFINE.H */
diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
index 39297a4..6d45cd4 100644
--- a/src/acpica/source/compiler/aslerror.c
+++ b/src/acpica/source/compiler/aslerror.c
@@ -221,7 +221,7 @@ AslAbort (
 {
 
     AePrintErrorLog (ASL_FILE_STDERR);
-    if (Gbl_DebugFlag)
+    if (AslGbl_DebugFlag)
     {
         /* Print error summary to stdout also */
 
@@ -248,7 +248,7 @@ void
 AeClearErrorLog (
     void)
 {
-    ASL_ERROR_MSG           *Enode = Gbl_ErrorLog;
+    ASL_ERROR_MSG           *Enode = AslGbl_ErrorLog;
     ASL_ERROR_MSG           *Next;
 
 
@@ -261,7 +261,7 @@ AeClearErrorLog (
         Enode = Next;
     }
 
-    Gbl_ErrorLog = NULL;
+   AslGbl_ErrorLog = NULL;
 }
 
 
@@ -289,9 +289,9 @@ AeAddToErrorLog (
 
     /* If Gbl_ErrorLog is null, this is the first error node */
 
-    if (!Gbl_ErrorLog)
+    if (!AslGbl_ErrorLog)
     {
-        Gbl_ErrorLog = Enode;
+        AslGbl_ErrorLog = Enode;
         return;
     }
 
@@ -300,7 +300,7 @@ AeAddToErrorLog (
      * List is sorted according to line number.
      */
     Prev = NULL;
-    Next = Gbl_ErrorLog;
+    Next = AslGbl_ErrorLog;
 
     while ((Next) && (Next->LogicalLineNumber <= Enode->LogicalLineNumber))
     {
@@ -318,7 +318,7 @@ AeAddToErrorLog (
     }
     else
     {
-        Gbl_ErrorLog = Enode;
+        AslGbl_ErrorLog = Enode;
     }
 }
 
@@ -382,7 +382,7 @@ AeDecodeErrorMessageId (
         ExtraMessage = NULL;
     }
 
-    if (Gbl_VerboseErrors && !PrematureEOF)
+    if (AslGbl_VerboseErrors && !PrematureEOF)
     {
         if (Total >= 256)
         {
@@ -426,7 +426,7 @@ AeDecodeErrorMessageId (
     }
 
     fprintf (OutputFile, "\n");
-    if (Gbl_VerboseErrors && !Enode->SubError)
+    if (AslGbl_VerboseErrors && !Enode->SubError)
     {
         fprintf (OutputFile, "\n");
     }
@@ -469,10 +469,10 @@ AePrintErrorSourceLine (
          * Use the merged header/source file if present, otherwise
          * use input file
          */
-        SourceFile = Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle;
+        SourceFile = AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle;
         if (!SourceFile)
         {
-            SourceFile = Gbl_Files[ASL_FILE_INPUT].Handle;
+            SourceFile = AslGbl_Files[ASL_FILE_INPUT].Handle;
         }
 
         if (SourceFile)
@@ -497,7 +497,7 @@ AePrintErrorSourceLine (
 
     /* Print filename and line number if present and valid */
 
-    if (Gbl_VerboseErrors)
+    if (AslGbl_VerboseErrors)
     {
         fprintf (OutputFile, "%-8s", Enode->Filename);
 
@@ -530,7 +530,7 @@ AePrintErrorSourceLine (
             {
                 fprintf (OutputFile,
                     "[*** iASL: Seek error on source code temp file %s ***]",
-                    Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
+                    AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
 
                 fprintf (OutputFile, "\n");
                 return AE_OK;
@@ -540,7 +540,7 @@ AePrintErrorSourceLine (
             {
                 fprintf (OutputFile,
                     "[*** iASL: Read error on source code temp file %s ***]",
-                    Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
+                    AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
                 return AE_IO_ERROR;
             }
                 /* Read/write the source line, up to the maximum line length */
@@ -569,7 +569,7 @@ AePrintErrorSourceLine (
                 {
                     fprintf (OutputFile,
                         "[*** iASL: Read error on source code temp file %s ***]",
-                        Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
+                        AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
 
                     return AE_IO_ERROR;
                 }
@@ -629,7 +629,7 @@ AePrintException (
     ASL_ERROR_MSG           *Child = Enode->SubError;
 
 
-    if (Gbl_NoErrors)
+    if (AslGbl_NoErrors)
     {
         return;
     }
@@ -648,7 +648,7 @@ AePrintException (
         case ASL_WARNING2:
         case ASL_WARNING3:
 
-            if (!Gbl_DisplayWarnings)
+            if (!AslGbl_DisplayWarnings)
             {
                 return;
             }
@@ -656,7 +656,7 @@ AePrintException (
 
         case ASL_REMARK:
 
-            if (!Gbl_DisplayRemarks)
+            if (!AslGbl_DisplayRemarks)
             {
                 return;
             }
@@ -664,7 +664,7 @@ AePrintException (
 
         case ASL_OPTIMIZATION:
 
-            if (!Gbl_DisplayOptimizations)
+            if (!AslGbl_DisplayOptimizations)
             {
                 return;
             }
@@ -678,7 +678,7 @@ AePrintException (
 
     /* Get the various required file handles */
 
-    OutputFile = Gbl_Files[FileId].Handle;
+    OutputFile = AslGbl_Files[FileId].Handle;
 
     if (Header)
     {
@@ -764,7 +764,7 @@ void
 AePrintErrorLog (
     UINT32                  FileId)
 {
-    ASL_ERROR_MSG           *Enode = Gbl_ErrorLog;
+    ASL_ERROR_MSG           *Enode = AslGbl_ErrorLog;
 
 
     /* Walk the error node list */
@@ -978,20 +978,20 @@ AslLogNewError (
 
     AeAddToErrorLog (Enode);
 
-    if (Gbl_DebugFlag)
+    if (AslGbl_DebugFlag)
     {
         /* stderr is a file, send error to it immediately */
 
         AePrintException (ASL_FILE_STDERR, Enode, NULL);
     }
 
-    Gbl_ExceptionCount[Level]++;
-    if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
+    AslGbl_ExceptionCount[Level]++;
+    if (AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
     {
         printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT);
 
-        Gbl_SourceLine = 0;
-        Gbl_NextError = Gbl_ErrorLog;
+        AslGbl_SourceLine = 0;
+        AslGbl_NextError = AslGbl_ErrorLog;
         CmCleanupAndExit ();
         exit(1);
     }
@@ -1026,7 +1026,7 @@ AslIsExceptionIgnored (
     ExceptionIgnored = AslIsExceptionDisabled (Level, MessageId);
     ExceptionIgnored |= AslIsExceptionExpected (Level, MessageId);
 
-    return (Gbl_AllExceptionsDisabled || ExceptionIgnored);
+    return (AslGbl_AllExceptionsDisabled || ExceptionIgnored);
 }
 
 
@@ -1050,12 +1050,12 @@ AslCheckExpectedExceptions (
     UINT8                   i;
 
 
-    for (i = 0; i < Gbl_ExpectedMessagesIndex; ++i)
+    for (i = 0; i < AslGbl_ExpectedMessagesIndex; ++i)
     {
-        if (!Gbl_ExpectedMessages[i].MessageReceived)
+        if (!AslGbl_ExpectedMessages[i].MessageReceived)
         {
             AslError (ASL_ERROR, ASL_MSG_EXCEPTION_NOT_RECEIVED, NULL,
-                Gbl_ExpectedMessages[i].MessageIdStr);
+                AslGbl_ExpectedMessages[i].MessageIdStr);
         }
     }
 }
@@ -1095,17 +1095,17 @@ AslExpectException (
 
     /* Insert value into the global expected message array */
 
-    if (Gbl_ExpectedMessagesIndex >= ASL_MAX_EXPECTED_MESSAGES)
+    if (AslGbl_ExpectedMessagesIndex >= ASL_MAX_EXPECTED_MESSAGES)
     {
         printf ("Too many messages have been registered as expected (max %u)\n",
             ASL_MAX_DISABLED_MESSAGES);
         return (AE_LIMIT);
     }
 
-    Gbl_ExpectedMessages[Gbl_ExpectedMessagesIndex].MessageId = MessageId;
-    Gbl_ExpectedMessages[Gbl_ExpectedMessagesIndex].MessageIdStr = MessageIdString;
-    Gbl_ExpectedMessages[Gbl_ExpectedMessagesIndex].MessageReceived = FALSE;
-    Gbl_ExpectedMessagesIndex++;
+    AslGbl_ExpectedMessages[AslGbl_ExpectedMessagesIndex].MessageId = MessageId;
+    AslGbl_ExpectedMessages[AslGbl_ExpectedMessagesIndex].MessageIdStr = MessageIdString;
+    AslGbl_ExpectedMessages[AslGbl_ExpectedMessagesIndex].MessageReceived = FALSE;
+    AslGbl_ExpectedMessagesIndex++;
     return (AE_OK);
 }
 
@@ -1142,15 +1142,15 @@ AslDisableException (
 
     /* Insert value into the global disabled message array */
 
-    if (Gbl_DisabledMessagesIndex >= ASL_MAX_DISABLED_MESSAGES)
+    if (AslGbl_DisabledMessagesIndex >= ASL_MAX_DISABLED_MESSAGES)
     {
         printf ("Too many messages have been disabled (max %u)\n",
             ASL_MAX_DISABLED_MESSAGES);
         return (AE_LIMIT);
     }
 
-    Gbl_DisabledMessages[Gbl_DisabledMessagesIndex] = MessageId;
-    Gbl_DisabledMessagesIndex++;
+    AslGbl_DisabledMessages[AslGbl_DisabledMessagesIndex] = MessageId;
+    AslGbl_DisabledMessagesIndex++;
     return (AE_OK);
 }
 
@@ -1181,13 +1181,13 @@ AslIsExceptionExpected (
     /* Mark this exception as received */
 
     EncodedMessageId = AeBuildFullExceptionCode (Level, MessageId);
-    for (i = 0; i < Gbl_ExpectedMessagesIndex; i++)
+    for (i = 0; i < AslGbl_ExpectedMessagesIndex; i++)
     {
         /* Simple implementation via fixed array */
 
-        if (EncodedMessageId == Gbl_ExpectedMessages[i].MessageId)
+        if (EncodedMessageId == AslGbl_ExpectedMessages[i].MessageId)
         {
-            return (Gbl_ExpectedMessages[i].MessageReceived = TRUE);
+            return (AslGbl_ExpectedMessages[i].MessageReceived = TRUE);
         }
     }
 
@@ -1225,7 +1225,7 @@ AslIsExceptionDisabled (
 
         /* Check for global disable via -w1/-w2/-w3 options */
 
-        if (Level > Gbl_WarningLevel)
+        if (Level > AslGbl_WarningLevel)
         {
             return (TRUE);
         }
@@ -1239,11 +1239,11 @@ AslIsExceptionDisabled (
          * the user (-vw option)
          */
         EncodedMessageId = AeBuildFullExceptionCode (Level, MessageId);
-        for (i = 0; i < Gbl_DisabledMessagesIndex; i++)
+        for (i = 0; i < AslGbl_DisabledMessagesIndex; i++)
         {
             /* Simple implementation via fixed array */
 
-            if (EncodedMessageId == Gbl_DisabledMessages[i])
+            if (EncodedMessageId == AslGbl_DisabledMessages[i])
             {
                 return (TRUE);
             }
@@ -1376,7 +1376,7 @@ AslCoreSubsystemError (
     BOOLEAN                 Abort)
 {
 
-    sprintf (MsgBuffer, "%s %s", AcpiFormatException (Status), ExtraMessage);
+    sprintf (AslGbl_MsgBuffer, "%s %s", AcpiFormatException (Status), ExtraMessage);
 
     if (Op)
     {
@@ -1385,12 +1385,12 @@ AslCoreSubsystemError (
             Op->Asl.LogicalLineNumber,
             Op->Asl.LogicalByteOffset,
             Op->Asl.Column,
-            Op->Asl.Filename, MsgBuffer);
+            Op->Asl.Filename, AslGbl_MsgBuffer);
     }
     else
     {
         AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION,
-            0, 0, 0, 0, NULL, MsgBuffer);
+            0, 0, 0, 0, NULL, AslGbl_MsgBuffer);
     }
 
     if (Abort)
@@ -1419,11 +1419,11 @@ AslCompilererror (
     const char              *CompilerMessage)
 {
 
-    Gbl_SyntaxError++;
+    AslGbl_SyntaxError++;
 
-    AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, Gbl_CurrentLineNumber,
-        Gbl_LogicalLineNumber, Gbl_CurrentLineOffset,
-        Gbl_CurrentColumn, Gbl_Files[ASL_FILE_INPUT].Filename,
+    AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, AslGbl_CurrentLineNumber,
+        AslGbl_LogicalLineNumber, AslGbl_CurrentLineOffset,
+        AslGbl_CurrentColumn, AslGbl_Files[ASL_FILE_INPUT].Filename,
         ACPI_CAST_PTR (char, CompilerMessage));
 
     return (0);
diff --git a/src/acpica/source/compiler/aslexternal.c b/src/acpica/source/compiler/aslexternal.c
index b3e5369..6212a28 100644
--- a/src/acpica/source/compiler/aslexternal.c
+++ b/src/acpica/source/compiler/aslexternal.c
@@ -209,11 +209,11 @@ ExDoExternal (
     ListOp->Asl.Child = Op;
     ListOp->Asl.Next = NULL;
 
-    if (Gbl_ExternalsListHead)
+    if (AslGbl_ExternalsListHead)
     {
         /* Link new External to end of list */
 
-        Prev = Gbl_ExternalsListHead;
+        Prev = AslGbl_ExternalsListHead;
         Next = Prev;
         while (Next)
         {
@@ -225,7 +225,7 @@ ExDoExternal (
     }
     else
     {
-        Gbl_ExternalsListHead = ListOp;
+        AslGbl_ExternalsListHead = ListOp;
     }
 }
 
@@ -259,7 +259,7 @@ ExInsertArgCount (
 
     CallName = AcpiNsGetNormalizedPathname (Op->Asl.Node, TRUE);
 
-    Next = Gbl_ExternalsListHead;
+    Next = AslGbl_ExternalsListHead;
     while (Next)
     {
         ArgCount = 0;
@@ -344,10 +344,10 @@ ExAmlExternalWalkBegin (
 
     if (Op->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)
     {
-        Gbl_ExternalsListHead = Op->Asl.Value.Arg;
+        AslGbl_ExternalsListHead = Op->Asl.Value.Arg;
     }
 
-    if (!Gbl_ExternalsListHead)
+    if (!AslGbl_ExternalsListHead)
     {
         return (AE_OK);
     }
@@ -401,7 +401,7 @@ ExAmlExternalWalkEnd (
          * multiple definition blocks in a single file/compile)
          */
         ExMoveExternals (Op);
-        Gbl_ExternalsListHead = NULL;
+        AslGbl_ExternalsListHead = NULL;
     }
 
     return (AE_OK);
@@ -439,14 +439,14 @@ ExMoveExternals (
     UINT32                  i;
 
 
-    if (!Gbl_ExternalsListHead)
+    if (!AslGbl_ExternalsListHead)
     {
         return;
     }
 
     /* Remove the External nodes from the tree */
 
-    NextOp = Gbl_ExternalsListHead;
+    NextOp = AslGbl_ExternalsListHead;
     while (NextOp)
     {
         /*
@@ -520,7 +520,7 @@ ExMoveExternals (
 
         Prev->Asl.Next = ExternalOp->Asl.Next;
         ExternalOp->Asl.Next = NULL;
-        ExternalOp->Asl.Parent = Gbl_ExternalsListHead;
+        ExternalOp->Asl.Parent = AslGbl_ExternalsListHead;
 
         /* Point the External to the next in the list */
 
@@ -536,7 +536,7 @@ ExMoveExternals (
      * Loop again to remove MethodObj Externals for which
      * a MethodCall was not found (dead external reference)
      */
-    Prev = Gbl_ExternalsListHead->Asl.Child;
+    Prev = AslGbl_ExternalsListHead->Asl.Child;
     Next = Prev;
     while (Next)
     {
@@ -548,9 +548,9 @@ ExMoveExternals (
         {
             if (Next == Prev)
             {
-                Gbl_ExternalsListHead->Asl.Child = Next->Asl.Next;
+                AslGbl_ExternalsListHead->Asl.Child = Next->Asl.Next;
                 Next->Asl.Next = NULL;
-                Prev = Gbl_ExternalsListHead->Asl.Child;
+                Prev = AslGbl_ExternalsListHead->Asl.Child;
                 Next = Prev;
                 continue;
             }
@@ -569,32 +569,32 @@ ExMoveExternals (
 
     /* If list is now empty, don't bother to make If (0) block */
 
-    if (!Gbl_ExternalsListHead->Asl.Child)
+    if (!AslGbl_ExternalsListHead->Asl.Child)
     {
         return;
     }
 
     /* Convert Gbl_ExternalsListHead parent to If(). */
 
-    Gbl_ExternalsListHead->Asl.ParseOpcode = PARSEOP_IF;
-    Gbl_ExternalsListHead->Asl.AmlOpcode = AML_IF_OP;
-    Gbl_ExternalsListHead->Asl.CompileFlags = OP_AML_PACKAGE;
-    UtSetParseOpName (Gbl_ExternalsListHead);
+    AslGbl_ExternalsListHead->Asl.ParseOpcode = PARSEOP_IF;
+    AslGbl_ExternalsListHead->Asl.AmlOpcode = AML_IF_OP;
+    AslGbl_ExternalsListHead->Asl.CompileFlags = OP_AML_PACKAGE;
+    UtSetParseOpName (AslGbl_ExternalsListHead);
 
     /* Create a Zero op for the If predicate */
 
     PredicateOp = TrAllocateOp (PARSEOP_ZERO);
     PredicateOp->Asl.AmlOpcode = AML_ZERO_OP;
 
-    PredicateOp->Asl.Parent = Gbl_ExternalsListHead;
+    PredicateOp->Asl.Parent = AslGbl_ExternalsListHead;
     PredicateOp->Asl.Child = NULL;
-    PredicateOp->Asl.Next = Gbl_ExternalsListHead->Asl.Child;
-    Gbl_ExternalsListHead->Asl.Child = PredicateOp;
+    PredicateOp->Asl.Next = AslGbl_ExternalsListHead->Asl.Child;
+    AslGbl_ExternalsListHead->Asl.Child = PredicateOp;
 
     /* Set line numbers (for listings, etc.) */
 
-    Gbl_ExternalsListHead->Asl.LineNumber = 0;
-    Gbl_ExternalsListHead->Asl.LogicalLineNumber = 0;
+    AslGbl_ExternalsListHead->Asl.LineNumber = 0;
+    AslGbl_ExternalsListHead->Asl.LogicalLineNumber = 0;
 
     PredicateOp->Asl.LineNumber = 0;
     PredicateOp->Asl.LogicalLineNumber = 0;
@@ -616,15 +616,15 @@ ExMoveExternals (
     {
         /* Definition Block is not empty */
 
-        Gbl_ExternalsListHead->Asl.Next = Next;
+        AslGbl_ExternalsListHead->Asl.Next = Next;
     }
     else
     {
         /* Definition Block is empty. */
 
-        Gbl_ExternalsListHead->Asl.Next = NULL;
+        AslGbl_ExternalsListHead->Asl.Next = NULL;
     }
 
-    Prev->Asl.Next = Gbl_ExternalsListHead;
-    Gbl_ExternalsListHead->Asl.Parent = Prev->Asl.Parent;
+    Prev->Asl.Next = AslGbl_ExternalsListHead;
+    AslGbl_ExternalsListHead->Asl.Parent = Prev->Asl.Parent;
 }
diff --git a/src/acpica/source/compiler/aslfileio.c b/src/acpica/source/compiler/aslfileio.c
index eafebd6..54e7d9a 100644
--- a/src/acpica/source/compiler/aslfileio.c
+++ b/src/acpica/source/compiler/aslfileio.c
@@ -176,10 +176,10 @@ FlFileError (
     UINT8                   ErrorId)
 {
 
-    sprintf (MsgBuffer, "\"%s\" (%s) - %s", Gbl_Files[FileId].Filename,
-        Gbl_Files[FileId].Description, strerror (errno));
+    sprintf (AslGbl_MsgBuffer, "\"%s\" (%s) - %s", AslGbl_Files[FileId].Filename,
+        AslGbl_Files[FileId].Description, strerror (errno));
 
-    AslCommonError (ASL_ERROR, ErrorId, 0, 0, 0, 0, NULL, MsgBuffer);
+    AslCommonError (ASL_ERROR, ErrorId, 0, 0, 0, 0, NULL, AslGbl_MsgBuffer);
 }
 
 
@@ -207,8 +207,8 @@ FlOpenFile (
     FILE                    *File;
 
 
-    Gbl_Files[FileId].Filename = Filename;
-    Gbl_Files[FileId].Handle = NULL;
+    AslGbl_Files[FileId].Filename = Filename;
+    AslGbl_Files[FileId].Handle = NULL;
 
     File = fopen (Filename, Mode);
     if (!File)
@@ -217,7 +217,7 @@ FlOpenFile (
         AslAbort ();
     }
 
-    Gbl_Files[FileId].Handle = File;
+    AslGbl_Files[FileId].Handle = File;
 }
 
 
@@ -241,7 +241,7 @@ FlGetFileSize (
     UINT32                  FileSize;
 
 
-    FileSize = CmGetFileSize (Gbl_Files[FileId].Handle);
+    FileSize = CmGetFileSize (AslGbl_Files[FileId].Handle);
     if (FileSize == ACPI_UINT32_MAX)
     {
         AslAbort();
@@ -277,10 +277,10 @@ FlReadFile (
 
     /* Read and check for error */
 
-    Actual = fread (Buffer, 1, Length, Gbl_Files[FileId].Handle);
+    Actual = fread (Buffer, 1, Length, AslGbl_Files[FileId].Handle);
     if (Actual < Length)
     {
-        if (feof (Gbl_Files[FileId].Handle))
+        if (feof (AslGbl_Files[FileId].Handle))
         {
             /* End-of-file, just return error */
 
@@ -321,19 +321,19 @@ FlWriteFile (
 
     /* Write and check for error */
 
-    Actual = fwrite ((char *) Buffer, 1, Length, Gbl_Files[FileId].Handle);
+    Actual = fwrite ((char *) Buffer, 1, Length, AslGbl_Files[FileId].Handle);
     if (Actual != Length)
     {
         FlFileError (FileId, ASL_MSG_WRITE);
         AslAbort ();
     }
 
-    if ((FileId == ASL_FILE_PREPROCESSOR) && Gbl_PreprocessorOutputFlag)
+    if ((FileId == ASL_FILE_PREPROCESSOR) && AslGbl_PreprocessorOutputFlag)
     {
         /* Duplicate the output to the user preprocessor (.i) file */
 
         Actual = fwrite ((char *) Buffer, 1, Length,
-            Gbl_Files[ASL_FILE_PREPROCESSOR_USER].Handle);
+            AslGbl_Files[ASL_FILE_PREPROCESSOR_USER].Handle);
         if (Actual != Length)
         {
             FlFileError (FileId, ASL_MSG_WRITE);
@@ -369,7 +369,7 @@ FlPrintFile (
 
 
     va_start (Args, Format);
-    Actual = vfprintf (Gbl_Files[FileId].Handle, Format, Args);
+    Actual = vfprintf (AslGbl_Files[FileId].Handle, Format, Args);
     va_end (Args);
 
     if (Actual == -1)
@@ -379,7 +379,7 @@ FlPrintFile (
     }
 
     if ((FileId == ASL_FILE_PREPROCESSOR) &&
-        Gbl_PreprocessorOutputFlag)
+        AslGbl_PreprocessorOutputFlag)
     {
         /*
          * Duplicate the output to the user preprocessor (.i) file,
@@ -391,7 +391,7 @@ FlPrintFile (
         }
 
         va_start (Args, Format);
-        Actual = vfprintf (Gbl_Files[ASL_FILE_PREPROCESSOR_USER].Handle,
+        Actual = vfprintf (AslGbl_Files[ASL_FILE_PREPROCESSOR_USER].Handle,
             Format, Args);
         va_end (Args);
 
@@ -426,7 +426,7 @@ FlSeekFile (
     int                     Error;
 
 
-    Error = fseek (Gbl_Files[FileId].Handle, Offset, SEEK_SET);
+    Error = fseek (AslGbl_Files[FileId].Handle, Offset, SEEK_SET);
     if (Error)
     {
         FlFileError (FileId, ASL_MSG_SEEK);
@@ -454,12 +454,12 @@ FlCloseFile (
     int                     Error;
 
 
-    if (!Gbl_Files[FileId].Handle)
+    if (!AslGbl_Files[FileId].Handle)
     {
         return;
     }
 
-    Error = fclose (Gbl_Files[FileId].Handle);
+    Error = fclose (AslGbl_Files[FileId].Handle);
     if (Error)
     {
         FlFileError (FileId, ASL_MSG_CLOSE);
@@ -468,7 +468,7 @@ FlCloseFile (
 
     /* Do not clear/free the filename string */
 
-    Gbl_Files[FileId].Handle = NULL;
+    AslGbl_Files[FileId].Handle = NULL;
     return;
 }
 
@@ -489,7 +489,7 @@ void
 FlDeleteFile (
     UINT32                  FileId)
 {
-    ASL_FILE_INFO           *Info = &Gbl_Files[FileId];
+    ASL_FILE_INFO           *Info = &AslGbl_Files[FileId];
 
 
     if (!Info->Filename)
diff --git a/src/acpica/source/compiler/aslfiles.c b/src/acpica/source/compiler/aslfiles.c
index cc6aaf8..e6a6e25 100644
--- a/src/acpica/source/compiler/aslfiles.c
+++ b/src/acpica/source/compiler/aslfiles.c
@@ -188,9 +188,9 @@ FlSetLineNumber (
 {
 
     DbgPrint (ASL_PARSE_OUTPUT, "\n#line: New line number %u (old %u)\n",
-         LineNumber, Gbl_LogicalLineNumber);
+         LineNumber, AslGbl_LogicalLineNumber);
 
-    Gbl_CurrentLineNumber = LineNumber;
+    AslGbl_CurrentLineNumber = LineNumber;
 }
 
 
@@ -212,11 +212,11 @@ FlSetFilename (
 {
 
     DbgPrint (ASL_PARSE_OUTPUT, "\n#line: New filename %s (old %s)\n",
-         Filename, Gbl_Files[ASL_FILE_INPUT].Filename);
+         Filename, AslGbl_Files[ASL_FILE_INPUT].Filename);
 
     /* No need to free any existing filename */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename = Filename;
+    AslGbl_Files[ASL_FILE_INPUT].Filename = Filename;
 }
 
 
@@ -257,8 +257,9 @@ FlAddIncludeDirectory (
         NeedsSeparator = 1;
     }
 
-    NewDir = ACPI_ALLOCATE_ZEROED (sizeof (ASL_INCLUDE_DIR));
-    NewDir->Dir = ACPI_ALLOCATE (DirLength + 1 + NeedsSeparator);
+    NewDir = ACPI_CAST_PTR (ASL_INCLUDE_DIR,
+        UtLocalCacheCalloc (sizeof (ASL_INCLUDE_DIR)));
+    NewDir->Dir = UtLocalCacheCalloc (DirLength + 1 + NeedsSeparator);
     strcpy (NewDir->Dir, Dir);
     if (NeedsSeparator)
     {
@@ -269,7 +270,7 @@ FlAddIncludeDirectory (
      * Preserve command line ordering of -I options by adding new elements
      * at the end of the list
      */
-    NextDir = Gbl_IncludeDirList;
+    NextDir = AslGbl_IncludeDirList;
     while (NextDir)
     {
         PrevDir = NextDir;
@@ -282,7 +283,7 @@ FlAddIncludeDirectory (
     }
     else
     {
-        Gbl_IncludeDirList = NewDir;
+        AslGbl_IncludeDirList = NewDir;
     }
 }
 
@@ -441,19 +442,19 @@ FlOpenIncludeWithPrefix (
      * Note: DtGetNextLine strips/ignores comments.
      * Save current line number since DtGetNextLine modifies it.
      */
-    Gbl_CurrentLineNumber--;
-    OriginalLineNumber = Gbl_CurrentLineNumber;
+    AslGbl_CurrentLineNumber--;
+    OriginalLineNumber = AslGbl_CurrentLineNumber;
 
     while (DtGetNextLine (IncludeFile, DT_ALLOW_MULTILINE_QUOTES) != ASL_EOF)
     {
-        if (Gbl_CurrentLineBuffer[0] == '#')
+        if (AslGbl_CurrentLineBuffer[0] == '#')
         {
             AslError (ASL_ERROR, ASL_MSG_INCLUDE_FILE,
                 Op, "use #include instead");
         }
     }
 
-    Gbl_CurrentLineNumber = OriginalLineNumber;
+    AslGbl_CurrentLineNumber = OriginalLineNumber;
 
     /* Must seek back to the start of the file */
 
@@ -491,9 +492,9 @@ FlOpenIncludeFile (
     if (!Op)
     {
         AslCommonError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN,
-            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-            Gbl_InputByteCount, Gbl_CurrentColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, " - Null parse node");
+            AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+            AslGbl_InputByteCount, AslGbl_CurrentColumn,
+            AslGbl_Files[ASL_FILE_INPUT].Filename, " - Null parse node");
 
         return;
     }
@@ -504,7 +505,7 @@ FlOpenIncludeFile (
      */
     AslResetCurrentLineBuffer ();
     FlPrintFile (ASL_FILE_SOURCE_OUTPUT, "\n");
-    Gbl_CurrentLineOffset++;
+    AslGbl_CurrentLineOffset++;
 
 
     /* Attempt to open the include file */
@@ -532,7 +533,7 @@ FlOpenIncludeFile (
      * Construct the file pathname from the global directory name.
      */
     IncludeFile = FlOpenIncludeWithPrefix (
-        Gbl_DirectoryPath, Op, Op->Asl.Value.String);
+        AslGbl_DirectoryPath, Op, Op->Asl.Value.String);
     if (IncludeFile)
     {
         return;
@@ -542,7 +543,7 @@ FlOpenIncludeFile (
      * Second, search for the file within the (possibly multiple) directories
      * specified by the -I option on the command line.
      */
-    NextDir = Gbl_IncludeDirList;
+    NextDir = AslGbl_IncludeDirList;
     while (NextDir)
     {
         IncludeFile = FlOpenIncludeWithPrefix (
@@ -558,8 +559,8 @@ FlOpenIncludeFile (
     /* We could not open the include file after trying very hard */
 
 ErrorExit:
-    sprintf (MsgBuffer, "%s, %s", Op->Asl.Value.String, strerror (errno));
-    AslError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN, Op, MsgBuffer);
+    sprintf (AslGbl_MsgBuffer, "%s, %s", Op->Asl.Value.String, strerror (errno));
+    AslError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN, Op, AslGbl_MsgBuffer);
 }
 
 
@@ -586,7 +587,7 @@ FlOpenInputFile (
     /* Open the input ASL file, text mode */
 
     FlOpenFile (ASL_FILE_INPUT, InputFilename, "rt");
-    AslCompilerin = Gbl_Files[ASL_FILE_INPUT].Handle;
+    AslCompilerin = AslGbl_Files[ASL_FILE_INPUT].Handle;
 
     return (AE_OK);
 }
@@ -614,7 +615,7 @@ FlOpenAmlOutputFile (
 
     /* Output filename usually comes from the ASL itself */
 
-    Filename = Gbl_Files[ASL_FILE_AML_OUTPUT].Filename;
+    Filename = AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename;
     if (!Filename)
     {
         /* Create the output AML filename */
@@ -633,7 +634,7 @@ FlOpenAmlOutputFile (
             return (AE_ERROR);
         }
 
-        Gbl_Files[ASL_FILE_AML_OUTPUT].Filename = Filename;
+        AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename = Filename;
     }
 
     /* Open the output AML file in binary mode */
@@ -665,7 +666,7 @@ FlOpenMiscOutputFiles (
 
      /* Create/Open a map file if requested */
 
-    if (Gbl_MapfileFlag)
+    if (AslGbl_MapfileFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_MAP);
         if (!Filename)
@@ -685,14 +686,14 @@ FlOpenMiscOutputFiles (
 
     /* All done for disassembler */
 
-    if (Gbl_FileType == ASL_INPUT_TYPE_BINARY_ACPI_TABLE)
+    if (AslGbl_FileType == ASL_INPUT_TYPE_BINARY_ACPI_TABLE)
     {
         return (AE_OK);
     }
 
     /* Create/Open a hex output file if asked */
 
-    if (Gbl_HexOutputFlag)
+    if (AslGbl_HexOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_HEX_DUMP);
         if (!Filename)
@@ -712,7 +713,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a debug output file if asked */
 
-    if (Gbl_DebugFlag)
+    if (AslGbl_DebugFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_DEBUG);
         if (!Filename)
@@ -724,11 +725,11 @@ FlOpenMiscOutputFiles (
 
         /* Open the debug file as STDERR, text mode */
 
-        Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Filename = Filename;
-        Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle =
+        AslGbl_Files[ASL_FILE_DEBUG_OUTPUT].Filename = Filename;
+        AslGbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle =
             freopen (Filename, "w+t", stderr);
 
-        if (!Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle)
+        if (!AslGbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle)
         {
             /*
              * A problem with freopen is that on error, we no longer
@@ -748,7 +749,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a cross-reference output file if asked */
 
-    if (Gbl_CrossReferenceOutput)
+    if (AslGbl_CrossReferenceOutput)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_XREF);
         if (!Filename)
@@ -766,7 +767,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a listing output file if asked */
 
-    if (Gbl_ListingFlag)
+    if (AslGbl_ListingFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_LISTING);
         if (!Filename)
@@ -786,7 +787,7 @@ FlOpenMiscOutputFiles (
 
     /* Create the preprocessor output temp file if preprocessor enabled */
 
-    if (Gbl_PreprocessFlag)
+    if (AslGbl_PreprocessFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_PREPROCESSOR);
         if (!Filename)
@@ -803,7 +804,7 @@ FlOpenMiscOutputFiles (
      * Create the "user" preprocessor output file if -li flag set.
      * Note, this file contains no embedded #line directives.
      */
-    if (Gbl_PreprocessorOutputFlag)
+    if (AslGbl_PreprocessorOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_PREPROC_USER);
         if (!Filename)
@@ -818,7 +819,7 @@ FlOpenMiscOutputFiles (
 
     /* All done for data table compiler */
 
-    if (Gbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
+    if (AslGbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
     {
         return (AE_OK);
     }
@@ -842,11 +843,11 @@ FlOpenMiscOutputFiles (
 
 /*
 // TBD: TEMP
-//    AslCompilerin = Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle;
+//    AslCompilerin = AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle;
 */
     /* Create/Open a assembly code source output file if asked */
 
-    if (Gbl_AsmOutputFlag)
+    if (AslGbl_AsmOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_ASM_SOURCE);
         if (!Filename)
@@ -866,7 +867,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a C code source output file if asked */
 
-    if (Gbl_C_OutputFlag)
+    if (AslGbl_C_OutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_C_SOURCE);
         if (!Filename)
@@ -887,7 +888,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a C code source output file for the offset table if asked */
 
-    if (Gbl_C_OffsetTableFlag)
+    if (AslGbl_C_OffsetTableFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_C_OFFSET);
         if (!Filename)
@@ -908,7 +909,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a assembly include output file if asked */
 
-    if (Gbl_AsmIncludeOutputFlag)
+    if (AslGbl_AsmIncludeOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_ASM_INCLUDE);
         if (!Filename)
@@ -928,7 +929,7 @@ FlOpenMiscOutputFiles (
 
     /* Create/Open a C include output file if asked */
 
-    if (Gbl_C_IncludeOutputFlag)
+    if (AslGbl_C_IncludeOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_C_INCLUDE);
         if (!Filename)
@@ -949,7 +950,7 @@ FlOpenMiscOutputFiles (
 
     /* Create a namespace output file if asked */
 
-    if (Gbl_NsOutputFlag)
+    if (AslGbl_NsOutputFlag)
     {
         Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_NAMESPACE);
         if (!Filename)
@@ -986,7 +987,7 @@ FlOpenMiscOutputFiles (
         AslCompilerSignon (ASL_FILE_CONV_DEBUG_OUTPUT);
         AslCompilerFileHeader (ASL_FILE_CONV_DEBUG_OUTPUT);
 
-        AcpiGbl_ConvDebugFile = Gbl_Files[ASL_FILE_CONV_DEBUG_OUTPUT].Handle;
+        AcpiGbl_ConvDebugFile = AslGbl_Files[ASL_FILE_CONV_DEBUG_OUTPUT].Handle;
     }
 
     return (AE_OK);
@@ -1023,40 +1024,40 @@ FlParseInputPathname (
 
     /* Get the path to the input filename's directory */
 
-    Gbl_DirectoryPath = strdup (InputFilename);
-    if (!Gbl_DirectoryPath)
+    AslGbl_DirectoryPath = strdup (InputFilename);
+    if (!AslGbl_DirectoryPath)
     {
         return (AE_NO_MEMORY);
     }
 
-    Substring = strrchr (Gbl_DirectoryPath, '\\');
+    Substring = strrchr (AslGbl_DirectoryPath, '\\');
     if (!Substring)
     {
-        Substring = strrchr (Gbl_DirectoryPath, '/');
+        Substring = strrchr (AslGbl_DirectoryPath, '/');
         if (!Substring)
         {
-            Substring = strrchr (Gbl_DirectoryPath, ':');
+            Substring = strrchr (AslGbl_DirectoryPath, ':');
         }
     }
 
     if (!Substring)
     {
-        Gbl_DirectoryPath[0] = 0;
-        if (Gbl_UseDefaultAmlFilename)
+        AslGbl_DirectoryPath[0] = 0;
+        if (AslGbl_UseDefaultAmlFilename)
         {
-            Gbl_OutputFilenamePrefix = strdup (InputFilename);
+            AslGbl_OutputFilenamePrefix = strdup (InputFilename);
         }
     }
     else
     {
-        if (Gbl_UseDefaultAmlFilename)
+        if (AslGbl_UseDefaultAmlFilename)
         {
-            Gbl_OutputFilenamePrefix = strdup (Substring + 1);
+            AslGbl_OutputFilenamePrefix = strdup (Substring + 1);
         }
         *(Substring+1) = 0;
     }
 
-    UtConvertBackslashes (Gbl_OutputFilenamePrefix);
+    UtConvertBackslashes (AslGbl_OutputFilenamePrefix);
     return (AE_OK);
 }
 #endif
diff --git a/src/acpica/source/compiler/aslfold.c b/src/acpica/source/compiler/aslfold.c
index 7957c14..b2af9ff 100644
--- a/src/acpica/source/compiler/aslfold.c
+++ b/src/acpica/source/compiler/aslfold.c
@@ -795,7 +795,7 @@ TrInstallReducedConstant (
     ACPI_PARSE_OBJECT       *DataOp;
 
 
-    TotalFolds++;
+    AslGbl_TotalFolds++;
     AslError (ASL_OPTIMIZATION, ASL_MSG_CONSTANT_FOLDED, Op,
         Op->Asl.ParseOpName);
 
diff --git a/src/acpica/source/compiler/aslglobal.h b/src/acpica/source/compiler/aslglobal.h
index e22f476..c3e69cb 100644
--- a/src/acpica/source/compiler/aslglobal.h
+++ b/src/acpica/source/compiler/aslglobal.h
@@ -169,11 +169,11 @@
 
 
 #ifdef _DECLARE_GLOBALS
-UINT32                              Gbl_ExceptionCount[ASL_NUM_REPORT_LEVELS] = {0,0,0,0,0,0};
+UINT32                              AslGbl_ExceptionCount[ASL_NUM_REPORT_LEVELS] = {0,0,0,0,0,0};
 
 /* Table below must match ASL_FILE_TYPES in asltypes.h */
 
-ASL_FILE_INFO                       Gbl_Files [ASL_NUM_FILES] =
+ASL_FILE_INFO                       AslGbl_Files [ASL_NUM_FILES] =
 {
     {NULL, NULL, "stdout:       ", "Standard Output"},
     {NULL, NULL, "stderr:       ", "Standard Error"},
@@ -198,7 +198,7 @@ ASL_FILE_INFO                       Gbl_Files [ASL_NUM_FILES] =
 
 /* Table below must match the defines with the same names in actypes.h */
 
-const char                          *Gbl_OpFlagNames[ACPI_NUM_OP_FLAGS] =
+const char                          *AslGbl_OpFlagNames[ACPI_NUM_OP_FLAGS] =
 {
     "OP_VISITED",
     "OP_AML_PACKAGE",
@@ -225,9 +225,9 @@ const char                          *Gbl_OpFlagNames[ACPI_NUM_OP_FLAGS] =
 };
 
 #else
-extern UINT32                       Gbl_ExceptionCount[ASL_NUM_REPORT_LEVELS];
-extern ASL_FILE_INFO                Gbl_Files [ASL_NUM_FILES];
-extern const char                   *Gbl_OpFlagNames[ACPI_NUM_OP_FLAGS];
+extern UINT32                       AslGbl_ExceptionCount[ASL_NUM_REPORT_LEVELS];
+extern ASL_FILE_INFO                AslGbl_Files [ASL_NUM_FILES];
+extern const char                   *AslGbl_OpFlagNames[ACPI_NUM_OP_FLAGS];
 #endif
 
 
@@ -261,69 +261,68 @@ extern int                  AslCompilerdebug;
 
 /* Source code buffers and pointers for error reporting */
 
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_CurrentLineBuffer, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_LineBufPtr, NULL);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_LineBufferSize, ASL_DEFAULT_LINE_BUFFER_SIZE);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentColumn, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentLineNumber, 1);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_LogicalLineNumber, 1);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentLineOffset, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_OriginalInputFileSize, 0);
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_SyntaxError, 0);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_CurrentLineBuffer, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_LineBufPtr, NULL);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_LineBufferSize, ASL_DEFAULT_LINE_BUFFER_SIZE);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentColumn, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentLineNumber, 1);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_LogicalLineNumber, 1);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentLineOffset, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_OriginalInputFileSize, 0);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_SyntaxError, 0);
 
 /* Exception reporting */
 
-ASL_EXTERN ASL_ERROR_MSG            ASL_INIT_GLOBAL (*Gbl_ErrorLog,NULL);
-ASL_EXTERN ASL_ERROR_MSG            ASL_INIT_GLOBAL (*Gbl_NextError,NULL);
+ASL_EXTERN ASL_ERROR_MSG            ASL_INIT_GLOBAL (*AslGbl_ErrorLog,NULL);
+ASL_EXTERN ASL_ERROR_MSG            ASL_INIT_GLOBAL (*AslGbl_NextError,NULL);
 
 /* Option flags */
 
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoCompile, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoSignon, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_PreprocessOnly, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_PreprocessFlag, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DisassembleAll, FALSE);
-
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_UseDefaultAmlFilename, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_MapfileFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_NsOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_PreprocessorOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_KeepPreprocessorTempFile, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DebugFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_CrossReferenceOutput, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_AsmOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_C_OutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_C_OffsetTableFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_AsmIncludeOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_C_IncludeOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_ListingFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_IgnoreErrors, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_SourceOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_ParseOnlyFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_CompileTimesFlag, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_FoldConstants, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_VerboseErrors, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_NoErrors, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_WarningsAsErrors, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_NoResourceChecking, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_IntegerOptimizationFlag, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_ReferenceOptimizationFlag, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DisplayRemarks, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DisplayWarnings, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DisplayOptimizations, FALSE);
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_WarningLevel, ASL_WARNING);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_UseOriginalCompilerId, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_VerboseTemplates, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoTemplates, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_CompileGeneric, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_AllExceptionsDisabled, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_PruneParseTree, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoTypechecking, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_EnableReferenceTypechecking, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoExternals, TRUE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoExternalsInPlace, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_DoAslConversion, FALSE);
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_OptimizeTrivialParseNodes, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoCompile, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoSignon, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_PreprocessOnly, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_PreprocessFlag, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DisassembleAll, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_UseDefaultAmlFilename, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_MapfileFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_NsOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_PreprocessorOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_KeepPreprocessorTempFile, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DebugFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_CrossReferenceOutput, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_AsmOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_C_OutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_C_OffsetTableFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_AsmIncludeOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_C_IncludeOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_ListingFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_IgnoreErrors, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_SourceOutputFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_ParseOnlyFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_CompileTimesFlag, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_FoldConstants, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_VerboseErrors, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_NoErrors, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_WarningsAsErrors, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_NoResourceChecking, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_IntegerOptimizationFlag, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_ReferenceOptimizationFlag, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DisplayRemarks, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DisplayWarnings, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DisplayOptimizations, FALSE);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_WarningLevel, ASL_WARNING);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_UseOriginalCompilerId, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_VerboseTemplates, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoTemplates, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_CompileGeneric, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_AllExceptionsDisabled, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_PruneParseTree, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoTypechecking, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_EnableReferenceTypechecking, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoExternals, TRUE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoExternalsInPlace, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_DoAslConversion, FALSE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_OptimizeTrivialParseNodes, TRUE);
 
 
 #define HEX_OUTPUT_NONE             0
@@ -331,102 +330,95 @@ ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_OptimizeTrivialParseNod
 #define HEX_OUTPUT_ASM              2
 #define HEX_OUTPUT_ASL              3
 
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_HexOutputFlag, HEX_OUTPUT_NONE);
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_HexOutputFlag, HEX_OUTPUT_NONE);
 
 
 /* Files */
 
-ASL_EXTERN char                     *Gbl_DirectoryPath;
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_IncludeFilename, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_OutputFilenamePrefix, NULL);
-ASL_EXTERN ASL_INCLUDE_DIR          ASL_INIT_GLOBAL (*Gbl_IncludeDirList, NULL);
-ASL_EXTERN char                     *Gbl_CurrentInputFilename;
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_ExternalRefFilename, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_PreviousIncludeFilename, NULL);
-
-ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (Gbl_HasIncludeFiles, FALSE);
-
+ASL_EXTERN BOOLEAN                  ASL_INIT_GLOBAL (AslGbl_HasIncludeFiles, FALSE);
+ASL_EXTERN char                     *AslGbl_DirectoryPath;
+ASL_EXTERN char                     *AslGbl_CurrentInputFilename;
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_IncludeFilename, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_OutputFilenamePrefix, NULL);
+ASL_EXTERN ASL_INCLUDE_DIR          ASL_INIT_GLOBAL (*AslGbl_IncludeDirList, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_ExternalRefFilename, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_PreviousIncludeFilename, NULL);
 
 /* Statistics */
 
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_InputByteCount, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_InputFieldCount, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_NsLookupCount, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalKeywords, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalNamedObjects, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalExecutableOpcodes, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalParseNodes, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalMethods, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalAllocations, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalAllocated, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (TotalFolds, 0);
-
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_InputByteCount, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_InputFieldCount, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_NsLookupCount, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalKeywords, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalNamedObjects, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalExecutableOpcodes, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalParseNodes, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalMethods, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalAllocations, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalAllocated, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TotalFolds, 0);
 
 /* Local caches */
 
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_ParseOpCount, 0);
-ASL_EXTERN ASL_CACHE_INFO           ASL_INIT_GLOBAL (*Gbl_ParseOpCacheList, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*Gbl_ParseOpCacheNext, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*Gbl_ParseOpCacheLast, NULL);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_ParseOpCount, 0);
+ASL_EXTERN ASL_CACHE_INFO           ASL_INIT_GLOBAL (*AslGbl_ParseOpCacheList, NULL);
+ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*AslGbl_ParseOpCacheNext, NULL);
+ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*AslGbl_ParseOpCacheLast, NULL);
 
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_StringCount, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_StringSize, 0);
-ASL_EXTERN ASL_CACHE_INFO           ASL_INIT_GLOBAL (*Gbl_StringCacheList, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_StringCacheNext, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_StringCacheLast, NULL);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_StringCount, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_StringSize, 0);
+ASL_EXTERN ASL_CACHE_INFO           ASL_INIT_GLOBAL (*AslGbl_StringCacheList, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_StringCacheNext, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_StringCacheLast, NULL);
 
 /* Map file */
 
-ASL_EXTERN ACPI_GPIO_INFO           ASL_INIT_GLOBAL (*Gbl_GpioList, NULL);
-ASL_EXTERN ACPI_SERIAL_INFO         ASL_INIT_GLOBAL (*Gbl_SerialList, NULL);
-
+ASL_EXTERN ACPI_GPIO_INFO           ASL_INIT_GLOBAL (*AslGbl_GpioList, NULL);
+ASL_EXTERN ACPI_SERIAL_INFO         ASL_INIT_GLOBAL (*AslGbl_SerialList, NULL);
 
 /* Misc */
 
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_RevisionOverride, 0);
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_TempCount, 0);
-ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*Gbl_ParseTreeRoot, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*Gbl_ExternalsListHead, NULL);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_TableLength, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_SourceLine, 0);
-ASL_EXTERN ASL_LISTING_NODE         ASL_INIT_GLOBAL (*Gbl_ListingNode, NULL);
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_FileType, 0);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_Signature, NULL);
-
-ASL_EXTERN ACPI_PARSE_OBJECT        *Gbl_FirstLevelInsertionNode;
-
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentHexColumn, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentAmlOffset, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentLine, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_DisabledMessagesIndex, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_ExpectedMessagesIndex, 0);
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_HexBytesWereWritten, FALSE);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0);
-ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_TableSignature, "NO_SIG");
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_TableId, "NO_ID");
-ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_PruneDepth, 0);
-ASL_EXTERN UINT16                   ASL_INIT_GLOBAL (Gbl_PruneType, 0);
-
-ASL_EXTERN ASL_FILE_NODE            ASL_INIT_GLOBAL (*Gbl_IncludeFileStack, NULL);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_RevisionOverride, 0);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_TempCount, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_TableLength, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_SourceLine, 0);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_FileType, 0);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_Signature, NULL);
+ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*AslGbl_ParseTreeRoot, NULL);
+ASL_EXTERN ACPI_PARSE_OBJECT        ASL_INIT_GLOBAL (*AslGbl_ExternalsListHead, NULL);
+ASL_EXTERN ASL_LISTING_NODE         ASL_INIT_GLOBAL (*AslGbl_ListingNode, NULL);
+ASL_EXTERN ACPI_PARSE_OBJECT        *AslGbl_FirstLevelInsertionNode;
+
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentHexColumn, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentAmlOffset, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_CurrentLine, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_DisabledMessagesIndex, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_ExpectedMessagesIndex, 0);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_HexBytesWereWritten, FALSE);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_NumNamespaceObjects, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (AslGbl_ReservedMethods, 0);
+ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (AslGbl_PruneDepth, 0);
+ASL_EXTERN UINT16                   ASL_INIT_GLOBAL (AslGbl_PruneType, 0);
+ASL_EXTERN ASL_FILE_NODE            ASL_INIT_GLOBAL (*AslGbl_IncludeFileStack, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_TableSignature, "NO_SIG");
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_TableId, "NO_ID");
 
 /* Specific to the -q option */
 
-ASL_EXTERN ASL_COMMENT_STATE        Gbl_CommentState;
-
+ASL_EXTERN ASL_COMMENT_STATE        AslGbl_CommentState;
 
 /*
  * Determines if an inline comment should be saved in the InlineComment or NodeEndComment
  *  field of ACPI_PARSE_OBJECT.
  */
-ASL_EXTERN ACPI_COMMENT_NODE        ASL_INIT_GLOBAL (*Gbl_CommentListHead, NULL);
-ASL_EXTERN ACPI_COMMENT_NODE        ASL_INIT_GLOBAL (*Gbl_CommentListTail, NULL);
-ASL_EXTERN char                     ASL_INIT_GLOBAL (*Gbl_InlineCommentBuffer, NULL);
+ASL_EXTERN ACPI_COMMENT_NODE        ASL_INIT_GLOBAL (*AslGbl_CommentListHead, NULL);
+ASL_EXTERN ACPI_COMMENT_NODE        ASL_INIT_GLOBAL (*AslGbl_CommentListTail, NULL);
+ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_InlineCommentBuffer, NULL);
 
 /* Static structures */
 
-ASL_EXTERN ASL_ANALYSIS_WALK_INFO   AnalysisWalkInfo;
-ASL_EXTERN ACPI_TABLE_HEADER        TableHeader;
+ASL_EXTERN ASL_ANALYSIS_WALK_INFO   AslGbl_AnalysisWalkInfo;
+ASL_EXTERN ACPI_TABLE_HEADER        AslGbl_TableHeader;
 
 /* Event timing */
 
@@ -437,12 +429,12 @@ ASL_EXTERN UINT8                    AslGbl_NamespaceEvent;
 
 /* Scratch buffers */
 
-ASL_EXTERN UINT8                    Gbl_AmlBuffer[HEX_LISTING_LINE_SIZE];
-ASL_EXTERN char                     MsgBuffer[ASL_MSG_BUFFER_SIZE];
-ASL_EXTERN char                     StringBuffer[ASL_STRING_BUFFER_SIZE];
-ASL_EXTERN char                     StringBuffer2[ASL_STRING_BUFFER_SIZE];
-ASL_EXTERN UINT32                   Gbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES];
-ASL_EXTERN ASL_EXPECTED_MESSAGE     Gbl_ExpectedMessages[ASL_MAX_EXPECTED_MESSAGES];
+ASL_EXTERN UINT8                    AslGbl_AmlBuffer[HEX_LISTING_LINE_SIZE];
+ASL_EXTERN char                     AslGbl_MsgBuffer[ASL_MSG_BUFFER_SIZE];
+ASL_EXTERN char                     AslGbl_StringBuffer[ASL_STRING_BUFFER_SIZE];
+ASL_EXTERN char                     AslGbl_StringBuffer2[ASL_STRING_BUFFER_SIZE];
+ASL_EXTERN UINT32                   AslGbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES];
+ASL_EXTERN ASL_EXPECTED_MESSAGE     AslGbl_ExpectedMessages[ASL_MAX_EXPECTED_MESSAGES];
 
 
 #endif /* __ASLGLOBAL_H */
diff --git a/src/acpica/source/compiler/aslhex.c b/src/acpica/source/compiler/aslhex.c
index c1e3c76..3e26162 100644
--- a/src/acpica/source/compiler/aslhex.c
+++ b/src/acpica/source/compiler/aslhex.c
@@ -196,7 +196,7 @@ HxDoHexOutput (
     void)
 {
 
-    switch (Gbl_HexOutputFlag)
+    switch (AslGbl_HexOutputFlag)
     {
     case HEX_OUTPUT_C:
 
@@ -242,9 +242,9 @@ HxReadAmlOutputFile (
 
 
     Actual = fread (Buffer, 1, HEX_TABLE_LINE_SIZE,
-        Gbl_Files[ASL_FILE_AML_OUTPUT].Handle);
+        AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
 
-    if (ferror (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle))
+    if (ferror (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle))
     {
         FlFileError (ASL_FILE_AML_OUTPUT, ASL_MSG_READ);
         AslAbort ();
@@ -285,7 +285,7 @@ HxDoHexOutputC (
 
     /* Obtain the file basename (filename with no extension) */
 
-    FileBasename = FlGetFileBasename (Gbl_Files [ASL_FILE_HEX_OUTPUT].Filename);
+    FileBasename = FlGetFileBasename (AslGbl_Files [ASL_FILE_HEX_OUTPUT].Filename);
 
     /* Get AML size, seek back to start */
 
diff --git a/src/acpica/source/compiler/aslkeywords.y b/src/acpica/source/compiler/aslkeywords.y
index 6da6008..9f31d85 100644
--- a/src/acpica/source/compiler/aslkeywords.y
+++ b/src/acpica/source/compiler/aslkeywords.y
@@ -166,8 +166,8 @@ AccessAttribKeyword
     | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafOp (PARSEOP_ACCESSATTRIB_SND_RCV);}
     | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafOp (PARSEOP_ACCESSATTRIB_WORD);}
     | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafOp (PARSEOP_ACCESSATTRIB_WORD_CALL);}
-    | PARSEOP_ACCESSATTRIB_MULTIBYTE
-        PARSEOP_OPEN_PAREN                  {$<n>$ = TrCreateLeafOp (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
+    | PARSEOP_ACCESSATTRIB_BYTES
+        PARSEOP_OPEN_PAREN                  {$<n>$ = TrCreateLeafOp (PARSEOP_ACCESSATTRIB_BYTES);}
         ByteConst
         PARSEOP_CLOSE_PAREN                 {$$ = TrLinkOpChildren ($<n>3,1,$4);}
     | PARSEOP_ACCESSATTRIB_RAW_BYTES
diff --git a/src/acpica/source/compiler/asllength.c b/src/acpica/source/compiler/asllength.c
index 1d4c9d0..696dc24 100644
--- a/src/acpica/source/compiler/asllength.c
+++ b/src/acpica/source/compiler/asllength.c
@@ -446,7 +446,7 @@ CgGenerateAmlLengths (
     {
     case PARSEOP_DEFINITION_BLOCK:
 
-        Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
+        AslGbl_TableLength = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
         break;
 
     case PARSEOP_NAMESEG:
@@ -519,7 +519,7 @@ CgGenerateAmlLengths (
 
     case PARSEOP_EXTERNAL:
 
-        if (Gbl_DoExternals == TRUE)
+        if (AslGbl_DoExternals == TRUE)
         {
             CgGenerateAmlOpcodeLength (Op);
         }
@@ -568,6 +568,6 @@ LnAdjustLengthToRoot (
 
     /* Adjust the global table length */
 
-    Gbl_TableLength -= LengthDelta;
+    AslGbl_TableLength -= LengthDelta;
 }
 #endif
diff --git a/src/acpica/source/compiler/asllisting.c b/src/acpica/source/compiler/asllisting.c
index 9c35ff3..d573700 100644
--- a/src/acpica/source/compiler/asllisting.c
+++ b/src/acpica/source/compiler/asllisting.c
@@ -205,32 +205,32 @@ LsDoListings (
     void)
 {
 
-    if (Gbl_C_OutputFlag)
+    if (AslGbl_C_OutputFlag)
     {
         LsGenerateListing (ASL_FILE_C_SOURCE_OUTPUT);
     }
 
-    if (Gbl_ListingFlag)
+    if (AslGbl_ListingFlag)
     {
         LsGenerateListing (ASL_FILE_LISTING_OUTPUT);
     }
 
-    if (Gbl_AsmOutputFlag)
+    if (AslGbl_AsmOutputFlag)
     {
         LsGenerateListing (ASL_FILE_ASM_SOURCE_OUTPUT);
     }
 
-    if (Gbl_C_IncludeOutputFlag)
+    if (AslGbl_C_IncludeOutputFlag)
     {
         LsGenerateListing (ASL_FILE_C_INCLUDE_OUTPUT);
     }
 
-    if (Gbl_AsmIncludeOutputFlag)
+    if (AslGbl_AsmIncludeOutputFlag)
     {
         LsGenerateListing (ASL_FILE_ASM_INCLUDE_OUTPUT);
     }
 
-    if (Gbl_C_OffsetTableFlag)
+    if (AslGbl_C_OffsetTableFlag)
     {
         LsGenerateListing (ASL_FILE_C_OFFSET_OUTPUT);
     }
@@ -259,19 +259,19 @@ LsGenerateListing (
 
     FlSeekFile (ASL_FILE_SOURCE_OUTPUT, 0);
     FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
-    Gbl_SourceLine = 0;
-    Gbl_CurrentHexColumn = 0;
-    LsPushNode (Gbl_Files[ASL_FILE_INPUT].Filename);
+    AslGbl_SourceLine = 0;
+    AslGbl_CurrentHexColumn = 0;
+    LsPushNode (AslGbl_Files[ASL_FILE_INPUT].Filename);
 
     if (FileId == ASL_FILE_C_OFFSET_OUTPUT)
     {
-        Gbl_CurrentAmlOffset = 0;
+        AslGbl_CurrentAmlOffset = 0;
 
         /* Offset table file has a special header and footer */
 
         LsDoOffsetTableHeader (FileId);
 
-        TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+        TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
             LsAmlOffsetWalk, NULL, (void *) ACPI_TO_POINTER (FileId));
         LsDoOffsetTableFooter (FileId);
         return;
@@ -279,7 +279,7 @@ LsGenerateListing (
 
     /* Process all parse nodes */
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         LsAmlListingWalk, NULL, (void *) ACPI_TO_POINTER (FileId));
 
     /* Final processing */
@@ -360,7 +360,7 @@ LsDumpParseTree (
     void)
 {
 
-    if (!Gbl_DebugFlag)
+    if (!AslGbl_DebugFlag)
     {
         return;
     }
@@ -368,7 +368,7 @@ LsDumpParseTree (
     DbgPrint (ASL_TREE_OUTPUT, "\nOriginal parse tree from parser:\n\n");
     DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER1);
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         LsTreeWriteWalk, NULL, NULL);
 
     DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER1);
@@ -539,7 +539,7 @@ LsWriteNodeToListing (
 
         /* Always start a definition block at AML offset zero */
 
-        Gbl_CurrentAmlOffset = 0;
+        AslGbl_CurrentAmlOffset = 0;
         LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine, FileId);
 
         /* Use the table Signature and TableId to build a unique name */
@@ -550,28 +550,28 @@ LsWriteNodeToListing (
 
             FlPrintFile (FileId,
                 "%s_%s_Header \\\n",
-                Gbl_TableSignature, Gbl_TableId);
+                AslGbl_TableSignature, AslGbl_TableId);
             break;
 
         case ASL_FILE_C_SOURCE_OUTPUT:
 
             FlPrintFile (FileId,
                 "    unsigned char    %s_%s_Header [] =\n    {\n",
-                Gbl_TableSignature, Gbl_TableId);
+                AslGbl_TableSignature, AslGbl_TableId);
             break;
 
         case ASL_FILE_ASM_INCLUDE_OUTPUT:
 
             FlPrintFile (FileId,
                 "extrn %s_%s_Header : byte\n",
-                Gbl_TableSignature, Gbl_TableId);
+                AslGbl_TableSignature, AslGbl_TableId);
             break;
 
         case ASL_FILE_C_INCLUDE_OUTPUT:
 
             FlPrintFile (FileId,
                 "extern unsigned char    %s_%s_Header [];\n",
-                Gbl_TableSignature, Gbl_TableId);
+                AslGbl_TableSignature, AslGbl_TableId);
             break;
 
         default:
@@ -732,28 +732,28 @@ LsWriteNodeToListing (
 
                             FlPrintFile (FileId,
                                 "%s_%s_%s  \\\n",
-                                Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
+                                AslGbl_TableSignature, AslGbl_TableId, &Pathname[1]);
                             break;
 
                         case ASL_FILE_C_SOURCE_OUTPUT:
 
                             FlPrintFile (FileId,
                                 "    unsigned char    %s_%s_%s [] =\n    {\n",
-                                Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
+                                AslGbl_TableSignature, AslGbl_TableId, &Pathname[1]);
                             break;
 
                         case ASL_FILE_ASM_INCLUDE_OUTPUT:
 
                             FlPrintFile (FileId,
                                 "extrn %s_%s_%s : byte\n",
-                                Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
+                                AslGbl_TableSignature, AslGbl_TableId, &Pathname[1]);
                             break;
 
                         case ASL_FILE_C_INCLUDE_OUTPUT:
 
                             FlPrintFile (FileId,
                                 "extern unsigned char    %s_%s_%s [];\n",
-                                Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
+                                AslGbl_TableSignature, AslGbl_TableId, &Pathname[1]);
                             break;
 
                         default:
@@ -821,7 +821,7 @@ LsFinishSourceListing (
     }
 
     LsFlushListingBuffer (FileId);
-    Gbl_CurrentAmlOffset = 0;
+    AslGbl_CurrentAmlOffset = 0;
 
     /* Flush any remaining text in the source file */
 
diff --git a/src/acpica/source/compiler/asllistsup.c b/src/acpica/source/compiler/asllistsup.c
index 2e329fe..50811b0 100644
--- a/src/acpica/source/compiler/asllistsup.c
+++ b/src/acpica/source/compiler/asllistsup.c
@@ -269,7 +269,7 @@ LsDumpAsciiInComment (
  *
  * DESCRIPTION: Check if there is an exception for this line, and if there is,
  *              put it in the listing immediately. Handles multiple errors
- *              per line. Gbl_NextError points to the next error in the
+ *              per line. AslGbl_NextError points to the next error in the
  *              sorted (by line #) list of compile errors/warnings.
  *
  ******************************************************************************/
@@ -280,8 +280,8 @@ LsCheckException (
     UINT32                  FileId)
 {
 
-    if ((!Gbl_NextError) ||
-        (LineNumber < Gbl_NextError->LogicalLineNumber ))
+    if ((!AslGbl_NextError) ||
+        (LineNumber < AslGbl_NextError->LogicalLineNumber ))
     {
         return;
     }
@@ -290,11 +290,11 @@ LsCheckException (
 
     if (FileId == ASL_FILE_LISTING_OUTPUT)
     {
-        while (Gbl_NextError &&
-              (LineNumber >= Gbl_NextError->LogicalLineNumber))
+        while (AslGbl_NextError &&
+              (LineNumber >= AslGbl_NextError->LogicalLineNumber))
         {
-            AePrintException (FileId, Gbl_NextError, "\n[****iasl****]\n");
-            Gbl_NextError = Gbl_NextError->Next;
+            AePrintException (FileId, AslGbl_NextError, "\n[****iasl****]\n");
+            AslGbl_NextError = AslGbl_NextError->Next;
         }
 
         FlPrintFile (FileId, "\n");
@@ -333,9 +333,9 @@ LsWriteListingHexBytes (
     {
         /* Print line header when buffer is empty */
 
-        if (Gbl_CurrentHexColumn == 0)
+        if (AslGbl_CurrentHexColumn == 0)
         {
-            if (Gbl_HasIncludeFiles)
+            if (AslGbl_HasIncludeFiles)
             {
                 FlPrintFile (FileId, "%*s", 10, " ");
             }
@@ -344,7 +344,7 @@ LsWriteListingHexBytes (
             {
             case ASL_FILE_LISTING_OUTPUT:
 
-                FlPrintFile (FileId, "%8.8X%s", Gbl_CurrentAmlOffset,
+                FlPrintFile (FileId, "%8.8X%s", AslGbl_CurrentAmlOffset,
                     ASL_LISTING_LINE_PREFIX);
                 break;
 
@@ -368,14 +368,14 @@ LsWriteListingHexBytes (
 
         /* Transfer AML byte and update counts */
 
-        Gbl_AmlBuffer[Gbl_CurrentHexColumn] = Buffer[i];
+        AslGbl_AmlBuffer[AslGbl_CurrentHexColumn] = Buffer[i];
 
-        Gbl_CurrentHexColumn++;
-        Gbl_CurrentAmlOffset++;
+        AslGbl_CurrentHexColumn++;
+        AslGbl_CurrentAmlOffset++;
 
         /* Flush buffer when it is full */
 
-        if (Gbl_CurrentHexColumn >= HEX_LISTING_LINE_SIZE)
+        if (AslGbl_CurrentHexColumn >= HEX_LISTING_LINE_SIZE)
         {
             LsFlushListingBuffer (FileId);
         }
@@ -416,7 +416,7 @@ LsWriteSourceLines (
         return;
     }
 
-    Gbl_CurrentLine = ToLogicalLineNumber;
+    AslGbl_CurrentLine = ToLogicalLineNumber;
 
     /* Flush any hex bytes remaining from the last opcode */
 
@@ -424,16 +424,16 @@ LsWriteSourceLines (
 
     /* Read lines and write them as long as we are not caught up */
 
-    if (Gbl_SourceLine < Gbl_CurrentLine)
+    if (AslGbl_SourceLine < AslGbl_CurrentLine)
     {
         /*
          * If we just completed writing some AML hex bytes, output a linefeed
          * to add some whitespace for readability.
          */
-        if (Gbl_HexBytesWereWritten)
+        if (AslGbl_HexBytesWereWritten)
         {
             FlPrintFile (FileId, "\n");
-            Gbl_HexBytesWereWritten = FALSE;
+            AslGbl_HexBytesWereWritten = FALSE;
         }
 
         if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
@@ -443,7 +443,7 @@ LsWriteSourceLines (
 
         /* Write one line at a time until we have reached the target line # */
 
-        while ((Gbl_SourceLine < Gbl_CurrentLine) &&
+        while ((AslGbl_SourceLine < AslGbl_CurrentLine) &&
                 LsWriteOneSourceLine (FileId))
         { ; }
 
@@ -482,8 +482,8 @@ LsWriteOneSourceLine (
     BOOLEAN                 ProcessLongLine = FALSE;
 
 
-    Gbl_SourceLine++;
-    Gbl_ListingNode->LineNumber++;
+    AslGbl_SourceLine++;
+    AslGbl_ListingNode->LineNumber++;
 
     /* Ignore lines that are completely blank (but count the line above) */
 
@@ -512,21 +512,21 @@ LsWriteOneSourceLine (
         FlPrintFile (FileId, "; ");
     }
 
-    if (Gbl_HasIncludeFiles)
+    if (AslGbl_HasIncludeFiles)
     {
         /*
          * This file contains "include" statements, print the current
          * filename and line number within the current file
          */
         FlPrintFile (FileId, "%12s %5d%s",
-            Gbl_ListingNode->Filename, Gbl_ListingNode->LineNumber,
+            AslGbl_ListingNode->Filename, AslGbl_ListingNode->LineNumber,
             ASL_LISTING_LINE_PREFIX);
     }
     else
     {
         /* No include files, just print the line number */
 
-        FlPrintFile (FileId, "%8u%s", Gbl_SourceLine,
+        FlPrintFile (FileId, "%8u%s", AslGbl_SourceLine,
             ASL_LISTING_LINE_PREFIX);
     }
 
@@ -601,7 +601,7 @@ WriteByte:
                  * Check if an error occurred on this source line during the compile.
                  * If so, we print the error message after the source line.
                  */
-                LsCheckException (Gbl_SourceLine, FileId);
+                LsCheckException (AslGbl_SourceLine, FileId);
                 return (1);
             }
         }
@@ -615,7 +615,7 @@ WriteByte:
                  * Check if an error occurred on this source line during the compile.
                  * If so, we print the error message after the source line.
                  */
-                LsCheckException (Gbl_SourceLine, FileId);
+                LsCheckException (AslGbl_SourceLine, FileId);
                 return (1);
             }
         }
@@ -649,7 +649,7 @@ LsFlushListingBuffer (
     UINT32                  i;
 
 
-    if (Gbl_CurrentHexColumn == 0)
+    if (AslGbl_CurrentHexColumn == 0)
     {
         return;
     }
@@ -660,58 +660,58 @@ LsFlushListingBuffer (
     {
     case ASL_FILE_LISTING_OUTPUT:
 
-        for (i = 0; i < Gbl_CurrentHexColumn; i++)
+        for (i = 0; i < AslGbl_CurrentHexColumn; i++)
         {
-            FlPrintFile (FileId, "%2.2X ", Gbl_AmlBuffer[i]);
+            FlPrintFile (FileId, "%2.2X ", AslGbl_AmlBuffer[i]);
         }
 
-        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 3); i++)
+        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - AslGbl_CurrentHexColumn) * 3); i++)
         {
             FlWriteFile (FileId, ".", 1);
         }
 
         /* Write the ASCII character associated with each of the bytes */
 
-        LsDumpAscii (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
+        LsDumpAscii (FileId, AslGbl_CurrentHexColumn, AslGbl_AmlBuffer);
         break;
 
 
     case ASL_FILE_ASM_SOURCE_OUTPUT:
 
-        for (i = 0; i < Gbl_CurrentHexColumn; i++)
+        for (i = 0; i < AslGbl_CurrentHexColumn; i++)
         {
             if (i > 0)
             {
                 FlPrintFile (FileId, ",");
             }
 
-            FlPrintFile (FileId, "0%2.2Xh", Gbl_AmlBuffer[i]);
+            FlPrintFile (FileId, "0%2.2Xh", AslGbl_AmlBuffer[i]);
         }
 
-        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 5); i++)
+        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - AslGbl_CurrentHexColumn) * 5); i++)
         {
             FlWriteFile (FileId, " ", 1);
         }
 
         FlPrintFile (FileId, "  ;%8.8X",
-            Gbl_CurrentAmlOffset - HEX_LISTING_LINE_SIZE);
+            AslGbl_CurrentAmlOffset - HEX_LISTING_LINE_SIZE);
 
         /* Write the ASCII character associated with each of the bytes */
 
-        LsDumpAscii (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
+        LsDumpAscii (FileId, AslGbl_CurrentHexColumn, AslGbl_AmlBuffer);
         break;
 
 
     case ASL_FILE_C_SOURCE_OUTPUT:
 
-        for (i = 0; i < Gbl_CurrentHexColumn; i++)
+        for (i = 0; i < AslGbl_CurrentHexColumn; i++)
         {
-            FlPrintFile (FileId, "0x%2.2X,", Gbl_AmlBuffer[i]);
+            FlPrintFile (FileId, "0x%2.2X,", AslGbl_AmlBuffer[i]);
         }
 
         /* Pad hex output with spaces if line is shorter than max line size */
 
-        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 5); i++)
+        for (i = 0; i < ((HEX_LISTING_LINE_SIZE - AslGbl_CurrentHexColumn) * 5); i++)
         {
             FlWriteFile (FileId, " ", 1);
         }
@@ -719,11 +719,11 @@ LsFlushListingBuffer (
         /* AML offset for the start of the line */
 
         FlPrintFile (FileId, "    /* %8.8X",
-            Gbl_CurrentAmlOffset - Gbl_CurrentHexColumn);
+            AslGbl_CurrentAmlOffset - AslGbl_CurrentHexColumn);
 
         /* Write the ASCII character associated with each of the bytes */
 
-        LsDumpAsciiInComment (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
+        LsDumpAsciiInComment (FileId, AslGbl_CurrentHexColumn, AslGbl_AmlBuffer);
         FlPrintFile (FileId, " */");
         break;
 
@@ -736,8 +736,8 @@ LsFlushListingBuffer (
 
     FlPrintFile (FileId, "\n");
 
-    Gbl_CurrentHexColumn = 0;
-    Gbl_HexBytesWereWritten = TRUE;
+    AslGbl_CurrentHexColumn = 0;
+    AslGbl_HexBytesWereWritten = TRUE;
 }
 
 
@@ -774,8 +774,8 @@ LsPushNode (
 
     /* Link (push) */
 
-    Lnode->Next = Gbl_ListingNode;
-    Gbl_ListingNode = Lnode;
+    Lnode->Next = AslGbl_ListingNode;
+    AslGbl_ListingNode = Lnode;
 }
 
 
@@ -801,19 +801,19 @@ LsPopNode (
 
     /* Just grab the node at the head of the list */
 
-    Lnode = Gbl_ListingNode;
+    Lnode = AslGbl_ListingNode;
     if ((!Lnode) ||
         (!Lnode->Next))
     {
         AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, NULL,
             "Could not pop empty listing stack");
-        return (Gbl_ListingNode);
+        return (AslGbl_ListingNode);
     }
 
-    Gbl_ListingNode = Lnode->Next;
+    AslGbl_ListingNode = Lnode->Next;
     ACPI_FREE (Lnode);
 
     /* New "Current" node is the new head */
 
-    return (Gbl_ListingNode);
+    return (AslGbl_ListingNode);
 }
diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
index 95fea9c..5bb0a85 100644
--- a/src/acpica/source/compiler/aslload.c
+++ b/src/acpica/source/compiler/aslload.c
@@ -731,7 +731,7 @@ LdNamespace1Begin (
              * 10/2015.
              */
             if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
-                (ACPI_COMPARE_NAME (Gbl_TableSignature, "DSDT")))
+                (ACPI_COMPARE_NAME (AslGbl_TableSignature, "DSDT")))
             {
                 /* However, allowed if the reference is within a method */
 
@@ -777,9 +777,9 @@ LdNamespace1Begin (
              * Which is used to workaround the fact that the MS interpreter
              * does not allow Scope() forward references.
              */
-            sprintf (MsgBuffer, "%s [%s], changing type to [Scope]",
+            sprintf (AslGbl_MsgBuffer, "%s [%s], changing type to [Scope]",
                 Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type));
-            AslError (ASL_REMARK, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer);
+            AslError (ASL_REMARK, ASL_MSG_SCOPE_TYPE, Op, AslGbl_MsgBuffer);
 
             /* Switch the type to scope, open the new scope */
 
@@ -796,9 +796,9 @@ LdNamespace1Begin (
 
             /* All other types are an error */
 
-            sprintf (MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
+            sprintf (AslGbl_MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
                 AcpiUtGetTypeName (Node->Type));
-            AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer);
+            AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, AslGbl_MsgBuffer);
 
             /*
              * However, switch the type to be an actual scope so
@@ -899,9 +899,9 @@ LdNamespace1Begin (
                 }
                 else
                 {
-                    sprintf (MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
+                    sprintf (AslGbl_MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
                         AcpiUtGetTypeName (Node->Type));
-                    AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer);
+                    AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, AslGbl_MsgBuffer);
                     return_ACPI_STATUS (AE_OK);
                 }
             }
diff --git a/src/acpica/source/compiler/asllookup.c b/src/acpica/source/compiler/asllookup.c
index a1c0d7f..16203c8 100644
--- a/src/acpica/source/compiler/asllookup.c
+++ b/src/acpica/source/compiler/asllookup.c
@@ -252,9 +252,9 @@ LkIsObjectUsed (
             if ((MethodLocals[i].Flags & ASL_LOCAL_INITIALIZED) &&
                 (!(MethodLocals[i].Flags & ASL_LOCAL_REFERENCED)))
             {
-                sprintf (MsgBuffer, "Local%u", i);
+                sprintf (AslGbl_MsgBuffer, "Local%u", i);
                 AslError (ASL_WARNING, ASL_MSG_LOCAL_NOT_USED,
-                    MethodLocals[i].Op, MsgBuffer);
+                    MethodLocals[i].Op, AslGbl_MsgBuffer);
             }
         }
 
@@ -271,9 +271,9 @@ LkIsObjectUsed (
                 if ((MethodArgs[i].Flags & ASL_ARG_INITIALIZED) &&
                     (!(MethodArgs[i].Flags & ASL_ARG_REFERENCED)))
                 {
-                    sprintf (MsgBuffer, "Arg%u", i);
+                    sprintf (AslGbl_MsgBuffer, "Arg%u", i);
                     AslError (ASL_WARNING, ASL_MSG_ARG_AS_LOCAL_NOT_USED,
-                        MethodArgs[i].Op, MsgBuffer);
+                        MethodArgs[i].Op, AslGbl_MsgBuffer);
                 }
             }
             else
@@ -286,9 +286,9 @@ LkIsObjectUsed (
                 if ((Node->Name.Ascii[0] != '_') &&
                     (!(MethodArgs[i].Flags & ASL_ARG_REFERENCED)))
                 {
-                    sprintf (MsgBuffer, "Arg%u", i);
+                    sprintf (AslGbl_MsgBuffer, "Arg%u", i);
                     AslError (ASL_REMARK, ASL_MSG_ARG_NOT_USED,
-                        MethodArgs[i].Op, MsgBuffer);
+                        MethodArgs[i].Op, AslGbl_MsgBuffer);
                 }
             }
         }
@@ -336,10 +336,10 @@ LkIsObjectUsed (
              * Issue a remark even if it is a reserved name (starts
              * with an underscore).
              */
-            sprintf (MsgBuffer, "Name [%4.4s] is within a method [%4.4s]",
+            sprintf (AslGbl_MsgBuffer, "Name [%4.4s] is within a method [%4.4s]",
                 Node->Name.Ascii, Next->Name.Ascii);
             AslError (ASL_REMARK, ASL_MSG_NOT_REFERENCED,
-                LkGetNameOp (Node->Op), MsgBuffer);
+                LkGetNameOp (Node->Op), AslGbl_MsgBuffer);
             return (AE_OK);
         }
 
diff --git a/src/acpica/source/compiler/aslmain.c b/src/acpica/source/compiler/aslmain.c
index 227e6f3..4f24bb3 100644
--- a/src/acpica/source/compiler/aslmain.c
+++ b/src/acpica/source/compiler/aslmain.c
@@ -236,12 +236,12 @@ main (
 
     /* Allocate the line buffer(s), must be after command line */
 
-    Gbl_LineBufferSize /= 2;
+    AslGbl_LineBufferSize /= 2;
     UtExpandLineBuffers ();
 
     /* Perform global actions first/only */
 
-    if (Gbl_DisassembleAll)
+    if (AslGbl_DisassembleAll)
     {
         while (argv[Index1])
         {
@@ -264,10 +264,10 @@ main (
          * If -p not specified, we will use the input filename as the
          * output filename prefix
          */
-        if (Gbl_UseDefaultAmlFilename)
+        if (AslGbl_UseDefaultAmlFilename)
         {
-            Gbl_OutputFilenamePrefix = argv[Index2];
-            UtConvertBackslashes (Gbl_OutputFilenamePrefix);
+            AslGbl_OutputFilenamePrefix = argv[Index2];
+            UtConvertBackslashes (AslGbl_OutputFilenamePrefix);
         }
 
         Status = AslDoOneFile (argv[Index2]);
@@ -337,7 +337,7 @@ AslSignalHandler (
      * Close all open files
      * Note: the .pre file is the same as the input source file
      */
-    Gbl_Files[ASL_FILE_PREPROCESSOR].Handle = NULL;
+    AslGbl_Files[ASL_FILE_PREPROCESSOR].Handle = NULL;
 
     for (i = ASL_FILE_INPUT; i < ASL_MAX_FILE_TYPE; i++)
     {
@@ -385,13 +385,13 @@ AslInitialize (
 
     for (i = 0; i < ASL_NUM_FILES; i++)
     {
-        Gbl_Files[i].Handle = NULL;
-        Gbl_Files[i].Filename = NULL;
+        AslGbl_Files[i].Handle = NULL;
+        AslGbl_Files[i].Filename = NULL;
     }
 
-    Gbl_Files[ASL_FILE_STDOUT].Handle   = stdout;
-    Gbl_Files[ASL_FILE_STDOUT].Filename = "STDOUT";
+    AslGbl_Files[ASL_FILE_STDOUT].Handle   = stdout;
+    AslGbl_Files[ASL_FILE_STDOUT].Filename = "STDOUT";
 
-    Gbl_Files[ASL_FILE_STDERR].Handle   = stderr;
-    Gbl_Files[ASL_FILE_STDERR].Filename = "STDERR";
+    AslGbl_Files[ASL_FILE_STDERR].Handle   = stderr;
+    AslGbl_Files[ASL_FILE_STDERR].Filename = "STDERR";
 }
diff --git a/src/acpica/source/compiler/aslmap.c b/src/acpica/source/compiler/aslmap.c
index 0b6e088..6bc81c7 100644
--- a/src/acpica/source/compiler/aslmap.c
+++ b/src/acpica/source/compiler/aslmap.c
@@ -233,17 +233,18 @@ const ASL_MAPPING_ENTRY     AslKeywordMapping [] =
 
                                             /*  AML Opcode                  Value                           Flags               Btype */
 
-/* ACCESSAS */                  OP_TABLE_ENTRY (AML_INT_ACCESSFIELD_OP,     0,                              0,                  0),
-/* ACCESSATTRIB_BLOCK */        OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_BLOCK,         0,                  0),
-/* ACCESSATTRIB_BLOCK_CALL */   OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_BLOCK_CALL,    0,                  0),
-/* ACCESSATTRIB_BYTE */         OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_BYTE,          0,                  0),
-/* ACCESSATTRIB_MULTIBYTE */    OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_MULTIBYTE,     0,                  0),
-/* ACCESSATTRIB_QUICK */        OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_QUICK,         0,                  0),
-/* ACCESSATTRIB_RAW_BYTES */    OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_RAW_BYTES,     0,                  0),
-/* ACCESSATTRIB_RAW_PROCESS */  OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_RAW_PROCESS,   0,                  0),
-/* ACCESSATTRIB_SND_RCV */      OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_SEND_RCV,      0,                  0),
-/* ACCESSATTRIB_WORD */         OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_WORD,          0,                  0),
-/* ACCESSATTRIB_WORD_CALL */    OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ATTRIB_WORD_CALL,     0,                  0),
+/* ACCESSAS */                          OP_TABLE_ENTRY (AML_INT_ACCESSFIELD_OP, 0,                                      0,      0),
+/* ACCESSATTRIB_BLOCK */                OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_BLOCK,                 0,      0),
+/* ACCESSATTRIB_BLOCK_PROCESS_CALL */   OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL,    0,      0),
+/* ACCESSATTRIB_BYTE */                 OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_BYTE,                  0,      0),
+/* ACCESSATTRIB_BYTES */                OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_BYTES,                 0,      0),
+/* ACCESSATTRIB_QUICK */                OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_QUICK,                 0,      0),
+/* ACCESSATTRIB_RAW_BYTES */            OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_RAW_BYTES,             0,      0),
+/* ACCESSATTRIB_RAW_PROCESS_BYTES */    OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_RAW_PROCESS_BYTES,     0,      0),
+/* ACCESSATTRIB_SEND_RECEIVE */         OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_SEND_RECEIVE,          0,      0),
+/* ACCESSATTRIB_WORD */                 OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_WORD,                  0,      0),
+/* ACCESSATTRIB_PROCESS_CALL */         OP_TABLE_ENTRY (AML_BYTE_OP,            AML_FIELD_ATTRIB_PROCESS_CALL,          0,      0),
+
 /* ACCESSTYPE_ANY */            OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ACCESS_ANY,           0,                  0),
 /* ACCESSTYPE_BUF */            OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ACCESS_BUFFER,        0,                  0),
 /* ACCESSTYPE_BYTE */           OP_TABLE_ENTRY (AML_BYTE_OP,                AML_FIELD_ACCESS_BYTE,          0,                  0),
diff --git a/src/acpica/source/compiler/aslmapoutput.c b/src/acpica/source/compiler/aslmapoutput.c
index 715634d..baa2f62 100644
--- a/src/acpica/source/compiler/aslmapoutput.c
+++ b/src/acpica/source/compiler/aslmapoutput.c
@@ -237,24 +237,24 @@ MpEmitMappingInfo (
 
     /* Mapfile option enabled? */
 
-    if (!Gbl_MapfileFlag)
+    if (!AslGbl_MapfileFlag)
     {
         return;
     }
 
-    if (!Gbl_GpioList)
+    if (!AslGbl_GpioList)
     {
         FlPrintFile (ASL_FILE_MAP_OUTPUT,
             "\nNo GPIO devices found\n");
     }
 
-    if (!Gbl_SerialList)
+    if (!AslGbl_SerialList)
     {
         FlPrintFile (ASL_FILE_MAP_OUTPUT,
             "\nNo Serial devices found (I2C/SPI/UART)\n");
     }
 
-    if (!Gbl_GpioList && !Gbl_SerialList)
+    if (!AslGbl_GpioList && !AslGbl_SerialList)
     {
         return;
     }
@@ -272,8 +272,8 @@ MpEmitMappingInfo (
 
     /* Clear the lists - no need to free memory here */
 
-    Gbl_SerialList = NULL;
-    Gbl_GpioList = NULL;
+    AslGbl_SerialList = NULL;
+    AslGbl_GpioList = NULL;
 }
 
 
@@ -307,7 +307,7 @@ MpEmitGpioInfo (
 
     /* Walk the GPIO descriptor list */
 
-    Info = Gbl_GpioList;
+    Info = AslGbl_GpioList;
     while (Info)
     {
         HidString = MpGetHidViaNamestring (Info->DeviceName);
@@ -440,7 +440,7 @@ MpEmitSerialInfo (
 
     /* Walk the constructed serial descriptor list */
 
-    Info = Gbl_SerialList;
+    Info = AslGbl_SerialList;
     while (Info)
     {
         Resource = Info->Resource;
@@ -641,7 +641,7 @@ MpXrefDevices (
 
     /* Walk the entire parse tree */
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         MpNamespaceXrefBegin, NULL, Info);
 
     if (!Info->References)
diff --git a/src/acpica/source/compiler/aslmessages.c b/src/acpica/source/compiler/aslmessages.c
index b9e9f80..efa58cb 100644
--- a/src/acpica/source/compiler/aslmessages.c
+++ b/src/acpica/source/compiler/aslmessages.c
@@ -357,7 +357,8 @@ const char                      *AslCompilerMsgs [] =
 /*    ASL_MSG_FOUND_HERE_EXTERN */          "Remove one of the declarations indicated above or below:",
 /*    ASL_MSG_OEM_TABLE_ID */               "Invalid OEM Table ID",
 /*    ASL_MSG_OEM_ID */                     "Invalid OEM ID",
-/*    ASL_MSG_UNLOAD */                     "Unload is not supported by all operating systems"
+/*    ASL_MSG_UNLOAD */                     "Unload is not supported by all operating systems",
+/*    ASL_MSG_OFFSET */                     "Unnecessary/redundant use of Offset operator"
 };
 
 /* Table compiler */
@@ -495,7 +496,7 @@ AeDecodeExceptionLevel (
 
     /* Differentiate the string type to be used (IDE is all lower case) */
 
-    if (Gbl_VerboseErrors)
+    if (AslGbl_VerboseErrors)
     {
         return (AslErrorLevel[Level]);
     }
diff --git a/src/acpica/source/compiler/aslmessages.h b/src/acpica/source/compiler/aslmessages.h
index dcd2aa0..5030a81 100644
--- a/src/acpica/source/compiler/aslmessages.h
+++ b/src/acpica/source/compiler/aslmessages.h
@@ -360,6 +360,7 @@ typedef enum
     ASL_MSG_OEM_TABLE_ID,
     ASL_MSG_OEM_ID,
     ASL_MSG_UNLOAD,
+    ASL_MSG_OFFSET,
 
     /* These messages are used by the Data Table compiler only */
 
diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
index e032348..ba4204d 100644
--- a/src/acpica/source/compiler/aslmethod.c
+++ b/src/acpica/source/compiler/aslmethod.c
@@ -203,7 +203,7 @@ MtMethodAnalysisWalkBegin (
 
     /* Build cross-reference output file if requested */
 
-    if (Gbl_CrossReferenceOutput)
+    if (AslGbl_CrossReferenceOutput)
     {
         OtXrefWalkPart1 (Op, Level, MethodInfo);
     }
@@ -212,7 +212,7 @@ MtMethodAnalysisWalkBegin (
     {
     case PARSEOP_METHOD:
 
-        TotalMethods++;
+        AslGbl_TotalMethods++;
 
         /* Create and init method info */
 
@@ -249,11 +249,11 @@ MtMethodAnalysisWalkBegin (
 
             if (!ApFindNameInScope (METHOD_NAME__PS0, Op))
             {
-                sprintf (MsgBuffer,
+                sprintf (AslGbl_MsgBuffer,
                     "%4.4s requires _PS0 in same scope", Op->Asl.NameSeg);
 
                 AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
-                    MsgBuffer);
+                    AslGbl_MsgBuffer);
             }
         }
 
diff --git a/src/acpica/source/compiler/aslnamesp.c b/src/acpica/source/compiler/aslnamesp.c
index ccaf4fb..291820c 100644
--- a/src/acpica/source/compiler/aslnamesp.c
+++ b/src/acpica/source/compiler/aslnamesp.c
@@ -191,8 +191,8 @@ NsSetupNamespaceListing (
     void                    *Handle)
 {
 
-    Gbl_NsOutputFlag = TRUE;
-    Gbl_Files[ASL_FILE_NAMESPACE_OUTPUT].Handle = Handle;
+    AslGbl_NsOutputFlag = TRUE;
+    AslGbl_Files[ASL_FILE_NAMESPACE_OUTPUT].Handle = Handle;
 }
 
 
@@ -217,12 +217,12 @@ NsDisplayNamespace (
     ACPI_STATUS             Status;
 
 
-    if (!Gbl_NsOutputFlag)
+    if (!AslGbl_NsOutputFlag)
     {
         return (AE_OK);
     }
 
-    Gbl_NumNamespaceObjects = 0;
+    AslGbl_NumNamespaceObjects = 0;
 
     /* File header */
 
@@ -272,10 +272,10 @@ NsDoOneNamespaceObject (
     ACPI_PARSE_OBJECT       *Op;
 
 
-    Gbl_NumNamespaceObjects++;
+    AslGbl_NumNamespaceObjects++;
 
     FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%5u  [%u]  %*s %4.4s - %s",
-        Gbl_NumNamespaceObjects, Level, (Level * 3), " ",
+        AslGbl_NumNamespaceObjects, Level, (Level * 3), " ",
         &Node->Name, AcpiUtGetTypeName (Node->Type));
 
     Op = Node->Op;
diff --git a/src/acpica/source/compiler/asloffset.c b/src/acpica/source/compiler/asloffset.c
index c98a9ef..d108f17 100644
--- a/src/acpica/source/compiler/asloffset.c
+++ b/src/acpica/source/compiler/asloffset.c
@@ -221,7 +221,7 @@ LsAmlOffsetWalk (
     Node = Op->Asl.Node;
     if (!Node)
     {
-        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
+        AslGbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
         return (AE_OK);
     }
 
@@ -230,10 +230,10 @@ LsAmlOffsetWalk (
     if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE) &&
         (Op->Asl.CompileFlags & OP_IS_RESOURCE_DESC))
     {
-        LsEmitOffsetTableEntry (FileId, Node, 0, Gbl_CurrentAmlOffset,
+        LsEmitOffsetTableEntry (FileId, Node, 0, AslGbl_CurrentAmlOffset,
             Op->Asl.ParseOpName, 0, Op->Asl.Extra, AML_BUFFER_OP);
 
-        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
+        AslGbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
         return (AE_OK);
     }
 
@@ -245,7 +245,7 @@ LsAmlOffsetWalk (
 
         if (!Op->Asl.Child)
         {
-            FlPrintFile (FileId, "%s NO CHILD!\n", MsgBuffer);
+            FlPrintFile (FileId, "%s NO CHILD!\n", AslGbl_MsgBuffer);
             return (AE_OK);
         }
 
@@ -257,10 +257,10 @@ LsAmlOffsetWalk (
 
         /* Get offset of last nameseg and the actual data */
 
-        NamepathOffset = Gbl_CurrentAmlOffset + Length +
+        NamepathOffset = AslGbl_CurrentAmlOffset + Length +
             (Op->Asl.FinalAmlLength - ACPI_NAME_SIZE);
 
-        DataOffset = Gbl_CurrentAmlOffset + Length +
+        DataOffset = AslGbl_CurrentAmlOffset + Length +
             Op->Asl.FinalAmlLength;
 
         /* Get actual value associated with the name */
@@ -307,7 +307,7 @@ LsAmlOffsetWalk (
              break;
         }
 
-        Gbl_CurrentAmlOffset += Length;
+        AslGbl_CurrentAmlOffset += Length;
         return (AE_OK);
 
     case AML_REGION_OP:
@@ -322,10 +322,10 @@ LsAmlOffsetWalk (
 
         /* Get offset of last nameseg and the actual data */
 
-        NamepathOffset = Gbl_CurrentAmlOffset + Length +
+        NamepathOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
 
-        DataOffset = Gbl_CurrentAmlOffset + Length +
+        DataOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength + 1);
 
         /* Get the SpaceId node, then the Offset (address) node */
@@ -349,7 +349,7 @@ LsAmlOffsetWalk (
                 Op->Asl.ParseOpName, NextOp->Asl.Value.Integer,
                 (UINT8) NextOp->Asl.AmlOpcode, AML_REGION_OP);
 
-            Gbl_CurrentAmlOffset += Length;
+            AslGbl_CurrentAmlOffset += Length;
             return (AE_OK);
 
         default:
@@ -369,10 +369,10 @@ LsAmlOffsetWalk (
 
         /* Get offset of last nameseg and the actual data (flags byte) */
 
-        NamepathOffset = Gbl_CurrentAmlOffset + Length +
+        NamepathOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
 
-        DataOffset = Gbl_CurrentAmlOffset + Length +
+        DataOffset = AslGbl_CurrentAmlOffset + Length +
             NextOp->Asl.FinalAmlLength;
 
         /* Get the flags byte Op */
@@ -393,10 +393,10 @@ LsAmlOffsetWalk (
 
         /* Get offset of last nameseg and the actual data (PBlock address) */
 
-        NamepathOffset = Gbl_CurrentAmlOffset + Length +
+        NamepathOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
 
-        DataOffset = Gbl_CurrentAmlOffset + Length +
+        DataOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength + 1);
 
         NextOp = NextOp->Asl.Next;  /* Get ProcessorID (BYTE) */
@@ -418,7 +418,7 @@ LsAmlOffsetWalk (
 
         /* Get offset of last nameseg */
 
-        NamepathOffset = Gbl_CurrentAmlOffset + Length +
+        NamepathOffset = AslGbl_CurrentAmlOffset + Length +
             (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
 
         LsEmitOffsetTableEntry (FileId, Node, NamepathOffset, 0,
@@ -429,7 +429,7 @@ LsAmlOffsetWalk (
         break;
     }
 
-    Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
+    AslGbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
     return (AE_OK);
 }
 
@@ -478,9 +478,9 @@ LsEmitOffsetTableEntry (
 
     /* [1] - Skip the opening backslash for the path */
 
-    strcpy (MsgBuffer, "\"");
-    strcat (MsgBuffer, &((char *) TargetPath.Pointer)[1]);
-    strcat (MsgBuffer, "\",");
+    strcpy (AslGbl_MsgBuffer, "\"");
+    strcat (AslGbl_MsgBuffer, &((char *) TargetPath.Pointer)[1]);
+    strcat (AslGbl_MsgBuffer, "\",");
     ACPI_FREE (TargetPath.Pointer);
 
     /*
@@ -489,7 +489,7 @@ LsEmitOffsetTableEntry (
      */
     FlPrintFile (FileId,
         "    {%-29s 0x%4.4X, 0x%8.8X, 0x%2.2X, 0x%8.8X, 0x%8.8X%8.8X}, /* %s */\n",
-        MsgBuffer, ParentOpcode, NamepathOffset, AmlOpcode,
+        AslGbl_MsgBuffer, ParentOpcode, NamepathOffset, AmlOpcode,
         Offset, ACPI_FORMAT_UINT64 (Value), OpName);
 }
 
@@ -564,7 +564,7 @@ LsDoOffsetTableHeader (
 
     FlPrintFile (FileId,
         "AML_OFFSET_TABLE_ENTRY   %s_%s_OffsetTable[] =\n{\n",
-        Gbl_TableSignature, Gbl_TableId);
+        AslGbl_TableSignature, AslGbl_TableId);
 }
 
 
@@ -575,5 +575,5 @@ LsDoOffsetTableFooter (
 
     FlPrintFile (FileId,
         "    {NULL,0,0,0,0,0} /* Table terminator */\n};\n\n");
-    Gbl_CurrentAmlOffset = 0;
+    AslGbl_CurrentAmlOffset = 0;
 }
diff --git a/src/acpica/source/compiler/aslopcodes.c b/src/acpica/source/compiler/aslopcodes.c
index cfcb5e7..218223b 100644
--- a/src/acpica/source/compiler/aslopcodes.c
+++ b/src/acpica/source/compiler/aslopcodes.c
@@ -239,7 +239,7 @@ OpcAmlOpcodeWalk (
     void                    *Context)
 {
 
-    TotalParseNodes++;
+    AslGbl_TotalParseNodes++;
 
     OpcGenerateAmlOpcode (Op);
     OpnGenerateAmlOperands (Op);
@@ -271,9 +271,9 @@ OpcGetIntegerWidth (
         return;
     }
 
-    if (Gbl_RevisionOverride)
+    if (AslGbl_RevisionOverride)
     {
-        AcpiUtSetIntegerWidth (Gbl_RevisionOverride);
+        AcpiUtSetIntegerWidth (AslGbl_RevisionOverride);
     }
     else
     {
@@ -328,7 +328,7 @@ OpcSetOptimalIntegerSize (
      *
      * This optimization is optional.
      */
-    if (Gbl_IntegerOptimizationFlag)
+    if (AslGbl_IntegerOptimizationFlag)
     {
         switch (Op->Asl.Value.Integer)
         {
@@ -404,7 +404,7 @@ OpcSetOptimalIntegerSize (
             AslError (ASL_WARNING, ASL_MSG_INTEGER_LENGTH,
                 Op, NULL);
 
-            if (!Gbl_IgnoreErrors)
+            if (!AslGbl_IgnoreErrors)
             {
                 /* Truncate the integer to 32-bit */
 
@@ -466,9 +466,9 @@ OpcDoAccessAs (
     /* Only a few AccessAttributes support AccessLength */
 
     Attribute = (UINT8) AttribOp->Asl.Value.Integer;
-    if ((Attribute != AML_FIELD_ATTRIB_MULTIBYTE) &&
+    if ((Attribute != AML_FIELD_ATTRIB_BYTES) &&
         (Attribute != AML_FIELD_ATTRIB_RAW_BYTES) &&
-        (Attribute != AML_FIELD_ATTRIB_RAW_PROCESS))
+        (Attribute != AML_FIELD_ATTRIB_RAW_PROCESS_BYTES))
     {
         return;
     }
@@ -924,12 +924,12 @@ OpcGenerateAmlOpcode (
 
     case PARSEOP_INCLUDE:
 
-        Gbl_HasIncludeFiles = TRUE;
+        AslGbl_HasIncludeFiles = TRUE;
         break;
 
     case PARSEOP_EXTERNAL:
 
-        if (Gbl_DoExternals == FALSE)
+        if (AslGbl_DoExternals == FALSE)
         {
             Op->Asl.Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
             Op->Asl.Child->Asl.Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
diff --git a/src/acpica/source/compiler/asloperands.c b/src/acpica/source/compiler/asloperands.c
index 1d1a1a9..d46d9ff 100644
--- a/src/acpica/source/compiler/asloperands.c
+++ b/src/acpica/source/compiler/asloperands.c
@@ -429,14 +429,35 @@ OpnDoFieldCommon (
                 Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
                 PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
             }
-            else if ((NewBitOffset == CurrentBitOffset) && Gbl_OptimizeTrivialParseNodes)
+            else if (NewBitOffset == CurrentBitOffset)
             {
                 /*
-                 * Offset is redundant; we don't need to output an
-                 * offset opcode. Just set these nodes to default
+                 * This Offset() operator is redundant and not needed,
+                 * because the offset value is the same as the current
+                 * offset.
                  */
-                Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-                PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
+                AslError (ASL_REMARK, ASL_MSG_OFFSET, PkgLengthNode, NULL);
+
+                if (AslGbl_OptimizeTrivialParseNodes)
+                {
+                    /*
+                     * Optimize this Offset() operator by removing/ignoring
+                     * it. Set the related nodes to default.
+                     */
+                    Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
+                    PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
+
+                    AslError (ASL_OPTIMIZATION, ASL_MSG_OFFSET, PkgLengthNode,
+                        "Optimizer has removed statement");
+                }
+                else
+                {
+                    /* Optimization is disabled, treat as a valid Offset */
+
+                    PkgLengthNode->Asl.Value.Integer =
+                        NewBitOffset - CurrentBitOffset;
+                    CurrentBitOffset = NewBitOffset;
+                }
             }
             else
             {
@@ -461,7 +482,7 @@ OpnDoFieldCommon (
 
             if ((NewBitOffset == 0) &&
                 (Next->Asl.ParseOpcode == PARSEOP_RESERVED_BYTES) &&
-                Gbl_OptimizeTrivialParseNodes)
+                AslGbl_OptimizeTrivialParseNodes)
             {
                 /*
                  * Unnamed field with a bit length of zero. We can
@@ -1031,22 +1052,22 @@ OpnDoDefinitionBlock (
     Child = Op->Asl.Child;
     if (Child->Asl.Value.Buffer  &&
         *Child->Asl.Value.Buffer &&
-        (Gbl_UseDefaultAmlFilename))
+        (AslGbl_UseDefaultAmlFilename))
     {
         /*
          * We will use the AML filename that is embedded in the source file
          * for the output filename.
          */
-        Filename = UtLocalCacheCalloc (strlen (Gbl_DirectoryPath) +
+        Filename = UtLocalCacheCalloc (strlen (AslGbl_DirectoryPath) +
             strlen ((char *) Child->Asl.Value.Buffer) + 1);
 
         /* Prepend the current directory path */
 
-        strcpy (Filename, Gbl_DirectoryPath);
+        strcpy (Filename, AslGbl_DirectoryPath);
         strcat (Filename, (char *) Child->Asl.Value.Buffer);
 
-        Gbl_OutputFilenamePrefix = Filename;
-        UtConvertBackslashes (Gbl_OutputFilenamePrefix);
+        AslGbl_OutputFilenamePrefix = Filename;
+        UtConvertBackslashes (AslGbl_OutputFilenamePrefix);
     }
 
     Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
@@ -1057,8 +1078,8 @@ OpnDoDefinitionBlock (
     Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
     if (Child->Asl.Value.String)
     {
-        Gbl_TableSignature = Child->Asl.Value.String;
-        if (strlen (Gbl_TableSignature) != ACPI_NAME_SIZE)
+        AslGbl_TableSignature = Child->Asl.Value.String;
+        if (strlen (AslGbl_TableSignature) != ACPI_NAME_SIZE)
         {
             AslError (ASL_ERROR, ASL_MSG_TABLE_SIGNATURE, Child,
                 "Length must be exactly 4 characters");
@@ -1066,7 +1087,7 @@ OpnDoDefinitionBlock (
 
         for (i = 0; i < ACPI_NAME_SIZE; i++)
         {
-            if (!isalnum ((int) Gbl_TableSignature[i]))
+            if (!isalnum ((int) AslGbl_TableSignature[i]))
             {
                 AslError (ASL_ERROR, ASL_MSG_TABLE_SIGNATURE, Child,
                     "Contains non-alphanumeric characters");
@@ -1107,8 +1128,8 @@ OpnDoDefinitionBlock (
                 "Length cannot exceed 8 characters");
         }
 
-        Gbl_TableId = UtLocalCacheCalloc (Length + 1);
-        strcpy (Gbl_TableId, Child->Asl.Value.String);
+        AslGbl_TableId = UtLocalCacheCalloc (Length + 1);
+        strcpy (AslGbl_TableId, Child->Asl.Value.String);
 
         /*
          * Convert anything non-alphanumeric to an underscore. This
@@ -1116,9 +1137,9 @@ OpnDoDefinitionBlock (
          */
         for (i = 0; i < Length; i++)
         {
-            if (!isalnum ((int) Gbl_TableId[i]))
+            if (!isalnum ((int) AslGbl_TableId[i]))
             {
-                Gbl_TableId[i] = '_';
+                AslGbl_TableId[i] = '_';
             }
         }
     }
diff --git a/src/acpica/source/compiler/aslopt.c b/src/acpica/source/compiler/aslopt.c
index 57be9c8..4e53a4b 100644
--- a/src/acpica/source/compiler/aslopt.c
+++ b/src/acpica/source/compiler/aslopt.c
@@ -406,7 +406,7 @@ OptBuildShortestPath (
      * Construct a new target string
      */
     NewPathExternal =
-        ACPI_ALLOCATE_ZEROED (TargetPath->Length + NumCarats + 1);
+        UtLocalCacheCalloc (TargetPath->Length + NumCarats + 1);
 
     /* Insert the Carats into the Target string */
 
@@ -679,7 +679,7 @@ OptOptimizeNamePath (
 
     /* This is an optional optimization */
 
-    if (!Gbl_ReferenceOptimizationFlag)
+    if (!AslGbl_ReferenceOptimizationFlag)
     {
         return_VOID;
     }
diff --git a/src/acpica/source/compiler/aslparseop.c b/src/acpica/source/compiler/aslparseop.c
index 9585e56..ce5e268 100644
--- a/src/acpica/source/compiler/aslparseop.c
+++ b/src/acpica/source/compiler/aslparseop.c
@@ -205,7 +205,7 @@ TrCreateOp (
     {
     case PARSEOP_ASL_CODE:
 
-        Gbl_ParseTreeRoot = Op;
+        AslGbl_ParseTreeRoot = Op;
         Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
         DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->");
         break;
@@ -784,11 +784,11 @@ TrAllocateOp (
     Op = UtParseOpCacheCalloc ();
 
     Op->Asl.ParseOpcode       = (UINT16) ParseOpcode;
-    Op->Asl.Filename          = Gbl_Files[ASL_FILE_INPUT].Filename;
-    Op->Asl.LineNumber        = Gbl_CurrentLineNumber;
-    Op->Asl.LogicalLineNumber = Gbl_LogicalLineNumber;
-    Op->Asl.LogicalByteOffset = Gbl_CurrentLineOffset;
-    Op->Asl.Column            = Gbl_CurrentColumn;
+    Op->Asl.Filename          = AslGbl_Files[ASL_FILE_INPUT].Filename;
+    Op->Asl.LineNumber        = AslGbl_CurrentLineNumber;
+    Op->Asl.LogicalLineNumber = AslGbl_LogicalLineNumber;
+    Op->Asl.LogicalByteOffset = AslGbl_CurrentLineOffset;
+    Op->Asl.Column            = AslGbl_CurrentColumn;
 
     UtSetParseOpName (Op);
 
@@ -796,7 +796,7 @@ TrAllocateOp (
 
     if (AcpiGbl_CaptureComments)
     {
-        LatestOp = Gbl_CommentState.LatestParseOp;
+        LatestOp = AslGbl_CommentState.LatestParseOp;
         Op->Asl.InlineComment     = NULL;
         Op->Asl.EndNodeComment    = NULL;
         Op->Asl.CommentList       = NULL;
@@ -813,9 +813,9 @@ TrAllocateOp (
         {
             CvDbgPrint ("latest op: %s\n", LatestOp->Asl.ParseOpName);
             Op->Asl.FileChanged = TRUE;
-            if (Gbl_IncludeFileStack)
+            if (AslGbl_IncludeFileStack)
             {
-                Op->Asl.ParentFilename = Gbl_IncludeFileStack->Filename;
+                Op->Asl.ParentFilename = AslGbl_IncludeFileStack->Filename;
             }
             else
             {
@@ -823,10 +823,10 @@ TrAllocateOp (
             }
         }
 
-        Gbl_CommentState.LatestParseOp = Op;
+        AslGbl_CommentState.LatestParseOp = Op;
         CvDbgPrint ("TrAllocateOp=Set latest parse op to this op.\n");
         CvDbgPrint ("           Op->Asl.ParseOpName = %s\n",
-            Gbl_CommentState.LatestParseOp->Asl.ParseOpName);
+            AslGbl_CommentState.LatestParseOp->Asl.ParseOpName);
         CvDbgPrint ("           Op->Asl.ParseOpcode = 0x%x\n", ParseOpcode);
 
         if (Op->Asl.FileChanged)
@@ -843,23 +843,23 @@ TrAllocateOp (
             (ParseOpcode != PARSEOP_DEFINITION_BLOCK))
         {
             CvDbgPrint ("Parsing paren/Brace op now!\n");
-            Gbl_CommentState.ParsingParenBraceNode = Op;
+            AslGbl_CommentState.ParsingParenBraceNode = Op;
         }
 
-        if (Gbl_CommentListHead)
+        if (AslGbl_CommentListHead)
         {
             CvDbgPrint ("Transferring...\n");
-            Op->Asl.CommentList = Gbl_CommentListHead;
-            Gbl_CommentListHead = NULL;
-            Gbl_CommentListTail = NULL;
+            Op->Asl.CommentList = AslGbl_CommentListHead;
+            AslGbl_CommentListHead = NULL;
+            AslGbl_CommentListTail = NULL;
             CvDbgPrint ("    Transferred current comment list to this op.\n");
             CvDbgPrint ("    %s\n", Op->Asl.CommentList->Comment);
         }
 
-        if (Gbl_InlineCommentBuffer)
+        if (AslGbl_InlineCommentBuffer)
         {
-            Op->Asl.InlineComment = Gbl_InlineCommentBuffer;
-            Gbl_InlineCommentBuffer = NULL;
+            Op->Asl.InlineComment = AslGbl_InlineCommentBuffer;
+            AslGbl_InlineCommentBuffer = NULL;
             CvDbgPrint ("Transferred current inline comment list to this op.\n");
         }
     }
@@ -894,7 +894,7 @@ TrPrintOpFlags (
     {
         if (Flags & FlagBit)
         {
-            DbgPrint (OutputLevel, " %s", Gbl_OpFlagNames[i]);
+            DbgPrint (OutputLevel, " %s", AslGbl_OpFlagNames[i]);
         }
 
         FlagBit <<= 1;
diff --git a/src/acpica/source/compiler/aslpld.c b/src/acpica/source/compiler/aslpld.c
index ef87017..e9b49ac 100644
--- a/src/acpica/source/compiler/aslpld.c
+++ b/src/acpica/source/compiler/aslpld.c
@@ -728,11 +728,7 @@ OpcEncodePldBuffer (
     UINT32                  Dword;
 
 
-    Buffer = ACPI_ALLOCATE_ZEROED (ACPI_PLD_BUFFER_SIZE);
-    if (!Buffer)
-    {
-        return (NULL);
-    }
+    Buffer = ACPI_CAST_PTR (UINT32, UtLocalCacheCalloc (ACPI_PLD_BUFFER_SIZE));
 
     /* First 32 bits */
 
diff --git a/src/acpica/source/compiler/aslpredef.c b/src/acpica/source/compiler/aslpredef.c
index ce1814c..bc30fe9 100644
--- a/src/acpica/source/compiler/aslpredef.c
+++ b/src/acpica/source/compiler/aslpredef.c
@@ -216,16 +216,16 @@ ApCheckForPredefinedMethod (
 
     case ACPI_EVENT_RESERVED_NAME:      /* _Lxx/_Exx/_Wxx/_Qxx methods */
 
-        Gbl_ReservedMethods++;
+        AslGbl_ReservedMethods++;
 
         /* NumArguments must be zero for all _Lxx/_Exx/_Wxx/_Qxx methods */
 
         if (MethodInfo->NumArguments != 0)
         {
-            sprintf (MsgBuffer, "%s requires %u", Op->Asl.ExternalName, 0);
+            sprintf (AslGbl_MsgBuffer, "%s requires %u", Op->Asl.ExternalName, 0);
 
             AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_HI, Op,
-                MsgBuffer);
+                AslGbl_MsgBuffer);
         }
         break;
 
@@ -238,25 +238,25 @@ ApCheckForPredefinedMethod (
          * Some methods are allowed to have a "minimum" number of args
          * (_SCP) because their definition in ACPI has changed over time.
          */
-        Gbl_ReservedMethods++;
+        AslGbl_ReservedMethods++;
         ThisName = &AcpiGbl_PredefinedMethods[Index];
         RequiredArgCount = METHOD_GET_ARG_COUNT (ThisName->Info.ArgumentList);
 
         if (MethodInfo->NumArguments != RequiredArgCount)
         {
-            sprintf (MsgBuffer, "%4.4s requires %u",
+            sprintf (AslGbl_MsgBuffer, "%4.4s requires %u",
                 ThisName->Info.Name, RequiredArgCount);
 
             if (MethodInfo->NumArguments < RequiredArgCount)
             {
                 AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_LO, Op,
-                    MsgBuffer);
+                    AslGbl_MsgBuffer);
             }
             else if ((MethodInfo->NumArguments > RequiredArgCount) &&
                 !(ThisName->Info.ArgumentList & ARG_COUNT_IS_MINIMUM))
             {
                 AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_HI, Op,
-                    MsgBuffer);
+                    AslGbl_MsgBuffer);
             }
         }
 
@@ -267,14 +267,14 @@ ApCheckForPredefinedMethod (
         if (MethodInfo->NumReturnNoValue &&
             ThisName->Info.ExpectedBtypes)
         {
-            AcpiUtGetExpectedReturnTypes (StringBuffer,
+            AcpiUtGetExpectedReturnTypes (AslGbl_StringBuffer,
                 ThisName->Info.ExpectedBtypes);
 
-            sprintf (MsgBuffer, "%s required for %4.4s",
-                StringBuffer, ThisName->Info.Name);
+            sprintf (AslGbl_MsgBuffer, "%s required for %4.4s",
+                AslGbl_StringBuffer, ThisName->Info.Name);
 
             AslError (ASL_WARNING, ASL_MSG_RESERVED_RETURN_VALUE, Op,
-                MsgBuffer);
+                AslGbl_MsgBuffer);
         }
         break;
     }
@@ -365,10 +365,10 @@ ApCheckPredefinedReturnValue (
      * Note: Disable compiler errors/warnings because any errors will be
      * caught when analyzing the parent method. Eliminates duplicate errors.
      */
-    Gbl_AllExceptionsDisabled = TRUE;
+    AslGbl_AllExceptionsDisabled = TRUE;
     Index = ApCheckForPredefinedName (MethodInfo->Op,
         MethodInfo->Op->Asl.NameSeg);
-    Gbl_AllExceptionsDisabled = FALSE;
+    AslGbl_AllExceptionsDisabled = FALSE;
 
     switch (Index)
     {
@@ -804,20 +804,20 @@ TypeErrorExit:
 
     /* Format the expected types and emit an error message */
 
-    AcpiUtGetExpectedReturnTypes (StringBuffer, ExpectedBtypes);
+    AcpiUtGetExpectedReturnTypes (AslGbl_StringBuffer, ExpectedBtypes);
 
     if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
     {
-        sprintf (MsgBuffer, "%4.4s: found %s, %s required",
-            PredefinedName, TypeName, StringBuffer);
+        sprintf (AslGbl_MsgBuffer, "%4.4s: found %s, %s required",
+            PredefinedName, TypeName, AslGbl_StringBuffer);
     }
     else
     {
-        sprintf (MsgBuffer, "%4.4s: found %s at index %u, %s required",
-            PredefinedName, TypeName, PackageIndex, StringBuffer);
+        sprintf (AslGbl_MsgBuffer, "%4.4s: found %s at index %u, %s required",
+            PredefinedName, TypeName, PackageIndex, AslGbl_StringBuffer);
     }
 
-    AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, MsgBuffer);
+    AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, AslGbl_MsgBuffer);
     return (AE_TYPE);
 }
 
@@ -853,7 +853,7 @@ ApDisplayReservedNames (
     ThisName = AcpiGbl_PredefinedMethods;
     while (ThisName->Info.Name[0])
     {
-        AcpiUtDisplayPredefinedMethod (MsgBuffer, ThisName, FALSE);
+        AcpiUtDisplayPredefinedMethod (AslGbl_MsgBuffer, ThisName, FALSE);
         Count++;
         ThisName = AcpiUtGetNextPredefinedMethod (ThisName);
     }
@@ -869,11 +869,11 @@ ApDisplayReservedNames (
     ThisName = AcpiGbl_ResourceNames;
     while (ThisName->Info.Name[0])
     {
-        NumTypes = AcpiUtGetResourceBitWidth (MsgBuffer,
+        NumTypes = AcpiUtGetResourceBitWidth (AslGbl_MsgBuffer,
             ThisName->Info.ArgumentList);
 
         printf ("%4.4s    Field is %s bits wide%s\n",
-            ThisName->Info.Name, MsgBuffer,
+            ThisName->Info.Name, AslGbl_MsgBuffer,
             (NumTypes > 1) ? " (depending on descriptor type)" : "");
 
         Count++;
diff --git a/src/acpica/source/compiler/aslprepkg.c b/src/acpica/source/compiler/aslprepkg.c
index 68fdd8f..590cb95 100644
--- a/src/acpica/source/compiler/aslprepkg.c
+++ b/src/acpica/source/compiler/aslprepkg.c
@@ -417,11 +417,11 @@ ApCheckPackage (
 
         if (Count & 1)
         {
-            sprintf (MsgBuffer, "%4.4s: Package length, %d, must be even.",
+            sprintf (AslGbl_MsgBuffer, "%4.4s: Package length, %d, must be even.",
                 Predefined->Info.Name, Count);
 
             AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH,
-                ParentOp->Asl.Child, MsgBuffer);
+                ParentOp->Asl.Child, AslGbl_MsgBuffer);
         }
 
         /* Validate the alternating types */
@@ -538,7 +538,7 @@ ApCustomPackage (
     Version = (UINT32) Op->Asl.Value.Integer;
     if (Op->Asl.ParseOpcode != PARSEOP_INTEGER)
     {
-        AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, MsgBuffer);
+        AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, AslGbl_MsgBuffer);
         return;
     }
 
@@ -917,10 +917,10 @@ ApPackageTooSmall (
     UINT32                      ExpectedCount)
 {
 
-    sprintf (MsgBuffer, "%s: length %u, required minimum is %u",
+    sprintf (AslGbl_MsgBuffer, "%s: length %u, required minimum is %u",
         PredefinedName, Count, ExpectedCount);
 
-    AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, MsgBuffer);
+    AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, AslGbl_MsgBuffer);
 }
 
 
@@ -946,9 +946,9 @@ ApZeroLengthPackage (
     ACPI_PARSE_OBJECT           *Op)
 {
 
-    sprintf (MsgBuffer, "%s: length is zero", PredefinedName);
+    sprintf (AslGbl_MsgBuffer, "%s: length is zero", PredefinedName);
 
-    AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, MsgBuffer);
+    AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, AslGbl_MsgBuffer);
 }
 
 
@@ -975,8 +975,8 @@ ApPackageTooLarge (
     UINT32                      ExpectedCount)
 {
 
-    sprintf (MsgBuffer, "%s: length is %u, only %u required",
+    sprintf (AslGbl_MsgBuffer, "%s: length is %u, only %u required",
         PredefinedName, Count, ExpectedCount);
 
-    AslError (ASL_REMARK, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, MsgBuffer);
+    AslError (ASL_REMARK, ASL_MSG_RESERVED_PACKAGE_LENGTH, Op, AslGbl_MsgBuffer);
 }
diff --git a/src/acpica/source/compiler/aslprune.c b/src/acpica/source/compiler/aslprune.c
index ba60e50..3b043bb 100644
--- a/src/acpica/source/compiler/aslprune.c
+++ b/src/acpica/source/compiler/aslprune.c
@@ -230,7 +230,7 @@ AslPruneParseTree (
 
     AcpiOsPrintf ("\nRemoving Objects:\n");
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         PrTreePruneWalk, NULL, ACPI_CAST_PTR (void, &PruneObj));
 
     AcpiOsPrintf ("\n%u Total Objects Removed\n", PruneObj.Count);
diff --git a/src/acpica/source/compiler/aslresource.c b/src/acpica/source/compiler/aslresource.c
index 6984fc9..2f10a28 100644
--- a/src/acpica/source/compiler/aslresource.c
+++ b/src/acpica/source/compiler/aslresource.c
@@ -197,7 +197,7 @@ RsSmallAddressCheck (
     ACPI_PARSE_OBJECT       *Op)
 {
 
-    if (Gbl_NoResourceChecking)
+    if (AslGbl_NoResourceChecking)
     {
         return;
     }
@@ -329,7 +329,7 @@ RsLargeAddressCheck (
     ACPI_PARSE_OBJECT       *Op)
 {
 
-    if (Gbl_NoResourceChecking)
+    if (AslGbl_NoResourceChecking)
     {
         return;
     }
diff --git a/src/acpica/source/compiler/aslstartup.c b/src/acpica/source/compiler/aslstartup.c
index 7369fef..10a61b6 100644
--- a/src/acpica/source/compiler/aslstartup.c
+++ b/src/acpica/source/compiler/aslstartup.c
@@ -197,49 +197,49 @@ AslInitializeGlobals (
 
     /* Init compiler globals */
 
-    Gbl_SyntaxError = 0;
-    Gbl_CurrentColumn = 0;
-    Gbl_CurrentLineNumber = 1;
-    Gbl_LogicalLineNumber = 1;
-    Gbl_CurrentLineOffset = 0;
-    Gbl_InputFieldCount = 0;
-    Gbl_InputByteCount = 0;
-    Gbl_NsLookupCount = 0;
-    Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
-
-    Gbl_ErrorLog = NULL;
-    Gbl_NextError = NULL;
-    Gbl_Signature = NULL;
-    Gbl_FileType = 0;
-
-    TotalExecutableOpcodes = 0;
-    TotalNamedObjects = 0;
-    TotalKeywords = 0;
-    TotalParseNodes = 0;
-    TotalMethods = 0;
-    TotalAllocations = 0;
-    TotalAllocated = 0;
-    TotalFolds = 0;
+    AslGbl_SyntaxError = 0;
+    AslGbl_CurrentColumn = 0;
+    AslGbl_CurrentLineNumber = 1;
+    AslGbl_LogicalLineNumber = 1;
+    AslGbl_CurrentLineOffset = 0;
+    AslGbl_InputFieldCount = 0;
+    AslGbl_InputByteCount = 0;
+    AslGbl_NsLookupCount = 0;
+    AslGbl_LineBufPtr = AslGbl_CurrentLineBuffer;
+
+    AslGbl_ErrorLog = NULL;
+    AslGbl_NextError = NULL;
+    AslGbl_Signature = NULL;
+    AslGbl_FileType = 0;
+
+    AslGbl_TotalExecutableOpcodes = 0;
+    AslGbl_TotalNamedObjects = 0;
+    AslGbl_TotalKeywords = 0;
+    AslGbl_TotalParseNodes = 0;
+    AslGbl_TotalMethods = 0;
+    AslGbl_TotalAllocations = 0;
+    AslGbl_TotalAllocated = 0;
+    AslGbl_TotalFolds = 0;
 
     AslGbl_NextEvent = 0;
     for (i = 0; i < ASL_NUM_REPORT_LEVELS; i++)
     {
-        Gbl_ExceptionCount[i] = 0;
+        AslGbl_ExceptionCount[i] = 0;
     }
 
     for (i = ASL_FILE_INPUT; i <= ASL_MAX_FILE_TYPE; i++)
     {
-        Gbl_Files[i].Handle = NULL;
-        Gbl_Files[i].Filename = NULL;
+        AslGbl_Files[i].Handle = NULL;
+        AslGbl_Files[i].Filename = NULL;
     }
 
     if (AcpiGbl_CaptureComments)
     {
-        Gbl_CommentState.SpacesBefore          = 0;
-        Gbl_CommentState.CommentType           = 1;
-        Gbl_CommentState.LatestParseOp         = NULL;
-        Gbl_CommentState.ParsingParenBraceNode = NULL;
-        Gbl_CommentState.CaptureComments       = TRUE;
+        AslGbl_CommentState.SpacesBefore          = 0;
+        AslGbl_CommentState.CommentType           = 1;
+        AslGbl_CommentState.LatestParseOp         = NULL;
+        AslGbl_CommentState.ParsingParenBraceNode = NULL;
+        AslGbl_CommentState.CaptureComments       = TRUE;
     }
 }
 
@@ -275,11 +275,11 @@ AslDetectSourceFileType (
          * File contains ASCII source code. Determine if this is an ASL
          * file or an ACPI data table file.
          */
-        while (fgets (Gbl_CurrentLineBuffer, Gbl_LineBufferSize, Info->Handle))
+        while (fgets (AslGbl_CurrentLineBuffer, AslGbl_LineBufferSize, Info->Handle))
         {
             /* Uppercase the buffer for caseless compare */
 
-            FileChar = Gbl_CurrentLineBuffer;
+            FileChar = AslGbl_CurrentLineBuffer;
             while (*FileChar)
             {
                 *FileChar = (char) toupper ((int) *FileChar);
@@ -288,7 +288,7 @@ AslDetectSourceFileType (
 
             /* Presence of "DefinitionBlock" indicates actual ASL code */
 
-            if (strstr (Gbl_CurrentLineBuffer, "DEFINITIONBLOCK"))
+            if (strstr (AslGbl_CurrentLineBuffer, "DEFINITIONBLOCK"))
             {
                 /* Appears to be an ASL file */
 
@@ -372,15 +372,15 @@ AslDoDisassembly (
 
     /* Handle additional output files for disassembler */
 
-    Gbl_FileType = ASL_INPUT_TYPE_BINARY_ACPI_TABLE;
-    Status = FlOpenMiscOutputFiles (Gbl_OutputFilenamePrefix);
+    AslGbl_FileType = ASL_INPUT_TYPE_BINARY_ACPI_TABLE;
+    Status = FlOpenMiscOutputFiles (AslGbl_OutputFilenamePrefix);
 
     /* This is where the disassembly happens */
 
     AcpiGbl_DmOpt_Disasm = TRUE;
     Status = AdAmlDisassemble (AslToFile,
-        Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_OutputFilenamePrefix,
-        &Gbl_Files[ASL_FILE_INPUT].Filename);
+        AslGbl_Files[ASL_FILE_INPUT].Filename, AslGbl_OutputFilenamePrefix,
+        &AslGbl_Files[ASL_FILE_INPUT].Filename);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
@@ -396,19 +396,19 @@ AslDoDisassembly (
     (void) AcpiTerminate ();
 
     /*
-     * Gbl_Files[ASL_FILE_INPUT].Filename was replaced with the
+     * AslGbl_Files[ASL_FILE_INPUT].Filename was replaced with the
      * .DSL disassembly file, which can now be compiled if requested
      */
-    if (Gbl_DoCompile)
+    if (AslGbl_DoCompile)
     {
         AcpiOsPrintf ("\nCompiling \"%s\"\n",
-            Gbl_Files[ASL_FILE_INPUT].Filename);
+            AslGbl_Files[ASL_FILE_INPUT].Filename);
         return (AE_CTRL_CONTINUE);
     }
 
     /* No need to free the filename string */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename = NULL;
+    AslGbl_Files[ASL_FILE_INPUT].Filename = NULL;
 
     UtDeleteLocalCaches ();
     return (AE_OK);
@@ -444,7 +444,7 @@ AslDoOneFile (
      * files and the optional AML filename embedded in the input file
      * DefinitionBlock declaration.
      */
-    Status = FlSplitInputPathname (Filename, &Gbl_DirectoryPath, NULL);
+    Status = FlSplitInputPathname (Filename, &AslGbl_DirectoryPath, NULL);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
@@ -452,11 +452,11 @@ AslDoOneFile (
 
     /* Take a copy of the input filename, convert any backslashes */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename =
+    AslGbl_Files[ASL_FILE_INPUT].Filename =
         UtLocalCacheCalloc (strlen (Filename) + 1);
 
-    strcpy (Gbl_Files[ASL_FILE_INPUT].Filename, Filename);
-    UtConvertBackslashes (Gbl_Files[ASL_FILE_INPUT].Filename);
+    strcpy (AslGbl_Files[ASL_FILE_INPUT].Filename, Filename);
+    UtConvertBackslashes (AslGbl_Files[ASL_FILE_INPUT].Filename);
 
     /*
      * AML Disassembly (Optional)
@@ -474,19 +474,19 @@ AslDoOneFile (
      * Open the input file. Here, this should be an ASCII source file,
      * either an ASL file or a Data Table file
      */
-    Status = FlOpenInputFile (Gbl_Files[ASL_FILE_INPUT].Filename);
+    Status = FlOpenInputFile (AslGbl_Files[ASL_FILE_INPUT].Filename);
     if (ACPI_FAILURE (Status))
     {
         AePrintErrorLog (ASL_FILE_STDERR);
         return (AE_ERROR);
     }
 
-    Gbl_OriginalInputFileSize = FlGetFileSize (ASL_FILE_INPUT);
+    AslGbl_OriginalInputFileSize = FlGetFileSize (ASL_FILE_INPUT);
 
     /* Determine input file type */
 
-    Gbl_FileType = AslDetectSourceFileType (&Gbl_Files[ASL_FILE_INPUT]);
-    if (Gbl_FileType == ASL_INPUT_TYPE_BINARY)
+    AslGbl_FileType = AslDetectSourceFileType (&AslGbl_Files[ASL_FILE_INPUT]);
+    if (AslGbl_FileType == ASL_INPUT_TYPE_BINARY)
     {
         return (AE_ERROR);
     }
@@ -495,14 +495,14 @@ AslDoOneFile (
      * If -p not specified, we will use the input filename as the
      * output filename prefix
      */
-    if (Gbl_UseDefaultAmlFilename)
+    if (AslGbl_UseDefaultAmlFilename)
     {
-        Gbl_OutputFilenamePrefix = Gbl_Files[ASL_FILE_INPUT].Filename;
+        AslGbl_OutputFilenamePrefix = AslGbl_Files[ASL_FILE_INPUT].Filename;
     }
 
     /* Open the optional output files (listings, etc.) */
 
-    Status = FlOpenMiscOutputFiles (Gbl_OutputFilenamePrefix);
+    Status = FlOpenMiscOutputFiles (AslGbl_OutputFilenamePrefix);
     if (ACPI_FAILURE (Status))
     {
         AePrintErrorLog (ASL_FILE_STDERR);
@@ -513,7 +513,7 @@ AslDoOneFile (
      * Compilation of ASL source versus DataTable source uses different
      * compiler subsystems
      */
-    switch (Gbl_FileType)
+    switch (AslGbl_FileType)
     {
     /*
      * Data Table Compilation
@@ -526,9 +526,9 @@ AslDoOneFile (
             return (Status);
         }
 
-        if (Gbl_Signature)
+        if (AslGbl_Signature)
         {
-            Gbl_Signature = NULL;
+            AslGbl_Signature = NULL;
         }
 
         /* Check if any errors occurred during compile */
@@ -576,16 +576,16 @@ AslDoOneFile (
 
         /* ASL-to-ASL+ conversion - Perform immediate disassembly */
 
-        if (Gbl_DoAslConversion)
+        if (AslGbl_DoAslConversion)
         {
             /*
              * New input file is the output AML file from above.
              * New output is from the input ASL file from above.
              */
-            Gbl_OutputFilenamePrefix = Gbl_Files[ASL_FILE_INPUT].Filename;
-        CvDbgPrint ("OUTPUTFILENAME: %s\n", Gbl_OutputFilenamePrefix);
-            Gbl_Files[ASL_FILE_INPUT].Filename =
-                Gbl_Files[ASL_FILE_AML_OUTPUT].Filename;
+            AslGbl_OutputFilenamePrefix = AslGbl_Files[ASL_FILE_INPUT].Filename;
+            CvDbgPrint ("OUTPUTFILENAME: %s\n", AslGbl_OutputFilenamePrefix);
+            AslGbl_Files[ASL_FILE_INPUT].Filename =
+                AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename;
             AcpiGbl_DisasmFlag = TRUE;
             fprintf (stderr, "\n");
             AslDoDisassembly ();
@@ -605,7 +605,7 @@ AslDoOneFile (
         /* We have what appears to be an ACPI table, disassemble it */
 
         FlCloseFile (ASL_FILE_INPUT);
-        Gbl_DoCompile = FALSE;
+        AslGbl_DoCompile = FALSE;
         AcpiGbl_DisasmFlag = TRUE;
         Status = AslDoDisassembly ();
         return (Status);
@@ -619,7 +619,7 @@ AslDoOneFile (
 
     default:
 
-        printf ("Unknown file type %X\n", Gbl_FileType);
+        printf ("Unknown file type %X\n", AslGbl_FileType);
         return (AE_ERROR);
     }
 }
@@ -646,20 +646,20 @@ AslCheckForErrorExit (
      * Return non-zero exit code if there have been errors, unless the
      * global ignore error flag has been set
      */
-    if (!Gbl_IgnoreErrors)
+    if (!AslGbl_IgnoreErrors)
     {
-        if (Gbl_ExceptionCount[ASL_ERROR] > 0)
+        if (AslGbl_ExceptionCount[ASL_ERROR] > 0)
         {
             return (AE_ERROR);
         }
 
         /* Optionally treat warnings as errors */
 
-        if (Gbl_WarningsAsErrors)
+        if (AslGbl_WarningsAsErrors)
         {
-            if ((Gbl_ExceptionCount[ASL_WARNING] > 0)  ||
-                (Gbl_ExceptionCount[ASL_WARNING2] > 0) ||
-                (Gbl_ExceptionCount[ASL_WARNING3] > 0))
+            if ((AslGbl_ExceptionCount[ASL_WARNING] > 0)  ||
+                (AslGbl_ExceptionCount[ASL_WARNING2] > 0) ||
+                (AslGbl_ExceptionCount[ASL_WARNING3] > 0))
             {
                 return (AE_ERROR);
             }
diff --git a/src/acpica/source/compiler/aslsupport.l b/src/acpica/source/compiler/aslsupport.l
index 406f2d5..8e3b5b2 100644
--- a/src/acpica/source/compiler/aslsupport.l
+++ b/src/acpica/source/compiler/aslsupport.l
@@ -212,22 +212,22 @@ AslDoLineDirective (
     char                    *Filename;
     UINT32                  i;
 
-   Gbl_HasIncludeFiles = TRUE;
+   AslGbl_HasIncludeFiles = TRUE;
 
     /* Eat the entire line that contains the #line directive */
 
-    Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
+    AslGbl_LineBufPtr = AslGbl_CurrentLineBuffer;
 
     while ((c = input()) != '\n' && c != EOF)
     {
-        *Gbl_LineBufPtr = c;
-        Gbl_LineBufPtr++;
+        *AslGbl_LineBufPtr = c;
+        AslGbl_LineBufPtr++;
     }
-    *Gbl_LineBufPtr = 0;
+    *AslGbl_LineBufPtr = 0;
 
     /* First argument is the actual line number */
 
-    Token = strtok (Gbl_CurrentLineBuffer, " ");
+    Token = strtok (AslGbl_CurrentLineBuffer, " ");
     if (!Token)
     {
         goto ResetAndExit;
@@ -239,13 +239,13 @@ AslDoLineDirective (
 
     /* Emit the appropriate number of newlines */
 
-    Gbl_CurrentColumn = 0;
-    if (LineNumber > Gbl_CurrentLineNumber)
+    AslGbl_CurrentColumn = 0;
+    if (LineNumber > AslGbl_CurrentLineNumber)
     {
-        for (i = 0; i < (LineNumber - Gbl_CurrentLineNumber); i++)
+        for (i = 0; i < (LineNumber - AslGbl_CurrentLineNumber); i++)
         {
             FlWriteFile (ASL_FILE_SOURCE_OUTPUT, "\n", 1);
-            Gbl_CurrentColumn++;
+            AslGbl_CurrentColumn++;
         }
     }
 
@@ -256,7 +256,7 @@ AslDoLineDirective (
     Token = strtok (NULL, " \"");
     if (Token)
     {
-        Filename = ACPI_ALLOCATE_ZEROED (strlen (Token) + 1);
+        Filename = UtLocalCacheCalloc (strlen (Token) + 1);
         strcpy (Filename, Token);
         FlSetFilename (Filename);
     }
@@ -267,9 +267,9 @@ ResetAndExit:
 
     /* Reset globals for a new line */
 
-    Gbl_CurrentLineOffset += Gbl_CurrentColumn;
-    Gbl_CurrentColumn = 0;
-    Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
+    AslGbl_CurrentLineOffset += AslGbl_CurrentColumn;
+    AslGbl_CurrentColumn = 0;
+    AslGbl_LineBufPtr = AslGbl_CurrentLineBuffer;
 }
 
 
@@ -295,13 +295,13 @@ AslPopInputFileStack (
     ASL_FILE_NODE           *Fnode;
 
 
-    Gbl_PreviousIncludeFilename = Gbl_Files[ASL_FILE_INPUT].Filename;
-    Fnode = Gbl_IncludeFileStack;
+    AslGbl_PreviousIncludeFilename = AslGbl_Files[ASL_FILE_INPUT].Filename;
+    Fnode = AslGbl_IncludeFileStack;
     DbgPrint (ASL_PARSE_OUTPUT,
         "\nPop InputFile Stack, Fnode %p\n", Fnode);
 
     DbgPrint (ASL_PARSE_OUTPUT,
-        "Include: Closing \"%s\"\n\n", Gbl_Files[ASL_FILE_INPUT].Filename);
+        "Include: Closing \"%s\"\n\n", AslGbl_Files[ASL_FILE_INPUT].Filename);
 
     if (!Fnode)
     {
@@ -314,12 +314,12 @@ AslPopInputFileStack (
 
     /* Update the top-of-stack */
 
-    Gbl_IncludeFileStack = Fnode->Next;
+    AslGbl_IncludeFileStack = Fnode->Next;
 
     /* Reset global line counter and filename */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename = Fnode->Filename;
-    Gbl_CurrentLineNumber = Fnode->CurrentLineNumber;
+    AslGbl_Files[ASL_FILE_INPUT].Filename = Fnode->Filename;
+    AslGbl_CurrentLineNumber = Fnode->CurrentLineNumber;
 
     /* Point the parser to the popped file */
 
@@ -362,14 +362,14 @@ AslPushInputFileStack (
     Fnode = UtLocalCalloc (sizeof (ASL_FILE_NODE));
 
     Fnode->File = yyin;
-    Fnode->Next = Gbl_IncludeFileStack;
+    Fnode->Next = AslGbl_IncludeFileStack;
     Fnode->State = YY_CURRENT_BUFFER;
-    Fnode->Filename = Gbl_Files[ASL_FILE_INPUT].Filename;
-    Fnode->CurrentLineNumber = Gbl_CurrentLineNumber;
+    Fnode->Filename = AslGbl_Files[ASL_FILE_INPUT].Filename;
+    Fnode->CurrentLineNumber = AslGbl_CurrentLineNumber;
 
     /* Push it on the stack */
 
-    Gbl_IncludeFileStack = Fnode;
+    AslGbl_IncludeFileStack = Fnode;
 
     /* Point the parser to this file */
 
@@ -381,17 +381,17 @@ AslPushInputFileStack (
 
     /* Reset the global line count and filename */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename =
+    AslGbl_Files[ASL_FILE_INPUT].Filename =
         UtLocalCacheCalloc (strlen (Filename) + 1);
 
-    strcpy (Gbl_Files[ASL_FILE_INPUT].Filename, Filename);
+    strcpy (AslGbl_Files[ASL_FILE_INPUT].Filename, Filename);
 
-    Gbl_CurrentLineNumber = 1;
+    AslGbl_CurrentLineNumber = 1;
     yyin = InputFile;
 
     /* converter: reset the comment state to STANDARD_COMMENT */
 
-    Gbl_CommentState.CommentType = STANDARD_COMMENT;
+    AslGbl_CommentState.CommentType = STANDARD_COMMENT;
 }
 
 
@@ -412,18 +412,18 @@ AslResetCurrentLineBuffer (
     void)
 {
 
-    if (Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle)
+    if (AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle)
     {
-        FlWriteFile (ASL_FILE_SOURCE_OUTPUT, Gbl_CurrentLineBuffer,
-            Gbl_LineBufPtr - Gbl_CurrentLineBuffer);
+        FlWriteFile (ASL_FILE_SOURCE_OUTPUT, AslGbl_CurrentLineBuffer,
+            AslGbl_LineBufPtr - AslGbl_CurrentLineBuffer);
     }
 
-    Gbl_CurrentLineOffset += Gbl_CurrentColumn;
-    Gbl_CurrentColumn = 0;
+    AslGbl_CurrentLineOffset += AslGbl_CurrentColumn;
+    AslGbl_CurrentColumn = 0;
 
-    Gbl_CurrentLineNumber++;
-    Gbl_LogicalLineNumber++;
-    Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
+    AslGbl_CurrentLineNumber++;
+    AslGbl_LogicalLineNumber++;
+    AslGbl_LineBufPtr = AslGbl_CurrentLineBuffer;
 }
 
 
@@ -452,7 +452,7 @@ AslInsertLineBuffer (
         return;
     }
 
-    Gbl_InputByteCount++;
+    AslGbl_InputByteCount++;
 
     /* Handle tabs. Convert to spaces */
 
@@ -460,31 +460,31 @@ AslInsertLineBuffer (
     {
         SourceChar = ' ';
         Count = ASL_SPACES_PER_TAB -
-                    (Gbl_CurrentColumn & (ASL_SPACES_PER_TAB-1));
+                    (AslGbl_CurrentColumn & (ASL_SPACES_PER_TAB-1));
     }
 
     for (i = 0; i < Count; i++)
     {
-        Gbl_CurrentColumn++;
+        AslGbl_CurrentColumn++;
 
         /* Insert the character into the line buffer */
 
-        *Gbl_LineBufPtr = (UINT8) SourceChar;
-        Gbl_LineBufPtr++;
+        *AslGbl_LineBufPtr = (UINT8) SourceChar;
+        AslGbl_LineBufPtr++;
 
-        if (Gbl_LineBufPtr >
-            (Gbl_CurrentLineBuffer + (Gbl_LineBufferSize - 1)))
+        if (AslGbl_LineBufPtr >
+            (AslGbl_CurrentLineBuffer + (AslGbl_LineBufferSize - 1)))
         {
 #if 0
             /*
              * Warning if we have split a long source line.
              * <Probably overkill>
              */
-            sprintf (MsgBuffer, "Max %u", Gbl_LineBufferSize);
+            sprintf (MsgBuffer, "Max %u", AslGbl_LineBufferSize);
             AslCommonError (ASL_WARNING, ASL_MSG_LONG_LINE,
-                Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-                Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-                Gbl_Files[ASL_FILE_INPUT].Filename, MsgBuffer);
+                AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+                AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+                AslGbl_Files[ASL_FILE_INPUT].Filename, MsgBuffer);
 #endif
 
             AslResetCurrentLineBuffer ();
@@ -532,14 +532,14 @@ count (
     {
     case 2:
 
-        TotalKeywords++;
-        TotalNamedObjects++;
+        AslGbl_TotalKeywords++;
+        AslGbl_TotalNamedObjects++;
         break;
 
     case 3:
 
-        TotalKeywords++;
-        TotalExecutableOpcodes++;
+        AslGbl_TotalKeywords++;
+        AslGbl_TotalExecutableOpcodes++;
         break;
 
     default:
@@ -550,7 +550,7 @@ count (
     for (p = yytext; *p != '\0'; p++)
     {
         AslInsertLineBuffer (*p);
-        *Gbl_LineBufPtr = 0;
+        *AslGbl_LineBufPtr = 0;
     }
 }
 
@@ -573,9 +573,9 @@ AslDoComment (
 {
     int                     c;
     int                     c1 = 0;
-    char                    *StringBuffer = MsgBuffer;
-    char                    *EndBuffer = MsgBuffer + ASL_MSG_BUFFER_SIZE;
-    ASL_COMMENT_STATE       CurrentState = Gbl_CommentState; /* to reference later on */
+    char                    *StringBuffer = AslGbl_MsgBuffer;
+    char                    *EndBuffer = AslGbl_MsgBuffer + ASL_MSG_BUFFER_SIZE;
+    ASL_COMMENT_STATE       CurrentState = AslGbl_CommentState; /* to reference later on */
 
 
     AslInsertLineBuffer ('/');
@@ -615,9 +615,9 @@ loop:
     if ((c1 == '/') && (c == '*'))
     {
         AslCommonError (ASL_WARNING, ASL_MSG_NESTED_COMMENT,
-            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-            Gbl_InputByteCount, Gbl_CurrentColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+            AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+            AslGbl_InputByteCount, AslGbl_CurrentColumn,
+            AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
     }
 
     /* Comment is closed only if the NEXT character is a slash */
@@ -654,9 +654,9 @@ EarlyEOF:
      * Premature End-Of-File
      */
     AslCommonError (ASL_ERROR, ASL_MSG_EARLY_EOF,
-        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
     return (FALSE);
 
 
@@ -665,9 +665,9 @@ BufferOverflow:
     /* Comment was too long */
 
     AslCommonError (ASL_ERROR, ASL_MSG_STRING_LENGTH,
-        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-        Gbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
+        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
     return (FALSE);
 
 }
@@ -691,9 +691,9 @@ AslDoCommentType2 (
     void)
 {
     int                     c;
-    char                    *StringBuffer = MsgBuffer;
-    char                    *EndBuffer = MsgBuffer + ASL_MSG_BUFFER_SIZE;
-    ASL_COMMENT_STATE       CurrentState = Gbl_CommentState;
+    char                    *StringBuffer = AslGbl_MsgBuffer;
+    char                    *EndBuffer = AslGbl_MsgBuffer + ASL_MSG_BUFFER_SIZE;
+    ASL_COMMENT_STATE       CurrentState = AslGbl_CommentState;
 
 
     AslInsertLineBuffer ('/');
@@ -743,9 +743,9 @@ BufferOverflow:
     /* Comment was too long */
 
     AslCommonError (ASL_ERROR, ASL_MSG_STRING_LENGTH,
-        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-        Gbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
+        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
     return (FALSE);
 
 }
@@ -767,8 +767,8 @@ static char
 AslDoStringLiteral (
     void)
 {
-    char                *StringBuffer = MsgBuffer;
-    char                *EndBuffer = MsgBuffer + ASL_MSG_BUFFER_SIZE;
+    char                *StringBuffer = AslGbl_MsgBuffer;
+    char                *EndBuffer = AslGbl_MsgBuffer + ASL_MSG_BUFFER_SIZE;
     char                *CleanString;
     int                 StringChar;
     UINT32              State = ASL_NORMAL_CHAR;
@@ -882,9 +882,9 @@ DoCharacter:
                 /* Unknown escape sequence issue warning, but use the character */
 
                 AslCommonError (ASL_WARNING, ASL_MSG_INVALID_ESCAPE,
-                    Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-                    Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-                    Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+                    AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+                    AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+                    AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
                 break;
             }
             break;
@@ -909,9 +909,9 @@ DoCharacter:
                 if ((Digit == 0) || (Digit > ACPI_ASCII_MAX))
                 {
                     AslCommonError (ASL_WARNING, ASL_MSG_INVALID_STRING,
-                        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-                        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-                        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+                        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+                        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+                        AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
                 }
                 else
                 {
@@ -953,9 +953,9 @@ DoCharacter:
                 if ((Digit == 0) || (Digit > ACPI_ASCII_MAX))
                 {
                     AslCommonError (ASL_WARNING, ASL_MSG_INVALID_STRING,
-                        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-                        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-                        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+                        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+                        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+                        AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
                 }
                 else
                 {
@@ -997,9 +997,9 @@ DoCharacter:
      * Premature End-Of-File
      */
     AslCommonError (ASL_ERROR, ASL_MSG_EARLY_EOF,
-        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
     return (FALSE);
 
 
@@ -1009,8 +1009,8 @@ CompletedString:
      */
     *StringBuffer = 0;
 
-    CleanString = UtLocalCacheCalloc (strlen (MsgBuffer) + 1);
-    strcpy (CleanString, MsgBuffer);
+    CleanString = UtLocalCacheCalloc (strlen (AslGbl_MsgBuffer) + 1);
+    strcpy (CleanString, AslGbl_MsgBuffer);
     AslCompilerlval.s = CleanString;
     return (TRUE);
 
@@ -1020,8 +1020,8 @@ BufferOverflow:
     /* Literal was too long */
 
     AslCommonError (ASL_ERROR, ASL_MSG_STRING_LENGTH,
-        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-        Gbl_CurrentLineOffset, Gbl_CurrentColumn,
-        Gbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
+        AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+        AslGbl_CurrentLineOffset, AslGbl_CurrentColumn,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
     return (FALSE);
 }
diff --git a/src/acpica/source/compiler/aslsupport.y b/src/acpica/source/compiler/aslsupport.y
index 2e1a978..575f568 100644
--- a/src/acpica/source/compiler/aslsupport.y
+++ b/src/acpica/source/compiler/aslsupport.y
@@ -181,9 +181,9 @@ AslLocalAllocate (
     if (!Mem)
     {
         AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
-            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-            Gbl_InputByteCount, Gbl_CurrentColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
+            AslGbl_CurrentLineNumber, AslGbl_LogicalLineNumber,
+            AslGbl_InputByteCount, AslGbl_CurrentColumn,
+            AslGbl_Files[ASL_FILE_INPUT].Filename, NULL);
         exit (1);
     }
 
diff --git a/src/acpica/source/compiler/asltokens.y b/src/acpica/source/compiler/asltokens.y
index ee2e25c..935ca30 100644
--- a/src/acpica/source/compiler/asltokens.y
+++ b/src/acpica/source/compiler/asltokens.y
@@ -175,7 +175,7 @@ NoEcho('
 %token <i> PARSEOP_ACCESSATTRIB_BLOCK
 %token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
 %token <i> PARSEOP_ACCESSATTRIB_BYTE
-%token <i> PARSEOP_ACCESSATTRIB_MULTIBYTE
+%token <i> PARSEOP_ACCESSATTRIB_BYTES
 %token <i> PARSEOP_ACCESSATTRIB_QUICK
 %token <i> PARSEOP_ACCESSATTRIB_RAW_BYTES
 %token <i> PARSEOP_ACCESSATTRIB_RAW_PROCESS
diff --git a/src/acpica/source/compiler/asltransform.c b/src/acpica/source/compiler/asltransform.c
index 559b4f8..3249e36 100644
--- a/src/acpica/source/compiler/asltransform.c
+++ b/src/acpica/source/compiler/asltransform.c
@@ -404,8 +404,8 @@ TrAmlTransformWalkEnd (
 
     if (Op->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)
     {
-        Op->Asl.Value.Arg = Gbl_ExternalsListHead;
-        Gbl_ExternalsListHead = NULL;
+        Op->Asl.Value.Arg = AslGbl_ExternalsListHead;
+        AslGbl_ExternalsListHead = NULL;
     }
 
     return (AE_OK);
@@ -455,12 +455,12 @@ TrTransformSubtree (
          * TBD: Zero the tempname (_T_x) count. Probably shouldn't be a global,
          * however
          */
-        Gbl_TempCount = 0;
+        AslGbl_TempCount = 0;
         break;
 
     case PARSEOP_EXTERNAL:
 
-        if (Gbl_DoExternals == TRUE)
+        if (AslGbl_DoExternals == TRUE)
         {
             ExDoExternal (Op);
         }
@@ -534,7 +534,7 @@ TrDoDefinitionBlock (
 
     /* Reset external list when starting a definition block */
 
-    Gbl_ExternalsListHead = NULL;
+    AslGbl_ExternalsListHead = NULL;
 
     Next = Op->Asl.Child;
     for (i = 0; i < 5; i++)
@@ -549,12 +549,12 @@ TrDoDefinitionBlock (
              */
             if (!ACPI_COMPARE_NAME (Next->Asl.Value.String, ACPI_SIG_DSDT))
             {
-                Gbl_ReferenceOptimizationFlag = FALSE;
+                AslGbl_ReferenceOptimizationFlag = FALSE;
             }
         }
     }
 
-    Gbl_FirstLevelInsertionNode = Next;
+    AslGbl_FirstLevelInsertionNode = Next;
 }
 
 
@@ -600,7 +600,7 @@ TrDoSwitch (
 
     /* Create a new temp name of the form _T_x */
 
-    PredicateValueName = TrAmlGetNextTempName (StartNode, &Gbl_TempCount);
+    PredicateValueName = TrAmlGetNextTempName (StartNode, &AslGbl_TempCount);
     if (!PredicateValueName)
     {
         return;
diff --git a/src/acpica/source/compiler/asltree.c b/src/acpica/source/compiler/asltree.c
index 3f62698..fc019b9 100644
--- a/src/acpica/source/compiler/asltree.c
+++ b/src/acpica/source/compiler/asltree.c
@@ -256,7 +256,7 @@ TrSetOpIntegerValue (
     if (AcpiGbl_CaptureComments &&
         (ParseOpcode == PARSEOP_METHODCALL))
     {
-        Gbl_CommentState.CaptureComments = FALSE;
+        AslGbl_CommentState.CaptureComments = FALSE;
     }
 
     return (Op);
@@ -372,7 +372,7 @@ TrSetOpCurrentFilename (
     ACPI_PARSE_OBJECT       *Op)
 {
 
-    Op->Asl.Filename = Gbl_PreviousIncludeFilename;
+    Op->Asl.Filename = AslGbl_PreviousIncludeFilename;
 }
 
 
@@ -398,9 +398,9 @@ TrSetOpIntegerWidth (
 
     /* Handle command-line version override */
 
-    if (Gbl_RevisionOverride)
+    if (AslGbl_RevisionOverride)
     {
-        AcpiUtSetIntegerWidth (Gbl_RevisionOverride);
+        AcpiUtSetIntegerWidth (AslGbl_RevisionOverride);
     }
     else
     {
@@ -434,8 +434,8 @@ TrSetOpEndLineNumber (
         return;
     }
 
-    Op->Asl.EndLine = Gbl_CurrentLineNumber;
-    Op->Asl.EndLogicalLine = Gbl_LogicalLineNumber;
+    Op->Asl.EndLine = AslGbl_CurrentLineNumber;
+    Op->Asl.EndLogicalLine = AslGbl_LogicalLineNumber;
 }
 
 
@@ -480,7 +480,7 @@ TrLinkOpChildren (
     {
     case PARSEOP_ASL_CODE:
 
-        Gbl_ParseTreeRoot = Op;
+        AslGbl_ParseTreeRoot = Op;
         Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
         DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->");
         break;
@@ -516,13 +516,13 @@ TrLinkOpChildren (
          * then is an endBlk comment. Categorize it as so and distribute
          * all regular comments to this parse op.
          */
-        if (Gbl_CommentListHead)
+        if (AslGbl_CommentListHead)
         {
-            Op->Asl.EndBlkComment = Gbl_CommentListHead;
+            Op->Asl.EndBlkComment = AslGbl_CommentListHead;
             CvDbgPrint ("EndBlk Comment for %s: %s",
-                Op->Asl.ParseOpName, Gbl_CommentListHead->Comment);
-            Gbl_CommentListHead = NULL;
-            Gbl_CommentListTail = NULL;
+                Op->Asl.ParseOpName, AslGbl_CommentListHead->Comment);
+            AslGbl_CommentListHead = NULL;
+            AslGbl_CommentListTail = NULL;
         }
     }
 
@@ -592,7 +592,7 @@ TrLinkOpChildren (
 
     if (AcpiGbl_CaptureComments)
     {
-        Gbl_CommentState.LatestParseOp = Op;
+        AslGbl_CommentState.LatestParseOp = Op;
         CvDbgPrint ("TrLinkOpChildren=====Set latest parse op to this op.\n");
     }
 
@@ -772,9 +772,9 @@ TrLinkChildOp (
     {
         if (Op1->Asl.ParseOpcode == PARSEOP_METHODCALL)
         {
-            Gbl_CommentState.CaptureComments = TRUE;
+            AslGbl_CommentState.CaptureComments = TRUE;
         }
-        Gbl_CommentState.LatestParseOp = Op1;
+        AslGbl_CommentState.LatestParseOp = Op1;
     }
 
     if (!Op1 || !Op2)
@@ -827,7 +827,7 @@ TrWalkParseTree (
     ACPI_STATUS             Status;
 
 
-    if (!Gbl_ParseTreeRoot)
+    if (!AslGbl_ParseTreeRoot)
     {
         return (AE_OK);
     }
diff --git a/src/acpica/source/compiler/aslutils.c b/src/acpica/source/compiler/aslutils.c
index 16ef1f4..d98760f 100644
--- a/src/acpica/source/compiler/aslutils.c
+++ b/src/acpica/source/compiler/aslutils.c
@@ -354,7 +354,7 @@ UtDisplaySupportedTables (
     /* All ACPI tables with the common table header */
 
     printf ("\n  Supported ACPI tables:\n");
-    for (TableData = Gbl_AcpiSupportedTables, i = 1;
+    for (TableData = AcpiGbl_SupportedTables, i = 1;
          TableData->Signature; TableData++, i++)
     {
         printf ("%8u) %s    %s\n", i,
@@ -478,7 +478,7 @@ DbgPrint (
     va_list                 Args;
 
 
-    if (!Gbl_DebugFlag)
+    if (!AslGbl_DebugFlag)
     {
         return;
     }
@@ -547,20 +547,20 @@ UtDisplaySummary (
 
     /* Summary of main input and output files */
 
-    if (Gbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
+    if (AslGbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
     {
         FlPrintFile (FileId,
             "%-14s %s - %u lines, %u bytes, %u fields\n",
             "Table Input:",
-            Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber,
-            Gbl_InputByteCount, Gbl_InputFieldCount);
+            AslGbl_Files[ASL_FILE_INPUT].Filename, AslGbl_CurrentLineNumber,
+            AslGbl_InputByteCount, AslGbl_InputFieldCount);
 
-        if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors))
+        if ((AslGbl_ExceptionCount[ASL_ERROR] == 0) || (AslGbl_IgnoreErrors))
         {
             FlPrintFile (FileId,
                 "%-14s %s - %u bytes\n",
                 "Binary Output:",
-                Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength);
+                AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename, AslGbl_TableLength);
         }
     }
     else
@@ -568,22 +568,22 @@ UtDisplaySummary (
         FlPrintFile (FileId,
             "%-14s %s - %u lines, %u bytes, %u keywords\n",
             "ASL Input:",
-            Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber,
-            Gbl_OriginalInputFileSize, TotalKeywords);
+            AslGbl_Files[ASL_FILE_INPUT].Filename, AslGbl_CurrentLineNumber,
+            AslGbl_OriginalInputFileSize, AslGbl_TotalKeywords);
 
         /* AML summary */
 
-        if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors))
+        if ((AslGbl_ExceptionCount[ASL_ERROR] == 0) || (AslGbl_IgnoreErrors))
         {
-            if (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle)
+            if (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle)
             {
                 FlPrintFile (FileId,
                     "%-14s %s - %u bytes, %u named objects, "
                     "%u executable opcodes\n",
                     "AML Output:",
-                    Gbl_Files[ASL_FILE_AML_OUTPUT].Filename,
+                    AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename,
                     FlGetFileSize (ASL_FILE_AML_OUTPUT),
-                    TotalNamedObjects, TotalExecutableOpcodes);
+                    AslGbl_TotalNamedObjects, AslGbl_TotalExecutableOpcodes);
             }
         }
     }
@@ -592,48 +592,48 @@ UtDisplaySummary (
 
     for (i = ASL_FILE_SOURCE_OUTPUT; i <= ASL_MAX_FILE_TYPE; i++)
     {
-        if (!Gbl_Files[i].Filename || !Gbl_Files[i].Handle)
+        if (!AslGbl_Files[i].Filename || !AslGbl_Files[i].Handle)
         {
             continue;
         }
 
         /* .SRC is a temp file unless specifically requested */
 
-        if ((i == ASL_FILE_SOURCE_OUTPUT) && (!Gbl_SourceOutputFlag))
+        if ((i == ASL_FILE_SOURCE_OUTPUT) && (!AslGbl_SourceOutputFlag))
         {
             continue;
         }
 
         /* .PRE is the preprocessor intermediate file */
 
-        if ((i == ASL_FILE_PREPROCESSOR)  && (!Gbl_KeepPreprocessorTempFile))
+        if ((i == ASL_FILE_PREPROCESSOR)  && (!AslGbl_KeepPreprocessorTempFile))
         {
             continue;
         }
 
         FlPrintFile (FileId, "%14s %s - %u bytes\n",
-            Gbl_Files[i].ShortDescription,
-            Gbl_Files[i].Filename, FlGetFileSize (i));
+            AslGbl_Files[i].ShortDescription,
+            AslGbl_Files[i].Filename, FlGetFileSize (i));
     }
 
     /* Error summary */
 
     FlPrintFile (FileId,
         "\nCompilation complete. %u Errors, %u Warnings, %u Remarks",
-        Gbl_ExceptionCount[ASL_ERROR],
-        Gbl_ExceptionCount[ASL_WARNING] +
-            Gbl_ExceptionCount[ASL_WARNING2] +
-            Gbl_ExceptionCount[ASL_WARNING3],
-        Gbl_ExceptionCount[ASL_REMARK]);
+        AslGbl_ExceptionCount[ASL_ERROR],
+        AslGbl_ExceptionCount[ASL_WARNING] +
+            AslGbl_ExceptionCount[ASL_WARNING2] +
+            AslGbl_ExceptionCount[ASL_WARNING3],
+        AslGbl_ExceptionCount[ASL_REMARK]);
 
-    if (Gbl_FileType != ASL_INPUT_TYPE_ASCII_DATA)
+    if (AslGbl_FileType != ASL_INPUT_TYPE_ASCII_DATA)
     {
         FlPrintFile (FileId, ", %u Optimizations",
-            Gbl_ExceptionCount[ASL_OPTIMIZATION]);
+            AslGbl_ExceptionCount[ASL_OPTIMIZATION]);
 
-        if (TotalFolds)
+        if (AslGbl_TotalFolds)
         {
-            FlPrintFile (FileId, ", %u Constants Folded", TotalFolds);
+            FlPrintFile (FileId, ", %u Constants Folded", AslGbl_TotalFolds);
         }
     }
 
@@ -670,10 +670,10 @@ UtCheckIntegerRange (
     if ((Op->Asl.Value.Integer < LowValue) ||
         (Op->Asl.Value.Integer > HighValue))
     {
-        sprintf (MsgBuffer, "0x%X, allowable: 0x%X-0x%X",
+        sprintf (AslGbl_MsgBuffer, "0x%X, allowable: 0x%X-0x%X",
             (UINT32) Op->Asl.Value.Integer, LowValue, HighValue);
 
-        AslError (ASL_ERROR, ASL_MSG_RANGE, Op, MsgBuffer);
+        AslError (ASL_ERROR, ASL_MSG_RANGE, Op, AslGbl_MsgBuffer);
         return (NULL);
     }
 
@@ -899,9 +899,9 @@ UtDoConstant (
         sprintf (ErrBuf, "While creating 64-bit constant: %s\n",
             AcpiFormatException (Status));
 
-        AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, Gbl_CurrentLineNumber,
-            Gbl_LogicalLineNumber, Gbl_CurrentLineOffset,
-            Gbl_CurrentColumn, Gbl_Files[ASL_FILE_INPUT].Filename, ErrBuf);
+        AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, AslGbl_CurrentLineNumber,
+            AslGbl_LogicalLineNumber, AslGbl_CurrentLineOffset,
+            AslGbl_CurrentColumn, AslGbl_Files[ASL_FILE_INPUT].Filename, ErrBuf);
     }
 
     return (ConvertedInteger);
diff --git a/src/acpica/source/compiler/aslwalks.c b/src/acpica/source/compiler/aslwalks.c
index 5047365..64a14e2 100644
--- a/src/acpica/source/compiler/aslwalks.c
+++ b/src/acpica/source/compiler/aslwalks.c
@@ -616,14 +616,14 @@ AnOperandTypecheckWalkEnd (
             {
                 /* No match -- this is a type mismatch error */
 
-                AnFormatBtype (StringBuffer, ThisNodeBtype);
-                AnFormatBtype (StringBuffer2, RequiredBtypes);
+                AnFormatBtype (AslGbl_StringBuffer, ThisNodeBtype);
+                AnFormatBtype (AslGbl_StringBuffer2, RequiredBtypes);
 
-                sprintf (MsgBuffer, "[%s] found, %s operator requires [%s]",
-                    StringBuffer, OpInfo->Name, StringBuffer2);
+                sprintf (AslGbl_MsgBuffer, "[%s] found, %s operator requires [%s]",
+                    AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
 
                 AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE,
-                    ArgOp, MsgBuffer);
+                    ArgOp, AslGbl_MsgBuffer);
             }
 
         NextArgument:
@@ -742,7 +742,7 @@ AnOtherSemanticAnalysisWalkBegin (
     {
     case PARSEOP_STORE:
 
-        if (Gbl_DoTypechecking)
+        if (AslGbl_DoTypechecking)
         {
             AnAnalyzeStoreOperator (Op);
         }
@@ -935,7 +935,7 @@ AnAnalyzeStoreOperator (
     case PARSEOP_INDEX:
     case PARSEOP_REFOF:
 
-        if (!Gbl_EnableReferenceTypechecking)
+        if (!AslGbl_EnableReferenceTypechecking)
         {
             return;
         }
diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
index c34ab49..5273ea8 100644
--- a/src/acpica/source/compiler/aslxref.c
+++ b/src/acpica/source/compiler/aslxref.c
@@ -237,7 +237,7 @@ XfCrossReferenceNamespace (
 
     /* Walk the entire parse tree */
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
         XfNamespaceLocateBegin, XfNamespaceLocateEnd, WalkState);
 
     ACPI_FREE (WalkState);
@@ -683,7 +683,7 @@ XfNamespaceLocateBegin (
      * The namespace is also used as a lookup table for references to resource
      * descriptors and the fields within them.
      */
-    Gbl_NsLookupCount++;
+    AslGbl_NsLookupCount++;
 
     Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
         ACPI_IMODE_EXECUTE, Flags, WalkState, &Node);
@@ -881,12 +881,12 @@ XfNamespaceLocateBegin (
 
             if (Message)
             {
-                sprintf (MsgBuffer,
+                sprintf (AslGbl_MsgBuffer,
                     "Size mismatch, Tag: %u bit%s, Field: %u bit%s",
                     TagBitLength, (TagBitLength > 1) ? "s" : "",
                     FieldBitLength, (FieldBitLength > 1) ? "s" : "");
 
-                AslError (ASL_WARNING, Message, Op, MsgBuffer);
+                AslError (ASL_WARNING, Message, Op, AslGbl_MsgBuffer);
             }
         }
 
@@ -952,10 +952,10 @@ XfNamespaceLocateBegin (
          */
         if (Node->Type != ACPI_TYPE_METHOD)
         {
-            sprintf (MsgBuffer, "%s is a %s",
+            sprintf (AslGbl_MsgBuffer, "%s is a %s",
                 Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type));
 
-            AslError (ASL_ERROR, ASL_MSG_NOT_METHOD, Op, MsgBuffer);
+            AslError (ASL_ERROR, ASL_MSG_NOT_METHOD, Op, AslGbl_MsgBuffer);
             return_ACPI_STATUS (AE_OK);
         }
 
@@ -993,16 +993,16 @@ XfNamespaceLocateBegin (
              */
             if (PassedArgs != Node->Value)
             {
-                sprintf (MsgBuffer, "%s requires %u", Op->Asl.ExternalName,
-                            Node->Value);
+                sprintf (AslGbl_MsgBuffer, "%s requires %u", Op->Asl.ExternalName,
+                    Node->Value);
 
                 if (PassedArgs < Node->Value)
                 {
-                    AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_LO, Op, MsgBuffer);
+                    AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_LO, Op, AslGbl_MsgBuffer);
                 }
                 else
                 {
-                    AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_HI, Op, MsgBuffer);
+                    AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_HI, Op, AslGbl_MsgBuffer);
                 }
             }
         }
diff --git a/src/acpica/source/compiler/aslxrefout.c b/src/acpica/source/compiler/aslxrefout.c
index 0e548ec..87a03fc 100644
--- a/src/acpica/source/compiler/aslxrefout.c
+++ b/src/acpica/source/compiler/aslxrefout.c
@@ -248,7 +248,7 @@ OtCreateXrefFile (
 
     /* Build cross-reference output file if requested */
 
-    if (!Gbl_CrossReferenceOutput)
+    if (!AslGbl_CrossReferenceOutput)
     {
         return;
     }
@@ -260,7 +260,7 @@ OtCreateXrefFile (
     OtPrintHeaders ("Part 2: Method Reference Map "
         "(Invocations of each user-defined control method)");
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         OtXrefWalkPart2, NULL, &XrefInfo);
 
     /* Cross-reference output file, part 3 (All other object refs) */
@@ -268,7 +268,7 @@ OtCreateXrefFile (
     OtPrintHeaders ("Part 3: Full Object Reference Map "
         "(Methods that reference each object in namespace");
 
-    TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         OtXrefWalkPart3, NULL, &XrefInfo);
 
     /* Cross-reference summary */
@@ -620,7 +620,7 @@ OtXrefWalkPart2 (
     XrefInfo->ThisMethodInvocations = 0;
     XrefInfo->MethodOp = Op;
 
-    (void) TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    (void) TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         OtXrefAnalysisWalkPart2, NULL, XrefInfo);
 
     if (!XrefInfo->ThisMethodInvocations)
@@ -787,7 +787,7 @@ OtXrefWalkPart3 (
     XrefInfo->ThisObjectReferences = 0;
     XrefInfo->TotalObjects = 0;
 
-    (void) TrWalkParseTree (Gbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+    (void) TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
         OtXrefAnalysisWalkPart3, NULL, XrefInfo);
 
     if (!XrefInfo->ThisObjectReferences)
diff --git a/src/acpica/source/compiler/cvcompiler.c b/src/acpica/source/compiler/cvcompiler.c
index b5ae2c8..1476449 100644
--- a/src/acpica/source/compiler/cvcompiler.c
+++ b/src/acpica/source/compiler/cvcompiler.c
@@ -193,8 +193,8 @@ CvProcessComment (
         *StringBuffer = 0;
 
         CvDbgPrint ("Multi-line comment\n");
-        CommentString = UtLocalCacheCalloc (strlen (MsgBuffer) + 1);
-        strcpy (CommentString, MsgBuffer);
+        CommentString = UtLocalCacheCalloc (strlen (AslGbl_MsgBuffer) + 1);
+        strcpy (CommentString, AslGbl_MsgBuffer);
 
         CvDbgPrint ("CommentString: %s\n", CommentString);
 
@@ -313,8 +313,8 @@ CvProcessCommentType2 (
     {
         *StringBuffer = 0; /* null terminate */
         CvDbgPrint ("Single-line comment\n");
-        CommentString = UtLocalCacheCalloc (strlen (MsgBuffer) + 1);
-        strcpy (CommentString, MsgBuffer);
+        CommentString = UtLocalCacheCalloc (strlen (AslGbl_MsgBuffer) + 1);
+        strcpy (CommentString, AslGbl_MsgBuffer);
 
         /* If this comment lies on the same line as the latest parse op,
          * assign it to that op's CommentAfter field. Saving in this field
@@ -825,53 +825,53 @@ CvProcessCommentState (
 
     if (Input != ' ')
     {
-        Gbl_CommentState.SpacesBefore = 0;
+        AslGbl_CommentState.SpacesBefore = 0;
     }
 
     switch (Input)
     {
     case '\n':
 
-        Gbl_CommentState.CommentType = ASL_COMMENT_STANDARD;
+        AslGbl_CommentState.CommentType = ASL_COMMENT_STANDARD;
         break;
 
     case ' ':
 
         /* Keep the CommentType the same */
 
-        Gbl_CommentState.SpacesBefore++;
+        AslGbl_CommentState.SpacesBefore++;
         break;
 
     case '(':
 
-        Gbl_CommentState.CommentType = ASL_COMMENT_OPEN_PAREN;
+        AslGbl_CommentState.CommentType = ASL_COMMENT_OPEN_PAREN;
         break;
 
     case ')':
 
-        Gbl_CommentState.CommentType = ASL_COMMENT_CLOSE_PAREN;
+        AslGbl_CommentState.CommentType = ASL_COMMENT_CLOSE_PAREN;
         break;
 
     case '{':
 
-        Gbl_CommentState.CommentType = ASL_COMMENT_STANDARD;
-        Gbl_CommentState.ParsingParenBraceNode = NULL;
+        AslGbl_CommentState.CommentType = ASL_COMMENT_STANDARD;
+        AslGbl_CommentState.ParsingParenBraceNode = NULL;
         CvDbgPrint ("End Parsing paren/Brace node!\n");
         break;
 
     case '}':
 
-        Gbl_CommentState.CommentType = ASL_COMMENT_CLOSE_BRACE;
+        AslGbl_CommentState.CommentType = ASL_COMMENT_CLOSE_BRACE;
         break;
 
     case ',':
 
-        Gbl_CommentState.CommentType = ASLCOMMENT_INLINE;
+        AslGbl_CommentState.CommentType = ASLCOMMENT_INLINE;
         break;
 
     default:
 
-        Gbl_CommentState.CommentType = ASLCOMMENT_INLINE;
+        AslGbl_CommentState.CommentType = ASLCOMMENT_INLINE;
         break;
     }
 }
@@ -895,18 +895,18 @@ CvAddToCommentList (
     char                    *ToAdd)
 {
 
-   if (Gbl_CommentListHead)
+   if (AslGbl_CommentListHead)
    {
-       Gbl_CommentListTail->Next = CvCommentNodeCalloc ();
-       Gbl_CommentListTail = Gbl_CommentListTail->Next;
+       AslGbl_CommentListTail->Next = CvCommentNodeCalloc ();
+       AslGbl_CommentListTail = AslGbl_CommentListTail->Next;
    }
    else
    {
-       Gbl_CommentListHead = CvCommentNodeCalloc ();
-       Gbl_CommentListTail = Gbl_CommentListHead;
+       AslGbl_CommentListHead = CvCommentNodeCalloc ();
+       AslGbl_CommentListTail = AslGbl_CommentListHead;
    }
 
-   Gbl_CommentListTail->Comment = ToAdd;
+   AslGbl_CommentListTail->Comment = ToAdd;
 }
 
 
@@ -976,8 +976,8 @@ CvPlaceComment(
     ACPI_PARSE_OBJECT       *ParenBraceNode;
 
 
-    LatestParseNode = Gbl_CommentState.LatestParseOp;
-    ParenBraceNode  = Gbl_CommentState.ParsingParenBraceNode;
+    LatestParseNode = AslGbl_CommentState.LatestParseOp;
+    ParenBraceNode  = AslGbl_CommentState.ParsingParenBraceNode;
     CvDbgPrint ("Placing comment %s for type %d\n", CommentString, Type);
 
     switch (Type)
@@ -996,8 +996,8 @@ CvPlaceComment(
 
     case ASL_COMMENT_OPEN_PAREN:
 
-        Gbl_InlineCommentBuffer =
-            CvAppendInlineComment(Gbl_InlineCommentBuffer,
+        AslGbl_InlineCommentBuffer =
+            CvAppendInlineComment(AslGbl_InlineCommentBuffer,
             CommentString);
         break;
 
diff --git a/src/acpica/source/compiler/cvdisasm.c b/src/acpica/source/compiler/cvdisasm.c
index 8150f2a..8604c03 100644
--- a/src/acpica/source/compiler/cvdisasm.c
+++ b/src/acpica/source/compiler/cvdisasm.c
@@ -522,10 +522,10 @@ CvSwitchFiles(
          * if it does not exist, then abort.
          */
         FlDeleteFile (ASL_FILE_AML_OUTPUT);
-        sprintf (MsgBuffer, "\"Cannot find %s\" - %s",
+        sprintf (AslGbl_MsgBuffer, "\"Cannot find %s\" - %s",
             Filename, strerror (errno));
         AslCommonError (ASL_ERROR, ASL_MSG_OPEN, 0, 0, 0, 0,
-            NULL, MsgBuffer);
+            NULL, AslGbl_MsgBuffer);
         AslAbort ();
     }
 
diff --git a/src/acpica/source/compiler/cvparser.c b/src/acpica/source/compiler/cvparser.c
index 747b03f..7c46c63 100644
--- a/src/acpica/source/compiler/cvparser.c
+++ b/src/acpica/source/compiler/cvparser.c
@@ -638,9 +638,9 @@ CvAddToFileTree (
             /* delete the .xxx file */
 
             FlDeleteFile (ASL_FILE_AML_OUTPUT);
-            sprintf (MsgBuffer, "\"%s\" - %s", Filename, strerror (errno));
+            sprintf (AslGbl_MsgBuffer, "\"%s\" - %s", Filename, strerror (errno));
             AslCommonError (ASL_ERROR, ASL_MSG_OPEN, 0, 0, 0, 0,
-                NULL, MsgBuffer);
+                NULL, AslGbl_MsgBuffer);
             AslAbort ();
         }
     }
diff --git a/src/acpica/source/compiler/dtcompile.c b/src/acpica/source/compiler/dtcompile.c
index 9394414..78bb7bb 100644
--- a/src/acpica/source/compiler/dtcompile.c
+++ b/src/acpica/source/compiler/dtcompile.c
@@ -184,7 +184,7 @@ DtInsertCompilerIds (
  *
  * DESCRIPTION: Main entry point for the data table compiler.
  *
- * Note: Assumes Gbl_Files[ASL_FILE_INPUT] is initialized and the file is
+ * Note: Assumes AslGbl_Files[ASL_FILE_INPUT] is initialized and the file is
  *          open at seek offset zero.
  *
  *****************************************************************************/
@@ -209,7 +209,7 @@ DtDoCompile (
 
     /* Preprocessor */
 
-    if (Gbl_PreprocessFlag)
+    if (AslGbl_PreprocessFlag)
     {
         /* Preprocessor */
 
@@ -217,7 +217,7 @@ DtDoCompile (
         PrDoPreprocess ();
         UtEndEvent (Event);
 
-        if (Gbl_PreprocessOnly)
+        if (AslGbl_PreprocessOnly)
         {
             return (AE_OK);
         }
@@ -228,7 +228,7 @@ DtDoCompile (
      * build the parse tree
      */
     Event = UtBeginEvent ("Scan and parse input file");
-    FieldList = DtScanFile (Gbl_Files[ASL_FILE_INPUT].Handle);
+    FieldList = DtScanFile (AslGbl_Files[ASL_FILE_INPUT].Handle);
     UtEndEvent (Event);
 
     /* Did the parse tree get successfully constructed? */
@@ -264,8 +264,8 @@ DtDoCompile (
 
     /* Create/open the binary output file */
 
-    Gbl_Files[ASL_FILE_AML_OUTPUT].Filename = NULL;
-    Status = FlOpenAmlOutputFile (Gbl_OutputFilenamePrefix);
+    AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename = NULL;
+    Status = FlOpenAmlOutputFile (AslGbl_OutputFilenamePrefix);
     if (ACPI_FAILURE (Status))
     {
         goto CleanupAndExit;
@@ -273,7 +273,7 @@ DtDoCompile (
 
     /* Write the binary, then the optional hex file */
 
-    DtOutputBinary (Gbl_RootTable);
+    DtOutputBinary (AslGbl_RootTable);
     HxDoHexOutput ();
     DtWriteTableToListing ();
 
@@ -319,9 +319,9 @@ DtInitialize (
 
     AcpiUtSetIntegerWidth (2); /* Set width to 64 bits */
 
-    Gbl_FieldList = NULL;
-    Gbl_RootTable = NULL;
-    Gbl_SubtableStack = NULL;
+    AslGbl_FieldList = NULL;
+    AslGbl_RootTable = NULL;
+    AslGbl_SubtableStack = NULL;
 
     sprintf (VersionString, "%X", (UINT32) ACPI_CA_VERSION);
     return (AE_OK);
@@ -353,7 +353,7 @@ DtInsertCompilerIds (
      * Don't insert current compiler ID if requested. Used for compiler
      * debug/validation only.
      */
-    if (Gbl_UseOriginalCompilerId)
+    if (AslGbl_UseOriginalCompilerId)
     {
         return;
     }
@@ -404,14 +404,14 @@ DtCompileDataTable (
     Signature = DtGetFieldValue (*FieldList);
     if (!Signature)
     {
-        sprintf (MsgBuffer, "Expected \"%s\"", "Signature");
+        sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", "Signature");
         DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME,
-            *FieldList, MsgBuffer);
+            *FieldList, AslGbl_MsgBuffer);
         return (AE_ERROR);
     }
 
-    Gbl_Signature = UtLocalCacheCalloc (strlen (Signature) + 1);
-    strcpy (Gbl_Signature, Signature);
+    AslGbl_Signature = UtLocalCacheCalloc (strlen (Signature) + 1);
+    strcpy (AslGbl_Signature, Signature);
 
     /*
      * Handle tables that don't use the common ACPI table header structure.
@@ -453,18 +453,18 @@ DtCompileDataTable (
     DtInsertCompilerIds (*FieldList);
 
     Status = DtCompileTable (FieldList, AcpiDmTableInfoHeader,
-        &Gbl_RootTable);
+        &AslGbl_RootTable);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
     }
 
-    DtPushSubtable (Gbl_RootTable);
+    DtPushSubtable (AslGbl_RootTable);
 
     /* Validate the signature via the ACPI table list */
 
     TableData = AcpiDmGetTableData (Signature);
-    if (!TableData || Gbl_CompileGeneric)
+    if (!TableData || AslGbl_CompileGeneric)
     {
         /* Unknown table signature and/or force generic compile */
 
@@ -498,7 +498,7 @@ DtCompileDataTable (
                 return (Status);
             }
 
-            DtInsertSubtable (Gbl_RootTable, Subtable);
+            DtInsertSubtable (AslGbl_RootTable, Subtable);
             DtPopSubtable ();
         }
     }
@@ -515,7 +515,7 @@ FinishHeader:
 
     DtSetTableLength ();
     AcpiTableHeader = ACPI_CAST_PTR (
-        ACPI_TABLE_HEADER, Gbl_RootTable->Buffer);
+        ACPI_TABLE_HEADER, AslGbl_RootTable->Buffer);
     DtSetTableChecksum (&AcpiTableHeader->Checksum);
 
     DtDumpFieldList (RootField);
@@ -612,21 +612,21 @@ DtCompileTable (
 
         if (!LocalField)
         {
-            sprintf (MsgBuffer, "Found NULL field - Field name \"%s\" needed",
+            sprintf (AslGbl_MsgBuffer, "Found NULL field - Field name \"%s\" needed",
                 Info->Name);
-            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, MsgBuffer);
+            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
             Status = AE_BAD_DATA;
             goto Error;
         }
 
         /* Maintain table offsets */
 
-        LocalField->TableOffset = Gbl_CurrentTableOffset;
+        LocalField->TableOffset = AslGbl_CurrentTableOffset;
         FieldLength = DtGetFieldLength (LocalField, Info);
-        Gbl_CurrentTableOffset += FieldLength;
+        AslGbl_CurrentTableOffset += FieldLength;
 
         FieldType = DtGetFieldType (Info);
-        Gbl_InputFieldCount++;
+        AslGbl_InputFieldCount++;
 
         switch (FieldType)
         {
@@ -696,9 +696,9 @@ DtCompileTable (
                 break;
 
             default:
-                sprintf (MsgBuffer, "Invalid DMT opcode: 0x%.2X",
+                sprintf (AslGbl_MsgBuffer, "Invalid DMT opcode: 0x%.2X",
                     Info->Opcode);
-                DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, MsgBuffer);
+                DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
                 Status = AE_BAD_DATA;
                 break;
             }
diff --git a/src/acpica/source/compiler/dtcompiler.h b/src/acpica/source/compiler/dtcompiler.h
index 48d308b..3b93f6b 100644
--- a/src/acpica/source/compiler/dtcompiler.h
+++ b/src/acpica/source/compiler/dtcompiler.h
@@ -238,35 +238,35 @@ typedef struct dt_subtable
 
 /* List of all field names and values from the input source */
 
-DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*Gbl_FieldList, NULL);
+DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*AslGbl_FieldList, NULL);
 
 /* List of all compiled tables and subtables */
 
-DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*Gbl_RootTable, NULL);
+DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*AslGbl_RootTable, NULL);
 
 /* Stack for subtables */
 
-DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*Gbl_SubtableStack, NULL);
+DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*AslGbl_SubtableStack, NULL);
 
 /* List for defined labels */
 
-DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*Gbl_LabelList, NULL);
+DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*AslGbl_LabelList, NULL);
 
 /* Current offset within the binary output table */
 
-DT_EXTERN UINT32            DT_INIT_GLOBAL (Gbl_CurrentTableOffset, 0);
+DT_EXTERN UINT32            DT_INIT_GLOBAL (AslGbl_CurrentTableOffset, 0);
 
 /* Local caches */
 
-DT_EXTERN UINT32            DT_INIT_GLOBAL (Gbl_SubtableCount, 0);
-DT_EXTERN ASL_CACHE_INFO    DT_INIT_GLOBAL (*Gbl_SubtableCacheList, NULL);
-DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*Gbl_SubtableCacheNext, NULL);
-DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*Gbl_SubtableCacheLast, NULL);
+DT_EXTERN UINT32            DT_INIT_GLOBAL (AslGbl_SubtableCount, 0);
+DT_EXTERN ASL_CACHE_INFO    DT_INIT_GLOBAL (*AslGbl_SubtableCacheList, NULL);
+DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*AslGbl_SubtableCacheNext, NULL);
+DT_EXTERN DT_SUBTABLE       DT_INIT_GLOBAL (*AslGbl_SubtableCacheLast, NULL);
 
-DT_EXTERN UINT32            DT_INIT_GLOBAL (Gbl_FieldCount, 0);
-DT_EXTERN ASL_CACHE_INFO    DT_INIT_GLOBAL (*Gbl_FieldCacheList, NULL);
-DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*Gbl_FieldCacheNext, NULL);
-DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*Gbl_FieldCacheLast, NULL);
+DT_EXTERN UINT32            DT_INIT_GLOBAL (AslGbl_FieldCount, 0);
+DT_EXTERN ASL_CACHE_INFO    DT_INIT_GLOBAL (*AslGbl_FieldCacheList, NULL);
+DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*AslGbl_FieldCacheNext, NULL);
+DT_EXTERN DT_FIELD          DT_INIT_GLOBAL (*AslGbl_FieldCacheLast, NULL);
 
 
 /* dtcompiler - main module */
diff --git a/src/acpica/source/compiler/dtexpress.c b/src/acpica/source/compiler/dtexpress.c
index aa68cf1..e444b5c 100644
--- a/src/acpica/source/compiler/dtexpress.c
+++ b/src/acpica/source/compiler/dtexpress.c
@@ -168,7 +168,7 @@ DtLookupLabel (
 
 /* Global used for errors during parse and related functions */
 
-DT_FIELD                *Gbl_CurrentField;
+DT_FIELD                *AslGbl_CurrentField;
 
 
 /******************************************************************************
@@ -196,7 +196,7 @@ DtResolveIntegerExpression (
     DbgPrint (ASL_DEBUG_OUTPUT, "Full Integer expression: %s\n",
         Field->Value);
 
-    Gbl_CurrentField = Field;
+    AslGbl_CurrentField = Field;
 
     Result = DtEvaluateExpression (Field->Value);
     *ReturnValue = Result;
@@ -251,7 +251,7 @@ DtDoOperator (
         if (!RightValue)
         {
             DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
-                Gbl_CurrentField, NULL);
+                AslGbl_CurrentField, NULL);
             return (0);
         }
 
@@ -263,7 +263,7 @@ DtDoOperator (
         if (!RightValue)
         {
             DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
-                Gbl_CurrentField, NULL);
+                AslGbl_CurrentField, NULL);
             return (0);
         }
 
@@ -349,7 +349,7 @@ DtDoOperator (
         /* Unknown operator */
 
         DtFatal (ASL_MSG_INVALID_EXPRESSION,
-            Gbl_CurrentField, NULL);
+            AslGbl_CurrentField, NULL);
         return (0);
     }
 
@@ -396,7 +396,7 @@ DtResolveLabel (
     if (!LabelField)
     {
         DtError (ASL_ERROR, ASL_MSG_UNKNOWN_LABEL,
-            Gbl_CurrentField, LabelString);
+            AslGbl_CurrentField, LabelString);
         return (0);
     }
 
@@ -431,7 +431,7 @@ DtDetectAllLabels (
     UINT32                  TableOffset;
 
 
-    TableOffset = Gbl_CurrentTableOffset;
+    TableOffset = AslGbl_CurrentTableOffset;
     GenericField = FieldList;
 
     /*
@@ -485,8 +485,8 @@ DtInsertLabelField (
         "DtInsertLabelField: Found Label : %s at output table offset %X\n",
         Field->Value, Field->TableOffset);
 
-    Field->NextLabel = Gbl_LabelList;
-    Gbl_LabelList = Field;
+    Field->NextLabel = AslGbl_LabelList;
+    AslGbl_LabelList = Field;
 }
 
 
@@ -519,7 +519,7 @@ DtLookupLabel (
 
     /* Search global list */
 
-    LabelField = Gbl_LabelList;
+    LabelField = AslGbl_LabelList;
     while (LabelField)
     {
         if (!strcmp (Name, LabelField->Value))
diff --git a/src/acpica/source/compiler/dtfield.c b/src/acpica/source/compiler/dtfield.c
index 50d484c..a9d56ca 100644
--- a/src/acpica/source/compiler/dtfield.c
+++ b/src/acpica/source/compiler/dtfield.c
@@ -280,8 +280,8 @@ DtCompileString (
 
     if (Length > ByteLength)
     {
-        sprintf (MsgBuffer, "Maximum %u characters", ByteLength);
-        DtError (ASL_ERROR, ASL_MSG_STRING_LENGTH, Field, MsgBuffer);
+        sprintf (AslGbl_MsgBuffer, "Maximum %u characters", ByteLength);
+        DtError (ASL_ERROR, ASL_MSG_STRING_LENGTH, Field, AslGbl_MsgBuffer);
         Length = ByteLength;
     }
 
@@ -360,8 +360,8 @@ DtCompileUuid (
     Status = AuValidateUuid (InString);
     if (ACPI_FAILURE (Status))
     {
-        sprintf (MsgBuffer, "%s", Field->Value);
-        DtNameError (ASL_ERROR, ASL_MSG_INVALID_UUID, Field, MsgBuffer);
+        sprintf (AslGbl_MsgBuffer, "%s", Field->Value);
+        DtNameError (ASL_ERROR, ASL_MSG_INVALID_UUID, Field, AslGbl_MsgBuffer);
     }
     else
     {
@@ -462,9 +462,9 @@ DtCompileInteger (
 
     if (Value > MaxValue)
     {
-        sprintf (MsgBuffer, "%8.8X%8.8X - max %u bytes",
+        sprintf (AslGbl_MsgBuffer, "%8.8X%8.8X - max %u bytes",
             ACPI_FORMAT_UINT64 (Value), ByteLength);
-        DtError (ASL_ERROR, ASL_MSG_INTEGER_SIZE, Field, MsgBuffer);
+        DtError (ASL_ERROR, ASL_MSG_INTEGER_SIZE, Field, AslGbl_MsgBuffer);
     }
 
     memcpy (Buffer, &Value, ByteLength);
@@ -712,8 +712,8 @@ DtCompileFlag (
 
     if (Value >= ((UINT64) 1 << BitLength))
     {
-        sprintf (MsgBuffer, "Maximum %u bit", BitLength);
-        DtError (ASL_ERROR, ASL_MSG_FLAG_VALUE, Field, MsgBuffer);
+        sprintf (AslGbl_MsgBuffer, "Maximum %u bit", BitLength);
+        DtError (ASL_ERROR, ASL_MSG_FLAG_VALUE, Field, AslGbl_MsgBuffer);
         Value = 0;
     }
 
diff --git a/src/acpica/source/compiler/dtio.c b/src/acpica/source/compiler/dtio.c
index 0ba15b4..b15d3b9 100644
--- a/src/acpica/source/compiler/dtio.c
+++ b/src/acpica/source/compiler/dtio.c
@@ -209,7 +209,7 @@ DtDumpSubtableTree (
 #define DT_MERGE_LINES              6
 #define DT_ESCAPE_SEQUENCE          7
 
-static UINT32               Gbl_NextLineOffset;
+static UINT32               AslGbl_NextLineOffset;
 
 
 /******************************************************************************
@@ -317,7 +317,7 @@ DtLinkField (
     DT_FIELD                *Next;
 
 
-    Prev = Next = Gbl_FieldList;
+    Prev = Next = AslGbl_FieldList;
 
     while (Next)
     {
@@ -331,7 +331,7 @@ DtLinkField (
     }
     else
     {
-        Gbl_FieldList = Field;
+        AslGbl_FieldList = Field;
     }
 }
 
@@ -507,8 +507,8 @@ DtParseLine (
  * Handles both slash-asterisk and slash-slash comments.
  * Also, quoted strings, but no escapes within.
  *
- * Line is returned in Gbl_CurrentLineBuffer.
- * Line number in original file is returned in Gbl_CurrentLineNumber.
+ * Line is returned in AslGbl_CurrentLineBuffer.
+ * Line number in original file is returned in AslGbl_CurrentLineNumber.
  *
  *****************************************************************************/
 
@@ -524,14 +524,14 @@ DtGetNextLine (
     int                     c;
 
 
-    memset (Gbl_CurrentLineBuffer, 0, Gbl_LineBufferSize);
+    memset (AslGbl_CurrentLineBuffer, 0, AslGbl_LineBufferSize);
     for (i = 0; ;)
     {
         /*
          * If line is too long, expand the line buffers. Also increases
-         * Gbl_LineBufferSize.
+         * AslGbl_LineBufferSize.
          */
-        if (i >= Gbl_LineBufferSize)
+        if (i >= AslGbl_LineBufferSize)
         {
             UtExpandLineBuffers ();
         }
@@ -576,7 +576,7 @@ DtGetNextLine (
 
             /* Normal text, insert char into line buffer */
 
-            Gbl_CurrentLineBuffer[i] = (char) c;
+            AslGbl_CurrentLineBuffer[i] = (char) c;
             switch (c)
             {
             case '/':
@@ -601,9 +601,9 @@ DtGetNextLine (
 
             case '\n':
 
-                CurrentLineOffset = Gbl_NextLineOffset;
-                Gbl_NextLineOffset = (UINT32) ftell (Handle);
-                Gbl_CurrentLineNumber++;
+                CurrentLineOffset = AslGbl_NextLineOffset;
+                AslGbl_NextLineOffset = (UINT32) ftell (Handle);
+                AslGbl_CurrentLineNumber++;
 
                 /*
                  * Exit if line is complete. Ignore empty lines (only \n)
@@ -611,12 +611,12 @@ DtGetNextLine (
                  */
                 if ((i != 0) && LineNotAllBlanks)
                 {
-                    if ((i + 1) >= Gbl_LineBufferSize)
+                    if ((i + 1) >= AslGbl_LineBufferSize)
                     {
                         UtExpandLineBuffers ();
                     }
 
-                    Gbl_CurrentLineBuffer[i+1] = 0; /* Terminate string */
+                    AslGbl_CurrentLineBuffer[i+1] = 0; /* Terminate string */
                     return (CurrentLineOffset);
                 }
 
@@ -642,7 +642,7 @@ DtGetNextLine (
 
             /* Insert raw chars until end of quoted string */
 
-            Gbl_CurrentLineBuffer[i] = (char) c;
+            AslGbl_CurrentLineBuffer[i] = (char) c;
             i++;
 
             switch (c)
@@ -663,7 +663,7 @@ DtGetNextLine (
                 {
                     AcpiOsPrintf (
                         "ERROR at line %u: Unterminated quoted string\n",
-                        Gbl_CurrentLineNumber++);
+                        AslGbl_CurrentLineNumber++);
                     State = DT_NORMAL_TEXT;
                 }
                 break;
@@ -678,7 +678,7 @@ DtGetNextLine (
 
             /* Just copy the escaped character. TBD: sufficient for table compiler? */
 
-            Gbl_CurrentLineBuffer[i] = (char) c;
+            AslGbl_CurrentLineBuffer[i] = (char) c;
             i++;
             State = DT_START_QUOTED_STRING;
             break;
@@ -702,12 +702,12 @@ DtGetNextLine (
             default:    /* Not a comment */
 
                 i++;    /* Save the preceding slash */
-                if (i >= Gbl_LineBufferSize)
+                if (i >= AslGbl_LineBufferSize)
                 {
                     UtExpandLineBuffers ();
                 }
 
-                Gbl_CurrentLineBuffer[i] = (char) c;
+                AslGbl_CurrentLineBuffer[i] = (char) c;
                 i++;
                 State = DT_NORMAL_TEXT;
                 break;
@@ -722,8 +722,8 @@ DtGetNextLine (
             {
             case '\n':
 
-                Gbl_NextLineOffset = (UINT32) ftell (Handle);
-                Gbl_CurrentLineNumber++;
+                AslGbl_NextLineOffset = (UINT32) ftell (Handle);
+                AslGbl_CurrentLineNumber++;
                 break;
 
             case '*':
@@ -763,9 +763,9 @@ DtGetNextLine (
 
             case '\n':
 
-                CurrentLineOffset = Gbl_NextLineOffset;
-                Gbl_NextLineOffset = (UINT32) ftell (Handle);
-                Gbl_CurrentLineNumber++;
+                CurrentLineOffset = AslGbl_NextLineOffset;
+                AslGbl_NextLineOffset = (UINT32) ftell (Handle);
+                AslGbl_CurrentLineNumber++;
                 break;
 
             case '*':
@@ -800,14 +800,14 @@ DtGetNextLine (
                  * immediately by a newline. Insert a space between the
                  * lines (overwrite the backslash)
                  */
-                Gbl_CurrentLineBuffer[i] = ' ';
+                AslGbl_CurrentLineBuffer[i] = ' ';
                 i++;
 
                 /* Ignore newline, this will merge the lines */
 
-                CurrentLineOffset = Gbl_NextLineOffset;
-                Gbl_NextLineOffset = (UINT32) ftell (Handle);
-                Gbl_CurrentLineNumber++;
+                CurrentLineOffset = AslGbl_NextLineOffset;
+                AslGbl_NextLineOffset = (UINT32) ftell (Handle);
+                AslGbl_CurrentLineNumber++;
                 State = DT_NORMAL_TEXT;
             }
             break;
@@ -830,7 +830,7 @@ DtGetNextLine (
  * RETURN:      Pointer to start of the constructed parse tree.
  *
  * DESCRIPTION: Scan source file, link all field names and values
- *              to the global parse tree: Gbl_FieldList
+ *              to the global parse tree: AslGbl_FieldList
  *
  *****************************************************************************/
 
@@ -847,25 +847,25 @@ DtScanFile (
 
     /* Get the file size */
 
-    Gbl_InputByteCount = CmGetFileSize (Handle);
-    if (Gbl_InputByteCount == ACPI_UINT32_MAX)
+    AslGbl_InputByteCount = CmGetFileSize (Handle);
+    if (AslGbl_InputByteCount == ACPI_UINT32_MAX)
     {
         AslAbort ();
     }
 
-    Gbl_CurrentLineNumber = 0;
-    Gbl_CurrentLineOffset = 0;
-    Gbl_NextLineOffset = 0;
+    AslGbl_CurrentLineNumber = 0;
+    AslGbl_CurrentLineOffset = 0;
+    AslGbl_NextLineOffset = 0;
 
     /* Scan line-by-line */
 
     while ((Offset = DtGetNextLine (Handle, 0)) != ASL_EOF)
     {
         ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Line %2.2u/%4.4X - %s",
-            Gbl_CurrentLineNumber, Offset, Gbl_CurrentLineBuffer));
+            AslGbl_CurrentLineNumber, Offset, AslGbl_CurrentLineBuffer));
 
-        Status = DtParseLine (Gbl_CurrentLineBuffer,
-            Gbl_CurrentLineNumber, Offset);
+        Status = DtParseLine (AslGbl_CurrentLineBuffer,
+            AslGbl_CurrentLineNumber, Offset);
         if (Status == AE_NOT_FOUND)
         {
             break;
@@ -874,8 +874,8 @@ DtScanFile (
 
     /* Dump the parse tree if debug enabled */
 
-    DtDumpFieldList (Gbl_FieldList);
-    return (Gbl_FieldList);
+    DtDumpFieldList (AslGbl_FieldList);
+    return (AslGbl_FieldList);
 }
 
 
@@ -932,8 +932,8 @@ DtOutputBinary (
 
     DtWalkTableTree (RootTable, DtWriteBinary, NULL, NULL);
 
-    Gbl_TableLength = CmGetFileSize (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle);
-    if (Gbl_TableLength == ACPI_UINT32_MAX)
+    AslGbl_TableLength = CmGetFileSize (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
+    if (AslGbl_TableLength == ACPI_UINT32_MAX)
     {
         AslAbort ();
     }
@@ -1048,7 +1048,7 @@ DtDumpFieldList (
     DT_FIELD                *Field)
 {
 
-    if (!Gbl_DebugFlag || !Field)
+    if (!AslGbl_DebugFlag || !Field)
     {
         return;
     }
@@ -1132,7 +1132,7 @@ DtDumpSubtableList (
     void)
 {
 
-    if (!Gbl_DebugFlag || !Gbl_RootTable)
+    if (!AslGbl_DebugFlag || !AslGbl_RootTable)
     {
         return;
     }
@@ -1141,11 +1141,11 @@ DtDumpSubtableList (
         "Subtable Info:\n"
         "Depth                      Name Length   TotalLen LenSize  Flags    "
         "This     Parent   Child    Peer\n\n");
-    DtWalkTableTree (Gbl_RootTable, DtDumpSubtableInfo, NULL, NULL);
+    DtWalkTableTree (AslGbl_RootTable, DtDumpSubtableInfo, NULL, NULL);
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "\nSubtable Tree: (Depth, Name, Subtable, Length, TotalLength)\n\n");
-    DtWalkTableTree (Gbl_RootTable, DtDumpSubtableTree, NULL, NULL);
+    DtWalkTableTree (AslGbl_RootTable, DtDumpSubtableTree, NULL, NULL);
 
     DbgPrint (ASL_DEBUG_OUTPUT, "\n");
 }
@@ -1174,7 +1174,7 @@ DtWriteFieldToListing (
     UINT8                   FileByte;
 
 
-    if (!Gbl_ListingFlag || !Field)
+    if (!AslGbl_ListingFlag || !Field)
     {
         return;
     }
@@ -1232,24 +1232,24 @@ DtWriteTableToListing (
     UINT8                   *Buffer;
 
 
-    if (!Gbl_ListingFlag)
+    if (!AslGbl_ListingFlag)
     {
         return;
     }
 
     /* Read the entire table from the output file */
 
-    Buffer = UtLocalCalloc (Gbl_TableLength);
+    Buffer = UtLocalCalloc (AslGbl_TableLength);
     FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
-    FlReadFile (ASL_FILE_AML_OUTPUT, Buffer, Gbl_TableLength);
+    FlReadFile (ASL_FILE_AML_OUTPUT, Buffer, AslGbl_TableLength);
 
     /* Dump the raw table data */
 
-    AcpiOsRedirectOutput (Gbl_Files[ASL_FILE_LISTING_OUTPUT].Handle);
+    AcpiOsRedirectOutput (AslGbl_Files[ASL_FILE_LISTING_OUTPUT].Handle);
 
     AcpiOsPrintf ("\n%s: Length %d (0x%X)\n\n",
-        ACPI_RAW_TABLE_DATA_HEADER, Gbl_TableLength, Gbl_TableLength);
-    AcpiUtDumpBuffer (Buffer, Gbl_TableLength, DB_BYTE_DISPLAY, 0);
+        ACPI_RAW_TABLE_DATA_HEADER, AslGbl_TableLength, AslGbl_TableLength);
+    AcpiUtDumpBuffer (Buffer, AslGbl_TableLength, DB_BYTE_DISPLAY, 0);
 
     AcpiOsRedirectOutput (stdout);
     ACPI_FREE (Buffer);
diff --git a/src/acpica/source/compiler/dtparser.y b/src/acpica/source/compiler/dtparser.y
index 1c44571..a1ac193 100644
--- a/src/acpica/source/compiler/dtparser.y
+++ b/src/acpica/source/compiler/dtparser.y
@@ -166,7 +166,7 @@ int                         DtParserlex (void);
 int                         DtParserparse (void);
 void                        DtParsererror (char const *msg);
 extern char                 *DtParsertext;
-extern DT_FIELD             *Gbl_CurrentField;
+extern DT_FIELD             *AslGbl_CurrentField;
 
 UINT64                      DtParserResult; /* Expression return value */
 
@@ -321,7 +321,7 @@ DtParsererror (
     char const              *Message)
 {
     DtError (ASL_ERROR, ASL_MSG_SYNTAX,
-        Gbl_CurrentField, (char *) Message);
+        AslGbl_CurrentField, (char *) Message);
 }
 
 
@@ -381,7 +381,7 @@ DtEvaluateExpression (
     if (DtInitLexer (ExprString))
     {
         DtError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL,
-            Gbl_CurrentField, "Could not initialize lexer");
+            AslGbl_CurrentField, "Could not initialize lexer");
         return (0);
     }
 
diff --git a/src/acpica/source/compiler/dtsubtable.c b/src/acpica/source/compiler/dtsubtable.c
index f2730c5..54e3138 100644
--- a/src/acpica/source/compiler/dtsubtable.c
+++ b/src/acpica/source/compiler/dtsubtable.c
@@ -261,8 +261,8 @@ DtPushSubtable (
     DT_SUBTABLE             *Subtable)
 {
 
-    Subtable->StackTop = Gbl_SubtableStack;
-    Gbl_SubtableStack = Subtable;
+    Subtable->StackTop = AslGbl_SubtableStack;
+    AslGbl_SubtableStack = Subtable;
 }
 
 
@@ -285,11 +285,11 @@ DtPopSubtable (
     DT_SUBTABLE             *Subtable;
 
 
-    Subtable = Gbl_SubtableStack;
+    Subtable = AslGbl_SubtableStack;
 
     if (Subtable)
     {
-        Gbl_SubtableStack = Subtable->StackTop;
+        AslGbl_SubtableStack = Subtable->StackTop;
     }
 }
 
@@ -311,7 +311,7 @@ DtPeekSubtable (
     void)
 {
 
-    return (Gbl_SubtableStack);
+    return (AslGbl_SubtableStack);
 }
 
 
@@ -455,9 +455,9 @@ DtGetSubtableLength (
 Error:
     if (!Field)
     {
-        sprintf (MsgBuffer, "Found NULL field - Field name \"%s\" needed",
+        sprintf (AslGbl_MsgBuffer, "Found NULL field - Field name \"%s\" needed",
             Info->Name);
-        DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, MsgBuffer);
+        DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
     }
 
     return (ASL_EOF);
diff --git a/src/acpica/source/compiler/dttable.c b/src/acpica/source/compiler/dttable.c
index 44efbee..8a937c0 100644
--- a/src/acpica/source/compiler/dttable.c
+++ b/src/acpica/source/compiler/dttable.c
@@ -182,13 +182,13 @@ DtCompileRsdp (
     /* Compile the "common" RSDP (ACPI 1.0) */
 
     Status = DtCompileTable (PFieldList, AcpiDmTableInfoRsdp1,
-        &Gbl_RootTable);
+        &AslGbl_RootTable);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
     }
 
-    Rsdp = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Gbl_RootTable->Buffer);
+    Rsdp = ACPI_CAST_PTR (ACPI_TABLE_RSDP, AslGbl_RootTable->Buffer);
     DtSetTableChecksum (&Rsdp->Checksum);
 
     if (Rsdp->Revision > 0)
@@ -202,12 +202,12 @@ DtCompileRsdp (
             return (Status);
         }
 
-        DtInsertSubtable (Gbl_RootTable, Subtable);
+        DtInsertSubtable (AslGbl_RootTable, Subtable);
 
         /* Set length and extended checksum for entire RSDP */
 
         RsdpExtension = ACPI_CAST_PTR (ACPI_RSDP_EXTENSION, Subtable->Buffer);
-        RsdpExtension->Length = Gbl_RootTable->Length + Subtable->Length;
+        RsdpExtension->Length = AslGbl_RootTable->Length + Subtable->Length;
         DtSetTableChecksum (&RsdpExtension->ExtendedChecksum);
     }
 
@@ -326,7 +326,7 @@ DtCompileFacs (
 
 
     Status = DtCompileTable (PFieldList, AcpiDmTableInfoFacs,
-        &Gbl_RootTable);
+        &AslGbl_RootTable);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
@@ -340,6 +340,6 @@ DtCompileFacs (
     DtCreateSubtable (ReservedBuffer, ReservedSize, &Subtable);
 
     ACPI_FREE (ReservedBuffer);
-    DtInsertSubtable (Gbl_RootTable, Subtable);
+    DtInsertSubtable (AslGbl_RootTable, Subtable);
     return (AE_OK);
 }
diff --git a/src/acpica/source/compiler/dttable2.c b/src/acpica/source/compiler/dttable2.c
index 785bc7a..3f97037 100644
--- a/src/acpica/source/compiler/dttable2.c
+++ b/src/acpica/source/compiler/dttable2.c
@@ -1288,13 +1288,13 @@ DtCompileS3pt (
 
 
     Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt,
-        &Gbl_RootTable);
+        &AslGbl_RootTable);
     if (ACPI_FAILURE (Status))
     {
         return (Status);
     }
 
-    DtPushSubtable (Gbl_RootTable);
+    DtPushSubtable (AslGbl_RootTable);
 
     while (*PFieldList)
     {
@@ -2274,10 +2274,10 @@ DtCompileGeneric (
         Info = DtGetGenericTableInfo ((*PFieldList)->Name);
         if (!Info)
         {
-            sprintf (MsgBuffer, "Generic data type \"%s\" not found",
+            sprintf (AslGbl_MsgBuffer, "Generic data type \"%s\" not found",
                 (*PFieldList)->Name);
             DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME,
-                (*PFieldList), MsgBuffer);
+                (*PFieldList), AslGbl_MsgBuffer);
 
             *PFieldList = (*PFieldList)->Next;
             continue;
@@ -2299,10 +2299,10 @@ DtCompileGeneric (
 
             if (Status == AE_NOT_FOUND)
             {
-                sprintf (MsgBuffer, "Generic data type \"%s\" not found",
+                sprintf (AslGbl_MsgBuffer, "Generic data type \"%s\" not found",
                     (*PFieldList)->Name);
                 DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME,
-                    (*PFieldList), MsgBuffer);
+                    (*PFieldList), AslGbl_MsgBuffer);
             }
         }
     }
diff --git a/src/acpica/source/compiler/dttemplate.c b/src/acpica/source/compiler/dttemplate.c
index 89a145a..46f5672 100644
--- a/src/acpica/source/compiler/dttemplate.c
+++ b/src/acpica/source/compiler/dttemplate.c
@@ -546,7 +546,7 @@ DtCreateOneTemplate (
 
         AcpiOsPrintf (" (static data table)\n");
 
-        if (Gbl_VerboseTemplates)
+        if (AslGbl_VerboseTemplates)
         {
             AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength]"
                 "  FieldName : HexFieldValue\n */\n\n");
diff --git a/src/acpica/source/compiler/dtutils.c b/src/acpica/source/compiler/dtutils.c
index fe079ea..4018a9b 100644
--- a/src/acpica/source/compiler/dtutils.c
+++ b/src/acpica/source/compiler/dtutils.c
@@ -201,7 +201,7 @@ DtError (
             FieldObject->Line,
             FieldObject->ByteOffset,
             FieldObject->Column,
-            Gbl_Files[ASL_FILE_INPUT].Filename, ExtraMessage);
+            AslGbl_Files[ASL_FILE_INPUT].Filename, ExtraMessage);
     }
     else
     {
@@ -239,7 +239,7 @@ DtNameError (
     case ASL_WARNING2:
     case ASL_WARNING3:
 
-        if (Gbl_WarningLevel < Level)
+        if (AslGbl_WarningLevel < Level)
         {
             return;
         }
@@ -257,7 +257,7 @@ DtNameError (
             FieldObject->Line,
             FieldObject->ByteOffset,
             FieldObject->NameColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, ExtraMessage);
+            AslGbl_Files[ASL_FILE_INPUT].Filename, ExtraMessage);
     }
     else
     {
@@ -640,8 +640,8 @@ DtGetFieldLength (
         else
         {   /* At this point, this is a fatal error */
 
-            sprintf (MsgBuffer, "Expected \"%s\"", Info->Name);
-            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, MsgBuffer);
+            sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", Info->Name);
+            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
             return (0);
         }
         break;
@@ -672,8 +672,8 @@ DtGetFieldLength (
         else
         {   /* At this point, this is a fatal error */
 
-            sprintf (MsgBuffer, "Expected \"%s\"", Info->Name);
-            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, MsgBuffer);
+            sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", Info->Name);
+            DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
             return (0);
         }
         break;
@@ -768,7 +768,7 @@ DtSetTableChecksum (
     UINT8                   OldSum;
 
 
-    DtWalkTableTree (Gbl_RootTable, DtSum, NULL, &Checksum);
+    DtWalkTableTree (AslGbl_RootTable, DtSum, NULL, &Checksum);
 
     OldSum = *ChecksumPointer;
     Checksum = (UINT8) (Checksum - OldSum);
@@ -800,7 +800,7 @@ DtSetTableLength (
     DT_SUBTABLE             *ChildTable;
 
 
-    ParentTable = Gbl_RootTable;
+    ParentTable = AslGbl_RootTable;
     ChildTable = NULL;
 
     if (!ParentTable)
@@ -838,7 +838,7 @@ DtSetTableLength (
         {
             ChildTable = ParentTable;
 
-            if (ChildTable == Gbl_RootTable)
+            if (ChildTable == AslGbl_RootTable)
             {
                 break;
             }
@@ -907,7 +907,7 @@ DtWalkTableTree (
         else
         {
             ChildTable = ParentTable;
-            if (ChildTable == Gbl_RootTable)
+            if (ChildTable == AslGbl_RootTable)
             {
                 break;
             }
diff --git a/src/acpica/source/compiler/fwts_iasl_interface.c b/src/acpica/source/compiler/fwts_iasl_interface.c
index 5fa7d1d..2987723 100644
--- a/src/acpica/source/compiler/fwts_iasl_interface.c
+++ b/src/acpica/source/compiler/fwts_iasl_interface.c
@@ -50,18 +50,18 @@ static void init_asl_core(void)
 	AcpiGbl_IntegerByteWidth = 8;
 
 	for (i = 0; i < ASL_NUM_FILES; i++) {
-		Gbl_Files[i].Handle = NULL;
-		Gbl_Files[i].Filename = NULL;
+		AslGbl_Files[i].Handle = NULL;
+		AslGbl_Files[i].Filename = NULL;
 	}
 
-	Gbl_Files[ASL_FILE_STDOUT].Handle   = stdout;
-	Gbl_Files[ASL_FILE_STDOUT].Filename = "STDOUT";
-	Gbl_Files[ASL_FILE_STDERR].Handle   = stdout;
-	Gbl_Files[ASL_FILE_STDERR].Filename = "STDOUT";
+	AslGbl_Files[ASL_FILE_STDOUT].Handle   = stdout;
+	AslGbl_Files[ASL_FILE_STDOUT].Filename = "STDOUT";
+	AslGbl_Files[ASL_FILE_STDERR].Handle   = stdout;
+	AslGbl_Files[ASL_FILE_STDERR].Filename = "STDOUT";
 
-	Gbl_LineBufferSize = 1024;
-	Gbl_CurrentLineBuffer = NULL;
-	Gbl_MainTokenBuffer = NULL;
+	AslGbl_LineBufferSize = 1024;
+	AslGbl_CurrentLineBuffer = NULL;
+	AslGbl_MainTokenBuffer = NULL;
 	UtExpandLineBuffers();
 }
 
@@ -93,15 +93,15 @@ int fwts_iasl_disassemble_aml(
 		init_asl_core();
 
 		/* Setup ACPICA disassembler globals */
-		Gbl_WarningLevel = ASL_WARNING3;
-		Gbl_IgnoreErrors = TRUE;
+		AslGbl_WarningLevel = ASL_WARNING3;
+		AslGbl_IgnoreErrors = TRUE;
 		AcpiGbl_DisasmFlag = TRUE;
-		Gbl_DoCompile = FALSE;
-		Gbl_OutputFilenamePrefix = (char*)outputfile;
-		Gbl_UseDefaultAmlFilename = FALSE;
+		AslGbl_DoCompile = FALSE;
+		AslGbl_OutputFilenamePrefix = (char*)outputfile;
+		AslGbl_UseDefaultAmlFilename = FALSE;
 		AcpiGbl_CstyleDisassembly = FALSE;
 		AcpiGbl_DmOpt_Verbose = FALSE;
-		UtConvertBackslashes (Gbl_OutputFilenamePrefix);
+		UtConvertBackslashes (AslGbl_OutputFilenamePrefix);
 
 		/* Do we need to include external tables in? */
 		if (use_externals) {
@@ -234,11 +234,11 @@ int fwts_iasl_assemble_aml(const char *source, char **stdout_output, char **stde
 
 		/* Setup ACPICA compiler globals */
 		AcpiGbl_DisasmFlag = FALSE;
-		Gbl_DoCompile = TRUE;
-		Gbl_PreprocessFlag = TRUE;
-		Gbl_UseDefaultAmlFilename = FALSE;
-		Gbl_OutputFilenamePrefix = (char*)source;
-		UtConvertBackslashes (Gbl_OutputFilenamePrefix);
+		AslGbl_DoCompile = TRUE;
+		AslGbl_PreprocessFlag = TRUE;
+		AslGbl_UseDefaultAmlFilename = FALSE;
+		AslGbl_OutputFilenamePrefix = (char*)source;
+		UtConvertBackslashes (AslGbl_OutputFilenamePrefix);
 
 		(void)AslDoOneFile((char *)source);
 
@@ -280,11 +280,11 @@ const char *fwts_iasl_exception_level__(uint8_t level)
 {
 	const char *str;
 
-	bool tmp = Gbl_VerboseErrors;
+	bool tmp = AslGbl_VerboseErrors;
 
-	Gbl_VerboseErrors = true;
+	AslGbl_VerboseErrors = true;
 	str = AeDecodeExceptionLevel((UINT8)level);
-	Gbl_VerboseErrors = tmp;
+	AslGbl_VerboseErrors = tmp;
 
 	return str;
 }
diff --git a/src/acpica/source/compiler/preprocess.h b/src/acpica/source/compiler/preprocess.h
index 446fdaf..9ae7cf0 100644
--- a/src/acpica/source/compiler/preprocess.h
+++ b/src/acpica/source/compiler/preprocess.h
@@ -183,7 +183,7 @@
 
 #define PR_PREFIX_ID            "Pr(%.4u) - "             /* Used for debug output */
 
-#define THIS_TOKEN_OFFSET(t)    ((t-Gbl_MainTokenBuffer) + 1)
+#define THIS_TOKEN_OFFSET(t)    ((AslGbl_MainTokenBuffer - t) + 1)
 
 
 /*
@@ -247,21 +247,22 @@ typedef struct directive_info
 /*
  * Globals
  */
+PR_EXTERN char                  PR_INIT_GLOBAL (*AslGbl_MainTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
+PR_EXTERN char                  PR_INIT_GLOBAL (*AslGbl_MacroTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
+PR_EXTERN char                  PR_INIT_GLOBAL (*AslGbl_ExpressionTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
+
+PR_EXTERN UINT32                AslGbl_PreprocessorLineNumber;
+PR_EXTERN int                   AslGbl_IfDepth;
+PR_EXTERN PR_FILE_NODE          *AslGbl_InputFileList;
+PR_EXTERN BOOLEAN               PR_INIT_GLOBAL (AslGbl_PreprocessorError, FALSE);
+PR_EXTERN BOOLEAN               PR_INIT_GLOBAL (AslGbl_IgnoringThisCodeBlock, FALSE);
+PR_EXTERN PR_DEFINE_INFO        PR_INIT_GLOBAL (*AslGbl_DefineList, NULL);
+PR_EXTERN DIRECTIVE_INFO        PR_INIT_GLOBAL (*AslGbl_DirectiveStack, NULL);
+
 #if 0 /* TBD for macros */
 PR_EXTERN char                  PR_INIT_GLOBAL (*XXXEvalBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
 #endif
 
-PR_EXTERN char                  PR_INIT_GLOBAL (*Gbl_MainTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
-PR_EXTERN char                  PR_INIT_GLOBAL (*Gbl_MacroTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
-PR_EXTERN char                  PR_INIT_GLOBAL (*Gbl_ExpressionTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
-
-PR_EXTERN UINT32                Gbl_PreprocessorLineNumber;
-PR_EXTERN int                   Gbl_IfDepth;
-PR_EXTERN PR_FILE_NODE          *Gbl_InputFileList;
-PR_EXTERN PR_DEFINE_INFO        PR_INIT_GLOBAL (*Gbl_DefineList, NULL);
-PR_EXTERN BOOLEAN               PR_INIT_GLOBAL (Gbl_PreprocessorError, FALSE);
-PR_EXTERN BOOLEAN               PR_INIT_GLOBAL (Gbl_IgnoringThisCodeBlock, FALSE);
-PR_EXTERN DIRECTIVE_INFO        PR_INIT_GLOBAL (*Gbl_DirectiveStack, NULL);
 
 /*
  * prscan - Preprocessor entry
diff --git a/src/acpica/source/compiler/prexpress.c b/src/acpica/source/compiler/prexpress.c
index 390aa21..0d4fcfd 100644
--- a/src/acpica/source/compiler/prexpress.c
+++ b/src/acpica/source/compiler/prexpress.c
@@ -223,8 +223,8 @@ PrExpandMacros (
     int                     OffsetAdjust;
 
 
-    strcpy (Gbl_ExpressionTokenBuffer, Gbl_CurrentLineBuffer);
-    Token = PrGetNextToken (Gbl_ExpressionTokenBuffer, PR_EXPR_SEPARATORS, &Next);
+    strcpy (AslGbl_ExpressionTokenBuffer, AslGbl_CurrentLineBuffer);
+    Token = PrGetNextToken (AslGbl_ExpressionTokenBuffer, PR_EXPR_SEPARATORS, &Next);
     OffsetAdjust = 0;
 
     while (Token)
@@ -238,10 +238,10 @@ PrExpandMacros (
 
                 DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                     "Matched Macro: %s->%s\n",
-                    Gbl_CurrentLineNumber, DefineInfo->Identifier,
+                    AslGbl_CurrentLineNumber, DefineInfo->Identifier,
                     DefineInfo->Replacement);
 
-                PrDoMacroInvocation (Gbl_ExpressionTokenBuffer, Token,
+                PrDoMacroInvocation (AslGbl_ExpressionTokenBuffer, Token,
                     DefineInfo, &Next);
             }
             else
@@ -250,9 +250,9 @@ PrExpandMacros (
 
                 /* Replace the name in the original line buffer */
 
-                TokenOffset = Token - Gbl_ExpressionTokenBuffer + OffsetAdjust;
+                TokenOffset = Token - AslGbl_ExpressionTokenBuffer + OffsetAdjust;
                 PrReplaceData (
-                    &Gbl_CurrentLineBuffer[TokenOffset], strlen (Token),
+                    &AslGbl_CurrentLineBuffer[TokenOffset], strlen (Token),
                     ReplaceString, strlen (ReplaceString));
 
                 /* Adjust for length difference between old and new name length */
@@ -261,7 +261,7 @@ PrExpandMacros (
 
                 DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                     "Matched #define within expression: %s->%s\n",
-                    Gbl_CurrentLineNumber, Token,
+                    AslGbl_CurrentLineNumber, Token,
                     *ReplaceString ? ReplaceString : "(NULL STRING)");
             }
         }
@@ -294,7 +294,7 @@ PrIsDefined (
 
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
-        "**** Is defined?:  %s\n", Gbl_CurrentLineNumber, Identifier);
+        "**** Is defined?:  %s\n", AslGbl_CurrentLineNumber, Identifier);
 
     Value = 0; /* Default is "Not defined" -- FALSE */
 
@@ -306,7 +306,7 @@ PrIsDefined (
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "[#if defined %s] resolved to: %8.8X%8.8X\n",
-        Gbl_CurrentLineNumber, Identifier, ACPI_FORMAT_UINT64 (Value));
+        AslGbl_CurrentLineNumber, Identifier, ACPI_FORMAT_UINT64 (Value));
 
     return (Value);
 }
@@ -333,7 +333,7 @@ PrResolveDefine (
 
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
-        "**** Resolve #define:  %s\n", Gbl_CurrentLineNumber, Identifier);
+        "**** Resolve #define:  %s\n", AslGbl_CurrentLineNumber, Identifier);
 
     Value = 0; /* Default is "Not defined" -- FALSE */
 
@@ -345,7 +345,7 @@ PrResolveDefine (
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "[#if defined %s] resolved to: %8.8X%8.8X\n",
-        Gbl_CurrentLineNumber, Identifier, ACPI_FORMAT_UINT64 (Value));
+        AslGbl_CurrentLineNumber, Identifier, ACPI_FORMAT_UINT64 (Value));
 
     return (Value);
 }
@@ -376,7 +376,7 @@ PrResolveIntegerExpression (
 
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
-        "**** Resolve #if:  %s\n", Gbl_CurrentLineNumber, Line);
+        "**** Resolve #if:  %s\n", AslGbl_CurrentLineNumber, Line);
 
     /* Expand all macros within the expression first */
 
@@ -387,7 +387,7 @@ PrResolveIntegerExpression (
     Result = PrEvaluateExpression (ExpandedLine);
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "**** Expression Resolved to: %8.8X%8.8X\n",
-        Gbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Result));
+        AslGbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Result));
 
     *ReturnValue = Result;
     return (AE_OK);
@@ -404,7 +404,7 @@ NormalExit:
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "**** Expression Resolved to: %8.8X%8.8X\n",
-        Gbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Value1));
+        AslGbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Value1));
 
     *ReturnValue = Value1;
     return (AE_OK);
diff --git a/src/acpica/source/compiler/prmacros.c b/src/acpica/source/compiler/prmacros.c
index c384288..5e75901 100644
--- a/src/acpica/source/compiler/prmacros.c
+++ b/src/acpica/source/compiler/prmacros.c
@@ -176,7 +176,7 @@ PrDumpPredefinedNames (
     PR_DEFINE_INFO          *DefineInfo;
 
 
-    DefineInfo = Gbl_DefineList;
+    DefineInfo = AslGbl_DefineList;
     while (DefineInfo)
     {
         DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
@@ -225,7 +225,7 @@ PrAddDefine (
     {
         DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID,
             "#define: name already exists: %s\n",
-            Gbl_CurrentLineNumber, Identifier);
+            AslGbl_CurrentLineNumber, Identifier);
 
         /*
          * Name already exists. This is only an error if the target name
@@ -257,13 +257,13 @@ PrAddDefine (
     DefineInfo->Identifier = IdentifierString;
     DefineInfo->Persist = Persist;
 
-    if (Gbl_DefineList)
+    if (AslGbl_DefineList)
     {
-        Gbl_DefineList->Previous = DefineInfo;
+        AslGbl_DefineList->Previous = DefineInfo;
     }
 
-    DefineInfo->Next = Gbl_DefineList;
-    Gbl_DefineList = DefineInfo;
+    DefineInfo->Next = AslGbl_DefineList;
+    AslGbl_DefineList = DefineInfo;
     return (DefineInfo);
 }
 
@@ -291,7 +291,7 @@ PrRemoveDefine (
 
     /* Match name and delete the node */
 
-    DefineInfo = Gbl_DefineList;
+    DefineInfo = AslGbl_DefineList;
     while (DefineInfo)
     {
         if (!strcmp (DefineName, DefineInfo->Identifier))
@@ -304,7 +304,7 @@ PrRemoveDefine (
             }
             else
             {
-                Gbl_DefineList = DefineInfo->Next;
+                AslGbl_DefineList = DefineInfo->Next;
             }
 
             if (DefineInfo->Next)
@@ -325,7 +325,7 @@ PrRemoveDefine (
      */
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "#undef: could not find %s\n",
-        Gbl_CurrentLineNumber, DefineName);
+        AslGbl_CurrentLineNumber, DefineName);
 }
 
 
@@ -348,7 +348,7 @@ PrMatchDefine (
     PR_DEFINE_INFO          *DefineInfo;
 
 
-    DefineInfo = Gbl_DefineList;
+    DefineInfo = AslGbl_DefineList;
     while (DefineInfo)
     {
         if (!strcmp (MatchString, DefineInfo->Identifier))
@@ -399,10 +399,10 @@ PrAddMacro (
 
     /* Find the end of the arguments list */
 
-    TokenOffset = Name - Gbl_MainTokenBuffer + strlen (Name) + 1;
+    TokenOffset = Name - AslGbl_MainTokenBuffer + strlen (Name) + 1;
     while (1)
     {
-        BufferChar = Gbl_CurrentLineBuffer[TokenOffset];
+        BufferChar = AslGbl_CurrentLineBuffer[TokenOffset];
         if (BufferChar == '(')
         {
             Depth++;
@@ -447,7 +447,7 @@ PrAddMacro (
 
         /* Don't go beyond the argument list */
 
-        TokenOffset = Token - Gbl_MainTokenBuffer + strlen (Token);
+        TokenOffset = Token - AslGbl_MainTokenBuffer + strlen (Token);
         if (TokenOffset > EndOfArgList)
         {
             break;
@@ -455,7 +455,7 @@ PrAddMacro (
 
         DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
             "Macro arg: %s \n",
-            Gbl_CurrentLineNumber, Token);
+            AslGbl_CurrentLineNumber, Token);
 
         Args[i].Name = UtLocalCalloc (strlen (Token) + 1);
         strcpy (Args[i].Name, Token);
@@ -472,7 +472,7 @@ PrAddMacro (
 
     /* Get the macro body. Token now points to start of body */
 
-    MacroBodyOffset = Token - Gbl_MainTokenBuffer;
+    MacroBodyOffset = Token - AslGbl_MainTokenBuffer;
 
     /* Match each method arg in the macro body for later use */
 
@@ -494,11 +494,11 @@ PrAddMacro (
                 UseCount = Args[i].UseCount;
 
                 Args[i].Offset[UseCount] =
-                    (Token - Gbl_MainTokenBuffer) - MacroBodyOffset;
+                    (Token - AslGbl_MainTokenBuffer) - MacroBodyOffset;
 
                 DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                     "Macro Arg #%u: %s UseCount %u Offset %u \n",
-                    Gbl_CurrentLineNumber, i, Token,
+                    AslGbl_CurrentLineNumber, i, Token,
                     UseCount+1, Args[i].Offset[UseCount]);
 
                 Args[i].UseCount++;
@@ -516,7 +516,7 @@ PrAddMacro (
         Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next);
     }
 
-    BodyInSource = &Gbl_CurrentLineBuffer[MacroBodyOffset];
+    BodyInSource = &AslGbl_CurrentLineBuffer[MacroBodyOffset];
 
 
 AddMacroToList:
@@ -528,7 +528,7 @@ AddMacroToList:
     {
         DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
             "#define: macro name already exists: %s\n",
-            Gbl_CurrentLineNumber, Name);
+            AslGbl_CurrentLineNumber, Name);
 
         /* Error only if not exactly the same macro */
 
@@ -544,7 +544,7 @@ AddMacroToList:
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "Macro body: %s \n",
-        Gbl_CurrentLineNumber, BodyInSource);
+        AslGbl_CurrentLineNumber, BodyInSource);
 
     /* Add macro to the #define list */
 
@@ -600,7 +600,7 @@ PrDoMacroInvocation (
 
     /* Take a copy of the macro body for expansion */
 
-    strcpy (Gbl_MacroTokenBuffer, DefineInfo->Body);
+    strcpy (AslGbl_MacroTokenBuffer, DefineInfo->Body);
 
     /* Replace each argument within the prototype body */
 
@@ -619,8 +619,8 @@ PrDoMacroInvocation (
         Length = Token - MacroStart + strlen (Token) + 1;
 
         PrReplaceData (
-            &Gbl_CurrentLineBuffer[TokenOffset], Length,
-            Gbl_MacroTokenBuffer, strlen (Gbl_MacroTokenBuffer));
+            &AslGbl_CurrentLineBuffer[TokenOffset], Length,
+            AslGbl_MacroTokenBuffer, strlen (AslGbl_MacroTokenBuffer));
         return;
     }
 
@@ -647,12 +647,12 @@ PrDoMacroInvocation (
             }
 
             PrReplaceData (
-                &Gbl_MacroTokenBuffer[Args->Offset[i]], strlen (Args->Name),
+                &AslGbl_MacroTokenBuffer[Args->Offset[i]], strlen (Args->Name),
                 Token, strlen (Token));
 
             DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                 "ExpandArg: %s \n",
-                Gbl_CurrentLineNumber, Gbl_MacroTokenBuffer);
+                AslGbl_CurrentLineNumber, AslGbl_MacroTokenBuffer);
         }
 
         Args++;
@@ -671,8 +671,8 @@ PrDoMacroInvocation (
     Length = Token - MacroStart + strlen (Token) + 1;
 
     PrReplaceData (
-        &Gbl_CurrentLineBuffer[TokenOffset], Length,
-        Gbl_MacroTokenBuffer, strlen (Gbl_MacroTokenBuffer));
+        &AslGbl_CurrentLineBuffer[TokenOffset], Length,
+        AslGbl_MacroTokenBuffer, strlen (AslGbl_MacroTokenBuffer));
 
     return;
 
@@ -683,6 +683,6 @@ BadInvocation:
 
     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
         "Bad macro invocation: %s \n",
-        Gbl_CurrentLineNumber, Gbl_MacroTokenBuffer);
+        AslGbl_CurrentLineNumber, AslGbl_MacroTokenBuffer);
     return;
 }
diff --git a/src/acpica/source/compiler/prparser.l b/src/acpica/source/compiler/prparser.l
index 8940197..a379a4f 100644
--- a/src/acpica/source/compiler/prparser.l
+++ b/src/acpica/source/compiler/prparser.l
@@ -155,8 +155,8 @@
 
 /* Buffer to pass strings to the parser */
 
-#define STRING_SETUP    strcpy (StringBuffer, PrParsertext);\
-    PrParserlval.str = StringBuffer
+#define STRING_SETUP    strcpy (AslGbl_StringBuffer, PrParsertext);\
+    PrParserlval.str = AslGbl_StringBuffer
 
 #define _COMPONENT          ACPI_COMPILER
         ACPI_MODULE_NAME    ("prscanner")
diff --git a/src/acpica/source/compiler/prparser.y b/src/acpica/source/compiler/prparser.y
index a00d600..08cb666 100644
--- a/src/acpica/source/compiler/prparser.y
+++ b/src/acpica/source/compiler/prparser.y
@@ -321,10 +321,10 @@ PrParsererror (
     char const              *Message)
 {
 
-    sprintf (StringBuffer, "Preprocessor Parser : %s (near line %u)",
-        Message, Gbl_CurrentLineNumber);
+    sprintf (AslGbl_StringBuffer, "Preprocessor Parser : %s (near line %u)",
+        Message, AslGbl_CurrentLineNumber);
     DtError (ASL_ERROR, ASL_MSG_SYNTAX,
-        NULL, (char *) StringBuffer);
+        NULL, (char *) AslGbl_StringBuffer);
 }
 
 
diff --git a/src/acpica/source/compiler/prscan.c b/src/acpica/source/compiler/prscan.c
index 939d4e6..580b47f 100644
--- a/src/acpica/source/compiler/prscan.c
+++ b/src/acpica/source/compiler/prscan.c
@@ -214,7 +214,7 @@ PrDoIncludeFile (
  * Supported preprocessor directives
  * Each entry is of the form "Name, ArgumentCount"
  */
-static const PR_DIRECTIVE_INFO      Gbl_DirectiveInfo[] =
+static const PR_DIRECTIVE_INFO      AslGbl_DirectiveInfo[] =
 {
     {"define",          1},
     {"elif",            0}, /* Converted to #else..#if internally */
@@ -275,7 +275,7 @@ PrInitializePreprocessor (
     /* Init globals and the list of #defines */
 
     PrInitializeGlobals ();
-    Gbl_DefineList = NULL;
+    AslGbl_DefineList = NULL;
 }
 
 
@@ -299,16 +299,16 @@ PrInitializeGlobals (
 {
     /* Init globals */
 
-    Gbl_InputFileList = NULL;
-    Gbl_CurrentLineNumber = 1;
-    Gbl_PreprocessorLineNumber = 1;
-    Gbl_PreprocessorError = FALSE;
+    AslGbl_InputFileList = NULL;
+    AslGbl_CurrentLineNumber = 1;
+    AslGbl_PreprocessorLineNumber = 1;
+    AslGbl_PreprocessorError = FALSE;
 
     /* These are used to track #if/#else blocks (possibly nested) */
 
-    Gbl_IfDepth = 0;
-    Gbl_IgnoringThisCodeBlock = FALSE;
-    Gbl_DirectiveStack = NULL;
+    AslGbl_IfDepth = 0;
+    AslGbl_IgnoringThisCodeBlock = FALSE;
+    AslGbl_DirectiveStack = NULL;
 }
 
 
@@ -337,10 +337,10 @@ PrTerminatePreprocessor (
      * The persistent defines (created on the command line) are always at the
      * end of the list. We save them.
      */
-    while ((Gbl_DefineList) && (!Gbl_DefineList->Persist))
+    while ((AslGbl_DefineList) && (!AslGbl_DefineList->Persist))
     {
-        DefineInfo = Gbl_DefineList;
-        Gbl_DefineList = DefineInfo->Next;
+        DefineInfo = AslGbl_DefineList;
+        AslGbl_DefineList = DefineInfo->Next;
 
         ACPI_FREE (DefineInfo->Replacement);
         ACPI_FREE (DefineInfo->Identifier);
@@ -388,15 +388,15 @@ PrDoPreprocess (
     /* Point compiler input to the new preprocessor output file (.pre) */
 
     FlCloseFile (ASL_FILE_INPUT);
-    Gbl_Files[ASL_FILE_INPUT].Handle = Gbl_Files[ASL_FILE_PREPROCESSOR].Handle;
-    AslCompilerin = Gbl_Files[ASL_FILE_INPUT].Handle;
+    AslGbl_Files[ASL_FILE_INPUT].Handle = AslGbl_Files[ASL_FILE_PREPROCESSOR].Handle;
+    AslCompilerin = AslGbl_Files[ASL_FILE_INPUT].Handle;
 
     /* Reset globals to allow compiler to run */
 
     FlSeekFile (ASL_FILE_INPUT, 0);
-    if (!Gbl_PreprocessOnly)
+    if (!AslGbl_PreprocessOnly)
     {
-        Gbl_CurrentLineNumber = 0;
+        AslGbl_CurrentLineNumber = 0;
     }
 
     DbgPrint (ASL_DEBUG_OUTPUT, "Preprocessing phase complete \n\n");
@@ -436,10 +436,10 @@ PrPreprocessInputFile (
 
     /* Scan source line-by-line and process directives. Then write the .i file */
 
-    while ((Status = PrGetNextLine (Gbl_Files[ASL_FILE_INPUT].Handle)) != ASL_EOF)
+    while ((Status = PrGetNextLine (AslGbl_Files[ASL_FILE_INPUT].Handle)) != ASL_EOF)
     {
-        Gbl_CurrentLineNumber++;
-        Gbl_LogicalLineNumber++;
+        AslGbl_CurrentLineNumber++;
+        AslGbl_LogicalLineNumber++;
 
         if (Status == ASL_IGNORE_LINE)
         {
@@ -448,8 +448,8 @@ PrPreprocessInputFile (
 
         /* Need a copy of the input line for strok() */
 
-        strcpy (Gbl_MainTokenBuffer, Gbl_CurrentLineBuffer);
-        Token = PrGetNextToken (Gbl_MainTokenBuffer, PR_TOKEN_SEPARATORS, &Next);
+        strcpy (AslGbl_MainTokenBuffer, AslGbl_CurrentLineBuffer);
+        Token = PrGetNextToken (AslGbl_MainTokenBuffer, PR_TOKEN_SEPARATORS, &Next);
         OffsetAdjust = 0;
 
         /* All preprocessor directives must begin with '#' */
@@ -476,7 +476,7 @@ PrPreprocessInputFile (
          * FALSE, ignore the line and do not write it to the output file.
          * This continues until an #else or #endif is encountered.
          */
-        if (Gbl_IgnoringThisCodeBlock)
+        if (AslGbl_IgnoringThisCodeBlock)
         {
             continue;
         }
@@ -494,10 +494,10 @@ PrPreprocessInputFile (
 
                     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                         "Matched Macro: %s->%s\n",
-                        Gbl_CurrentLineNumber, DefineInfo->Identifier,
+                        AslGbl_CurrentLineNumber, DefineInfo->Identifier,
                         DefineInfo->Replacement);
 
-                    PrDoMacroInvocation (Gbl_MainTokenBuffer, Token,
+                    PrDoMacroInvocation (AslGbl_MainTokenBuffer, Token,
                         DefineInfo, &Next);
                 }
                 else
@@ -506,9 +506,9 @@ PrPreprocessInputFile (
 
                     /* Replace the name in the original line buffer */
 
-                    TokenOffset = Token - Gbl_MainTokenBuffer + OffsetAdjust;
+                    TokenOffset = Token - AslGbl_MainTokenBuffer + OffsetAdjust;
                     PrReplaceData (
-                        &Gbl_CurrentLineBuffer[TokenOffset], strlen (Token),
+                        &AslGbl_CurrentLineBuffer[TokenOffset], strlen (Token),
                         ReplaceString, strlen (ReplaceString));
 
                     /* Adjust for length difference between old and new name length */
@@ -517,7 +517,7 @@ PrPreprocessInputFile (
 
                     DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
                         "Matched #define: %s->%s\n",
-                        Gbl_CurrentLineNumber, Token,
+                        AslGbl_CurrentLineNumber, Token,
                         *ReplaceString ? ReplaceString : "(NULL STRING)");
                 }
             }
@@ -525,7 +525,7 @@ PrPreprocessInputFile (
             Token = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, &Next);
         }
 
-        Gbl_PreprocessorLineNumber++;
+        AslGbl_PreprocessorLineNumber++;
 
 
 WriteEntireLine:
@@ -533,8 +533,8 @@ WriteEntireLine:
          * Now we can write the possibly modified source line to the
          * preprocessor file(s).
          */
-        FlWriteFile (ASL_FILE_PREPROCESSOR, Gbl_CurrentLineBuffer,
-            strlen (Gbl_CurrentLineBuffer));
+        FlWriteFile (ASL_FILE_PREPROCESSOR, AslGbl_CurrentLineBuffer,
+            strlen (AslGbl_CurrentLineBuffer));
     }
 }
 
@@ -557,7 +557,7 @@ PrDoDirective (
     char                    *DirectiveToken,
     char                    **Next)
 {
-    char                    *Token = Gbl_MainTokenBuffer;
+    char                    *Token = AslGbl_MainTokenBuffer;
     char                    *Token2 = NULL;
     char                    *End;
     UINT64                  Value;
@@ -579,7 +579,7 @@ PrDoDirective (
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
             "#%s: Unknown directive\n",
-            Gbl_CurrentLineNumber, DirectiveToken);
+            AslGbl_CurrentLineNumber, DirectiveToken);
         return;
     }
 
@@ -590,25 +590,25 @@ PrDoDirective (
      * original source file.
      */
     FlPrintFile (ASL_FILE_PREPROCESSOR, "#line %u \"%s\" // #%s\n",
-        Gbl_CurrentLineNumber, Gbl_Files[ASL_FILE_INPUT].Filename,
-        Gbl_DirectiveInfo[Directive].Name);
+        AslGbl_CurrentLineNumber, AslGbl_Files[ASL_FILE_INPUT].Filename,
+        AslGbl_DirectiveInfo[Directive].Name);
 
     /*
      * If we are currently ignoring this block and we encounter a #else or
      * #elif, we must ignore their blocks also if the parent block is also
      * being ignored.
      */
-    if (Gbl_IgnoringThisCodeBlock)
+    if (AslGbl_IgnoringThisCodeBlock)
     {
         switch (Directive)
         {
         case PR_DIRECTIVE_ELSE:
         case PR_DIRECTIVE_ELIF:
 
-            if (Gbl_DirectiveStack &&
-                Gbl_DirectiveStack->IgnoringThisCodeBlock)
+            if (AslGbl_DirectiveStack &&
+                AslGbl_DirectiveStack->IgnoringThisCodeBlock)
             {
-                PrDbgPrint ("Ignoring", Gbl_DirectiveInfo[Directive].Name);
+                PrDbgPrint ("Ignoring", AslGbl_DirectiveInfo[Directive].Name);
                 return;
             }
             break;
@@ -627,16 +627,16 @@ PrDoDirective (
     {
     case PR_DIRECTIVE_ELSE:
 
-        Gbl_IgnoringThisCodeBlock = !(Gbl_IgnoringThisCodeBlock);
+        AslGbl_IgnoringThisCodeBlock = !(AslGbl_IgnoringThisCodeBlock);
         PrDbgPrint ("Executing", "else block");
         return;
 
     case PR_DIRECTIVE_ELIF:
 
-        Gbl_IgnoringThisCodeBlock = !(Gbl_IgnoringThisCodeBlock);
+        AslGbl_IgnoringThisCodeBlock = !(AslGbl_IgnoringThisCodeBlock);
         Directive = PR_DIRECTIVE_IF;
 
-        if (Gbl_IgnoringThisCodeBlock == TRUE)
+        if (AslGbl_IgnoringThisCodeBlock == TRUE)
         {
             /* Not executing the ELSE part -- all done here */
             PrDbgPrint ("Ignoring", "elif block");
@@ -675,7 +675,7 @@ PrDoDirective (
 
     /* Most directives have at least one argument */
 
-    if (Gbl_DirectiveInfo[Directive].ArgCount >= 1)
+    if (AslGbl_DirectiveInfo[Directive].ArgCount >= 1)
     {
         Token = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, Next);
         if (!Token)
@@ -684,7 +684,7 @@ PrDoDirective (
         }
     }
 
-    if (Gbl_DirectiveInfo[Directive].ArgCount >= 2)
+    if (AslGbl_DirectiveInfo[Directive].ArgCount >= 2)
     {
         Token2 = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, Next);
         if (!Token2)
@@ -699,7 +699,7 @@ PrDoDirective (
      * For "if" style directives, open/push a new block anyway. We
      * must do this to keep track of #endif directives
      */
-    if (Gbl_IgnoringThisCodeBlock)
+    if (AslGbl_IgnoringThisCodeBlock)
     {
         switch (Directive)
         {
@@ -708,7 +708,7 @@ PrDoDirective (
         case PR_DIRECTIVE_IFNDEF:
 
             PrPushDirective (Directive, Token);
-            PrDbgPrint ("Ignoring", Gbl_DirectiveInfo[Directive].Name);
+            PrDbgPrint ("Ignoring", AslGbl_DirectiveInfo[Directive].Name);
             break;
 
         default:
@@ -721,18 +721,18 @@ PrDoDirective (
     /*
      * Execute the directive
      */
-    PrDbgPrint ("Begin execution", Gbl_DirectiveInfo[Directive].Name);
+    PrDbgPrint ("Begin execution", AslGbl_DirectiveInfo[Directive].Name);
 
     switch (Directive)
     {
     case PR_DIRECTIVE_IF:
 
-        TokenOffset = Token - Gbl_MainTokenBuffer;
+        TokenOffset = Token - AslGbl_MainTokenBuffer;
 
         /* Need to expand #define macros in the expression string first */
 
         Status = PrResolveIntegerExpression (
-            &Gbl_CurrentLineBuffer[TokenOffset-1], &Value);
+            &AslGbl_CurrentLineBuffer[TokenOffset-1], &Value);
         if (ACPI_FAILURE (Status))
         {
             return;
@@ -741,13 +741,13 @@ PrDoDirective (
         PrPushDirective (Directive, Token);
         if (!Value)
         {
-            Gbl_IgnoringThisCodeBlock = TRUE;
+            AslGbl_IgnoringThisCodeBlock = TRUE;
         }
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
             "Resolved #if: %8.8X%8.8X %s\n",
-            Gbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Value),
-            Gbl_IgnoringThisCodeBlock ? "<Skipping Block>" : "<Executing Block>");
+            AslGbl_CurrentLineNumber, ACPI_FORMAT_UINT64 (Value),
+            AslGbl_IgnoringThisCodeBlock ? "<Skipping Block>" : "<Executing Block>");
         break;
 
     case PR_DIRECTIVE_IFDEF:
@@ -755,7 +755,7 @@ PrDoDirective (
         PrPushDirective (Directive, Token);
         if (!PrMatchDefine (Token))
         {
-            Gbl_IgnoringThisCodeBlock = TRUE;
+            AslGbl_IgnoringThisCodeBlock = TRUE;
         }
 
         PrDbgPrint ("Evaluated", "ifdef");
@@ -766,7 +766,7 @@ PrDoDirective (
         PrPushDirective (Directive, Token);
         if (PrMatchDefine (Token))
         {
-            Gbl_IgnoringThisCodeBlock = TRUE;
+            AslGbl_IgnoringThisCodeBlock = TRUE;
         }
 
         PrDbgPrint ("Evaluated", "ifndef");
@@ -777,13 +777,13 @@ PrDoDirective (
          * By definition, if first char after the name is a paren,
          * this is a function macro.
          */
-        TokenOffset = Token - Gbl_MainTokenBuffer + strlen (Token);
-        if (*(&Gbl_CurrentLineBuffer[TokenOffset]) == '(')
+        TokenOffset = Token - AslGbl_MainTokenBuffer + strlen (Token);
+        if (*(&AslGbl_CurrentLineBuffer[TokenOffset]) == '(')
         {
 #ifndef MACROS_SUPPORTED
             AcpiOsPrintf (
                 "%s ERROR - line %u: #define macros are not supported yet\n",
-                Gbl_CurrentLineBuffer, Gbl_LogicalLineNumber);
+                AslGbl_CurrentLineBuffer, AslGbl_LogicalLineNumber);
             exit(1);
 #else
             PrAddMacro (Token, Next);
@@ -822,7 +822,7 @@ PrDoDirective (
 #endif
             DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
                 "New #define: %s->%s\n",
-                Gbl_LogicalLineNumber, Token, Token2);
+                AslGbl_LogicalLineNumber, Token, Token2);
 
             PrAddDefine (Token, Token2, FALSE);
         }
@@ -835,8 +835,8 @@ PrDoDirective (
         PrError (ASL_ERROR, ASL_MSG_ERROR_DIRECTIVE,
             THIS_TOKEN_OFFSET (Token));
 
-        Gbl_SourceLine = 0;
-        Gbl_NextError = Gbl_ErrorLog;
+        AslGbl_SourceLine = 0;
+        AslGbl_NextError = AslGbl_ErrorLog;
         CmCleanupAndExit ();
         exit(1);
 
@@ -849,8 +849,8 @@ PrDoDirective (
         }
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
-            "Start #include file \"%s\"\n", Gbl_CurrentLineNumber,
-            Token, Gbl_CurrentLineNumber);
+            "Start #include file \"%s\"\n", AslGbl_CurrentLineNumber,
+            Token, AslGbl_CurrentLineNumber);
 
         PrDoIncludeFile (Token);
         break;
@@ -871,32 +871,32 @@ PrDoDirective (
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
             "Start #includebuffer input from file \"%s\", buffer name %s\n",
-            Gbl_CurrentLineNumber, Token, Token2);
+            AslGbl_CurrentLineNumber, Token, Token2);
 
         PrDoIncludeBuffer (Token, Token2);
         break;
 
     case PR_DIRECTIVE_LINE:
 
-        TokenOffset = Token - Gbl_MainTokenBuffer;
+        TokenOffset = Token - AslGbl_MainTokenBuffer;
 
         Status = PrResolveIntegerExpression (
-            &Gbl_CurrentLineBuffer[TokenOffset-1], &Value);
+            &AslGbl_CurrentLineBuffer[TokenOffset-1], &Value);
         if (ACPI_FAILURE (Status))
         {
             return;
         }
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
-            "User #line invocation %s\n", Gbl_CurrentLineNumber,
+            "User #line invocation %s\n", AslGbl_CurrentLineNumber,
             Token);
 
-        Gbl_CurrentLineNumber = (UINT32) Value;
+        AslGbl_CurrentLineNumber = (UINT32) Value;
 
         /* Emit #line into the preprocessor file */
 
         FlPrintFile (ASL_FILE_PREPROCESSOR, "#line %u \"%s\"\n",
-            Gbl_CurrentLineNumber, Gbl_Files[ASL_FILE_INPUT].Filename);
+            AslGbl_CurrentLineNumber, AslGbl_Files[ASL_FILE_INPUT].Filename);
         break;
 
     case PR_DIRECTIVE_PRAGMA:
@@ -909,8 +909,8 @@ PrDoDirective (
                 goto SyntaxError;
             }
 
-            TokenOffset = Token - Gbl_MainTokenBuffer;
-            AslDisableException (&Gbl_CurrentLineBuffer[TokenOffset]);
+            TokenOffset = Token - AslGbl_MainTokenBuffer;
+            AslDisableException (&AslGbl_CurrentLineBuffer[TokenOffset]);
         }
         else if (!strcmp (Token, "message"))
         {
@@ -920,8 +920,8 @@ PrDoDirective (
                 goto SyntaxError;
             }
 
-            TokenOffset = Token - Gbl_MainTokenBuffer;
-            AcpiOsPrintf ("%s\n", &Gbl_CurrentLineBuffer[TokenOffset]);
+            TokenOffset = Token - AslGbl_MainTokenBuffer;
+            AcpiOsPrintf ("%s\n", &AslGbl_CurrentLineBuffer[TokenOffset]);
         }
         else
         {
@@ -935,7 +935,7 @@ PrDoDirective (
     case PR_DIRECTIVE_UNDEF:
 
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
-            "#undef: %s\n", Gbl_CurrentLineNumber, Token);
+            "#undef: %s\n", AslGbl_CurrentLineNumber, Token);
 
         PrRemoveDefine (Token);
         break;
@@ -945,8 +945,8 @@ PrDoDirective (
         PrError (ASL_WARNING, ASL_MSG_WARNING_DIRECTIVE,
             THIS_TOKEN_OFFSET (Token));
 
-        Gbl_SourceLine = 0;
-        Gbl_NextError = Gbl_ErrorLog;
+        AslGbl_SourceLine = 0;
+        AslGbl_NextError = AslGbl_ErrorLog;
         break;
 
     default:
@@ -954,7 +954,7 @@ PrDoDirective (
         /* Should never get here */
         DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
             "Unrecognized directive: %u\n",
-            Gbl_CurrentLineNumber, Directive);
+            AslGbl_CurrentLineNumber, Directive);
         break;
     }
 
@@ -1010,14 +1010,14 @@ PrGetNextLine (
 
     /* Always clear the global line buffer */
 
-    memset (Gbl_CurrentLineBuffer, 0, Gbl_LineBufferSize);
+    memset (AslGbl_CurrentLineBuffer, 0, AslGbl_LineBufferSize);
     for (i = 0; ;)
     {
         /*
          * If line is too long, expand the line buffers. Also increases
-         * Gbl_LineBufferSize.
+         * AslGbl_LineBufferSize.
          */
-        if (i >= Gbl_LineBufferSize)
+        if (i >= AslGbl_LineBufferSize)
         {
             UtExpandLineBuffers ();
         }
@@ -1033,7 +1033,7 @@ PrGetNextLine (
              */
             if (i > 0)
             {
-                Gbl_CurrentLineBuffer[i] = '\n';
+                AslGbl_CurrentLineBuffer[i] = '\n';
                 return (AE_OK);
             }
 
@@ -1093,7 +1093,7 @@ PrGetNextLine (
 
         /* Always copy the character into line buffer */
 
-        Gbl_CurrentLineBuffer[i] = (char) c;
+        AslGbl_CurrentLineBuffer[i] = (char) c;
         i++;
 
         /* Always exit on end-of-line */
@@ -1152,9 +1152,9 @@ PrMatchDirective (
         return (ASL_DIRECTIVE_NOT_FOUND);
     }
 
-    for (i = 0; Gbl_DirectiveInfo[i].Name; i++)
+    for (i = 0; AslGbl_DirectiveInfo[i].Name; i++)
     {
-        if (!strcmp (Gbl_DirectiveInfo[i].Name, Directive))
+        if (!strcmp (AslGbl_DirectiveInfo[i].Name, Directive))
         {
             return (i);
         }
@@ -1191,25 +1191,26 @@ PrPushDirective (
 
     /* Allocate and populate a stack info item */
 
-    Info = ACPI_ALLOCATE (sizeof (DIRECTIVE_INFO));
+    Info = ACPI_CAST_PTR (DIRECTIVE_INFO,
+        UtLocalCacheCalloc (sizeof (DIRECTIVE_INFO)));
 
-    Info->Next = Gbl_DirectiveStack;
+    Info->Next = AslGbl_DirectiveStack;
     Info->Directive = Directive;
-    Info->IgnoringThisCodeBlock = Gbl_IgnoringThisCodeBlock;
+    Info->IgnoringThisCodeBlock = AslGbl_IgnoringThisCodeBlock;
     AcpiUtSafeStrncpy (Info->Argument, Argument, MAX_ARGUMENT_LENGTH);
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "Pr(%.4u) - [%u %s] %*s Pushed [#%s %s]: IgnoreFlag = %s\n",
-        Gbl_CurrentLineNumber, Gbl_IfDepth,
-        Gbl_IgnoringThisCodeBlock ? "I" : "E",
-        Gbl_IfDepth * 4, " ",
-        Gbl_DirectiveInfo[Directive].Name,
-        Argument, Gbl_IgnoringThisCodeBlock ? "TRUE" : "FALSE");
+        AslGbl_CurrentLineNumber, AslGbl_IfDepth,
+        AslGbl_IgnoringThisCodeBlock ? "I" : "E",
+        AslGbl_IfDepth * 4, " ",
+        AslGbl_DirectiveInfo[Directive].Name,
+        Argument, AslGbl_IgnoringThisCodeBlock ? "TRUE" : "FALSE");
 
     /* Push new item */
 
-    Gbl_DirectiveStack = Info;
-    Gbl_IfDepth++;
+    AslGbl_DirectiveStack = Info;
+    AslGbl_IfDepth++;
 }
 
 
@@ -1238,7 +1239,7 @@ PrPopDirective (
 
     /* Check for empty stack */
 
-    Info = Gbl_DirectiveStack;
+    Info = AslGbl_DirectiveStack;
     if (!Info)
     {
         return (AE_ERROR);
@@ -1246,17 +1247,17 @@ PrPopDirective (
 
     /* Pop one item, keep globals up-to-date */
 
-    Gbl_IfDepth--;
-    Gbl_IgnoringThisCodeBlock = Info->IgnoringThisCodeBlock;
-    Gbl_DirectiveStack = Info->Next;
+    AslGbl_IfDepth--;
+    AslGbl_IgnoringThisCodeBlock = Info->IgnoringThisCodeBlock;
+    AslGbl_DirectiveStack = Info->Next;
 
     DbgPrint (ASL_DEBUG_OUTPUT,
         "Pr(%.4u) - [%u %s] %*s Popped [#%s %s]: IgnoreFlag now = %s\n",
-        Gbl_CurrentLineNumber, Gbl_IfDepth,
-        Gbl_IgnoringThisCodeBlock ? "I" : "E",
-        Gbl_IfDepth * 4, " ",
-        Gbl_DirectiveInfo[Info->Directive].Name,
-        Info->Argument, Gbl_IgnoringThisCodeBlock ? "TRUE" : "FALSE");
+        AslGbl_CurrentLineNumber, AslGbl_IfDepth,
+        AslGbl_IgnoringThisCodeBlock ? "I" : "E",
+        AslGbl_IfDepth * 4, " ",
+        AslGbl_DirectiveInfo[Info->Directive].Name,
+        Info->Argument, AslGbl_IgnoringThisCodeBlock ? "TRUE" : "FALSE");
 
     ACPI_FREE (Info);
     return (AE_OK);
@@ -1284,10 +1285,10 @@ PrDbgPrint (
 
     DbgPrint (ASL_DEBUG_OUTPUT, "Pr(%.4u) - [%u %s] "
         "%*s %s #%s, IfDepth %u\n",
-        Gbl_CurrentLineNumber, Gbl_IfDepth,
-        Gbl_IgnoringThisCodeBlock ? "I" : "E",
-        Gbl_IfDepth * 4, " ",
-        Action, DirectiveName, Gbl_IfDepth);
+        AslGbl_CurrentLineNumber, AslGbl_IfDepth,
+        AslGbl_IgnoringThisCodeBlock ? "I" : "E",
+        AslGbl_IfDepth * 4, " ",
+        Action, DirectiveName, AslGbl_IfDepth);
 }
 
 
@@ -1365,7 +1366,7 @@ PrDoIncludeBuffer (
 
     DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
         "#includebuffer: read %u bytes from %s\n",
-        Gbl_CurrentLineNumber, i, FullPathname);
+        AslGbl_CurrentLineNumber, i, FullPathname);
 
     /* Close the Name() operator */
 
diff --git a/src/acpica/source/compiler/prutils.c b/src/acpica/source/compiler/prutils.c
index 51fe2a5..4480d11 100644
--- a/src/acpica/source/compiler/prutils.c
+++ b/src/acpica/source/compiler/prutils.c
@@ -261,8 +261,8 @@ PrError (
     UINT32                  Column)
 {
 #if 0
-    AcpiOsPrintf ("%s (%u) : %s", Gbl_Files[ASL_FILE_INPUT].Filename,
-        Gbl_CurrentLineNumber, Gbl_CurrentLineBuffer);
+    AcpiOsPrintf ("%s (%u) : %s", AslGbl_Files[ASL_FILE_INPUT].Filename,
+        AslGbl_CurrentLineNumber, AslGbl_CurrentLineBuffer);
 #endif
 
 
@@ -274,11 +274,11 @@ PrError (
     /* TBD: Need Logical line number? */
 
     AslCommonError2 (Level, MessageId,
-        Gbl_CurrentLineNumber, Column,
-        Gbl_CurrentLineBuffer,
-        Gbl_Files[ASL_FILE_INPUT].Filename, "Preprocessor");
+        AslGbl_CurrentLineNumber, Column,
+        AslGbl_CurrentLineBuffer,
+        AslGbl_Files[ASL_FILE_INPUT].Filename, "Preprocessor");
 
-    Gbl_PreprocessorError = TRUE;
+    AslGbl_PreprocessorError = TRUE;
 }
 
 
@@ -358,7 +358,7 @@ PrOpenIncludeFile (
 
     /* Start the actual include file on the next line */
 
-    Gbl_CurrentLineOffset++;
+    AslGbl_CurrentLineOffset++;
 
     /* Attempt to open the include file */
     /* If the file specifies an absolute path, just open it */
@@ -385,7 +385,7 @@ PrOpenIncludeFile (
      * Construct the file pathname from the global directory name.
      */
     IncludeFile = PrOpenIncludeWithPrefix (
-        Gbl_DirectoryPath, Filename, OpenMode, FullPathname);
+        AslGbl_DirectoryPath, Filename, OpenMode, FullPathname);
     if (IncludeFile)
     {
         return (IncludeFile);
@@ -395,7 +395,7 @@ PrOpenIncludeFile (
      * Second, search for the file within the (possibly multiple)
      * directories specified by the -I option on the command line.
      */
-    NextDir = Gbl_IncludeDirList;
+    NextDir = AslGbl_IncludeDirList;
     while (NextDir)
     {
         IncludeFile = PrOpenIncludeWithPrefix (
@@ -411,7 +411,7 @@ PrOpenIncludeFile (
     /* We could not open the include file after trying very hard */
 
 ErrorExit:
-    sprintf (Gbl_MainTokenBuffer, "%s, %s", Filename, strerror (errno));
+    sprintf (AslGbl_MainTokenBuffer, "%s, %s", Filename, strerror (errno));
     PrError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN, 0);
     return (NULL);
 }
@@ -448,7 +448,7 @@ PrOpenIncludeWithPrefix (
 
     DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
         "Include: Opening file - \"%s\"\n",
-        Gbl_CurrentLineNumber, Pathname);
+        AslGbl_CurrentLineNumber, Pathname);
 
     /* Attempt to open the file, push if successful */
 
@@ -490,33 +490,33 @@ PrPushInputFileStack (
     PR_FILE_NODE            *Fnode;
 
 
-    Gbl_HasIncludeFiles = TRUE;
+    AslGbl_HasIncludeFiles = TRUE;
 
     /* Save the current state in an Fnode */
 
     Fnode = UtLocalCalloc (sizeof (PR_FILE_NODE));
 
-    Fnode->File = Gbl_Files[ASL_FILE_INPUT].Handle;
-    Fnode->Next = Gbl_InputFileList;
-    Fnode->Filename = Gbl_Files[ASL_FILE_INPUT].Filename;
-    Fnode->CurrentLineNumber = Gbl_CurrentLineNumber;
+    Fnode->File = AslGbl_Files[ASL_FILE_INPUT].Handle;
+    Fnode->Next = AslGbl_InputFileList;
+    Fnode->Filename = AslGbl_Files[ASL_FILE_INPUT].Filename;
+    Fnode->CurrentLineNumber = AslGbl_CurrentLineNumber;
 
     /* Push it on the stack */
 
-    Gbl_InputFileList = Fnode;
+    AslGbl_InputFileList = Fnode;
 
     DbgPrint (ASL_PARSE_OUTPUT, PR_PREFIX_ID
         "Push InputFile Stack: handle %p\n\n",
-        Gbl_CurrentLineNumber, InputFile);
+        AslGbl_CurrentLineNumber, InputFile);
 
     /* Reset the global line count and filename */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename =
+    AslGbl_Files[ASL_FILE_INPUT].Filename =
         UtLocalCacheCalloc (strlen (Filename) + 1);
-    strcpy (Gbl_Files[ASL_FILE_INPUT].Filename, Filename);
+    strcpy (AslGbl_Files[ASL_FILE_INPUT].Filename, Filename);
 
-    Gbl_Files[ASL_FILE_INPUT].Handle = InputFile;
-    Gbl_CurrentLineNumber = 1;
+    AslGbl_Files[ASL_FILE_INPUT].Handle = InputFile;
+    AslGbl_CurrentLineNumber = 1;
 
     /* Emit a new #line directive for the include file */
 
@@ -546,10 +546,10 @@ PrPopInputFileStack (
     PR_FILE_NODE            *Fnode;
 
 
-    Fnode = Gbl_InputFileList;
+    Fnode = AslGbl_InputFileList;
     DbgPrint (ASL_PARSE_OUTPUT, "\n" PR_PREFIX_ID
         "Pop InputFile Stack, Fnode %p\n\n",
-        Gbl_CurrentLineNumber, Fnode);
+        AslGbl_CurrentLineNumber, Fnode);
 
     if (!Fnode)
     {
@@ -558,22 +558,22 @@ PrPopInputFileStack (
 
     /* Close the current include file */
 
-    fclose (Gbl_Files[ASL_FILE_INPUT].Handle);
+    fclose (AslGbl_Files[ASL_FILE_INPUT].Handle);
 
     /* Update the top-of-stack */
 
-    Gbl_InputFileList = Fnode->Next;
+    AslGbl_InputFileList = Fnode->Next;
 
     /* Reset global line counter and filename */
 
-    Gbl_Files[ASL_FILE_INPUT].Filename = Fnode->Filename;
-    Gbl_Files[ASL_FILE_INPUT].Handle = Fnode->File;
-    Gbl_CurrentLineNumber = Fnode->CurrentLineNumber;
+    AslGbl_Files[ASL_FILE_INPUT].Filename = Fnode->Filename;
+    AslGbl_Files[ASL_FILE_INPUT].Handle = Fnode->File;
+    AslGbl_CurrentLineNumber = Fnode->CurrentLineNumber;
 
     /* Emit a new #line directive after the include file */
 
     FlPrintFile (ASL_FILE_PREPROCESSOR, "#line %u \"%s\"\n",
-        Gbl_CurrentLineNumber, Fnode->Filename);
+        AslGbl_CurrentLineNumber, Fnode->Filename);
 
     /* All done with this node */
 
diff --git a/src/acpica/source/components/debugger/dbinput.c b/src/acpica/source/components/debugger/dbinput.c
index 0daca95..2419b4c 100644
--- a/src/acpica/source/components/debugger/dbinput.c
+++ b/src/acpica/source/components/debugger/dbinput.c
@@ -1088,7 +1088,7 @@ AcpiDbCommandDispatch (
     case CMD_LIST:
 
 #ifdef ACPI_DISASSEMBLER
-        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);;
+        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
 #else
         AcpiOsPrintf ("The AML Disassembler is not configured/present\n");
 #endif
diff --git a/src/acpica/source/components/disassembler/dmutils.c b/src/acpica/source/components/disassembler/dmutils.c
index 6c76043..c8de45e 100644
--- a/src/acpica/source/components/disassembler/dmutils.c
+++ b/src/acpica/source/components/disassembler/dmutils.c
@@ -259,7 +259,7 @@ AcpiDmDecodeAttribute (
         AcpiOsPrintf ("AttribQuick");
         break;
 
-    case AML_FIELD_ATTRIB_SEND_RCV:
+    case AML_FIELD_ATTRIB_SEND_RECEIVE:
 
         AcpiOsPrintf ("AttribSendReceive");
         break;
@@ -279,17 +279,17 @@ AcpiDmDecodeAttribute (
         AcpiOsPrintf ("AttribBlock");
         break;
 
-    case AML_FIELD_ATTRIB_MULTIBYTE:
+    case AML_FIELD_ATTRIB_BYTES:
 
         AcpiOsPrintf ("AttribBytes");
         break;
 
-    case AML_FIELD_ATTRIB_WORD_CALL:
+    case AML_FIELD_ATTRIB_PROCESS_CALL:
 
         AcpiOsPrintf ("AttribProcessCall");
         break;
 
-    case AML_FIELD_ATTRIB_BLOCK_CALL:
+    case AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL:
 
         AcpiOsPrintf ("AttribBlockProcessCall");
         break;
@@ -299,7 +299,7 @@ AcpiDmDecodeAttribute (
         AcpiOsPrintf ("AttribRawBytes");
         break;
 
-    case AML_FIELD_ATTRIB_RAW_PROCESS:
+    case AML_FIELD_ATTRIB_RAW_PROCESS_BYTES:
 
         AcpiOsPrintf ("AttribRawProcessBytes");
         break;
diff --git a/src/acpica/source/components/events/evregion.c b/src/acpica/source/components/events/evregion.c
index efc53d7..0f5fb46 100644
--- a/src/acpica/source/components/events/evregion.c
+++ b/src/acpica/source/components/events/evregion.c
@@ -838,6 +838,20 @@ AcpiEvExecuteRegMethods (
 
     ACPI_FUNCTION_TRACE (EvExecuteRegMethods);
 
+    /*
+     * These address spaces do not need a call to _REG, since the ACPI
+     * specification defines them as: "must always be accessible". Since
+     * they never change state (never become unavailable), no need to ever
+     * call _REG on them. Also, a DataTable is not a "real" address space,
+     * so do not call _REG. September 2018.
+     */
+    if ((SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) ||
+        (SpaceId == ACPI_ADR_SPACE_SYSTEM_IO) ||
+        (SpaceId == ACPI_ADR_SPACE_DATA_TABLE))
+    {
+        return_VOID;
+    }
+
     Info.SpaceId = SpaceId;
     Info.Function = Function;
     Info.RegRunCount = 0;
@@ -904,8 +918,8 @@ AcpiEvRegRun (
     }
 
     /*
-     * We only care about regions.and objects that are allowed to have address
-     * space handlers
+     * We only care about regions and objects that are allowed to have
+     * address space handlers
      */
     if ((Node->Type != ACPI_TYPE_REGION) &&
         (Node != AcpiGbl_RootNode))
diff --git a/src/acpica/source/components/events/evrgnini.c b/src/acpica/source/components/events/evrgnini.c
index 678b23c..3e03084 100644
--- a/src/acpica/source/components/events/evrgnini.c
+++ b/src/acpica/source/components/events/evrgnini.c
@@ -158,12 +158,6 @@
 #define _COMPONENT          ACPI_EVENTS
         ACPI_MODULE_NAME    ("evrgnini")
 
-/* Local prototypes */
-
-static BOOLEAN
-AcpiEvIsPciRootBridge (
-    ACPI_NAMESPACE_NODE     *Node);
-
 
 /*******************************************************************************
  *
@@ -490,7 +484,7 @@ AcpiEvPciConfigRegionSetup (
  *
  ******************************************************************************/
 
-static BOOLEAN
+BOOLEAN
 AcpiEvIsPciRootBridge (
     ACPI_NAMESPACE_NODE     *Node)
 {
diff --git a/src/acpica/source/components/events/evxfregn.c b/src/acpica/source/components/events/evxfregn.c
index f0d4c3c..6182853 100644
--- a/src/acpica/source/components/events/evxfregn.c
+++ b/src/acpica/source/components/events/evxfregn.c
@@ -354,7 +354,6 @@ AcpiRemoveAddressSpaceHandler (
                  * DetachRegion removed the previous head.
                  */
                 RegionObj = HandlerObj->AddressSpace.RegionList;
-
             }
 
             /* Remove this Handler object from the list */
diff --git a/src/acpica/source/components/executer/exfield.c b/src/acpica/source/components/executer/exfield.c
index a95d161..ccd6bee 100644
--- a/src/acpica/source/components/executer/exfield.c
+++ b/src/acpica/source/components/executer/exfield.c
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Module Name: exfield - ACPI AML (p-code) execution - field manipulation
+ * Module Name: exfield - AML execution - FieldUnit read/write
  *
  *****************************************************************************/
 
@@ -159,72 +159,68 @@
 #define _COMPONENT          ACPI_EXECUTER
         ACPI_MODULE_NAME    ("exfield")
 
-/* Local prototypes */
 
-static UINT32
-AcpiExGetSerialAccessLength (
-    UINT32                  AccessorType,
-    UINT32                  AccessLength);
+/*
+ * This table maps the various Attrib protocols to the byte transfer
+ * length. Used for the generic serial bus.
+ */
+#define ACPI_INVALID_PROTOCOL_ID        0x80
+#define ACPI_MAX_PROTOCOL_ID            0x0F
+
+const UINT8     AcpiProtocolLengths[] =
+{
+    ACPI_INVALID_PROTOCOL_ID,   /* 0 - reserved */
+    ACPI_INVALID_PROTOCOL_ID,   /* 1 - reserved */
+    0x00,                       /* 2 - ATTRIB_QUICK */
+    ACPI_INVALID_PROTOCOL_ID,   /* 3 - reserved */
+    0x01,                       /* 4 - ATTRIB_SEND_RECEIVE */
+    ACPI_INVALID_PROTOCOL_ID,   /* 5 - reserved */
+    0x01,                       /* 6 - ATTRIB_BYTE */
+    ACPI_INVALID_PROTOCOL_ID,   /* 7 - reserved */
+    0x02,                       /* 8 - ATTRIB_WORD */
+    ACPI_INVALID_PROTOCOL_ID,   /* 9 - reserved */
+    0xFF,                       /* A - ATTRIB_BLOCK  */
+    0xFF,                       /* B - ATTRIB_BYTES */
+    0x02,                       /* C - ATTRIB_PROCESS_CALL */
+    0xFF,                       /* D - ATTRIB_BLOCK_PROCESS_CALL */
+    0xFF,                       /* E - ATTRIB_RAW_BYTES */
+    0xFF                        /* F - ATTRIB_RAW_PROCESS_BYTES */
+};
 
 
 /*******************************************************************************
  *
- * FUNCTION:    AcpiExGetSerialAccessLength
+ * FUNCTION:    AcpiExGetProtocolBufferLength
  *
- * PARAMETERS:  AccessorType    - The type of the protocol indicated by region
+ * PARAMETERS:  ProtocolId      - The type of the protocol indicated by region
  *                                field access attributes
- *              AccessLength    - The access length of the region field
+ *              ReturnLength    - Where the protocol byte transfer length is
+ *                                returned
  *
- * RETURN:      Decoded access length
+ * RETURN:      Status and decoded byte transfer length
  *
  * DESCRIPTION: This routine returns the length of the GenericSerialBus
  *              protocol bytes
  *
  ******************************************************************************/
 
-static UINT32
-AcpiExGetSerialAccessLength (
-    UINT32                  AccessorType,
-    UINT32                  AccessLength)
+ACPI_STATUS
+AcpiExGetProtocolBufferLength (
+    UINT32                  ProtocolId,
+    UINT32                  *ReturnLength)
 {
-    UINT32                  Length;
 
-
-    switch (AccessorType)
+    if ((ProtocolId > ACPI_MAX_PROTOCOL_ID) ||
+        (AcpiProtocolLengths[ProtocolId] == ACPI_INVALID_PROTOCOL_ID))
     {
-    case AML_FIELD_ATTRIB_QUICK:
-
-        Length = 0;
-        break;
-
-    case AML_FIELD_ATTRIB_SEND_RCV:
-    case AML_FIELD_ATTRIB_BYTE:
-
-        Length = 1;
-        break;
-
-    case AML_FIELD_ATTRIB_WORD:
-    case AML_FIELD_ATTRIB_WORD_CALL:
-
-        Length = 2;
-        break;
+        ACPI_ERROR ((AE_INFO,
+            "Invalid Field/AccessAs protocol ID: 0x%4.4X", ProtocolId));
 
-    case AML_FIELD_ATTRIB_MULTIBYTE:
-    case AML_FIELD_ATTRIB_RAW_BYTES:
-    case AML_FIELD_ATTRIB_RAW_PROCESS:
-
-        Length = AccessLength;
-        break;
-
-    case AML_FIELD_ATTRIB_BLOCK:
-    case AML_FIELD_ATTRIB_BLOCK_CALL:
-    default:
-
-        Length = ACPI_GSBUS_BUFFER_SIZE - 2;
-        break;
+        return (AE_AML_PROTOCOL);
     }
 
-    return (Length);
+    *ReturnLength = AcpiProtocolLengths[ProtocolId];
+    return (AE_OK);
 }
 
 
@@ -251,10 +247,8 @@ AcpiExReadDataFromField (
 {
     ACPI_STATUS             Status;
     ACPI_OPERAND_OBJECT     *BufferDesc;
-    ACPI_SIZE               Length;
     void                    *Buffer;
-    UINT32                  Function;
-    UINT16                  AccessorType;
+    UINT32                  BufferLength;
 
 
     ACPI_FUNCTION_TRACE_PTR (ExReadDataFromField, ObjDesc);
@@ -287,63 +281,14 @@ AcpiExReadDataFromField (
         }
     }
     else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
-             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
+        (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
+         ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
+         ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
     {
-        /*
-         * This is an SMBus, GSBus or IPMI read. We must create a buffer to
-         * hold the data and then directly access the region handler.
-         *
-         * Note: SMBus and GSBus protocol value is passed in upper 16-bits
-         * of Function
-         */
-        if (ObjDesc->Field.RegionObj->Region.SpaceId ==
-            ACPI_ADR_SPACE_SMBUS)
-        {
-            Length = ACPI_SMBUS_BUFFER_SIZE;
-            Function = ACPI_READ | (ObjDesc->Field.Attribute << 16);
-        }
-        else if (ObjDesc->Field.RegionObj->Region.SpaceId ==
-            ACPI_ADR_SPACE_GSBUS)
-        {
-            AccessorType = ObjDesc->Field.Attribute;
-            Length = AcpiExGetSerialAccessLength (
-                AccessorType, ObjDesc->Field.AccessLength);
-
-            /*
-             * Add additional 2 bytes for the GenericSerialBus data buffer:
-             *
-             *     Status;    (Byte 0 of the data buffer)
-             *     Length;    (Byte 1 of the data buffer)
-             *     Data[x-1]: (Bytes 2-x of the arbitrary length data buffer)
-             */
-            Length += 2;
-            Function = ACPI_READ | (AccessorType << 16);
-        }
-        else /* IPMI */
-        {
-            Length = ACPI_IPMI_BUFFER_SIZE;
-            Function = ACPI_READ;
-        }
-
-        BufferDesc = AcpiUtCreateBufferObject (Length);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        /* Call the region handler for the read */
-
-        Status = AcpiExAccessRegion (ObjDesc, 0,
-            ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), Function);
+        /* SMBus, GSBus, IPMI serial */
 
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-        goto Exit;
+        Status = AcpiExReadSerialBus (ObjDesc, RetBufferDesc);
+        return_ACPI_STATUS (Status);
     }
 
     /*
@@ -356,14 +301,14 @@ AcpiExReadDataFromField (
      *
      * Note: Field.length is in bits.
      */
-    Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+    BufferLength = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
         ObjDesc->Field.BitLength);
 
-    if (Length > AcpiGbl_IntegerByteWidth)
+    if (BufferLength > AcpiGbl_IntegerByteWidth)
     {
         /* Field is too large for an Integer, create a Buffer instead */
 
-        BufferDesc = AcpiUtCreateBufferObject (Length);
+        BufferDesc = AcpiUtCreateBufferObject (BufferLength);
         if (!BufferDesc)
         {
             return_ACPI_STATUS (AE_NO_MEMORY);
@@ -380,47 +325,22 @@ AcpiExReadDataFromField (
             return_ACPI_STATUS (AE_NO_MEMORY);
         }
 
-        Length = AcpiGbl_IntegerByteWidth;
+        BufferLength = AcpiGbl_IntegerByteWidth;
         Buffer = &BufferDesc->Integer.Value;
     }
 
     if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
         (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO))
     {
-        /*
-         * For GPIO (GeneralPurposeIo), the Address will be the bit offset
-         * from the previous Connection() operator, making it effectively a
-         * pin number index. The BitLength is the length of the field, which
-         * is thus the number of pins.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "GPIO FieldRead [FROM]:  Pin %u Bits %u\n",
-            ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength));
-
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
+        /* General Purpose I/O */
 
-        /* Perform the write */
-
-        Status = AcpiExAccessRegion (
-            ObjDesc, 0, (UINT64 *) Buffer, ACPI_READ);
-
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiUtRemoveReference (BufferDesc);
-        }
-        else
-        {
-            *RetBufferDesc = BufferDesc;
-        }
-        return_ACPI_STATUS (Status);
+        Status = AcpiExReadGpio (ObjDesc, Buffer);
+        goto Exit;
     }
 
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldRead [TO]:   Obj %p, Type %X, Buf %p, ByteLen %X\n",
-        ObjDesc, ObjDesc->Common.Type, Buffer, (UINT32) Length));
+        ObjDesc, ObjDesc->Common.Type, Buffer, BufferLength));
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldRead [FROM]: BitLen %X, BitOff %X, ByteOff %X\n",
         ObjDesc->CommonField.BitLength,
@@ -433,7 +353,7 @@ AcpiExReadDataFromField (
 
     /* Read from the field */
 
-    Status = AcpiExExtractFromField (ObjDesc, Buffer, (UINT32) Length);
+    Status = AcpiExExtractFromField (ObjDesc, Buffer, BufferLength);
     AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
 
 
@@ -472,11 +392,8 @@ AcpiExWriteDataToField (
     ACPI_OPERAND_OBJECT     **ResultDesc)
 {
     ACPI_STATUS             Status;
-    UINT32                  Length;
+    UINT32                  BufferLength;
     void                    *Buffer;
-    ACPI_OPERAND_OBJECT     *BufferDesc;
-    UINT32                  Function;
-    UINT16                  AccessorType;
 
 
     ACPI_FUNCTION_TRACE_PTR (ExWriteDataToField, ObjDesc);
@@ -505,131 +422,21 @@ AcpiExWriteDataToField (
         }
     }
     else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
-             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
+        (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO))
     {
-        /*
-         * This is an SMBus, GSBus or IPMI write. We will bypass the entire
-         * field mechanism and handoff the buffer directly to the handler.
-         * For these address spaces, the buffer is bi-directional; on a
-         * write, return data is returned in the same buffer.
-         *
-         * Source must be a buffer of sufficient size:
-         * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or
-         * ACPI_IPMI_BUFFER_SIZE.
-         *
-         * Note: SMBus and GSBus protocol type is passed in upper 16-bits
-         * of Function
-         */
-        if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "SMBus/IPMI/GenericSerialBus write requires "
-                "Buffer, found type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        if (ObjDesc->Field.RegionObj->Region.SpaceId ==
-            ACPI_ADR_SPACE_SMBUS)
-        {
-            Length = ACPI_SMBUS_BUFFER_SIZE;
-            Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16);
-        }
-        else if (ObjDesc->Field.RegionObj->Region.SpaceId ==
-            ACPI_ADR_SPACE_GSBUS)
-        {
-            AccessorType = ObjDesc->Field.Attribute;
-            Length = AcpiExGetSerialAccessLength (
-                AccessorType, ObjDesc->Field.AccessLength);
-
-            /*
-             * Add additional 2 bytes for the GenericSerialBus data buffer:
-             *
-             *     Status;    (Byte 0 of the data buffer)
-             *     Length;    (Byte 1 of the data buffer)
-             *     Data[x-1]: (Bytes 2-x of the arbitrary length data buffer)
-             */
-            Length += 2;
-            Function = ACPI_WRITE | (AccessorType << 16);
-        }
-        else /* IPMI */
-        {
-            Length = ACPI_IPMI_BUFFER_SIZE;
-            Function = ACPI_WRITE;
-        }
-
-        if (SourceDesc->Buffer.Length < Length)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "SMBus/IPMI/GenericSerialBus write requires "
-                "Buffer of length %u, found length %u",
-                Length, SourceDesc->Buffer.Length));
-
-            return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
-        }
-
-        /* Create the bi-directional buffer */
-
-        BufferDesc = AcpiUtCreateBufferObject (Length);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        Buffer = BufferDesc->Buffer.Pointer;
-        memcpy (Buffer, SourceDesc->Buffer.Pointer, Length);
+        /* General Purpose I/O */
 
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        /*
-         * Perform the write (returns status and perhaps data in the
-         * same buffer)
-         */
-        Status = AcpiExAccessRegion (
-            ObjDesc, 0, (UINT64 *) Buffer, Function);
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        *ResultDesc = BufferDesc;
+        Status = AcpiExWriteGpio (SourceDesc, ObjDesc, ResultDesc);
         return_ACPI_STATUS (Status);
     }
     else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
-             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO))
+        (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
+         ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
+         ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
     {
-        /*
-         * For GPIO (GeneralPurposeIo), we will bypass the entire field
-         * mechanism and handoff the bit address and bit width directly to
-         * the handler. The Address will be the bit offset
-         * from the previous Connection() operator, making it effectively a
-         * pin number index. The BitLength is the length of the field, which
-         * is thus the number of pins.
-         */
-        if (SourceDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "GPIO FieldWrite [FROM]: (%s:%X), Val %.8X  [TO]: Pin %u Bits %u\n",
-            AcpiUtGetTypeName (SourceDesc->Common.Type),
-            SourceDesc->Common.Type, (UINT32) SourceDesc->Integer.Value,
-            ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength));
-
-        Buffer = &SourceDesc->Integer.Value;
+        /* SMBus, GSBus, IPMI serial */
 
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        /* Perform the write */
-
-        Status = AcpiExAccessRegion (
-            ObjDesc, 0, (UINT64 *) Buffer, ACPI_WRITE);
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
+        Status = AcpiExWriteSerialBus (SourceDesc, ObjDesc, ResultDesc);
         return_ACPI_STATUS (Status);
     }
 
@@ -640,30 +447,29 @@ AcpiExWriteDataToField (
     case ACPI_TYPE_INTEGER:
 
         Buffer = &SourceDesc->Integer.Value;
-        Length = sizeof (SourceDesc->Integer.Value);
+        BufferLength = sizeof (SourceDesc->Integer.Value);
         break;
 
     case ACPI_TYPE_BUFFER:
 
         Buffer = SourceDesc->Buffer.Pointer;
-        Length = SourceDesc->Buffer.Length;
+        BufferLength = SourceDesc->Buffer.Length;
         break;
 
     case ACPI_TYPE_STRING:
 
         Buffer = SourceDesc->String.Pointer;
-        Length = SourceDesc->String.Length;
+        BufferLength = SourceDesc->String.Length;
         break;
 
     default:
-
         return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
     }
 
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldWrite [FROM]: Obj %p (%s:%X), Buf %p, ByteLen %X\n",
         SourceDesc, AcpiUtGetTypeName (SourceDesc->Common.Type),
-        SourceDesc->Common.Type, Buffer, Length));
+        SourceDesc->Common.Type, Buffer, BufferLength));
 
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldWrite [TO]:   Obj %p (%s:%X), BitLen %X, BitOff %X, ByteOff %X\n",
@@ -679,8 +485,7 @@ AcpiExWriteDataToField (
 
     /* Write to the field */
 
-    Status = AcpiExInsertIntoField (ObjDesc, Buffer, Length);
+    Status = AcpiExInsertIntoField (ObjDesc, Buffer, BufferLength);
     AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
     return_ACPI_STATUS (Status);
 }
diff --git a/src/acpica/source/components/executer/exserial.c b/src/acpica/source/components/executer/exserial.c
new file mode 100755
index 0000000..73f2aa4
--- /dev/null
+++ b/src/acpica/source/components/executer/exserial.c
@@ -0,0 +1,524 @@
+/******************************************************************************
+ *
+ * Module Name: exserial - FieldUnit support for serial address spaces
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp.
+ * All rights reserved.
+ *
+ * 2. License
+ *
+ * 2.1. This is your license from Intel Corp. under its intellectual property
+ * rights. You may have additional license terms from the party that provided
+ * you this software, covering your right to use that party's intellectual
+ * property rights.
+ *
+ * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+ * copy of the source code appearing in this file ("Covered Code") an
+ * irrevocable, perpetual, worldwide license under Intel's copyrights in the
+ * base code distributed originally by Intel ("Original Intel Code") to copy,
+ * make derivatives, distribute, use and display any portion of the Covered
+ * Code in any form, with the right to sublicense such rights; and
+ *
+ * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+ * license (with the right to sublicense), under only those claims of Intel
+ * patents that are infringed by the Original Intel Code, to make, use, sell,
+ * offer to sell, and import the Covered Code and derivative works thereof
+ * solely to the minimum extent necessary to exercise the above copyright
+ * license, and in no event shall the patent license extend to any additions
+ * to or modifications of the Original Intel Code. No other license or right
+ * is granted directly or by implication, estoppel or otherwise;
+ *
+ * The above copyright and patent license is granted only if the following
+ * conditions are met:
+ *
+ * 3. Conditions
+ *
+ * 3.1. Redistribution of Source with Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification with rights to further distribute source must include
+ * the above Copyright Notice, the above License, this list of Conditions,
+ * and the following Disclaimer and Export Compliance provision. In addition,
+ * Licensee must cause all Covered Code to which Licensee contributes to
+ * contain a file documenting the changes Licensee made to create that Covered
+ * Code and the date of any change. Licensee must include in that file the
+ * documentation of any changes made by any predecessor Licensee. Licensee
+ * must include a prominent statement that the modification is derived,
+ * directly or indirectly, from Original Intel Code.
+ *
+ * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification without rights to further distribute source must
+ * include the following Disclaimer and Export Compliance provision in the
+ * documentation and/or other materials provided with distribution. In
+ * addition, Licensee may not authorize further sublicense of source of any
+ * portion of the Covered Code, and must include terms to the effect that the
+ * license from Licensee to its licensee is limited to the intellectual
+ * property embodied in the software Licensee provides to its licensee, and
+ * not to intellectual property embodied in modifications its licensee may
+ * make.
+ *
+ * 3.3. Redistribution of Executable. Redistribution in executable form of any
+ * substantial portion of the Covered Code or modification must reproduce the
+ * above Copyright Notice, and the following Disclaimer and Export Compliance
+ * provision in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3.4. Intel retains all right, title, and interest in and to the Original
+ * Intel Code.
+ *
+ * 3.5. Neither the name Intel nor any other trademark owned or controlled by
+ * Intel shall be used in advertising or otherwise to promote the sale, use or
+ * other dealings in products derived from or relating to the Covered Code
+ * without prior written authorization from Intel.
+ *
+ * 4. Disclaimer and Export Compliance
+ *
+ * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+ * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+ * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+ * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+ * PARTICULAR PURPOSE.
+ *
+ * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+ * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+ * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+ * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+ * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+ * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+ * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+ * LIMITED REMEDY.
+ *
+ * 4.3. Licensee shall not export, either directly or indirectly, any of this
+ * software or system incorporating such software without first obtaining any
+ * required license or other approval from the U. S. Department of Commerce or
+ * any other agency or department of the United States Government. In the
+ * event Licensee exports any such software from the United States or
+ * re-exports any such software from a foreign destination, Licensee shall
+ * ensure that the distribution and export/re-export of the software is in
+ * compliance with all laws, regulations, orders, or other restrictions of the
+ * U.S. Export Administration Regulations. Licensee agrees that neither it nor
+ * any of its subsidiaries will export/re-export any technical data, process,
+ * software, or service, directly or indirectly, to any country for which the
+ * United States government or any agency thereof requires an export license,
+ * other governmental approval, or letter of assurance, without first obtaining
+ * such license, approval or letter.
+ *
+ *****************************************************************************
+ *
+ * Alternatively, you may choose to be licensed under the terms of the
+ * following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions, and the following disclaimer,
+ *    without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ *    substantially similar to the "NO WARRANTY" disclaimer below
+ *    ("Disclaimer") and any redistribution must be conditioned upon
+ *    including a substantially similar Disclaimer requirement for further
+ *    binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ *    of any contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Alternatively, you may choose to be licensed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ *****************************************************************************/
+
+#include "acpi.h"
+#include "accommon.h"
+#include "acdispat.h"
+#include "acinterp.h"
+#include "amlcode.h"
+
+
+#define _COMPONENT          ACPI_EXECUTER
+        ACPI_MODULE_NAME    ("exserial")
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiExReadGpio
+ *
+ * PARAMETERS:  ObjDesc             - The named field to read
+ *              Buffer              - Where the return data is returnd
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Read from a named field that references a Generic Serial Bus
+ *              field
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiExReadGpio (
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    void                    *Buffer)
+{
+    ACPI_STATUS             Status;
+
+
+    ACPI_FUNCTION_TRACE_PTR (ExReadGpio, ObjDesc);
+
+
+    /*
+     * For GPIO (GeneralPurposeIo), the Address will be the bit offset
+     * from the previous Connection() operator, making it effectively a
+     * pin number index. The BitLength is the length of the field, which
+     * is thus the number of pins.
+     */
+    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+        "GPIO FieldRead [FROM]:  Pin %u Bits %u\n",
+        ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength));
+
+    /* Lock entire transaction if requested */
+
+    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    /* Perform the read */
+
+    Status = AcpiExAccessRegion (
+        ObjDesc, 0, (UINT64 *) Buffer, ACPI_READ);
+
+    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
+    return_ACPI_STATUS (Status);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiExWriteGpio
+ *
+ * PARAMETERS:  SourceDesc          - Contains data to write. Expect to be
+ *                                    an Integer object.
+ *              ObjDesc             - The named field
+ *              ResultDesc          - Where the return value is returned, if any
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Write to a named field that references a General Purpose I/O
+ *              field.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiExWriteGpio (
+    ACPI_OPERAND_OBJECT     *SourceDesc,
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer)
+{
+    ACPI_STATUS             Status;
+    void                    *Buffer;
+
+
+    ACPI_FUNCTION_TRACE_PTR (ExWriteGpio, ObjDesc);
+
+
+    /*
+     * For GPIO (GeneralPurposeIo), we will bypass the entire field
+     * mechanism and handoff the bit address and bit width directly to
+     * the handler. The Address will be the bit offset
+     * from the previous Connection() operator, making it effectively a
+     * pin number index. The BitLength is the length of the field, which
+     * is thus the number of pins.
+     */
+    if (SourceDesc->Common.Type != ACPI_TYPE_INTEGER)
+    {
+        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
+    }
+
+    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+        "GPIO FieldWrite [FROM]: (%s:%X), Value %.8X  [TO]: Pin %u Bits %u\n",
+        AcpiUtGetTypeName (SourceDesc->Common.Type),
+        SourceDesc->Common.Type, (UINT32) SourceDesc->Integer.Value,
+        ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength));
+
+    Buffer = &SourceDesc->Integer.Value;
+
+    /* Lock entire transaction if requested */
+
+    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    /* Perform the write */
+
+    Status = AcpiExAccessRegion (
+        ObjDesc, 0, (UINT64 *) Buffer, ACPI_WRITE);
+    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
+    return_ACPI_STATUS (Status);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiExReadSerialBus
+ *
+ * PARAMETERS:  ObjDesc             - The named field to read
+ *              ReturnBuffer        - Where the return value is returned, if any
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Read from a named field that references a serial bus
+ *              (SMBus, IPMI, or GSBus).
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiExReadSerialBus (
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer)
+{
+    ACPI_STATUS             Status;
+    UINT32                  BufferLength;
+    ACPI_OPERAND_OBJECT     *BufferDesc;
+    UINT32                  Function;
+    UINT16                  AccessorType;
+
+
+    ACPI_FUNCTION_TRACE_PTR (ExReadSerialBus, ObjDesc);
+
+
+    /*
+     * This is an SMBus, GSBus or IPMI read. We must create a buffer to
+     * hold the data and then directly access the region handler.
+     *
+     * Note: SMBus and GSBus protocol value is passed in upper 16-bits
+     * of Function
+     *
+     * Common buffer format:
+     *     Status;    (Byte 0 of the data buffer)
+     *     Length;    (Byte 1 of the data buffer)
+     *     Data[x-1]: (Bytes 2-x of the arbitrary length data buffer)
+     */
+    switch (ObjDesc->Field.RegionObj->Region.SpaceId)
+    {
+    case ACPI_ADR_SPACE_SMBUS:
+
+        BufferLength = ACPI_SMBUS_BUFFER_SIZE;
+        Function = ACPI_READ | (ObjDesc->Field.Attribute << 16);
+        break;
+
+    case ACPI_ADR_SPACE_IPMI:
+
+        BufferLength = ACPI_IPMI_BUFFER_SIZE;
+        Function = ACPI_READ;
+        break;
+
+    case ACPI_ADR_SPACE_GSBUS:
+
+        AccessorType = ObjDesc->Field.Attribute;
+        if (AccessorType == AML_FIELD_ATTRIB_RAW_PROCESS_BYTES)
+        {
+            ACPI_ERROR ((AE_INFO,
+                "Invalid direct read using bidirectional write-then-read protocol"));
+
+            return_ACPI_STATUS (AE_AML_PROTOCOL);
+        }
+
+        Status = AcpiExGetProtocolBufferLength (AccessorType, &BufferLength);
+        if (ACPI_FAILURE (Status))
+        {
+            ACPI_ERROR ((AE_INFO,
+                "Invalid protocol ID for GSBus: 0x%4.4X", AccessorType));
+
+            return_ACPI_STATUS (Status);
+        }
+
+        /* Add header length to get the full size of the buffer */
+
+        BufferLength += ACPI_SERIAL_HEADER_SIZE;
+        Function = ACPI_READ | (AccessorType << 16);
+        break;
+
+    default:
+        return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
+    }
+
+    /* Create the local transfer buffer that is returned to the caller */
+
+    BufferDesc = AcpiUtCreateBufferObject (BufferLength);
+    if (!BufferDesc)
+    {
+        return_ACPI_STATUS (AE_NO_MEMORY);
+    }
+
+    /* Lock entire transaction if requested */
+
+    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    /* Call the region handler for the write-then-read */
+
+    Status = AcpiExAccessRegion (ObjDesc, 0,
+        ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), Function);
+    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    *ReturnBuffer = BufferDesc;
+    return_ACPI_STATUS (Status);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiExWriteSerialBus
+ *
+ * PARAMETERS:  SourceDesc          - Contains data to write
+ *              ObjDesc             - The named field
+ *              ReturnBuffer        - Where the return value is returned, if any
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Write to a named field that references a serial bus
+ *              (SMBus, IPMI, GSBus).
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiExWriteSerialBus (
+    ACPI_OPERAND_OBJECT     *SourceDesc,
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer)
+{
+    ACPI_STATUS             Status;
+    UINT32                  BufferLength;
+    UINT32                  DataLength;
+    void                    *Buffer;
+    ACPI_OPERAND_OBJECT     *BufferDesc;
+    UINT32                  Function;
+    UINT16                  AccessorType;
+
+
+    ACPI_FUNCTION_TRACE_PTR (ExWriteSerialBus, ObjDesc);
+
+
+    /*
+     * This is an SMBus, GSBus or IPMI write. We will bypass the entire
+     * field mechanism and handoff the buffer directly to the handler.
+     * For these address spaces, the buffer is bidirectional; on a
+     * write, return data is returned in the same buffer.
+     *
+     * Source must be a buffer of sufficient size, these are fixed size:
+     * ACPI_SMBUS_BUFFER_SIZE, or ACPI_IPMI_BUFFER_SIZE.
+     *
+     * Note: SMBus and GSBus protocol type is passed in upper 16-bits
+     * of Function
+     *
+     * Common buffer format:
+     *     Status;    (Byte 0 of the data buffer)
+     *     Length;    (Byte 1 of the data buffer)
+     *     Data[x-1]: (Bytes 2-x of the arbitrary length data buffer)
+     */
+    if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)
+    {
+        ACPI_ERROR ((AE_INFO,
+            "SMBus/IPMI/GenericSerialBus write requires "
+            "Buffer, found type %s",
+            AcpiUtGetObjectTypeName (SourceDesc)));
+
+        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
+    }
+
+    switch (ObjDesc->Field.RegionObj->Region.SpaceId)
+    {
+    case ACPI_ADR_SPACE_SMBUS:
+
+        BufferLength = ACPI_SMBUS_BUFFER_SIZE;
+        DataLength = ACPI_SMBUS_DATA_SIZE;
+        Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16);
+        break;
+
+    case ACPI_ADR_SPACE_IPMI:
+
+        BufferLength = ACPI_IPMI_BUFFER_SIZE;
+        DataLength = ACPI_IPMI_DATA_SIZE;
+        Function = ACPI_WRITE;
+        break;
+
+    case ACPI_ADR_SPACE_GSBUS:
+
+        AccessorType = ObjDesc->Field.Attribute;
+        Status = AcpiExGetProtocolBufferLength (AccessorType, &BufferLength);
+        if (ACPI_FAILURE (Status))
+        {
+            ACPI_ERROR ((AE_INFO,
+                "Invalid protocol ID for GSBus: 0x%4.4X", AccessorType));
+
+            return_ACPI_STATUS (Status);
+        }
+
+        /* Add header length to get the full size of the buffer */
+
+        BufferLength += ACPI_SERIAL_HEADER_SIZE;
+        DataLength = SourceDesc->Buffer.Pointer[1];
+        Function = ACPI_WRITE | (AccessorType << 16);
+        break;
+
+    default:
+        return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
+    }
+
+#if 0
+OBSOLETE?
+    /* Check for possible buffer overflow */
+
+    if (DataLength > SourceDesc->Buffer.Length)
+    {
+        ACPI_ERROR ((AE_INFO,
+            "Length in buffer header (%u)(%u) is greater than "
+            "the physical buffer length (%u) and will overflow",
+            DataLength, BufferLength, SourceDesc->Buffer.Length));
+
+        return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
+    }
+#endif
+
+    /* Create the transfer/bidirectional/return buffer */
+
+    BufferDesc = AcpiUtCreateBufferObject (BufferLength);
+    if (!BufferDesc)
+    {
+        return_ACPI_STATUS (AE_NO_MEMORY);
+    }
+
+    /* Copy the input buffer data to the transfer buffer */
+
+    Buffer = BufferDesc->Buffer.Pointer;
+    memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength);
+
+    /* Lock entire transaction if requested */
+
+    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    /*
+     * Perform the write (returns status and perhaps data in the
+     * same buffer)
+     */
+    Status = AcpiExAccessRegion (
+        ObjDesc, 0, (UINT64 *) Buffer, Function);
+    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
+
+    *ReturnBuffer = BufferDesc;
+    return_ACPI_STATUS (Status);
+}
diff --git a/src/acpica/source/components/hardware/hwsleep.c b/src/acpica/source/components/hardware/hwsleep.c
index 7e435ac..bfd3211 100644
--- a/src/acpica/source/components/hardware/hwsleep.c
+++ b/src/acpica/source/components/hardware/hwsleep.c
@@ -205,16 +205,10 @@ AcpiHwLegacySleep (
     {
         return_ACPI_STATUS (Status);
     }
-    /*
-     * If the target sleep state is S5, clear all GPEs and fixed events too
-     */
-    if (SleepState == ACPI_STATE_S5)
+    Status = AcpiHwClearAcpiStatus();
+    if (ACPI_FAILURE(Status))
     {
-        Status = AcpiHwClearAcpiStatus();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
+        return_ACPI_STATUS(Status);
     }
     AcpiGbl_SystemAwakeAndRunning = FALSE;
 
diff --git a/src/acpica/source/include/acconfig.h b/src/acpica/source/include/acconfig.h
index 41f3dff..9fa6910 100644
--- a/src/acpica/source/include/acconfig.h
+++ b/src/acpica/source/include/acconfig.h
@@ -318,11 +318,21 @@
 #define ACPI_RSDP_CHECKSUM_LENGTH       20
 #define ACPI_RSDP_XCHECKSUM_LENGTH      36
 
-/* SMBus, GSBus and IPMI bidirectional buffer size */
+/*
+ * SMBus, GSBus and IPMI buffer sizes. All have a 2-byte header,
+ * containing both Status and Length.
+ */
+#define ACPI_SERIAL_HEADER_SIZE         2   /* Common for below. Status and Length fields */
+
+#define ACPI_SMBUS_DATA_SIZE            32
+#define ACPI_SMBUS_BUFFER_SIZE          ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE
+
+#define ACPI_IPMI_DATA_SIZE             64
+#define ACPI_IPMI_BUFFER_SIZE           ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE
+
+#define ACPI_MAX_GSBUS_DATA_SIZE        255
+#define ACPI_MAX_GSBUS_BUFFER_SIZE      ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE
 
-#define ACPI_SMBUS_BUFFER_SIZE          34
-#define ACPI_GSBUS_BUFFER_SIZE          34
-#define ACPI_IPMI_BUFFER_SIZE           66
 
 /* _SxD and _SxW control methods */
 
diff --git a/src/acpica/source/include/acdisasm.h b/src/acpica/source/include/acdisasm.h
index 271a57a..b774b20 100644
--- a/src/acpica/source/include/acdisasm.h
+++ b/src/acpica/source/include/acdisasm.h
@@ -580,7 +580,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
  * dmtable and ahtable
  */
 extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
-extern const AH_TABLE           Gbl_AcpiSupportedTables[];
+extern const AH_TABLE           AcpiGbl_SupportedTables[];
 
 UINT8
 AcpiDmGenerateChecksum (
diff --git a/src/acpica/source/include/acevents.h b/src/acpica/source/include/acevents.h
index 3dc3660..03e7bba 100644
--- a/src/acpica/source/include/acevents.h
+++ b/src/acpica/source/include/acevents.h
@@ -467,6 +467,10 @@ ACPI_STATUS
 AcpiEvInitializeRegion (
     ACPI_OPERAND_OBJECT     *RegionObj);
 
+BOOLEAN
+AcpiEvIsPciRootBridge (
+    ACPI_NAMESPACE_NODE     *Node);
+
 
 /*
  * evsci - SCI (System Control Interrupt) handling/dispatch
diff --git a/src/acpica/source/include/acexcep.h b/src/acpica/source/include/acexcep.h
index ec2304c..a693ff9 100644
--- a/src/acpica/source/include/acexcep.h
+++ b/src/acpica/source/include/acexcep.h
@@ -320,8 +320,10 @@ typedef struct acpi_exception_info
 #define AE_AML_LOOP_TIMEOUT             EXCEP_AML (0x0021)
 #define AE_AML_UNINITIALIZED_NODE       EXCEP_AML (0x0022)
 #define AE_AML_TARGET_TYPE              EXCEP_AML (0x0023)
+#define AE_AML_PROTOCOL                 EXCEP_AML (0x0024)
+#define AE_AML_BUFFER_LENGTH            EXCEP_AML (0x0025)
 
-#define AE_CODE_AML_MAX                 0x0023
+#define AE_CODE_AML_MAX                 0x0025
 
 
 /*
@@ -452,7 +454,9 @@ static const ACPI_EXCEPTION_INFO    AcpiGbl_ExceptionNames_Aml[] =
     EXCEP_TXT ("AE_AML_ILLEGAL_ADDRESS",        "A memory, I/O, or PCI configuration address is invalid"),
     EXCEP_TXT ("AE_AML_LOOP_TIMEOUT",           "An AML While loop exceeded the maximum execution time"),
     EXCEP_TXT ("AE_AML_UNINITIALIZED_NODE",     "A namespace node is uninitialized or unresolved"),
-    EXCEP_TXT ("AE_AML_TARGET_TYPE",            "A target operand of an incorrect type was encountered")
+    EXCEP_TXT ("AE_AML_TARGET_TYPE",            "A target operand of an incorrect type was encountered"),
+    EXCEP_TXT ("AE_AML_PROTOCOL",               "Violation of a fixed ACPI protocol"),
+    EXCEP_TXT ("AE_AML_BUFFER_LENGTH",          "The length of the buffer is invalid/incorrect")
 };
 
 static const ACPI_EXCEPTION_INFO    AcpiGbl_ExceptionNames_Ctrl[] =
diff --git a/src/acpica/source/include/acinterp.h b/src/acpica/source/include/acinterp.h
index fde066d..f40f40e 100644
--- a/src/acpica/source/include/acinterp.h
+++ b/src/acpica/source/include/acinterp.h
@@ -285,6 +285,11 @@ AcpiExTracePoint (
  * exfield - ACPI AML (p-code) execution - field manipulation
  */
 ACPI_STATUS
+AcpiExGetProtocolBufferLength (
+    UINT32                  ProtocolId,
+    UINT32                  *ReturnLength);
+
+ACPI_STATUS
 AcpiExCommonBufferSetup (
     ACPI_OPERAND_OBJECT     *ObjDesc,
     UINT32                  BufferLength,
@@ -495,6 +500,32 @@ AcpiExPrepFieldValue (
 
 
 /*
+ * exserial - FieldUnit support for serial address spaces
+ */
+ACPI_STATUS
+AcpiExReadSerialBus (
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer);
+
+ACPI_STATUS
+AcpiExWriteSerialBus (
+    ACPI_OPERAND_OBJECT     *SourceDesc,
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer);
+
+ACPI_STATUS
+AcpiExReadGpio (
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    void                    *Buffer);
+
+ACPI_STATUS
+AcpiExWriteGpio (
+    ACPI_OPERAND_OBJECT     *SourceDesc,
+    ACPI_OPERAND_OBJECT     *ObjDesc,
+    ACPI_OPERAND_OBJECT     **ReturnBuffer);
+
+
+/*
  * exsystem - Interface to OS services
  */
 ACPI_STATUS
diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h
index 2e2bcd0..a2aaa97 100644
--- a/src/acpica/source/include/aclocal.h
+++ b/src/acpica/source/include/aclocal.h
@@ -597,9 +597,9 @@ typedef struct acpi_simple_repair_info
 
 typedef struct acpi_reg_walk_info
 {
-    ACPI_ADR_SPACE_TYPE     SpaceId;
     UINT32                  Function;
     UINT32                  RegRunCount;
+    ACPI_ADR_SPACE_TYPE     SpaceId;
 
 } ACPI_REG_WALK_INFO;
 
diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
index 5097fcc..ea92eb4 100644
--- a/src/acpica/source/include/acpixf.h
+++ b/src/acpica/source/include/acpixf.h
@@ -154,7 +154,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20180810
+#define ACPI_CA_VERSION                 0x20180927
 
 #include "acconfig.h"
 #include "actypes.h"
diff --git a/src/acpica/source/include/amlcode.h b/src/acpica/source/include/amlcode.h
index 6507ae6..358a17a 100644
--- a/src/acpica/source/include/amlcode.h
+++ b/src/acpica/source/include/amlcode.h
@@ -594,16 +594,16 @@ typedef enum
  */
 typedef enum
 {
-    AML_FIELD_ATTRIB_QUICK          = 0x02,
-    AML_FIELD_ATTRIB_SEND_RCV       = 0x04,
-    AML_FIELD_ATTRIB_BYTE           = 0x06,
-    AML_FIELD_ATTRIB_WORD           = 0x08,
-    AML_FIELD_ATTRIB_BLOCK          = 0x0A,
-    AML_FIELD_ATTRIB_MULTIBYTE      = 0x0B,
-    AML_FIELD_ATTRIB_WORD_CALL      = 0x0C,
-    AML_FIELD_ATTRIB_BLOCK_CALL     = 0x0D,
-    AML_FIELD_ATTRIB_RAW_BYTES      = 0x0E,
-    AML_FIELD_ATTRIB_RAW_PROCESS    = 0x0F
+    AML_FIELD_ATTRIB_QUICK              = 0x02,
+    AML_FIELD_ATTRIB_SEND_RECEIVE       = 0x04,
+    AML_FIELD_ATTRIB_BYTE               = 0x06,
+    AML_FIELD_ATTRIB_WORD               = 0x08,
+    AML_FIELD_ATTRIB_BLOCK              = 0x0A,
+    AML_FIELD_ATTRIB_BYTES              = 0x0B,
+    AML_FIELD_ATTRIB_PROCESS_CALL       = 0x0C,
+    AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 0x0D,
+    AML_FIELD_ATTRIB_RAW_BYTES          = 0x0E,
+    AML_FIELD_ATTRIB_RAW_PROCESS_BYTES  = 0x0F
 
 } AML_ACCESS_ATTRIBUTE;
 
diff --git a/src/acpica/source/tools/acpiexec/aeregion.c b/src/acpica/source/tools/acpiexec/aeregion.c
index 5bad835..fd427a3 100644
--- a/src/acpica/source/tools/acpiexec/aeregion.c
+++ b/src/acpica/source/tools/acpiexec/aeregion.c
@@ -189,7 +189,9 @@ AeRegionHandler (
     ACPI_PHYSICAL_ADDRESS   BaseAddressEnd;
     ACPI_PHYSICAL_ADDRESS   RegionAddress;
     ACPI_PHYSICAL_ADDRESS   RegionAddressEnd;
-    ACPI_SIZE               Length;
+    UINT32                  Length;
+    UINT8                   DataLength;
+    UINT8                   *DataBuffer;
     BOOLEAN                 BufferExists;
     BOOLEAN                 BufferResize;
     AE_REGION               *RegionElement;
@@ -207,9 +209,9 @@ AeRegionHandler (
 
     ACPI_FUNCTION_NAME (AeRegionHandler);
 
-    /*
-     * If the object is not a region, simply return
-     */
+
+    /* If the object is not a region, simply return */
+
     if (RegionObject->Region.Type != ACPI_TYPE_REGION)
     {
         return (AE_OK);
@@ -219,7 +221,8 @@ AeRegionHandler (
 
     if (HandlerContext != &AeMyContext)
     {
-        printf ("Region handler received incorrect context %p, should be %p\n",
+        AcpiOsPrintf (
+            "Region handler received incorrect context %p, should be %p\n",
             HandlerContext, &AeMyContext);
     }
 
@@ -230,7 +233,7 @@ AeRegionHandler (
      * the linked list.
      */
     BaseAddress = RegionObject->Region.Address;
-    Length = (ACPI_SIZE) RegionObject->Region.Length;
+    Length = RegionObject->Region.Length;
     SpaceId = RegionObject->Region.SpaceId;
 
     ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
@@ -324,93 +327,26 @@ AeRegionHandler (
     case ACPI_ADR_SPACE_SMBUS:
     case ACPI_ADR_SPACE_GSBUS:  /* ACPI 5.0 */
 
-        Length = 0;
-
-        switch (Function & ACPI_IO_MASK)
+        Status = AcpiExGetProtocolBufferLength ((Function >> 16), &Length);
+        if (ACPI_FAILURE (Status))
         {
-        case ACPI_READ:
-
-            switch (Function >> 16)
-            {
-            case AML_FIELD_ATTRIB_QUICK:
-
-                Length = 0;
-                break;
-
-            case AML_FIELD_ATTRIB_SEND_RCV:
-            case AML_FIELD_ATTRIB_BYTE:
-
-                Length = 1;
-                break;
-
-            case AML_FIELD_ATTRIB_WORD:
-            case AML_FIELD_ATTRIB_WORD_CALL:
-
-                Length = 2;
-                break;
-
-            case AML_FIELD_ATTRIB_BLOCK:
-            case AML_FIELD_ATTRIB_BLOCK_CALL:
-
-                Length = 32;
-                break;
-
-            case AML_FIELD_ATTRIB_MULTIBYTE:
-            case AML_FIELD_ATTRIB_RAW_BYTES:
-            case AML_FIELD_ATTRIB_RAW_PROCESS:
-
-                Length = MyContext->AccessLength;
-                break;
-
-            default:
-
-                break;
-            }
-            break;
-
-        case ACPI_WRITE:
-
-            switch (Function >> 16)
-            {
-            case AML_FIELD_ATTRIB_QUICK:
-            case AML_FIELD_ATTRIB_SEND_RCV:
-            case AML_FIELD_ATTRIB_BYTE:
-            case AML_FIELD_ATTRIB_WORD:
-            case AML_FIELD_ATTRIB_BLOCK:
-
-                Length = 0;
-                break;
-
-            case AML_FIELD_ATTRIB_WORD_CALL:
-                Length = 2;
-                break;
-
-            case AML_FIELD_ATTRIB_BLOCK_CALL:
-                Length = 32;
-                break;
-
-            case AML_FIELD_ATTRIB_MULTIBYTE:
-            case AML_FIELD_ATTRIB_RAW_BYTES:
-            case AML_FIELD_ATTRIB_RAW_PROCESS:
-
-                Length = MyContext->AccessLength;
-                break;
-
-            default:
-
-                break;
-            }
-            break;
+            AcpiOsPrintf ("AcpiExec: Invalid SMbus/GSbus protocol ID: 0x%X\n",
+                (Function >> 16));
+            return (Status);
+        }
 
-        default:
+        /* Adjust for fixed SMBus buffer size */
 
-            break;
+        if ((SpaceId == ACPI_ADR_SPACE_SMBUS) &&
+            (Length > ACPI_SMBUS_DATA_SIZE))
+        {
+            Length = ACPI_SMBUS_DATA_SIZE; /* SMBus buffer is fixed-length */
         }
 
         if (AcpiGbl_DisplayRegionAccess)
         {
             AcpiOsPrintf ("AcpiExec: %s "
-                "%s: Attr %X Addr %.4X BaseAddr %.4X Length %.2X BitWidth %X BufLen %X",
+                "%s: Attr %X Addr %.4X BaseAddr %.4X Length %.2X BitWidth %X BufLen %X\n",
                 AcpiUtGetRegionName (SpaceId),
                 (Function & ACPI_IO_MASK) ? "Write" : "Read ",
                 (UINT32) (Function >> 16),
@@ -419,29 +355,41 @@ AeRegionHandler (
 
             /* GenericSerialBus has a Connection() parameter */
 
-            if (SpaceId == ACPI_ADR_SPACE_GSBUS)
+            if ((SpaceId == ACPI_ADR_SPACE_GSBUS) && MyContext)
             {
                 Status = AcpiBufferToResource (MyContext->Connection,
                     MyContext->Length, &Resource);
+                if (ACPI_SUCCESS (Status))
+                {
+                    ACPI_FREE (Resource);
+                }
 
                 AcpiOsPrintf (" [AccessLength %.2X Connnection %p]",
                     MyContext->AccessLength, MyContext->Connection);
             }
+
             AcpiOsPrintf ("\n");
         }
 
+        DataBuffer = &Buffer[2];
+        DataLength = (UINT8) Length;
+
         /* Setup the return buffer. Note: ASLTS depends on these fill values */
 
+        if (Length == ACPI_MAX_GSBUS_DATA_SIZE)
+        {
+            DataLength = 0x20; /* For ASLTS only */
+        }
+
         for (i = 0; i < Length; i++)
         {
-            Buffer[i+2] = (UINT8) (0xA0 + i);
+            DataBuffer[i] = (UINT8) (0xA0 + i);
         }
 
-        Buffer[0] = 0x7A;
-        Buffer[1] = (UINT8) Length;
+        Buffer[0] = 0;                  /* Return Status, OK */
+        Buffer[1] = DataLength;         /* Length of valid data */
         return (AE_OK);
 
-
     case ACPI_ADR_SPACE_IPMI: /* ACPI 4.0 */
 
         if (AcpiGbl_DisplayRegionAccess)
@@ -459,16 +407,16 @@ AeRegionHandler (
          *
          * Return some example data to show use of the bidirectional buffer
          */
-        Buffer[0] = 0;       /* Status byte */
-        Buffer[1] = 64;      /* Return buffer data length */
-        Buffer[2] = 0;       /* Completion code */
-        Buffer[3] = 0;       /* Reserved */
+        Buffer[0] = 0;                      /* Status byte */
+        Buffer[1] = ACPI_IPMI_DATA_SIZE;    /* Return buffer data length */
+        Buffer[2] = 0;                      /* Completion code */
+        Buffer[3] = 0;                      /* Reserved */
 
         /*
          * Fill the 66-byte buffer with the return data.
          * Note: ASLTS depends on these fill values.
          */
-        for (i = 4; i < 66; i++)
+        for (i = 4; i < ACPI_IPMI_BUFFER_SIZE; i++)
         {
             Buffer[i] = (UINT8) (i);
         }
@@ -484,11 +432,13 @@ AeRegionHandler (
         if (AcpiGbl_DisplayRegionAccess)
         {
             AcpiOsPrintf ("AcpiExec: GPIO "
-                "%s: Addr %.4X Width %X Conn %p\n",
+                "%s: Address %.4X Length %X BitWidth %X Conn %p\n",
                 (Function & ACPI_IO_MASK) ? "Write" : "Read ",
-                (UINT32) Address, BitWidth, MyContext->Connection);
+                (UINT32) Address, Length, BitWidth, MyContext->Connection);
         }
-        return (AE_OK);
+
+        /* Now perform the "normal" SystemMemory handling, for AcpiExec only */
+        break;
 
     default:
         break;
@@ -662,7 +612,6 @@ AeRegionHandler (
     /* Calculate the size of the memory copy */
 
     ByteWidth = (BitWidth / 8);
-
     if (BitWidth % 8)
     {
         ByteWidth += 1;
@@ -727,11 +676,16 @@ DoFunction:
         case ACPI_ADR_SPACE_SYSTEM_MEMORY:
 
             AcpiOsPrintf ("AcpiExec: SystemMemory "
-                "%s: Val %.8X Addr %.4X Width %X [REGION: BaseAddr %.4X Len %.2X]\n",
+                "%s: Val %.8X Addr %.4X BitWidth %X [REGION: BaseAddr %.4X Len %.2X]\n",
                 (Function & ACPI_IO_MASK) ? "Write" : "Read ",
                 (UINT32) *Value, (UINT32) Address, BitWidth, (UINT32) BaseAddress, Length);
             break;
 
+        case ACPI_ADR_SPACE_GSBUS:
+
+            AcpiOsPrintf ("AcpiExec: GenericSerialBus\n");
+            break;
+
         case ACPI_ADR_SPACE_GPIO:   /* ACPI 5.0 */
 
             /* This space is required to always be ByteAcc */
@@ -740,14 +694,20 @@ DoFunction:
                 MyContext->Length, &Resource);
 
             AcpiOsPrintf ("AcpiExec: GeneralPurposeIo "
-                "%s: Val %.8X Addr %.4X BaseAddr %.4X Len %.2X Width %X AccLen %.2X Conn %p\n",
+                "%s: %.8X Addr %.4X BaseAddr %.4X Length %.2X "
+                "BitWidth %X AccLen %.2X Conn %p\n",
                 (Function & ACPI_IO_MASK) ? "Write" : "Read ", (UINT32) *Value,
                 (UINT32) Address, (UINT32) BaseAddress, Length, BitWidth,
                 MyContext->AccessLength, MyContext->Connection);
+            if (ACPI_SUCCESS (Status))
+            {
+                ACPI_FREE (Resource);
+            }
             break;
 
         default:
 
+            AcpiOsPrintf ("AcpiExec: Region access on SpaceId %2.2X\n", SpaceId);
             break;
         }
     }
-- 
2.7.4




More information about the fwts-devel mailing list