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

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

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

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

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

示例1: AcpiDsResolveOperands

ACPI_STATUSAcpiDsResolveOperands (    ACPI_WALK_STATE         *WalkState){    UINT32                  i;    ACPI_STATUS             Status = AE_OK;    ACPI_FUNCTION_TRACE_PTR (DsResolveOperands, WalkState);    /*     * Attempt to resolve each of the valid operands     * Method arguments are passed by reference, not by value. This means     * that the actual objects are passed, not copies of the objects.     */    for (i = 0; i < WalkState->NumOperands; i++)    {        Status = AcpiExResolveToValue (&WalkState->Operands[i], WalkState);        if (ACPI_FAILURE (Status))        {            break;        }    }    return_ACPI_STATUS (Status);}
开发者ID:ornarium,项目名称:freebsd,代码行数:27,


示例2: AcpiDsEvaluateNamePath

ACPI_STATUSAcpiDsEvaluateNamePath (    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status = AE_OK;    ACPI_PARSE_OBJECT       *Op = WalkState->Op;    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];    ACPI_OPERAND_OBJECT     *NewObjDesc;    UINT8                   Type;    ACPI_FUNCTION_TRACE_PTR (DsEvaluateNamePath, WalkState);    if (!Op->Common.Parent)    {        /* This happens after certain exception processing */        goto Exit;    }    if ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||        (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP) ||        (Op->Common.Parent->Common.AmlOpcode == AML_REF_OF_OP))    {        /* TBD: Should we specify this feature as a bit of OpInfo->Flags of these opcodes? */        goto Exit;    }    Status = AcpiDsCreateOperand (WalkState, Op, 0);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (Op->Common.Flags & ACPI_PARSEOP_TARGET)    {        NewObjDesc = *Operand;        goto PushResult;    }    Type = (*Operand)->Common.Type;    Status = AcpiExResolveToValue (Operand, WalkState);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (Type == ACPI_TYPE_INTEGER)    {        /* It was incremented by AcpiExResolveToValue */        AcpiUtRemoveReference (*Operand);        Status = AcpiUtCopyIobjectToIobject (*Operand, &NewObjDesc, WalkState);        if (ACPI_FAILURE (Status))        {            goto Exit;        }    }    else    {        /*         * The object either was anew created or is         * a Namespace node - don't decrement it.         */        NewObjDesc = *Operand;    }    /* Cleanup for name-path operand */    Status = AcpiDsObjStackPop (1, WalkState);    if (ACPI_FAILURE (Status))    {        WalkState->ResultObj = NewObjDesc;        goto Exit;    }PushResult:    WalkState->ResultObj = NewObjDesc;    Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);    if (ACPI_SUCCESS (Status))    {        /* Force to take it from stack */        Op->Common.Flags |= ACPI_PARSEOP_IN_STACK;    }Exit:    return_ACPI_STATUS (Status);}
开发者ID:ornarium,项目名称:freebsd,代码行数:96,


示例3: AcpiExResolveObject

