diff mbox series

ACPICA: Update to version 20180927

Message ID 1538380778-8143-1-git-send-email-ivan.hu@canonical.com
State Accepted
Headers show
Series ACPICA: Update to version 20180927 | expand

Commit Message

Ivan Hu Oct. 1, 2018, 7:59 a.m. UTC
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@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

Comments

Colin Ian King Oct. 1, 2018, 8:11 a.m. UTC | #1
On 01/10/18 08:59, Ivan Hu wrote:
> 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@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;
>          }
>      }
> 
Thanks Ivan,

I think the syntaxcheck regression test needs to be sync'd up with the
changed output from this release:

FAIL: fwts-test/syntaxcheck-0001/test-0001.sh

Acked-by: Colin Ian King <colin.king@canonical.com>
Alex Hung Oct. 2, 2018, 12:10 a.m. UTC | #2
On 2018-10-01 03:59 PM, Ivan Hu wrote:
> 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@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;
>          }
>      }
> 


Acked-by: Alex Hung <alex.hung@canonical.com>
diff mbox series

Patch

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;
         }
     }