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

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

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

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

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

示例1: AcpiDbGetTableFromFile

ACPI_STATUSAcpiDbGetTableFromFile (    char                    *Filename,    ACPI_TABLE_HEADER       **ReturnTable,    BOOLEAN                 MustBeAmlFile){#ifdef ACPI_APPLICATION    ACPI_STATUS             Status;    ACPI_TABLE_HEADER       *Table;    BOOLEAN                 IsAmlTable = TRUE;    Status = AcpiUtReadTableFromFile (Filename, &Table);    if (ACPI_FAILURE (Status))    {        return (Status);    }    if (MustBeAmlFile)    {        IsAmlTable = AcpiUtIsAmlTable (Table);        if (!IsAmlTable)        {            ACPI_EXCEPTION ((AE_INFO, AE_OK,                "Input for -e is not an AML table: "                "/"%4.4s/" (must be DSDT/SSDT)",                Table->Signature));            return (AE_TYPE);        }    }    if (IsAmlTable)    {        /* Attempt to recognize and install the table */        Status = AeLocalLoadTable (Table);        if (ACPI_FAILURE (Status))        {            if (Status == AE_ALREADY_EXISTS)            {                AcpiOsPrintf ("Table %4.4s is already installed/n",                    Table->Signature);            }            else            {                AcpiOsPrintf ("Could not install table, %s/n",                    AcpiFormatException (Status));            }            return (Status);        }        AcpiTbPrintTableHeader (0, Table);        fprintf (stderr,            "Acpi table [%4.4s] successfully installed and loaded/n",            Table->Signature);    }    AcpiGbl_AcpiHardwarePresent = FALSE;    if (ReturnTable)    {        *ReturnTable = Table;    }#endif  /* ACPI_APPLICATION */    return (AE_OK);}
开发者ID:yazshel,项目名称:netbsd-kernel,代码行数:69,


示例2: AcpiDbDisplayHandlers

voidAcpiDbDisplayHandlers (    void){    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_OPERAND_OBJECT     *HandlerObj;    ACPI_ADR_SPACE_TYPE     SpaceId;    UINT32                  i;    /* Operation region handlers */    AcpiOsPrintf ("/nOperation Region Handlers at the namespace root:/n");    ObjDesc = AcpiNsGetAttachedObject (AcpiGbl_RootNode);    if (ObjDesc)    {        for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiGbl_SpaceIdList); i++)        {            SpaceId = AcpiGbl_SpaceIdList[i];            HandlerObj = ObjDesc->Device.Handler;            AcpiOsPrintf (ACPI_PREDEFINED_PREFIX,                AcpiUtGetRegionName ((UINT8) SpaceId), SpaceId);            while (HandlerObj)            {                if (AcpiGbl_SpaceIdList[i] ==                    HandlerObj->AddressSpace.SpaceId)                {                    AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING,                        (HandlerObj->AddressSpace.HandlerFlags &                            ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ?                            "Default" : "User",                        HandlerObj->AddressSpace.Handler);                    goto FoundHandler;                }                HandlerObj = HandlerObj->AddressSpace.Next;            }            /* There is no handler for this SpaceId */            AcpiOsPrintf ("None/n");        FoundHandler:;        }        /* Find all handlers for user-defined SpaceIDs */        HandlerObj = ObjDesc->Device.Handler;        while (HandlerObj)        {            if (HandlerObj->AddressSpace.SpaceId >= ACPI_USER_REGION_BEGIN)            {                AcpiOsPrintf (ACPI_PREDEFINED_PREFIX,                    "User-defined ID", HandlerObj->AddressSpace.SpaceId);                AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING,                    (HandlerObj->AddressSpace.HandlerFlags &                        ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ?                        "Default" : "User",                    HandlerObj->AddressSpace.Handler);            }            HandlerObj = HandlerObj->AddressSpace.Next;        }    }#if (!ACPI_REDUCED_HARDWARE)    /* Fixed event handlers */    AcpiOsPrintf ("/nFixed Event Handlers:/n");    for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)    {        AcpiOsPrintf (ACPI_PREDEFINED_PREFIX, AcpiUtGetEventName (i), i);        if (AcpiGbl_FixedEventHandlers[i].Handler)        {            AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING, "User",                AcpiGbl_FixedEventHandlers[i].Handler);        }        else        {            AcpiOsPrintf (ACPI_HANDLER_NOT_PRESENT_STRING, "None");        }    }#endif /* !ACPI_REDUCED_HARDWARE */    /* Miscellaneous global handlers */    AcpiOsPrintf ("/nMiscellaneous Global Handlers:/n");    for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiGbl_HandlerList); i++)    {        AcpiOsPrintf (ACPI_HANDLER_NAME_STRING,            AcpiGbl_HandlerList[i].Name);//.........这里部分代码省略.........
开发者ID:fjdoria76,项目名称:acpica,代码行数:101,


示例3: 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:fjdoria76,项目名称:acpica,代码行数:100,


示例4: AcpiDbDisplayStatistics

