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

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

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

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

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

示例1: AcpiDsMethodDataDeleteValue

static voidAcpiDsMethodDataDeleteValue (    UINT8                   Type,    UINT32                  Index,    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *Object;    ACPI_FUNCTION_TRACE (DsMethodDataDeleteValue);    /* Get the namespace node for the arg/local */    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);    if (ACPI_FAILURE (Status))    {        return_VOID;    }    /* Get the associated object */    Object = AcpiNsGetAttachedObject (Node);    /*     * Undefine the Arg or Local by setting its descriptor     * pointer to NULL. Locals/Args can contain both     * ACPI_OPERAND_OBJECTS and ACPI_NAMESPACE_NODEs     */    Node->Object = NULL;    if ((Object) &&        (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_OPERAND))    {        /*         * There is a valid object.         * Decrement the reference count by one to balance the         * increment when the object was stored.         */        AcpiUtRemoveReference (Object);    }    return_VOID;}
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:46,


示例2: AcpiDsMethodDataSetValue

static ACPI_STATUSAcpiDsMethodDataSetValue (    UINT8                   Type,    UINT32                  Index,    ACPI_OPERAND_OBJECT     *Object,    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    ACPI_FUNCTION_TRACE (DsMethodDataSetValue);    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,        "NewObj %p Type %2.2X, Refs=%u [%s]/n", Object,        Type, Object->Common.ReferenceCount,        AcpiUtGetTypeName (Object->Common.Type)));    /* Get the namespace node for the arg/local */    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    /*     * Increment ref count so object can't be deleted while installed.     * NOTE: We do not copy the object in order to preserve the call by     * reference semantics of ACPI Control Method invocation.     * (See ACPI Specification 2.0C)     */    AcpiUtAddReference (Object);    /* Install the object */    Node->Object = Object;    return_ACPI_STATUS (Status);}
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:40,


示例3: AcpiDsMethodDataGetType

ACPI_OBJECT_TYPEAcpiDsMethodDataGetType (    UINT16                  Opcode,    UINT32                  Index,    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *Object;    ACPI_FUNCTION_TRACE (DsMethodDataGetType);    /* Get the namespace node for the arg/local */    Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);    if (ACPI_FAILURE (Status))    {        return_VALUE ((ACPI_TYPE_NOT_FOUND));    }    /* Get the object */    Object = AcpiNsGetAttachedObject (Node);    if (!Object)    {        /* Uninitialized local/arg, return TYPE_ANY */        return_VALUE (ACPI_TYPE_ANY);    }    /* Get the object type */    return_VALUE (Object->Type);}
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:36,


示例4: AcpiDsInitObjectFromOp

//.........这里部分代码省略.........            ACPI_ERROR ((AE_INFO, "Unknown Integer type 0x%X",                OpInfo->Type));            Status = AE_AML_OPERAND_TYPE;            break;        }        break;    case ACPI_TYPE_STRING:        ObjDesc->String.Pointer = Op->Common.Value.String;        ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Op->Common.Value.String);        /*         * The string is contained in the ACPI table, don't ever try         * to delete it         */        ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;        break;    case ACPI_TYPE_METHOD:        break;    case ACPI_TYPE_LOCAL_REFERENCE:        switch (OpInfo->Type)        {        case AML_TYPE_LOCAL_VARIABLE:            /* Local ID (0-7) is (AML opcode - base AML_LOCAL_OP) */            ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_LOCAL_OP;            ObjDesc->Reference.Class = ACPI_REFCLASS_LOCAL;#ifndef ACPI_NO_METHOD_EXECUTION            Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL,                        ObjDesc->Reference.Value, WalkState,                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,                            &ObjDesc->Reference.Object));#endif            break;        case AML_TYPE_METHOD_ARGUMENT:            /* Arg ID (0-6) is (AML opcode - base AML_ARG_OP) */            ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_ARG_OP;            ObjDesc->Reference.Class = ACPI_REFCLASS_ARG;#ifndef ACPI_NO_METHOD_EXECUTION            Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG,                        ObjDesc->Reference.Value, WalkState,                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,                            &ObjDesc->Reference.Object));#endif            break;        default: /* Object name or Debug object */            switch (Op->Common.AmlOpcode)            {            case AML_INT_NAMEPATH_OP:                /* Node was saved in Op */                ObjDesc->Reference.Node = Op->Common.Node;                ObjDesc->Reference.Object = Op->Common.Node->Object;                ObjDesc->Reference.Class = ACPI_REFCLASS_NAME;                break;            case AML_DEBUG_OP:                ObjDesc->Reference.Class = ACPI_REFCLASS_DEBUG;                break;            default:                ACPI_ERROR ((AE_INFO,                    "Unimplemented reference type for AML opcode: 0x%4.4X", Opcode));                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);            }            break;        }        break;    default:        ACPI_ERROR ((AE_INFO, "Unimplemented data type: 0x%X",            ObjDesc->Common.Type));        Status = AE_AML_OPERAND_TYPE;        break;    }    return_ACPI_STATUS (Status);}
开发者ID:ornarium,项目名称:freebsd,代码行数:101,


