您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AcpiDsGetCurrentWalkState函数代码示例

51自学网 2021-06-01 19:39:23
  C++
这篇教程C++ AcpiDsGetCurrentWalkState函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AcpiDsGetCurrentWalkState函数的典型用法代码示例。如果您正苦于以下问题:C++ AcpiDsGetCurrentWalkState函数的具体用法?C++ AcpiDsGetCurrentWalkState怎么用?C++ AcpiDsGetCurrentWalkState使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AcpiDsGetCurrentWalkState函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: AcpiDbDisplayResults

voidAcpiDbDisplayResults (void){    UINT32                  i;    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    UINT32                  NumResults = 0;    ACPI_NAMESPACE_NODE     *Node;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    ObjDesc = WalkState->MethodDesc;    Node = WalkState->MethodNode;    if (WalkState->Results)    {        NumResults = WalkState->Results->Results.NumResults;    }    AcpiOsPrintf ("Method [%4.4s] has %X stacked result objects/n",        Node->Name.Ascii, NumResults);    for (i = 0; i < NumResults; i++)    {        ObjDesc = WalkState->Results->Results.ObjDesc[i];        AcpiOsPrintf ("Result%d: ", i);        AcpiDbDisplayInternalObject (ObjDesc, WalkState);    }}
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:35,


示例2: AcpiDbDisplayCallingTree

voidAcpiDbDisplayCallingTree (    void){    ACPI_WALK_STATE         *WalkState;    ACPI_NAMESPACE_NODE     *Node;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    Node = WalkState->MethodNode;    AcpiOsPrintf ("Current Control Method Call Tree/n");    while (WalkState)    {        Node = WalkState->MethodNode;        AcpiOsPrintf ("    [%4.4s]/n", AcpiUtGetNodeName (Node));        WalkState = WalkState->Next;    }}
开发者ID:iHaD,项目名称:DragonFlyBSD,代码行数:26,


示例3: AcpiDbDisplayLocals

voidAcpiDbDisplayLocals (void){    UINT32                  i;    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_NAMESPACE_NODE     *Node;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    ObjDesc = WalkState->MethodDesc;    Node = WalkState->MethodNode;    if (!Node)    {        AcpiOsPrintf ("No method node (Executing subtree for buffer or opregion)/n");        return;    }    AcpiOsPrintf ("Local Variables for method [%4.4s]:/n", Node->Name.Ascii);    for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++)    {        ObjDesc = WalkState->LocalVariables[i].Object;        AcpiOsPrintf ("Local%d: ", i);        AcpiDbDisplayInternalObject (ObjDesc, WalkState);    }}
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:33,


示例4: AcpiDbDisplayResults

voidAcpiDbDisplayResults (    void){    UINT32                  i;    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    UINT32                  ResultCount = 0;    ACPI_NAMESPACE_NODE     *Node;    ACPI_GENERIC_STATE      *Frame;    UINT32                  Index; /* Index onto current frame */    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    ObjDesc = WalkState->MethodDesc;    Node    = WalkState->MethodNode;    if (WalkState->Results)    {        ResultCount = WalkState->ResultCount;    }    AcpiOsPrintf ("Method [%4.4s] has %X stacked result objects/n",        AcpiUtGetNodeName (Node), ResultCount);    /* From the top element of result stack */    Frame = WalkState->Results;    Index = (ResultCount - 1) % ACPI_RESULTS_FRAME_OBJ_NUM;    for (i = 0; i < ResultCount; i++)    {        ObjDesc = Frame->Results.ObjDesc[Index];        AcpiOsPrintf ("Result%u: ", i);        AcpiDbDisplayInternalObject (ObjDesc, WalkState);        if (Index == 0)        {            Frame = Frame->Results.Next;            Index = ACPI_RESULTS_FRAME_OBJ_NUM;        }        Index--;    }}
开发者ID:iHaD,项目名称:DragonFlyBSD,代码行数:51,


示例5: AcpiDbDisplayArguments

voidAcpiDbDisplayArguments (    void){    ACPI_WALK_STATE         *WalkState;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    AcpiDbDecodeArguments (WalkState);}
开发者ID:iHaD,项目名称:DragonFlyBSD,代码行数:16,


示例6: AcpiDbDisplayArguments

voidAcpiDbDisplayArguments (void){    UINT32                  i;    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    UINT32                  NumArgs;    UINT32                  Concurrency;    ACPI_NAMESPACE_NODE     *Node;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    ObjDesc = WalkState->MethodDesc;    Node    = WalkState->MethodNode;    if (!Node)    {        AcpiOsPrintf ("No method node (Executing subtree for buffer or opregion)/n");        return;    }    NumArgs     = ObjDesc->Method.ParamCount;    Concurrency = ObjDesc->Method.Concurrency;    AcpiOsPrintf ("Method [%4.4s] has %X arguments, max concurrency = %X/n",            Node->Name.Ascii, NumArgs, Concurrency);    for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)    {        ObjDesc = WalkState->Arguments[i].Object;        AcpiOsPrintf ("Arg%d: ", i);        AcpiDbDisplayInternalObject (ObjDesc, WalkState);    }}
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:39,