ACPI_STATUSAcpiDbDisplayStatistics (    char                    *TypeArg){    UINT32                  i;    UINT32                  Temp;    if (!AcpiGbl_DSDT)    {        AcpiOsPrintf ("*** Warning: There is no DSDT loaded/n");    }    if (!TypeArg)    {        AcpiOsPrintf ("The following subcommands are available:/n    ALLOCATIONS, OBJECTS, MEMORY, MISC, SIZES, TABLES/n");        return (AE_OK);    }    AcpiUtStrupr (TypeArg);    Temp = AcpiDbMatchArgument (TypeArg, AcpiDbStatTypes);    if (Temp == (UINT32) -1)    {        AcpiOsPrintf ("Invalid or unsupported argument/n");        return (AE_OK);    }    switch (Temp)    {    case CMD_STAT_ALLOCATIONS:#ifdef ACPI_DBG_TRACK_ALLOCATIONS        AcpiUtDumpAllocationInfo ();#endif        break;    case CMD_STAT_TABLES:        AcpiOsPrintf ("ACPI Table Information:/n/n");        if (AcpiGbl_DSDT)        {            AcpiOsPrintf ("DSDT Length:................% 7ld (%X)/n",                AcpiGbl_DSDT->Length, AcpiGbl_DSDT->Length);        }        break;    case CMD_STAT_OBJECTS:        AcpiDbCountNamespaceObjects ();        AcpiOsPrintf ("/nObjects defined in the current namespace:/n/n");        AcpiOsPrintf ("%16.16s %10.10s %10.10s/n",            "ACPI_TYPE", "NODES", "OBJECTS");        for (i = 0; i < ACPI_TYPE_NS_NODE_MAX; i++)        {            AcpiOsPrintf ("%16.16s % 10ld% 10ld/n", AcpiUtGetTypeName (i),                AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]);        }        AcpiOsPrintf ("%16.16s % 10ld% 10ld/n", "Misc/Unknown",            AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc);        AcpiOsPrintf ("%16.16s % 10ld% 10ld/n", "TOTALS:",            AcpiGbl_NumNodes, AcpiGbl_NumObjects);        break;    case CMD_STAT_MEMORY:#ifdef ACPI_DBG_TRACK_ALLOCATIONS        AcpiOsPrintf ("/n----Object and Cache Statistics---------------------------------------------/n");        AcpiDbListInfo (AcpiGbl_GlobalList);        AcpiDbListInfo (AcpiGbl_NsNodeList);#ifdef ACPI_USE_LOCAL_CACHE        AcpiDbListInfo (AcpiGbl_OperandCache);        AcpiDbListInfo (AcpiGbl_PsNodeCache);        AcpiDbListInfo (AcpiGbl_PsNodeExtCache);        AcpiDbListInfo (AcpiGbl_StateCache);#endif#endif        break;    case CMD_STAT_MISC:        AcpiOsPrintf ("/nMiscellaneous Statistics:/n/n");        AcpiOsPrintf ("Calls to AcpiPsFind:..  ........% 7ld/n",            AcpiGbl_PsFindCount);        AcpiOsPrintf ("Calls to AcpiNsLookup:..........% 7ld/n",            AcpiGbl_NsLookupCount);        AcpiOsPrintf ("/n");        AcpiOsPrintf ("Mutex usage:/n/n");        for (i = 0; i < ACPI_NUM_MUTEX; i++)        {            AcpiOsPrintf ("%-28s:       % 7ld/n",//.........这里部分代码省略.........
开发者ID:andreiw,项目名称:polaris,代码行数:101,


示例5: AcpiDmEmitExternals

voidAcpiDmEmitExternals (    void){    ACPI_EXTERNAL_LIST      *NextExternal;    if (!AcpiGbl_ExternalList)    {        return;    }    /*     * Determine the number of control methods in the external list, and     * also how many of those externals were resolved via the namespace.     */    NextExternal = AcpiGbl_ExternalList;    while (NextExternal)    {        if (NextExternal->Type == ACPI_TYPE_METHOD)        {            AcpiGbl_NumExternalMethods++;            if (NextExternal->Flags & ACPI_EXT_RESOLVED_REFERENCE)            {                AcpiGbl_ResolvedExternalMethods++;            }        }        NextExternal = NextExternal->Next;    }    /* Check if any control methods were unresolved */    AcpiDmUnresolvedWarning (1);    /* Emit any unresolved method externals in a single text block */    NextExternal = AcpiGbl_ExternalList;    while (NextExternal)    {        if ((NextExternal->Type == ACPI_TYPE_METHOD) &&            (!(NextExternal->Flags & ACPI_EXT_RESOLVED_REFERENCE)))        {            AcpiOsPrintf ("    External (%s%s",                NextExternal->Path,                AcpiDmGetObjectTypeName (NextExternal->Type));            AcpiOsPrintf (")    // Warning: Unresolved method, "                "guessing %u arguments/n",                NextExternal->Value);            NextExternal->Flags |= ACPI_EXT_EXTERNAL_EMITTED;        }        NextExternal = NextExternal->Next;    }    AcpiOsPrintf ("/n");    /* Emit externals that were imported from a file */    if (Gbl_ExternalRefFilename)    {        AcpiOsPrintf (            "    /*/n     * External declarations that were imported from/n"            "     * the reference file [%s]/n     *//n",            Gbl_ExternalRefFilename);        NextExternal = AcpiGbl_ExternalList;        while (NextExternal)        {            if (!(NextExternal->Flags & ACPI_EXT_EXTERNAL_EMITTED) &&                (NextExternal->Flags & ACPI_EXT_ORIGIN_FROM_FILE))            {                AcpiOsPrintf ("    External (%s%s",                    NextExternal->Path,                    AcpiDmGetObjectTypeName (NextExternal->Type));                if (NextExternal->Type == ACPI_TYPE_METHOD)                {                    AcpiOsPrintf (")    // %u Arguments/n",                        NextExternal->Value);                }                else                {                    AcpiOsPrintf (")/n");                }                NextExternal->Flags |= ACPI_EXT_EXTERNAL_EMITTED;            }            NextExternal = NextExternal->Next;        }        AcpiOsPrintf ("/n");    }    /*     * Walk the list of externals found during the AML parsing     *///.........这里部分代码省略.........
开发者ID:envieid0c,项目名称:Intel-iasl,代码行数:101,


示例6: AdAmlDisassemble

ACPI_STATUSAdAmlDisassemble (    BOOLEAN                 OutToFile,    char                    *Filename,    char                    *Prefix,    char                    **OutFilename,    BOOLEAN                 GetAllTables){    ACPI_STATUS             Status;    char                    *DisasmFilename = NULL;    char                    *ExternalFilename;    ACPI_EXTERNAL_FILE      *ExternalFileList = AcpiGbl_ExternalFileList;    FILE                    *File = NULL;    ACPI_TABLE_HEADER       *Table = NULL;    ACPI_TABLE_HEADER       *ExternalTable;    ACPI_OWNER_ID           OwnerId;    /*     * Input: AML code from either a file or via GetTables (memory or     * registry)     */    if (Filename)    {        Status = AcpiDbGetTableFromFile (Filename, &Table);        if (ACPI_FAILURE (Status))        {            return Status;        }        /*         * External filenames separated by commas         * Example: iasl -e file1,file2,file3 -d xxx.aml         */        while (ExternalFileList)        {            ExternalFilename = ExternalFileList->Path;            if (!ACPI_STRCMP (ExternalFilename, Filename))            {                /* Next external file */                ExternalFileList = ExternalFileList->Next;                continue;            }            Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable);            if (ACPI_FAILURE (Status))            {                return Status;            }            /* Load external table for symbol resolution */            if (ExternalTable)            {                Status = AdParseTable (ExternalTable, &OwnerId, TRUE, TRUE);                if (ACPI_FAILURE (Status))                {                    AcpiOsPrintf ("Could not parse external ACPI tables, %s/n",                        AcpiFormatException (Status));                    return Status;                }                /*                 * Load namespace from names created within control methods                 * Set owner id of nodes in external table                 */                AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,                    AcpiGbl_RootNode, OwnerId);                AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);            }            /* Next external file */            ExternalFileList = ExternalFileList->Next;        }        /* Clear external list generated by Scope in external tables */        if (AcpiGbl_ExternalFileList)        {            AcpiDmClearExternalList ();        }    }    else    {        Status = AdGetLocalTables (Filename, GetAllTables);        if (ACPI_FAILURE (Status))        {            AcpiOsPrintf ("Could not get ACPI tables, %s/n",                AcpiFormatException (Status));            return Status;        }        if (!AcpiGbl_DbOpt_disasm)        {            return AE_OK;        }//.........这里部分代码省略.........
开发者ID:ppaeps,项目名称:freebsd-head,代码行数:101,


示例7: AdGetLocalTables

ACPI_STATUSAdGetLocalTables (    char                    *Filename,    BOOLEAN                 GetAllTables){    ACPI_STATUS             Status;    ACPI_TABLE_HEADER       TableHeader;    ACPI_TABLE_HEADER       *NewTable;    UINT32                  NumTables;    UINT32                  PointerSize;    UINT32                  TableIndex;    if (GetAllTables)    {        ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_RSDT);        AcpiOsTableOverride (&TableHeader, &NewTable);        if (!NewTable)        {            fprintf (stderr, "Could not obtain RSDT/n");            return AE_NO_ACPI_TABLES;        }        else        {            AdWriteTable (NewTable, NewTable->Length,                ACPI_SIG_RSDT, NewTable->OemTableId);        }        if (ACPI_COMPARE_NAME (NewTable->Signature, ACPI_SIG_RSDT))        {            PointerSize = sizeof (UINT32);        }        else        {            PointerSize = sizeof (UINT64);        }        /*         * Determine the number of tables pointed to by the RSDT/XSDT.         * This is defined by the ACPI Specification to be the number of         * pointers contained within the RSDT/XSDT.  The size of the pointers         * is architecture-dependent.         */        NumTables = (NewTable->Length - sizeof (ACPI_TABLE_HEADER)) / PointerSize;        AcpiOsPrintf ("There are %u tables defined in the %4.4s/n/n",            NumTables, NewTable->Signature);        /* Get the FADT */        ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_FADT);        AcpiOsTableOverride (&TableHeader, &NewTable);        if (NewTable)        {            AdWriteTable (NewTable, NewTable->Length,                ACPI_SIG_FADT, NewTable->OemTableId);        }        AcpiOsPrintf ("/n");        /* Don't bother with FACS, it is usually all zeros */    }    /* Always get the DSDT */    ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT);    AcpiOsTableOverride (&TableHeader, &NewTable);    if (NewTable)    {        AdWriteTable (NewTable, NewTable->Length,            ACPI_SIG_DSDT, NewTable->OemTableId);        /* Store DSDT in the Table Manager */        Status = AcpiTbStoreTable (0, NewTable, NewTable->Length,                    0, &TableIndex);        if (ACPI_FAILURE (Status))        {            fprintf (stderr, "Could not store DSDT/n");            return AE_NO_ACPI_TABLES;        }    }    else    {        fprintf (stderr, "Could not obtain DSDT/n");        return AE_NO_ACPI_TABLES;    }#if 0    /* TBD: Future implementation */    AcpiOsPrintf ("/n");    /* Get all SSDTs */    ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_SSDT);    do    {        NewTable = NULL;        Status = AcpiOsTableOverride (&TableHeader, &NewTable);    } while (NewTable);//.........这里部分代码省略.........
开发者ID:ppaeps,项目名称:freebsd-head,代码行数:101,