ACPI_STATUSAcpiExResolveObject (    ACPI_OPERAND_OBJECT     **SourceDescPtr,    ACPI_OBJECT_TYPE        TargetType,    ACPI_WALK_STATE         *WalkState){    ACPI_OPERAND_OBJECT     *SourceDesc = *SourceDescPtr;    ACPI_STATUS             Status = AE_OK;    ACPI_FUNCTION_TRACE (ExResolveObject);    /* Ensure we have a Target that can be stored to */    switch (TargetType)    {    case ACPI_TYPE_BUFFER_FIELD:    case ACPI_TYPE_LOCAL_REGION_FIELD:    case ACPI_TYPE_LOCAL_BANK_FIELD:    case ACPI_TYPE_LOCAL_INDEX_FIELD:        /*         * These cases all require only Integers or values that         * can be converted to Integers (Strings or Buffers)         */    case ACPI_TYPE_INTEGER:    case ACPI_TYPE_STRING:    case ACPI_TYPE_BUFFER:        /*         * Stores into a Field/Region or into a Integer/Buffer/String         * are all essentially the same.  This case handles the         * "interchangeable" types Integer, String, and Buffer.         */        if (SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)        {            /* Resolve a reference object first */            Status = AcpiExResolveToValue (SourceDescPtr, WalkState);            if (ACPI_FAILURE (Status))            {                break;            }        }        /* For CopyObject, no further validation necessary */        if (WalkState->Opcode == AML_COPY_OP)        {            break;        }        /* Must have a Integer, Buffer, or String */        if ((SourceDesc->Common.Type != ACPI_TYPE_INTEGER)    &&            (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)     &&            (SourceDesc->Common.Type != ACPI_TYPE_STRING)     &&            !((SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&                    (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE)))        {            /* Conversion successful but still not a valid type */            ACPI_ERROR ((AE_INFO,                "Cannot assign type %s to %s (must be type Int/Str/Buf)",                AcpiUtGetObjectTypeName (SourceDesc),                AcpiUtGetTypeName (TargetType)));            Status = AE_AML_OPERAND_TYPE;        }        break;    case ACPI_TYPE_LOCAL_ALIAS:    case ACPI_TYPE_LOCAL_METHOD_ALIAS:        /*         * All aliases should have been resolved earlier, during the         * operand resolution phase.         */        ACPI_ERROR ((AE_INFO, "Store into an unresolved Alias object"));        Status = AE_AML_INTERNAL;        break;    case ACPI_TYPE_PACKAGE:    default:        /*         * All other types than Alias and the various Fields come here,         * including the untyped case - ACPI_TYPE_ANY.         */        break;    }    return_ACPI_STATUS (Status);}
开发者ID:Aresthu,项目名称:ucore_plus,代码行数:96,


示例4: AcpiDsEvalBankFieldOperands

ACPI_STATUSAcpiDsEvalBankFieldOperands (    ACPI_WALK_STATE         *WalkState,    ACPI_PARSE_OBJECT       *Op){    ACPI_STATUS             Status;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_OPERAND_OBJECT     *OperandDesc;    ACPI_NAMESPACE_NODE     *Node;    ACPI_PARSE_OBJECT       *NextOp;    ACPI_PARSE_OBJECT       *Arg;    ACPI_FUNCTION_TRACE_PTR (DsEvalBankFieldOperands, Op);    /*     * This is where we evaluate the BankValue field of the     * BankField declaration     */    /* NextOp points to the op that holds the Region */    NextOp = Op->Common.Value.Arg;    /* NextOp points to the op that holds the Bank Register */    NextOp = NextOp->Common.Next;    /* NextOp points to the op that holds the Bank Value */    NextOp = NextOp->Common.Next;    /*     * Set proper index into operand stack for AcpiDsObjStackPush     * invoked inside AcpiDsCreateOperand.     *     * We use WalkState->Operands[0] to store the evaluated BankValue     */    WalkState->OperandIndex = 0;    Status = AcpiDsCreateOperand (WalkState, NextOp, 0);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    Status = AcpiExResolveToValue (&WalkState->Operands[0], WalkState);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS,        AcpiPsGetOpcodeName (Op->Common.AmlOpcode), 1);    /*     * Get the BankValue operand and save it     * (at Top of stack)     */    OperandDesc = WalkState->Operands[0];    /* Arg points to the start Bank Field */    Arg = AcpiPsGetArg (Op, 4);    while (Arg)    {        /* Ignore OFFSET and ACCESSAS terms here */        if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)        {            Node = Arg->Common.Node;            ObjDesc = AcpiNsGetAttachedObject (Node);            if (!ObjDesc)            {                return_ACPI_STATUS (AE_NOT_EXIST);            }            ObjDesc->BankField.Value = (UINT32) OperandDesc->Integer.Value;        }        /* Move to next field in the list */        Arg = Arg->Common.Next;    }    AcpiUtRemoveReference (OperandDesc);    return_ACPI_STATUS (Status);}
开发者ID:ModeenF,项目名称:haiku,代码行数:89,


示例5: AcpiDsExecEndControlOp

//.........这里部分代码省略.........        ControlState = AcpiUtPopGenericState (&WalkState->ControlState);        AcpiUtDeleteGenericState (ControlState);        break;    case AML_RETURN_OP:        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,            "[RETURN_OP] Op=%p Arg=%p/n",Op, Op->Common.Value.Arg));        /*         * One optional operand -- the return value         * It can be either an immediate operand or a result that         * has been bubbled up the tree         */        if (Op->Common.Value.Arg)        {            /* Since we have a real Return(), delete any implicit return */            AcpiDsClearImplicitReturn (WalkState);            /* Return statement has an immediate operand */            Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);            if (ACPI_FAILURE (Status))            {                return (Status);            }            /*             * If value being returned is a Reference (such as             * an arg or local), resolve it now because it may             * cease to exist at the end of the method.             */            Status = AcpiExResolveToValue (                &WalkState->Operands [0], WalkState);            if (ACPI_FAILURE (Status))            {                return (Status);            }            /*             * Get the return value and save as the last result             * value. This is the only place where WalkState->ReturnDesc             * is set to anything other than zero!             */            WalkState->ReturnDesc = WalkState->Operands[0];        }        else if (WalkState->ResultCount)        {            /* Since we have a real Return(), delete any implicit return */            AcpiDsClearImplicitReturn (WalkState);            /*             * The return value has come from a previous calculation.             *             * If value being returned is a Reference (such as             * an arg or local), resolve it now because it may             * cease to exist at the end of the method.             *             * Allow references created by the Index operator to return             * unchanged.             */            if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) ==                    ACPI_DESC_TYPE_OPERAND) &&                ((WalkState->Results->Results.ObjDesc [0])->Common.Type ==
开发者ID:ChaiSoft,项目名称:ChaiOS,代码行数:67,


