diff options
| author | Mike Smith <msmith@FreeBSD.org> | 2000-12-01 09:36:25 +0000 | 
|---|---|---|
| committer | Mike Smith <msmith@FreeBSD.org> | 2000-12-01 09:36:25 +0000 | 
| commit | f2ed5750af4c77d9075ddf1c28ecfdea8c12c6ae (patch) | |
| tree | 7c849b394b62ba086bc123f7a780a33169a79fe8 /sys/contrib/dev/acpica/psparse.c | |
| parent | 926328c40640129470e712faa4614b6a317c00a9 (diff) | |
Notes
Diffstat (limited to 'sys/contrib/dev/acpica/psparse.c')
| -rw-r--r-- | sys/contrib/dev/acpica/psparse.c | 118 | 
1 files changed, 15 insertions, 103 deletions
diff --git a/sys/contrib/dev/acpica/psparse.c b/sys/contrib/dev/acpica/psparse.c index 4951b7a30ee05..8deff00fb6a25 100644 --- a/sys/contrib/dev/acpica/psparse.c +++ b/sys/contrib/dev/acpica/psparse.c @@ -1,7 +1,7 @@  /******************************************************************************   *   * Module Name: psparse - Parser top level AML parse routines - *              $Revision: 60 $ + *              $Revision: 65 $   *   *****************************************************************************/ @@ -121,7 +121,7 @@   * generated parser to tightly constrain stack and dynamic memory   * usage.  At the same time, parsing is kept flexible and the code   * fairly compact by parsing based on a list of AML opcode - * templates in AcpiGbl_AmlOpInfo[] + * templates in AmlOpInfo[]   */  #include "acpi.h" @@ -141,101 +141,6 @@ extern UINT32               AcpiGbl_ScopeDepth;  /*******************************************************************************   * - * FUNCTION:    AcpiPsDeleteCompletedOp - * - * PARAMETERS:  State           - Walk state - *              Op              - Completed op - * - * RETURN:      AE_OK - * - * DESCRIPTION: Callback function for AcpiPsGetNextWalkOp().  Used during - *              AcpiPsDeleteParse tree to delete Op objects when all sub-objects - *              have been visited (and deleted.) - * - ******************************************************************************/ - -ACPI_STATUS -AcpiPsDeleteCompletedOp ( -    ACPI_WALK_STATE         *State, -    ACPI_PARSE_OBJECT       *Op) -{ - -    AcpiPsFreeOp (Op); -    return (AE_OK); -} - - -#ifndef PARSER_ONLY -/******************************************************************************* - * - * FUNCTION:    AcpiPsDeleteParseTree - * - * PARAMETERS:  SubtreeRoot         - Root of tree (or subtree) to delete - * - * RETURN:      None - * - * DESCRIPTION: Delete a portion of or an entire parse tree. - * - ******************************************************************************/ - -void -AcpiPsDeleteParseTree ( -    ACPI_PARSE_OBJECT       *SubtreeRoot) -{ -    ACPI_WALK_STATE         *WalkState; -    ACPI_WALK_LIST          WalkList; - - -    FUNCTION_TRACE_PTR ("PsDeleteParseTree", SubtreeRoot); - - -    if (!SubtreeRoot) -    { -        return_VOID; -    } - -    /* Create and initialize a new walk list */ - -    WalkList.WalkState = NULL; -    WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, NULL, NULL, &WalkList); -    if (!WalkState) -    { -        return_VOID; -    } - -    WalkState->ParserState          = NULL; -    WalkState->ParseFlags           = 0; -    WalkState->DescendingCallback   = NULL; -    WalkState->AscendingCallback    = NULL; - - -    WalkState->Origin = SubtreeRoot; -    WalkState->NextOp = SubtreeRoot; - - -    /* Head downward in the tree */ - -    WalkState->NextOpInfo = NEXT_OP_DOWNWARD; - -    /* Visit all nodes in the subtree */ - -    while (WalkState->NextOp) -    { -        AcpiPsGetNextWalkOp (WalkState, WalkState->NextOp, -                                AcpiPsDeleteCompletedOp); -    } - -    /* We are done with this walk */ - -    AcpiDsDeleteWalkState (WalkState); - -    return_VOID; -} -#endif - - -/******************************************************************************* - *   * FUNCTION:    AcpiPsPeekOpcode   *   * PARAMETERS:  None @@ -246,7 +151,7 @@ AcpiPsDeleteParseTree (   *   ******************************************************************************/ -UINT32 +static UINT32  AcpiPsGetOpcodeSize (      UINT32                  Opcode)  { @@ -428,7 +333,7 @@ AcpiPsFindObject (   *   ******************************************************************************/ -BOOLEAN +static BOOLEAN  AcpiPsCompleteThisOp (      ACPI_WALK_STATE         *WalkState,      ACPI_PARSE_OBJECT       *Op) @@ -560,8 +465,7 @@ AcpiPsCompleteThisOp (   *   ******************************************************************************/ - -ACPI_STATUS +static ACPI_STATUS  AcpiPsNextParseState (      ACPI_WALK_STATE         *WalkState,      ACPI_PARSE_OBJECT       *Op, @@ -700,12 +604,12 @@ AcpiPsParseLoop (      ACPI_PARSE_STATE        *ParserState; -      FUNCTION_TRACE_PTR ("PsParseLoop", WalkState);      ParserState = WalkState->ParserState; +#ifndef PARSER_ONLY      if (WalkState->WalkType & WALK_METHOD_RESTART)      {          /* We are restarting a preempted control method */ @@ -725,11 +629,18 @@ AcpiPsParseLoop (              {                  /* -                 * A predicate was just completed, get the value of the  +                 * A predicate was just completed, get the value of the                   * predicate and branch based on that value                   */                  Status = AcpiDsGetPredicateValue (WalkState, NULL, TRUE); +                if (Status == AE_AML_NO_OPERAND) +                { +                    DEBUG_PRINT (ACPI_ERROR, +                        ("PsParseLoop: Invoked method did not return a value, %s\n", +                        AcpiCmFormatException (Status))); + +                }                  Status = AcpiPsNextParseState (WalkState, Op, Status);              } @@ -745,6 +656,7 @@ AcpiPsParseLoop (              ArgTypes = WalkState->PrevArgTypes;          }      } +#endif      /*       * Iterative parsing loop, while there is more aml to process:  | 