示例8: AcpiDbTestStringType

static ACPI_STATUSAcpiDbTestStringType (    ACPI_NAMESPACE_NODE     *Node,    UINT32                  ByteLength){    ACPI_OBJECT             *Temp1 = NULL;    ACPI_OBJECT             *Temp2 = NULL;    ACPI_OBJECT             *Temp3 = NULL;    char                    *ValueToWrite = "Test String from AML Debugger";    ACPI_OBJECT             WriteValue;    ACPI_STATUS             Status;    /* Read the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_STRING, &Temp1);    if (ACPI_FAILURE (Status))    {        return (Status);    }    AcpiOsPrintf (" (%4.4X/%3.3X) /"%s/"", (Temp1->String.Length * 8),        Temp1->String.Length, Temp1->String.Pointer);    /* Write a new value */    WriteValue.Type = ACPI_TYPE_STRING;    WriteValue.String.Length = strlen (ValueToWrite);    WriteValue.String.Pointer = ValueToWrite;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the new value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_STRING, &Temp2);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (strcmp (Temp2->String.Pointer, ValueToWrite))    {        AcpiOsPrintf (" MISMATCH 2: %s, expecting %s",            Temp2->String.Pointer, ValueToWrite);    }    /* Write back the original value */    WriteValue.String.Length = strlen (Temp1->String.Pointer);    WriteValue.String.Pointer = Temp1->String.Pointer;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_STRING, &Temp3);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (strcmp (Temp1->String.Pointer, Temp3->String.Pointer))    {        AcpiOsPrintf (" MISMATCH 3: %s, expecting %s",            Temp3->String.Pointer, Temp1->String.Pointer);    }Exit:    if (Temp1) {AcpiOsFree (Temp1);}    if (Temp2) {AcpiOsFree (Temp2);}    if (Temp3) {AcpiOsFree (Temp3);}    return (Status);}
开发者ID:JamesLinus,项目名称:acpica,代码行数:81,


示例9: AcpiDbReadFromObject

static ACPI_STATUSAcpiDbReadFromObject (    ACPI_NAMESPACE_NODE     *Node,    ACPI_OBJECT_TYPE        ExpectedType,    ACPI_OBJECT             **Value){    ACPI_OBJECT             *RetValue;    ACPI_OBJECT_LIST        ParamObjects;    ACPI_OBJECT             Params[2];    ACPI_BUFFER             ReturnObj;    ACPI_STATUS             Status;    Params[0].Type = ACPI_TYPE_LOCAL_REFERENCE;    Params[0].Reference.ActualType = Node->Type;    Params[0].Reference.Handle = ACPI_CAST_PTR (ACPI_HANDLE, Node);    ParamObjects.Count = 1;    ParamObjects.Pointer = Params;    ReturnObj.Length  = ACPI_ALLOCATE_BUFFER;    AcpiGbl_MethodExecuting = TRUE;    Status = AcpiEvaluateObject (ReadHandle, NULL,        &ParamObjects, &ReturnObj);    AcpiGbl_MethodExecuting = FALSE;    if (ACPI_FAILURE (Status))    {        AcpiOsPrintf ("Could not read from object, %s",            AcpiFormatException (Status));        return (Status);    }    RetValue = (ACPI_OBJECT *) ReturnObj.Pointer;    switch (RetValue->Type)    {    case ACPI_TYPE_INTEGER:    case ACPI_TYPE_BUFFER:    case ACPI_TYPE_STRING:        /*         * Did we receive the type we wanted? Most important for the         * Integer/Buffer case (when a field is larger than an Integer,         * it should return a Buffer).         */        if (RetValue->Type != ExpectedType)        {            AcpiOsPrintf (" Type mismatch:  Expected %s, Received %s",                AcpiUtGetTypeName (ExpectedType),                AcpiUtGetTypeName (RetValue->Type));            return (AE_TYPE);        }        *Value = RetValue;        break;    default:        AcpiOsPrintf (" Unsupported return object type, %s",            AcpiUtGetTypeName (RetValue->Type));        AcpiOsFree (ReturnObj.Pointer);        return (AE_TYPE);    }    return (Status);}
开发者ID:JamesLinus,项目名称:acpica,代码行数:69,


示例10: AcpiDbTestIntegerType

