diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2016-02-12 18:53:29 +0000 | 
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2016-02-12 18:53:29 +0000 | 
| commit | 67ac2c42d552618270f8ba5431d63944a35a0ee7 (patch) | |
| tree | 5c13158cdf7d0b9ff31cb1f23b72fa64440df238 /source/compiler/asltransform.c | |
| parent | 176870a6cad869aa9bbb6b7906be146cc651c359 (diff) | |
Notes
Diffstat (limited to 'source/compiler/asltransform.c')
| -rw-r--r-- | source/compiler/asltransform.c | 45 | 
1 files changed, 43 insertions, 2 deletions
diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 607b1bbbb863..8de5ba18c30c 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -249,7 +249,7 @@ TrAmlInsertPeer (  /*******************************************************************************   * - * FUNCTION:    TrAmlTransformWalk + * FUNCTION:    TrAmlTransformWalkBegin   *   * PARAMETERS:  ASL_WALK_CALLBACK   * @@ -261,7 +261,7 @@ TrAmlInsertPeer (   ******************************************************************************/  ACPI_STATUS -TrAmlTransformWalk ( +TrAmlTransformWalkBegin (      ACPI_PARSE_OBJECT       *Op,      UINT32                  Level,      void                    *Context) @@ -274,6 +274,38 @@ TrAmlTransformWalk (  /*******************************************************************************   * + * FUNCTION:    TrAmlTransformWalkEnd + * + * PARAMETERS:  ASL_WALK_CALLBACK + * + * RETURN:      None + * + * DESCRIPTION: Parse tree walk to generate both the AML opcodes and the AML + *              operands. + * + ******************************************************************************/ + +ACPI_STATUS +TrAmlTransformWalkEnd ( +    ACPI_PARSE_OBJECT       *Op, +    UINT32                  Level, +    void                    *Context) +{ + +    /* Save possible Externals list in the DefintionBlock Op */ + +    if (Op->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK) +    { +        Op->Asl.Value.Arg = Gbl_ExternalsListHead; +        Gbl_ExternalsListHead = NULL; +    } + +    return (AE_OK); +} + + +/******************************************************************************* + *   * FUNCTION:    TrTransformSubtree   *   * PARAMETERS:  Op        - The parent parse node @@ -316,6 +348,11 @@ TrTransformSubtree (          Gbl_TempCount = 0;          break; +    case PARSEOP_EXTERNAL: + +        ExDoExternal (Op); +        break; +      default:          /* Nothing to do here for other opcodes */ @@ -347,6 +384,10 @@ TrDoDefinitionBlock (      UINT32                  i; +    /* Reset external list when starting a definition block */ + +    Gbl_ExternalsListHead = NULL; +      Next = Op->Asl.Child;      for (i = 0; i < 5; i++)      {  | 