示例5: AcpiDsStoreObjectToLocal

ACPI_STATUSAcpiDsStoreObjectToLocal (    UINT8                   Type,    UINT32                  Index,    ACPI_OPERAND_OBJECT     *ObjDesc,    ACPI_WALK_STATE         *WalkState){    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *CurrentObjDesc;    ACPI_OPERAND_OBJECT     *NewObjDesc;    ACPI_FUNCTION_TRACE (DsStoreObjectToLocal);    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Type=%2.2X Index=%u Obj=%p/n",        Type, Index, ObjDesc));    /* Parameter validation */    if (!ObjDesc)    {        return_ACPI_STATUS (AE_BAD_PARAMETER);    }    /* Get the namespace node for the arg/local */    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    CurrentObjDesc = AcpiNsGetAttachedObject (Node);    if (CurrentObjDesc == ObjDesc)    {        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p already installed!/n",            ObjDesc));        return_ACPI_STATUS (Status);    }    /*     * If the reference count on the object is more than one, we must     * take a copy of the object before we store.  A reference count     * of exactly 1 means that the object was just created during the     * evaluation of an expression, and we can safely use it since it     * is not used anywhere else.     */    NewObjDesc = ObjDesc;    if (ObjDesc->Common.ReferenceCount > 1)    {        Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState);        if (ACPI_FAILURE (Status))        {            return_ACPI_STATUS (Status);        }    }    /*     * If there is an object already in this slot, we either     * have to delete it, or if this is an argument and there     * is an object reference stored there, we have to do     * an indirect store!     */    if (CurrentObjDesc)    {        /*         * Check for an indirect store if an argument         * contains an object reference (stored as an Node).         * We don't allow this automatic dereferencing for         * locals, since a store to a local should overwrite         * anything there, including an object reference.         *         * If both Arg0 and Local0 contain RefOf (Local4):         *         * Store (1, Arg0)             - Causes indirect store to local4         * Store (1, Local0)           - Stores 1 in local0, overwriting         *                                  the reference to local4         * Store (1, DeRefof (Local0)) - Causes indirect store to local4         *         * Weird, but true.         */        if (Type == ACPI_REFCLASS_ARG)        {            /*             * If we have a valid reference object that came from RefOf(),             * do the indirect store             */            if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_OPERAND) &&                (CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&                (CurrentObjDesc->Reference.Class == ACPI_REFCLASS_REFOF))            {                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,                        "Arg (%p) is an ObjRef(Node), storing in node %p/n",                        NewObjDesc, CurrentObjDesc));                /*                 * Store this object to the Node (perform the indirect store)                 * NOTE: No implicit conversion is performed, as per the ACPI                 * specification rules on storing to Locals/Args.                 *///.........这里部分代码省略.........
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:101,


示例6: AcpiDsMethodDataGetValue