static ACPI_STATUSAcpiDbTestIntegerType (    ACPI_NAMESPACE_NODE     *Node,    UINT32                  BitLength){    ACPI_OBJECT             *Temp1 = NULL;    ACPI_OBJECT             *Temp2 = NULL;    ACPI_OBJECT             *Temp3 = NULL;    ACPI_OBJECT             WriteValue;    UINT64                  ValueToWrite;    ACPI_STATUS             Status;    if (BitLength > 64)    {        AcpiOsPrintf (" Invalid length for an Integer: %u", BitLength);        return (AE_OK);    }    /* Read the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_INTEGER, &Temp1);    if (ACPI_FAILURE (Status))    {        return (Status);    }    AcpiOsPrintf (" (%4.4X/%3.3X) %8.8X%8.8X",        BitLength, ACPI_ROUND_BITS_UP_TO_BYTES (BitLength),        ACPI_FORMAT_UINT64 (Temp1->Integer.Value));    ValueToWrite = ACPI_UINT64_MAX >> (64 - BitLength);    if (Temp1->Integer.Value == ValueToWrite)    {        ValueToWrite = 0;    }    /* Write a new value */    WriteValue.Type = ACPI_TYPE_INTEGER;    WriteValue.Integer.Value = ValueToWrite;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the new value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_INTEGER, &Temp2);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (Temp2->Integer.Value != ValueToWrite)    {        AcpiOsPrintf (" MISMATCH 2: %8.8X%8.8X, expecting %8.8X%8.8X",            ACPI_FORMAT_UINT64 (Temp2->Integer.Value),            ACPI_FORMAT_UINT64 (ValueToWrite));    }    /* Write back the original value */    WriteValue.Integer.Value = Temp1->Integer.Value;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_INTEGER, &Temp3);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (Temp3->Integer.Value != Temp1->Integer.Value)    {        AcpiOsPrintf (" MISMATCH 3: %8.8X%8.8X, expecting %8.8X%8.8X",            ACPI_FORMAT_UINT64 (Temp3->Integer.Value),            ACPI_FORMAT_UINT64 (Temp1->Integer.Value));    }Exit:    if (Temp1) {AcpiOsFree (Temp1);}    if (Temp2) {AcpiOsFree (Temp2);}    if (Temp3) {AcpiOsFree (Temp3);}    return (AE_OK);}
开发者ID:JamesLinus,项目名称:acpica,代码行数:92,


示例11: AcpiDbTestBufferType

static ACPI_STATUSAcpiDbTestBufferType (    ACPI_NAMESPACE_NODE     *Node,    UINT32                  BitLength){    ACPI_OBJECT             *Temp1 = NULL;    ACPI_OBJECT             *Temp2 = NULL;    ACPI_OBJECT             *Temp3 = NULL;    UINT8                   *Buffer;    ACPI_OBJECT             WriteValue;    ACPI_STATUS             Status;    UINT32                  ByteLength;    UINT32                  i;    UINT8                   ExtraBits;    ByteLength = ACPI_ROUND_BITS_UP_TO_BYTES (BitLength);    if (ByteLength == 0)    {        AcpiOsPrintf (" Ignoring zero length buffer");        return (AE_OK);    }    /* Allocate a local buffer */    Buffer = ACPI_ALLOCATE_ZEROED (ByteLength);    if (!Buffer)    {        return (AE_NO_MEMORY);    }    /* Read the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_BUFFER, &Temp1);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Emit a few bytes of the buffer */    AcpiOsPrintf (" (%4.4X/%3.3X)", BitLength, Temp1->Buffer.Length);    for (i = 0; ((i < 4) && (i < ByteLength)); i++)    {        AcpiOsPrintf (" %2.2X", Temp1->Buffer.Pointer[i]);    }    AcpiOsPrintf ("...  ");    /*     * Write a new value.     *     * Handle possible extra bits at the end of the buffer. Can     * happen for FieldUnits larger than an integer, but the bit     * count is not an integral number of bytes. Zero out the     * unused bits.     */    memset (Buffer, BUFFER_FILL_VALUE, ByteLength);    ExtraBits = BitLength % 8;    if (ExtraBits)    {        Buffer [ByteLength - 1] = ACPI_MASK_BITS_ABOVE (ExtraBits);    }    WriteValue.Type = ACPI_TYPE_BUFFER;    WriteValue.Buffer.Length = ByteLength;    WriteValue.Buffer.Pointer = Buffer;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the new value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_BUFFER, &Temp2);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    if (memcmp (Temp2->Buffer.Pointer, Buffer, ByteLength))    {        AcpiOsPrintf (" MISMATCH 2: New buffer value");    }    /* Write back the original value */    WriteValue.Buffer.Length = ByteLength;    WriteValue.Buffer.Pointer = Temp1->Buffer.Pointer;    Status = AcpiDbWriteToObject (Node, &WriteValue);    if (ACPI_FAILURE (Status))    {        goto Exit;    }    /* Ensure that we can read back the original value */    Status = AcpiDbReadFromObject (Node, ACPI_TYPE_BUFFER, &Temp3);//.........这里部分代码省略.........
开发者ID:JamesLinus,项目名称:acpica,代码行数:101,


示例12: AcpiDbTestOneObject