示例6: AcpiDsGetPredicateValue

ACPI_STATUSAcpiDsGetPredicateValue (    ACPI_WALK_STATE         *WalkState,    ACPI_OPERAND_OBJECT     *ResultObj){    ACPI_STATUS             Status = AE_OK;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_OPERAND_OBJECT     *LocalObjDesc = NULL;    ACPI_FUNCTION_TRACE_PTR (DsGetPredicateValue, WalkState);    WalkState->ControlState->Common.State = 0;    if (ResultObj)    {        Status = AcpiDsResultPop (&ObjDesc, WalkState);        if (ACPI_FAILURE (Status))        {            ACPI_EXCEPTION ((AE_INFO, Status,                "Could not get result from predicate evaluation"));            return_ACPI_STATUS (Status);        }    }    else    {        Status = AcpiDsCreateOperand (WalkState, WalkState->Op, 0);        if (ACPI_FAILURE (Status))        {            return_ACPI_STATUS (Status);        }        Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);        if (ACPI_FAILURE (Status))        {            return_ACPI_STATUS (Status);        }        ObjDesc = WalkState->Operands [0];    }    if (!ObjDesc)    {        ACPI_ERROR ((AE_INFO,            "No predicate ObjDesc=%p State=%p",            ObjDesc, WalkState));        return_ACPI_STATUS (AE_AML_NO_OPERAND);    }    /*     * Result of predicate evaluation must be an Integer     * object. Implicitly convert the argument if necessary.     */    Status = AcpiExConvertToInteger (ObjDesc, &LocalObjDesc, 16);    if (ACPI_FAILURE (Status))    {        goto Cleanup;    }    if (LocalObjDesc->Common.Type != ACPI_TYPE_INTEGER)    {        ACPI_ERROR ((AE_INFO,            "Bad predicate (not an integer) ObjDesc=%p State=%p Type=0x%X",            ObjDesc, WalkState, ObjDesc->Common.Type));        Status = AE_AML_OPERAND_TYPE;        goto Cleanup;    }    /* Truncate the predicate to 32-bits if necessary */    (void) AcpiExTruncateFor32bitTable (LocalObjDesc);    /*     * Save the result of the predicate evaluation on     * the control stack     */    if (LocalObjDesc->Integer.Value)    {        WalkState->ControlState->Common.Value = TRUE;    }    else    {        /*         * Predicate is FALSE, we will just toss the         * rest of the package         */        WalkState->ControlState->Common.Value = FALSE;        Status = AE_CTRL_FALSE;    }    /* Predicate can be used for an implicit return value */    (void) AcpiDsDoImplicitReturn (LocalObjDesc, WalkState, TRUE);Cleanup://.........这里部分代码省略.........
开发者ID:AmirAbrams,项目名称:haiku,代码行数:101,


示例7: AcpiExResolveOperands

//.........这里部分代码省略.........            Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE,                            ObjectType, ObjDesc);            if (ACPI_FAILURE (Status))            {                return_ACPI_STATUS (Status);            }            goto NextOperand;        case ARGI_DATAREFOBJ:  /* Store operator only */            /*             * We don't want to resolve IndexOp reference objects during             * a store because this would be an implicit DeRefOf operation.             * Instead, we just want to store the reference object.             * -- All others must be resolved below.             */            if ((Opcode == AML_STORE_OP) &&                ((*StackPtr)->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&                ((*StackPtr)->Reference.Class == ACPI_REFCLASS_INDEX))            {                goto NextOperand;            }            break;        default:            /* All cases covered above */            break;        }        /*         * Resolve this object to a value         */        Status = AcpiExResolveToValue (StackPtr, WalkState);        if (ACPI_FAILURE (Status))        {            return_ACPI_STATUS (Status);        }        /* Get the resolved object */        ObjDesc = *StackPtr;        /*         * Check the resulting object (value) type         */        switch (ThisArgType)        {        /*         * For the simple cases, only one type of resolved object         * is allowed         */        case ARGI_MUTEX:            /* Need an operand of type ACPI_TYPE_MUTEX */            TypeNeeded = ACPI_TYPE_MUTEX;            break;        case ARGI_EVENT:            /* Need an operand of type ACPI_TYPE_EVENT */            TypeNeeded = ACPI_TYPE_EVENT;            break;
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:66,