ACPI_STATUSAcpiDsMethodDataGetValue (    UINT8                   Type,    UINT32                  Index,    ACPI_WALK_STATE         *WalkState,    ACPI_OPERAND_OBJECT     **DestDesc){    ACPI_STATUS             Status;    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *Object;    ACPI_FUNCTION_TRACE (DsMethodDataGetValue);    /* Validate the object descriptor */    if (!DestDesc)    {        ACPI_ERROR ((AE_INFO, "Null object descriptor pointer"));        return_ACPI_STATUS (AE_BAD_PARAMETER);    }    /* Get the namespace node for the arg/local */    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    /* Get the object from the node */    Object = Node->Object;    /* Examine the returned object, it must be valid. */    if (!Object)    {        /*         * Index points to uninitialized object.         * This means that either 1) The expected argument was         * not passed to the method, or 2) A local variable         * was referenced by the method (via the ASL)         * before it was initialized.  Either case is an error.         */        /* If slack enabled, init the LocalX/ArgX to an Integer of value zero */        if (AcpiGbl_EnableInterpreterSlack)        {            Object = AcpiUtCreateIntegerObject ((UINT64) 0);            if (!Object)            {                return_ACPI_STATUS (AE_NO_MEMORY);            }            Node->Object = Object;        }        /* Otherwise, return the error */        else switch (Type)        {        case ACPI_REFCLASS_ARG:            ACPI_ERROR ((AE_INFO,                "Uninitialized Arg[%u] at node %p",                Index, Node));            return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG);        case ACPI_REFCLASS_LOCAL:            /*             * No error message for this case, will be trapped again later to             * detect and ignore cases of Store(LocalX,LocalX)             */            return_ACPI_STATUS (AE_AML_UNINITIALIZED_LOCAL);        default:            ACPI_ERROR ((AE_INFO, "Not a Arg/Local opcode: 0x%X", Type));            return_ACPI_STATUS (AE_AML_INTERNAL);        }    }    /*     * The Index points to an initialized and valid object.     * Return an additional reference to the object     */    *DestDesc = Object;    AcpiUtAddReference (Object);    return_ACPI_STATUS (AE_OK);}
开发者ID:ksashtekar,项目名称:Ganoid,代码行数:96,


示例7: AcpiDsInitObjectFromOp

//.........这里部分代码省略.........            }            break;        case AML_TYPE_LITERAL:            ObjDesc->Integer.Value = Op->Common.Value.Integer;#ifndef ACPI_NO_METHOD_EXECUTION            AcpiExTruncateFor32bitTable (ObjDesc);#endif            break;        default:            ACPI_ERROR ((AE_INFO, "Unknown Integer type %X",                OpInfo->Type));            Status = AE_AML_OPERAND_TYPE;            break;        }        break;    case ACPI_TYPE_STRING:        ObjDesc->String.Pointer = Op->Common.Value.String;        ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Op->Common.Value.String);        /*         * The string is contained in the ACPI table, don't ever try         * to delete it         */        ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;        break;    case ACPI_TYPE_METHOD:        break;    case ACPI_TYPE_LOCAL_REFERENCE:        switch (OpInfo->Type)        {        case AML_TYPE_LOCAL_VARIABLE:            /* Split the opcode into a base opcode + offset */            ObjDesc->Reference.Opcode = AML_LOCAL_OP;            ObjDesc->Reference.Offset = Opcode - AML_LOCAL_OP;#ifndef ACPI_NO_METHOD_EXECUTION            Status = AcpiDsMethodDataGetNode (AML_LOCAL_OP,                        ObjDesc->Reference.Offset,                        WalkState,                        (ACPI_NAMESPACE_NODE **) &ObjDesc->Reference.Object);#endif            break;        case AML_TYPE_METHOD_ARGUMENT:            /* Split the opcode into a base opcode + offset */            ObjDesc->Reference.Opcode = AML_ARG_OP;            ObjDesc->Reference.Offset = Opcode - AML_ARG_OP;#ifndef ACPI_NO_METHOD_EXECUTION            Status = AcpiDsMethodDataGetNode (AML_ARG_OP,                        ObjDesc->Reference.Offset,                        WalkState,                        (ACPI_NAMESPACE_NODE **) &ObjDesc->Reference.Object);#endif            break;        default: /* Other literals, etc.. */            if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)            {                /* Node was saved in Op */                ObjDesc->Reference.Node = Op->Common.Node;            }            ObjDesc->Reference.Opcode = Opcode;            break;        }        break;    default:        ACPI_ERROR ((AE_INFO, "Unimplemented data type: %X",            ACPI_GET_OBJECT_TYPE (ObjDesc)));        Status = AE_AML_OPERAND_TYPE;        break;    }    return_ACPI_STATUS (Status);}
开发者ID:andreiw,项目名称:polaris,代码行数:101,



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


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