static ACPI_STATUSAcpiDbTestOneObject (    ACPI_HANDLE             ObjHandle,    UINT32                  NestingLevel,    void                    *Context,    void                    **ReturnValue){    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_OPERAND_OBJECT     *RegionObj;    ACPI_OBJECT_TYPE        LocalType;    UINT32                  BitLength = 0;    UINT32                  ByteLength = 0;    ACPI_STATUS             Status = AE_OK;    Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);    ObjDesc = Node->Object;    /*     * For the supported types, get the actual bit length or     * byte length. Map the type to one of Integer/String/Buffer.     */    switch (Node->Type)    {    case ACPI_TYPE_INTEGER:        /* Integer width is either 32 or 64 */        LocalType = ACPI_TYPE_INTEGER;        BitLength = AcpiGbl_IntegerBitWidth;        break;    case ACPI_TYPE_STRING:        LocalType = ACPI_TYPE_STRING;        ByteLength = ObjDesc->String.Length;        break;    case ACPI_TYPE_BUFFER:        LocalType = ACPI_TYPE_BUFFER;        ByteLength = ObjDesc->Buffer.Length;        BitLength = ByteLength * 8;        break;    case ACPI_TYPE_FIELD_UNIT:    case ACPI_TYPE_BUFFER_FIELD:    case ACPI_TYPE_LOCAL_REGION_FIELD:    case ACPI_TYPE_LOCAL_INDEX_FIELD:    case ACPI_TYPE_LOCAL_BANK_FIELD:        LocalType = ACPI_TYPE_INTEGER;        if (ObjDesc)        {            /*             * Returned object will be a Buffer if the field length             * is larger than the size of an Integer (32 or 64 bits             * depending on the DSDT version).             */            BitLength = ObjDesc->CommonField.BitLength;            ByteLength = ACPI_ROUND_BITS_UP_TO_BYTES (BitLength);            if (BitLength > AcpiGbl_IntegerBitWidth)            {                LocalType = ACPI_TYPE_BUFFER;            }        }        break;    default:        /* Ignore all other types */        return (AE_OK);    }    /* Emit the common prefix: Type:Name */    AcpiOsPrintf ("%14s: %4.4s",        AcpiUtGetTypeName (Node->Type), Node->Name.Ascii);    if (!ObjDesc)    {        AcpiOsPrintf (" Ignoring, no attached object/n");        return (AE_OK);    }    /*     * Check for unsupported region types. Note: AcpiExec simulates     * access to SystemMemory, SystemIO, PCI_Config, and EC.     */    switch (Node->Type)    {    case ACPI_TYPE_LOCAL_REGION_FIELD:        RegionObj = ObjDesc->Field.RegionObj;        switch (RegionObj->Region.SpaceId)        {        case ACPI_ADR_SPACE_SYSTEM_MEMORY:        case ACPI_ADR_SPACE_SYSTEM_IO:        case ACPI_ADR_SPACE_PCI_CONFIG://.........这里部分代码省略.........
开发者ID:JamesLinus,项目名称:acpica,代码行数:101,


示例13: AcpiDbEvaluateOnePredefinedName

//.........这里部分代码省略.........    /* Get the object info for number of method parameters */    Status = AcpiGetObjectInfo (ObjHandle, &ObjInfo);    if (ACPI_FAILURE (Status))    {        ACPI_FREE (Pathname);        return (Status);    }    ParamObjects.Count = 0;    ParamObjects.Pointer = NULL;    if (ObjInfo->Type == ACPI_TYPE_METHOD)    {        /* Setup default parameters (with proper types) */        ArgTypeList = Predefined->Info.ArgumentList;        ArgCount = METHOD_GET_ARG_COUNT (ArgTypeList);        /*         * Setup the ACPI-required number of arguments, regardless of what         * the actual method defines. If there is a difference, then the         * method is wrong and a warning will be issued during execution.         */        ThisParam = Params;        for (i = 0; i < ArgCount; i++)        {            ArgType = METHOD_GET_NEXT_TYPE (ArgTypeList);            ThisParam->Type = ArgType;            switch (ArgType)            {            case ACPI_TYPE_INTEGER:                ThisParam->Integer.Value = 1;                break;            case ACPI_TYPE_STRING:                ThisParam->String.Pointer =                    "This is the default argument string";                ThisParam->String.Length =                    strlen (ThisParam->String.Pointer);                break;            case ACPI_TYPE_BUFFER:                ThisParam->Buffer.Pointer = (UINT8 *) Params; /* just a garbage buffer */                ThisParam->Buffer.Length = 48;                break;             case ACPI_TYPE_PACKAGE:                ThisParam->Package.Elements = NULL;                ThisParam->Package.Count = 0;                break;           default:                AcpiOsPrintf ("%s: Unsupported argument type: %u/n",                    Pathname, ArgType);                break;            }            ThisParam++;        }        ParamObjects.Count = ArgCount;        ParamObjects.Pointer = Params;    }    ACPI_FREE (ObjInfo);    ReturnObj.Pointer = NULL;    ReturnObj.Length = ACPI_ALLOCATE_BUFFER;    /* Do the actual method execution */    AcpiGbl_MethodExecuting = TRUE;    Status = AcpiEvaluateObject (Node, NULL, &ParamObjects, &ReturnObj);    AcpiOsPrintf ("%-32s returned %s/n",        Pathname, AcpiFormatException (Status));    AcpiGbl_MethodExecuting = FALSE;    ACPI_FREE (Pathname);    /* Ignore status from method execution */    Status = AE_OK;    /* Update count, check if we have executed enough methods */    Info->Count++;    if (Info->Count >= Info->MaxCount)    {        Status = AE_CTRL_TERMINATE;    }    return (Status);}
开发者ID:JamesLinus,项目名称:acpica,代码行数:101,


示例14: ApDoOptions

static intApDoOptions (    int                     argc,    char                    **argv){    int                     j;    ACPI_STATUS             Status;    /* Command line options */    while ((j = AcpiGetopt (argc, argv, AP_SUPPORTED_OPTIONS)) != ACPI_OPT_END) switch (j)    {    /*     * Global options     */    case 'b':   /* Dump all input tables to binary files */        Gbl_BinaryMode = TRUE;        continue;    case 'c':   /* Dump customized tables */        if (!strcmp (AcpiGbl_Optarg, "on"))        {            Gbl_DumpCustomizedTables = TRUE;        }        else if (!strcmp (AcpiGbl_Optarg, "off"))        {            Gbl_DumpCustomizedTables = FALSE;        }        else        {            AcpiLogError ("%s: Cannot handle this switch, please use on|off/n",                AcpiGbl_Optarg);            return (-1);        }        continue;    case 'h':    case '?':        ApDisplayUsage ();        return (1);    case 'o':   /* Redirect output to a single file */        if (ApOpenOutputFile (AcpiGbl_Optarg))        {            return (-1);        }        continue;    case 'r':   /* Dump tables from specified RSDP */        Status = AcpiUtStrtoul64 (AcpiGbl_Optarg, 0, &Gbl_RsdpBase);        if (ACPI_FAILURE (Status))        {            AcpiLogError ("%s: Could not convert to a physical address/n",                AcpiGbl_Optarg);            return (-1);        }        continue;    case 's':   /* Print table summaries only */        Gbl_SummaryMode = TRUE;        continue;    case 'x':   /* Do not use XSDT */        if (!AcpiGbl_DoNotUseXsdt)        {            AcpiGbl_DoNotUseXsdt = TRUE;        }        else        {            Gbl_DoNotDumpXsdt = TRUE;        }        continue;    case 'v':   /* Revision/version */        AcpiOsPrintf (ACPI_COMMON_SIGNON (AP_UTILITY_NAME));        return (1);    case 'z':   /* Verbose mode */        Gbl_VerboseMode = TRUE;        AcpiLogError (ACPI_COMMON_SIGNON (AP_UTILITY_NAME));        continue;    /*     * Table options     */    case 'a':   /* Get table by physical address */        if (ApInsertAction (AcpiGbl_Optarg, AP_DUMP_TABLE_BY_ADDRESS))        {            return (-1);//.........这里部分代码省略.........
开发者ID:saltstar,项目名称:smartnix,代码行数:101,


示例15: AcpiDbIntegrityWalk

static ACPI_STATUSAcpiDbIntegrityWalk (    ACPI_HANDLE             ObjHandle,    UINT32                  NestingLevel,    void                    *Context,    void                    **ReturnValue){    ACPI_INTEGRITY_INFO     *Info = (ACPI_INTEGRITY_INFO *) Context;    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;    ACPI_OPERAND_OBJECT     *Object;    BOOLEAN                 Alias = TRUE;    Info->Nodes++;    /* Verify the NS node, and dereference aliases */    while (Alias)    {        if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)        {            AcpiOsPrintf ("Invalid Descriptor Type for Node %p [%s] - is %2.2X should be %2.2X/n",                Node, AcpiUtGetDescriptorName (Node), ACPI_GET_DESCRIPTOR_TYPE (Node),                ACPI_DESC_TYPE_NAMED);            return (AE_OK);        }        if ((Node->Type == ACPI_TYPE_LOCAL_ALIAS)  ||            (Node->Type == ACPI_TYPE_LOCAL_METHOD_ALIAS))        {            Node = (ACPI_NAMESPACE_NODE *) Node->Object;        }        else        {            Alias = FALSE;        }    }    if (Node->Type > ACPI_TYPE_LOCAL_MAX)    {        AcpiOsPrintf ("Invalid Object Type for Node %p, Type = %X/n",            Node, Node->Type);        return (AE_OK);    }    if (!AcpiUtValidAcpiName (Node->Name.Integer))    {        AcpiOsPrintf ("Invalid AcpiName for Node %p/n", Node);        return (AE_OK);    }    Object = AcpiNsGetAttachedObject (Node);    if (Object)    {        Info->Objects++;        if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)        {            AcpiOsPrintf ("Invalid Descriptor Type for Object %p [%s]/n",                Object, AcpiUtGetDescriptorName (Object));        }    }    return (AE_OK);}
开发者ID:cloudius-systems,项目名称:acpica,代码行数:64,


示例16: AcpiExDoDebugObject

voidAcpiExDoDebugObject (    ACPI_OPERAND_OBJECT     *SourceDesc,    UINT32                  Level,    UINT32                  Index){    UINT32                  i;    UINT32                  Timer;    ACPI_OPERAND_OBJECT     *ObjectDesc;    UINT32                  Value;    ACPI_FUNCTION_TRACE_PTR (ExDoDebugObject, SourceDesc);    /* Output must be enabled via the DebugObject global or the DbgLevel */    if (!AcpiGbl_EnableAmlDebugObject &&        !(AcpiDbgLevel & ACPI_LV_DEBUG_OBJECT))    {        return_VOID;    }    /* Newline -- don't emit the line header */    if (SourceDesc &&        (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_OPERAND) &&        (SourceDesc->Common.Type == ACPI_TYPE_STRING))    {        if ((SourceDesc->String.Length == 1) &&            (*SourceDesc->String.Pointer == '/n'))        {            AcpiOsPrintf ("/n");            return_VOID;        }    }    /*     * Print line header as long as we are not in the middle of an     * object display     */    if (!((Level > 0) && Index == 0))    {        if (AcpiGbl_DisplayDebugTimer)        {            /*             * We will emit the current timer value (in microseconds) with each             * debug output. Only need the lower 26 bits. This allows for 67             * million microseconds or 67 seconds before rollover.             *             * Convert 100 nanosecond units to microseconds             */            Timer = ((UINT32) AcpiOsGetTimer () / 10);            Timer &= 0x03FFFFFF;            AcpiOsPrintf ("ACPI Debug: T=0x%8.8X %*s", Timer, Level, " ");        }        else        {            AcpiOsPrintf ("ACPI Debug: %*s", Level, " ");        }    }    /* Display the index for package output only */    if (Index > 0)    {       AcpiOsPrintf ("(%.2u) ", Index - 1);    }    if (!SourceDesc)    {        AcpiOsPrintf ("[Null Object]/n");        return_VOID;    }    if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_OPERAND)    {        /* No object type prefix needed for integers and strings */        if ((SourceDesc->Common.Type != ACPI_TYPE_INTEGER) &&            (SourceDesc->Common.Type != ACPI_TYPE_STRING))        {            AcpiOsPrintf ("%s  ", AcpiUtGetObjectTypeName (SourceDesc));        }        if (!AcpiUtValidInternalObject (SourceDesc))        {           AcpiOsPrintf ("%p, Invalid Internal Object!/n", SourceDesc);           return_VOID;        }    }    else if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_NAMED)    {        AcpiOsPrintf ("%s  (Node %p)/n",            AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type),                SourceDesc);        return_VOID;    }    else//.........这里部分代码省略.........
开发者ID:FreeBSDFoundation,项目名称:freebsd,代码行数:101,


示例17: AcpiDbBusWalk

static ACPI_STATUSAcpiDbBusWalk (    ACPI_HANDLE             ObjHandle,    UINT32                  NestingLevel,    void                    *Context,    void                    **ReturnValue){    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;    ACPI_STATUS             Status;    ACPI_BUFFER             Buffer;    ACPI_NAMESPACE_NODE     *TempNode;    ACPI_DEVICE_INFO        *Info;    UINT32                  i;    if ((Node->Type != ACPI_TYPE_DEVICE) &&        (Node->Type != ACPI_TYPE_PROCESSOR))    {        return (AE_OK);    }    /* Exit if there is no _PRT under this device */    Status = AcpiGetHandle (Node, METHOD_NAME__PRT,                ACPI_CAST_PTR (ACPI_HANDLE, &TempNode));    if (ACPI_FAILURE (Status))    {        return (AE_OK);    }    /* Get the full path to this device object */    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;    Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);    if (ACPI_FAILURE (Status))    {        AcpiOsPrintf ("Could Not get pathname for object %p/n", ObjHandle);        return (AE_OK);    }    Status = AcpiGetObjectInfo (ObjHandle, &Info);    if (ACPI_FAILURE (Status))    {        return (AE_OK);    }    /* Display the full path */    AcpiOsPrintf ("%-32s Type %X", (char *) Buffer.Pointer, Node->Type);    ACPI_FREE (Buffer.Pointer);    if (Info->Flags & ACPI_PCI_ROOT_BRIDGE)    {        AcpiOsPrintf ("  - Is PCI Root Bridge");    }    AcpiOsPrintf ("/n");    /* _PRT info */    AcpiOsPrintf ("_PRT: %p/n", TempNode);    /* Dump _ADR, _HID, _UID, _CID */    if (Info->Valid & ACPI_VALID_ADR)    {        AcpiOsPrintf ("_ADR: %8.8X%8.8X/n", ACPI_FORMAT_UINT64 (Info->Address));    }    else    {        AcpiOsPrintf ("_ADR: <Not Present>/n");    }    if (Info->Valid & ACPI_VALID_HID)    {        AcpiOsPrintf ("_HID: %s/n", Info->HardwareId.String);    }    else    {        AcpiOsPrintf ("_HID: <Not Present>/n");    }    if (Info->Valid & ACPI_VALID_UID)    {        AcpiOsPrintf ("_UID: %s/n", Info->UniqueId.String);    }    else    {        AcpiOsPrintf ("_UID: <Not Present>/n");    }    if (Info->Valid & ACPI_VALID_CID)    {        for (i = 0; i < Info->CompatibleIdList.Count; i++)        {            AcpiOsPrintf ("_CID: %s/n",                Info->CompatibleIdList.Ids[i].String);        }    }    else    {//.........这里部分代码省略.........
开发者ID:cloudius-systems,项目名称:acpica,代码行数:101,


示例18: AdCreateTableHeader

static voidAdCreateTableHeader (    char                    *Filename,    ACPI_TABLE_HEADER       *Table){    char                    *NewFilename;    UINT8                   Checksum;    /*     * Print file header and dump original table header     */    AdDisassemblerHeader (Filename);    AcpiOsPrintf (" * Original Table Header:/n");    AcpiOsPrintf (" *     Signature        /"%4.4s/"/n",    Table->Signature);    AcpiOsPrintf (" *     Length           0x%8.8X (%u)/n", Table->Length, Table->Length);    /* Print and validate the revision */    AcpiOsPrintf (" *     Revision         0x%2.2X",      Table->Revision);    switch (Table->Revision)    {    case 0:        AcpiOsPrintf (" **** Invalid Revision");        break;    case 1:        /* Revision of DSDT controls the ACPI integer width */        if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT))        {            AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support");        }        break;    default:        break;    }    AcpiOsPrintf ("/n");    /* Print and validate the table checksum */    AcpiOsPrintf (" *     Checksum         0x%2.2X",        Table->Checksum);    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);    if (Checksum)    {        AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",            (UINT8) (Table->Checksum - Checksum));    }    AcpiOsPrintf ("/n");    AcpiOsPrintf (" *     OEM ID           /"%.6s/"/n",     Table->OemId);    AcpiOsPrintf (" *     OEM Table ID     /"%.8s/"/n",     Table->OemTableId);    AcpiOsPrintf (" *     OEM Revision     0x%8.8X (%u)/n", Table->OemRevision, Table->OemRevision);    AcpiOsPrintf (" *     Compiler ID      /"%.4s/"/n",     Table->AslCompilerId);    AcpiOsPrintf (" *     Compiler Version 0x%8.8X (%u)/n", Table->AslCompilerRevision, Table->AslCompilerRevision);    AcpiOsPrintf (" *//n/n");    /* Create AML output filename based on input filename */    if (Filename)    {        NewFilename = FlGenerateFilename (Filename, "aml");    }    else    {        NewFilename = ACPI_ALLOCATE_ZEROED (9);        strncat (NewFilename, Table->Signature, 4);        strcat (NewFilename, ".aml");    }    /* Open the ASL definition block */    AcpiOsPrintf (        "DefinitionBlock (/"%s/", /"%4.4s/", %hu, /"%.6s/", /"%.8s/", 0x%8.8X)/n",        NewFilename, Table->Signature, Table->Revision,        Table->OemId, Table->OemTableId, Table->OemRevision);    ACPI_FREE (NewFilename);}
开发者ID:ppaeps,项目名称:freebsd-head,代码行数:83,