示例8: AcpiExResolveObject

ACPI_STATUSAcpiExResolveObject (    ACPI_OPERAND_OBJECT     **SourceDescPtr,    ACPI_OBJECT_TYPE        TargetType,    ACPI_WALK_STATE         *WalkState){    ACPI_OPERAND_OBJECT     *SourceDesc = *SourceDescPtr;    ACPI_STATUS             Status = AE_OK;    ACPI_FUNCTION_TRACE ("ExResolveObject");    /*     * Ensure we have a Target that can be stored to     */    switch (TargetType)    {    case ACPI_TYPE_BUFFER_FIELD:    case ACPI_TYPE_LOCAL_REGION_FIELD:    case ACPI_TYPE_LOCAL_BANK_FIELD:    case ACPI_TYPE_LOCAL_INDEX_FIELD:        /*         * These cases all require only Integers or values that         * can be converted to Integers (Strings or Buffers)         */    case ACPI_TYPE_INTEGER:    case ACPI_TYPE_STRING:    case ACPI_TYPE_BUFFER:        /*         * Stores into a Field/Region or into a Integer/Buffer/String         * are all essentially the same.  This case handles the         * "interchangeable" types Integer, String, and Buffer.         */        if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_LOCAL_REFERENCE)        {            /* Resolve a reference object first */            Status = AcpiExResolveToValue (SourceDescPtr, WalkState);            if (ACPI_FAILURE (Status))            {                break;            }        }        /*         * Must have a Integer, Buffer, or String         */        if ((ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_INTEGER)     &&            (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER)      &&            (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_STRING))        {            /*             * Conversion successful but still not a valid type             */            ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,                "Cannot assign type %s to %s (must be type Int/Str/Buf)/n",                AcpiUtGetObjectTypeName (SourceDesc),                AcpiUtGetTypeName (TargetType)));            Status = AE_AML_OPERAND_TYPE;        }        break;    case ACPI_TYPE_LOCAL_ALIAS:        /*         * Aliases are resolved by AcpiExPrepOperands         */        ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "Store into Alias - should never happen/n"));        Status = AE_AML_INTERNAL;        break;    case ACPI_TYPE_PACKAGE:    default:        /*         * All other types than Alias and the various Fields come here,         * including the untyped case - ACPI_TYPE_ANY.         */        break;    }    return_ACPI_STATUS (Status);}
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:88,


示例9: AcpiDsExecEndControlOp

ACPI_STATUSAcpiDsExecEndControlOp (    ACPI_WALK_STATE         *WalkState,    ACPI_PARSE_OBJECT       *Op){    ACPI_STATUS             Status = AE_OK;    ACPI_GENERIC_STATE      *ControlState;    ACPI_FUNCTION_NAME ("DsExecEndControlOp");    switch (Op->Common.AmlOpcode)    {    case AML_IF_OP:        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[IF_OP] Op=%p/n", Op));        /*         * Save the result of the predicate in case there is an         * ELSE to come         */        WalkState->LastPredicate =            (BOOLEAN) WalkState->ControlState->Common.Value;        /*         * Pop the control state that was created at the start         * of the IF and free it         */        ControlState = AcpiUtPopGenericState (&WalkState->ControlState);        AcpiUtDeleteGenericState (ControlState);        break;    case AML_ELSE_OP:        break;    case AML_WHILE_OP:        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p/n", Op));        if (WalkState->ControlState->Common.Value)        {            /* Predicate was true, go back and evaluate it again! */            Status = AE_CTRL_PENDING;        }        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[WHILE_OP] termination! Op=%p/n", Op));        /* Pop this control state and free it */        ControlState = AcpiUtPopGenericState (&WalkState->ControlState);        WalkState->AmlLastWhile = ControlState->Control.AmlPredicateStart;        AcpiUtDeleteGenericState (ControlState);        break;    case AML_RETURN_OP:        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,            "[RETURN_OP] Op=%p Arg=%p/n",Op, Op->Common.Value.Arg));        /*         * One optional operand -- the return value         * It can be either an immediate operand or a result that         * has been bubbled up the tree         */        if (Op->Common.Value.Arg)        {            /* Return statement has an immediate operand */            Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);            if (ACPI_FAILURE (Status))            {                return (Status);            }            /*             * If value being returned is a Reference (such as             * an arg or local), resolve it now because it may             * cease to exist at the end of the method.             */            Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);            if (ACPI_FAILURE (Status))            {                return (Status);            }            /*             * Get the return value and save as the last result             * value.  This is the only place where WalkState->ReturnDesc             * is set to anything other than zero!             */            WalkState->ReturnDesc = WalkState->Operands[0];        }        else if ((WalkState->Results) &&//.........这里部分代码省略.........
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:101,



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


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