示例7: AcpiDbSetMethodData

voidAcpiDbSetMethodData (    char                    *TypeArg,    char                    *IndexArg,    char                    *ValueArg){    char                    Type;    UINT32                  Index;    UINT32                  Value;    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    /* Validate TypeArg */    AcpiUtStrupr (TypeArg);    Type = TypeArg[0];    if ((Type != 'L') &&        (Type != 'A') &&        (Type != 'N'))    {        AcpiOsPrintf ("Invalid SET operand: %s/n", TypeArg);        return;    }    Value = ACPI_STRTOUL (ValueArg, NULL, 16);    if (Type == 'N')    {        Node = AcpiDbConvertToNode (IndexArg);        if (Node->Type != ACPI_TYPE_INTEGER)        {            AcpiOsPrintf ("Can only set Integer nodes/n");            return;        }        ObjDesc = Node->Object;        ObjDesc->Integer.Value = Value;        return;    }    /* Get the index and value */    Index = ACPI_STRTOUL (IndexArg, NULL, 16);    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    /* Create and initialize the new object */    ObjDesc = AcpiUtCreateIntegerObject ((UINT64) Value);    if (!ObjDesc)    {        AcpiOsPrintf ("Could not create an internal object/n");        return;    }    /* Store the new object into the target */    switch (Type)    {    case 'A':        /* Set a method argument */        if (Index > ACPI_METHOD_MAX_ARG)        {            AcpiOsPrintf ("Arg%u - Invalid argument name/n", Index);            goto Cleanup;        }        Status = AcpiDsStoreObjectToLocal (ACPI_REFCLASS_ARG, Index, ObjDesc,                    WalkState);        if (ACPI_FAILURE (Status))        {            goto Cleanup;        }        ObjDesc = WalkState->Arguments[Index].Object;        AcpiOsPrintf ("Arg%u: ", Index);        AcpiDmDisplayInternalObject (ObjDesc, WalkState);        break;    case 'L':        /* Set a method local */        if (Index > ACPI_METHOD_MAX_LOCAL)        {            AcpiOsPrintf ("Local%u - Invalid local variable name/n", Index);            goto Cleanup;        }        Status = AcpiDsStoreObjectToLocal (ACPI_REFCLASS_LOCAL, Index, ObjDesc,//.........这里部分代码省略.........
开发者ID:eyberg,项目名称:rumpkernel-netbsd-src,代码行数:101,


示例8: AcpiDbDisplayMethodInfo

voidAcpiDbDisplayMethodInfo (    ACPI_PARSE_OBJECT       *StartOp){    ACPI_WALK_STATE         *WalkState;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_NAMESPACE_NODE     *Node;    ACPI_PARSE_OBJECT       *RootOp;    ACPI_PARSE_OBJECT       *Op;    const ACPI_OPCODE_INFO  *OpInfo;    UINT32                  NumOps = 0;    UINT32                  NumOperands = 0;    UINT32                  NumOperators = 0;    UINT32                  NumRemainingOps = 0;    UINT32                  NumRemainingOperands = 0;    UINT32                  NumRemainingOperators = 0;    BOOLEAN                 CountRemaining = FALSE;    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);    if (!WalkState)    {        AcpiOsPrintf ("There is no method currently executing/n");        return;    }    ObjDesc = WalkState->MethodDesc;    Node    = WalkState->MethodNode;    AcpiOsPrintf ("Currently executing control method is [%4.4s]/n",            AcpiUtGetNodeName (Node));    AcpiOsPrintf ("%X Arguments, SyncLevel = %X/n",            (UINT32) ObjDesc->Method.ParamCount,            (UINT32) ObjDesc->Method.SyncLevel);    RootOp = StartOp;    while (RootOp->Common.Parent)    {        RootOp = RootOp->Common.Parent;    }    Op = RootOp;    while (Op)    {        if (Op == StartOp)        {            CountRemaining = TRUE;        }        NumOps++;        if (CountRemaining)        {            NumRemainingOps++;        }        /* Decode the opcode */        OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);        switch (OpInfo->Class)        {        case AML_CLASS_ARGUMENT:            if (CountRemaining)            {                NumRemainingOperands++;            }            NumOperands++;            break;        case AML_CLASS_UNKNOWN:            /* Bad opcode or ASCII character */            continue;        default:            if (CountRemaining)            {                NumRemainingOperators++;            }            NumOperators++;            break;        }        Op = AcpiPsGetDepthNext (StartOp, Op);    }    AcpiOsPrintf (        "Method contains:       %X AML Opcodes - %X Operators, %X Operands/n",        NumOps, NumOperators, NumOperands);    AcpiOsPrintf (        "Remaining to execute:  %X AML Opcodes - %X Operators, %X Operands/n",        NumRemainingOps, NumRemainingOperators, NumRemainingOperands);}
开发者ID:iHaD,项目名称:DragonFlyBSD,代码行数:100,


示例9: AcpiPsParseAml

ACPI_STATUSAcpiPsParseAml (    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status;    ACPI_THREAD_STATE       *Thread;    ACPI_THREAD_STATE       *PrevWalkList = AcpiGbl_CurrentWalkList;    ACPI_WALK_STATE         *PreviousWalkState;    ACPI_FUNCTION_TRACE (PsParseAml);    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,        "Entered with WalkState=%p Aml=%p size=%X/n",        WalkState, WalkState->ParserState.Aml,        WalkState->ParserState.AmlSize));    if (!WalkState->ParserState.Aml)    {        return_ACPI_STATUS (AE_NULL_OBJECT);    }    /* Create and initialize a new thread state */    Thread = AcpiUtCreateThreadState ();    if (!Thread)    {        if (WalkState->MethodDesc)        {            /* Executing a control method - additional cleanup */            AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState);        }        AcpiDsDeleteWalkState (WalkState);        return_ACPI_STATUS (AE_NO_MEMORY);    }    WalkState->Thread = Thread;    /*     * If executing a method, the starting SyncLevel is this method's     * SyncLevel     */    if (WalkState->MethodDesc)    {        WalkState->Thread->CurrentSyncLevel = WalkState->MethodDesc->Method.SyncLevel;    }    AcpiDsPushWalkState (WalkState, Thread);    /*     * This global allows the AML debugger to get a handle to the currently     * executing control method.     */    AcpiGbl_CurrentWalkList = Thread;    /*     * Execute the walk loop as long as there is a valid Walk State. This     * handles nested control method invocations without recursion.     */    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "State=%p/n", WalkState));    Status = AE_OK;    while (WalkState)    {        if (ACPI_SUCCESS (Status))        {            /*             * The ParseLoop executes AML until the method terminates             * or calls another method.             */            Status = AcpiPsParseLoop (WalkState);        }        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,            "Completed one call to walk loop, %s State=%p/n",            AcpiFormatException (Status), WalkState));        if (Status == AE_CTRL_TRANSFER)        {            /*             * A method call was detected.             * Transfer control to the called control method             */            Status = AcpiDsCallControlMethod (Thread, WalkState, NULL);            if (ACPI_FAILURE (Status))            {                Status = AcpiDsMethodError (Status, WalkState);            }            /*             * If the transfer to the new method method call worked, a new walk             * state was created -- get it             */            WalkState = AcpiDsGetCurrentWalkState (Thread);            continue;        }        else if (Status == AE_CTRL_TERMINATE)        {//.........这里部分代码省略.........
开发者ID:ModeenF,项目名称:haiku,代码行数:101,


示例10: AcpiPsParseAml

//.........这里部分代码省略.........        }    }    /*     * Execute the walk loop as long as there is a valid Walk State.  This     * handles nested control method invocations without recursion.     */    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "State=%p/n", WalkState));    Status = AE_OK;    while (WalkState)    {        if (ACPI_SUCCESS (Status))        {            Status = AcpiPsParseLoop (WalkState);        }        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,            "Completed one call to walk loop, State=%p/n", WalkState));        if (Status == AE_CTRL_TRANSFER)        {            /*             * A method call was detected.             * Transfer control to the called control method             */            Status = AcpiDsCallControlMethod (&WalkList, WalkState, NULL);            /*             * If the transfer to the new method method call worked, a new walk             * state was created -- get it             */            WalkState = AcpiDsGetCurrentWalkState (&WalkList);            continue;        }        else if (Status == AE_CTRL_TERMINATE)        {            Status = AE_OK;        }        /* We are done with this walk, move on to the parent if any */        WalkState = AcpiDsPopWalkState (&WalkList);        /* Extract return value before we delete WalkState */        ReturnDesc = WalkState->ReturnDesc;        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "ReturnValue=%p, State=%p/n",            WalkState->ReturnDesc, WalkState));        /* Reset the current scope to the beginning of scope stack */        AcpiDsScopeStackClear (WalkState);        /*         * If we just returned from the execution of a control method,         * there's lots of cleanup to do         */        if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE)        {            AcpiDsTerminateControlMethod (WalkState);        }
开发者ID:MarginC,项目名称:kame,代码行数:66,



注:本文中的AcpiDsGetCurrentWalkState函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ AcpiDsMethodDataGetNode函数代码示例
C++ AcpiDsDeleteWalkState函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。