示例19: 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 = strtoul (ValueArg, NULL, 16);    if (Type == 'N')    {        Node = AcpiDbConvertToNode (IndexArg);        if (!Node)        {            return;        }        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 = 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)        {//.........这里部分代码省略.........
开发者ID:fsheikh,项目名称:acpica,代码行数:101,


示例20: AeInstallTables

ACPI_STATUSAeInstallTables (    void){    ACPI_STATUS             Status;    ACPI_TABLE_HEADER       Header;    ACPI_TABLE_HEADER       *Table;    Status = AcpiInitializeTables (Tables, ACPI_MAX_INIT_TABLES, TRUE);    AE_CHECK_OK (AcpiInitializeTables, Status);    Status = AcpiReallocateRootTable ();    AE_CHECK_OK (AcpiReallocateRootTable, Status);    Status = AcpiLoadTables ();    AE_CHECK_OK (AcpiLoadTables, Status);    /*     * Test run-time control method installation. Do it twice to test code     * for an existing name.     */    Status = AcpiInstallMethod (MethodCode);    if (ACPI_FAILURE (Status))    {        AcpiOsPrintf ("%s, Could not install method/n",            AcpiFormatException (Status));    }    Status = AcpiInstallMethod (MethodCode);    if (ACPI_FAILURE (Status))    {        AcpiOsPrintf ("%s, Could not install method/n",            AcpiFormatException (Status));    }    if (AcpiGbl_LoadTestTables)    {        /* Test multiple table/UEFI support. First, get the headers */        Status = AcpiGetTableHeader (ACPI_SIG_UEFI, 1, &Header);        AE_CHECK_OK (AcpiGetTableHeader, Status);        Status = AcpiGetTableHeader (ACPI_SIG_UEFI, 2, &Header);        AE_CHECK_OK (AcpiGetTableHeader, Status);        Status = AcpiGetTableHeader (ACPI_SIG_UEFI, 3, &Header);        AE_CHECK_STATUS (AcpiGetTableHeader, Status, AE_NOT_FOUND);        /* Now get the actual tables */        Status = AcpiGetTable (ACPI_SIG_UEFI, 1, &Table);        AE_CHECK_OK (AcpiGetTable, Status);        Status = AcpiGetTable (ACPI_SIG_UEFI, 2, &Table);        AE_CHECK_OK (AcpiGetTable, Status);        Status = AcpiGetTable (ACPI_SIG_UEFI, 3, &Table);        AE_CHECK_STATUS (AcpiGetTable, Status, AE_NOT_FOUND);    }    return (AE_OK);}
开发者ID:elazarl,项目名称:nopOS,代码行数:63,


示例21: AcpiDmGetExternalsFromFile

voidAcpiDmGetExternalsFromFile (    void){    FILE                    *ExternalRefFile;    char                    *Token;    char                    *MethodName;    UINT32                  ArgCount;    UINT32                  ImportCount = 0;    if (!Gbl_ExternalRefFilename)    {        return;    }    /* Open the file */    ExternalRefFile = fopen (Gbl_ExternalRefFilename, "r");    if (!ExternalRefFile)    {        fprintf (stderr, "Could not open external reference file /"%s/"/n",            Gbl_ExternalRefFilename);        AslAbort ();        return;    }    /* Each line defines a method */    while (fgets (StringBuffer, ASL_MSG_BUFFER_SIZE, ExternalRefFile))    {        Token = strtok (StringBuffer, METHOD_SEPARATORS);   /* "External" */        if (!Token)        {            continue;        }        if (strcmp (Token, "External"))        {            continue;        }        MethodName = strtok (NULL, METHOD_SEPARATORS);      /* Method namepath */        if (!MethodName)        {            continue;        }        Token = strtok (NULL, METHOD_SEPARATORS);           /* "MethodObj" */        if (!Token)        {            continue;        }        if (strcmp (Token, "MethodObj"))        {            continue;        }        Token = strtok (NULL, METHOD_SEPARATORS);           /* Arg count */        if (!Token)        {            continue;        }        /* Convert arg count string to an integer */        errno = 0;        ArgCount = strtoul (Token, NULL, 0);        if (errno)        {            fprintf (stderr, "Invalid argument count (%s)/n", Token);            continue;        }        if (ArgCount > 7)        {            fprintf (stderr, "Invalid argument count (%u)/n", ArgCount);            continue;        }        /* Add this external to the global list */        AcpiOsPrintf ("%s: Importing method external (%u arguments) %s/n",            Gbl_ExternalRefFilename, ArgCount, MethodName);        AcpiDmAddPathToExternalList (MethodName, ACPI_TYPE_METHOD,            ArgCount, (ACPI_EXT_RESOLVED_REFERENCE | ACPI_EXT_ORIGIN_FROM_FILE));        ImportCount++;    }    if (!ImportCount)    {        fprintf (stderr,            "Did not find any external methods in reference file /"%s/"/n",            Gbl_ExternalRefFilename);    }    else    {        /* Add the external(s) to the namespace *///.........这里部分代码省略.........
开发者ID:envieid0c,项目名称:Intel-iasl,代码行数:101,


示例22: AcpiDbDecodeAndDisplayObject

voidAcpiDbDecodeAndDisplayObject (    char                    *Target,    char                    *OutputType){    void                    *ObjPtr;    ACPI_NAMESPACE_NODE     *Node;    ACPI_OPERAND_OBJECT     *ObjDesc;    UINT32                  Display = DB_BYTE_DISPLAY;    char                    Buffer[80];    ACPI_BUFFER             RetBuf;    ACPI_STATUS             Status;    UINT32                  Size;    if (!Target)    {        return;    }    /* Decode the output type */    if (OutputType)    {        AcpiUtStrupr (OutputType);        if (OutputType[0] == 'W')        {            Display = DB_WORD_DISPLAY;        }        else if (OutputType[0] == 'D')        {            Display = DB_DWORD_DISPLAY;        }        else if (OutputType[0] == 'Q')        {            Display = DB_QWORD_DISPLAY;        }    }    RetBuf.Length = sizeof (Buffer);    RetBuf.Pointer = Buffer;    /* Differentiate between a number and a name */    if ((Target[0] >= 0x30) && (Target[0] <= 0x39))    {        ObjPtr = AcpiDbGetPointer (Target);        if (!AcpiOsReadable (ObjPtr, 16))        {            AcpiOsPrintf (                "Address %p is invalid in this address space/n",                ObjPtr);            return;        }        /* Decode the object type */        switch (ACPI_GET_DESCRIPTOR_TYPE (ObjPtr))        {        case ACPI_DESC_TYPE_NAMED:            /* This is a namespace Node */            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_NAMESPACE_NODE)))            {                AcpiOsPrintf (                    "Cannot read entire Named object at address %p/n",                    ObjPtr);                return;            }            Node = ObjPtr;            goto DumpNode;        case ACPI_DESC_TYPE_OPERAND:            /* This is a ACPI OPERAND OBJECT */            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_OPERAND_OBJECT)))            {                AcpiOsPrintf (                    "Cannot read entire ACPI object at address %p/n",                    ObjPtr);                return;            }            AcpiUtDebugDumpBuffer (ObjPtr, sizeof (ACPI_OPERAND_OBJECT),                Display, ACPI_UINT32_MAX);            AcpiExDumpObjectDescriptor (ObjPtr, 1);            break;        case ACPI_DESC_TYPE_PARSER:            /* This is a Parser Op object */            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_PARSE_OBJECT)))            {                AcpiOsPrintf (                    "Cannot read entire Parser object at address %p/n",                    ObjPtr);//.........这里部分代码省略.........
开发者ID:fjdoria76,项目名称:acpica,代码行数:101,


示例23: AcpiDbDisplayObjectType

voidAcpiDbDisplayObjectType (    char                    *Name){    ACPI_NAMESPACE_NODE     *Node;    ACPI_DEVICE_INFO        *Info;    ACPI_STATUS             Status;    UINT32                  i;    Node = AcpiDbConvertToNode (Name);    if (!Node)    {        return;    }    Status = AcpiGetObjectInfo (ACPI_CAST_PTR (ACPI_HANDLE, Node), &Info);    if (ACPI_FAILURE (Status))    {        AcpiOsPrintf ("Could not get object info, %s/n",            AcpiFormatException (Status));        return;    }    if (Info->Valid & ACPI_VALID_ADR)    {        AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X/n",            ACPI_FORMAT_UINT64 (Info->Address),            Info->CurrentStatus, Info->Flags);    }    if (Info->Valid & ACPI_VALID_SXDS)    {        AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X/n",            Info->HighestDstates[0], Info->HighestDstates[1],            Info->HighestDstates[2], Info->HighestDstates[3]);    }    if (Info->Valid & ACPI_VALID_SXWS)    {        AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X/n",            Info->LowestDstates[0], Info->LowestDstates[1],            Info->LowestDstates[2], Info->LowestDstates[3],            Info->LowestDstates[4]);    }    if (Info->Valid & ACPI_VALID_HID)    {        AcpiOsPrintf ("HID: %s/n", Info->HardwareId.String);    }    if (Info->Valid & ACPI_VALID_UID)    {        AcpiOsPrintf ("UID: %s/n", Info->UniqueId.String);    }    if (Info->Valid & ACPI_VALID_SUB)    {        AcpiOsPrintf ("SUB: %s/n", Info->SubsystemId.String);    }    if (Info->Valid & ACPI_VALID_CID)    {        for (i = 0; i < Info->CompatibleIdList.Count; i++)        {            AcpiOsPrintf ("CID %u: %s/n", i,                Info->CompatibleIdList.Ids[i].String);        }    }    ACPI_FREE (Info);}
开发者ID:fjdoria76,项目名称:acpica,代码行数:70,


示例24: AcpiUtDumpAllocations

voidAcpiUtDumpAllocations (    UINT32                  Component,    const char              *Module){    ACPI_DEBUG_MEM_BLOCK    *Element;    ACPI_DESCRIPTOR         *Descriptor;    UINT32                  NumOutstanding = 0;    ACPI_FUNCTION_TRACE (UtDumpAllocations);    /*     * Walk the allocation list.     */    if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_MEMORY)))    {        return;    }    Element = AcpiGbl_GlobalList->ListHead;    while (Element)    {        if ((Element->Component & Component) &&            ((Module == NULL) || (0 == ACPI_STRCMP (Module, Element->Module))))        {            /* Ignore allocated objects that are in a cache */            Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace);            if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != ACPI_DESC_TYPE_CACHED)            {                AcpiOsPrintf ("%p Len %04X %9.9s-%d [%s] ",                    Descriptor, Element->Size, Element->Module,                    Element->Line, AcpiUtGetDescriptorName (Descriptor));                /* Most of the elements will be Operand objects. */                switch (ACPI_GET_DESCRIPTOR_TYPE (Descriptor))                {                case ACPI_DESC_TYPE_OPERAND:                    AcpiOsPrintf ("%12.12s R%hd",                        AcpiUtGetTypeName (Descriptor->Object.Common.Type),                        Descriptor->Object.Common.ReferenceCount);                    break;                case ACPI_DESC_TYPE_PARSER:                    AcpiOsPrintf ("AmlOpcode %04hX",                        Descriptor->Op.Asl.AmlOpcode);                    break;                case ACPI_DESC_TYPE_NAMED:                    AcpiOsPrintf ("%4.4s",                        AcpiUtGetNodeName (&Descriptor->Node));                    break;                default:                    break;                }                AcpiOsPrintf ( "/n");                NumOutstanding++;            }        }        Element = Element->Next;    }    (void) AcpiUtReleaseMutex (ACPI_MTX_MEMORY);    /* Print summary */    if (!NumOutstanding)    {        ACPI_INFO ((AE_INFO,            "No outstanding allocations"));    }    else    {        ACPI_ERROR ((AE_INFO,            "%d(%X) Outstanding allocations",            NumOutstanding, NumOutstanding));    }    return_VOID;}
开发者ID:CoryXie,项目名称:BarrelfishOS,代码行数:85,



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


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