⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsdump.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 3 页
字号:
};ACPI_RSDUMP_INFO        AcpiRsDumpAddress16[8] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress16),          "16-Bit WORD Address Space",NULL},    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Granularity),            "Granularity",              NULL},    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Minimum),                "Address Minimum",          NULL},    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Maximum),                "Address Maximum",          NULL},    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.TranslationOffset),      "Translation Offset",       NULL},    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.AddressLength),          "Address Length",           NULL},    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address16.ResourceSource),         NULL,                       NULL}};ACPI_RSDUMP_INFO        AcpiRsDumpAddress32[8] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress32),         "32-Bit DWORD Address Space", NULL},    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Granularity),            "Granularity",              NULL},    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Minimum),                "Address Minimum",          NULL},    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Maximum),                "Address Maximum",          NULL},    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.TranslationOffset),      "Translation Offset",       NULL},    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.AddressLength),          "Address Length",           NULL},    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address32.ResourceSource),         NULL,                       NULL}};ACPI_RSDUMP_INFO        AcpiRsDumpAddress64[8] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress64),          "64-Bit QWORD Address Space", NULL},    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Granularity),            "Granularity",              NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Minimum),                "Address Minimum",          NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Maximum),                "Address Maximum",          NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.TranslationOffset),      "Translation Offset",       NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.AddressLength),          "Address Length",           NULL},    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address64.ResourceSource),         NULL,                       NULL}};ACPI_RSDUMP_INFO        AcpiRsDumpExtAddress64[8] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtAddress64),       "64-Bit Extended Address Space", NULL},    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Granularity),         "Granularity",              NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Minimum),             "Address Minimum",          NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Maximum),             "Address Maximum",          NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TranslationOffset),   "Translation Offset",       NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.AddressLength),       "Address Length",           NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TypeSpecific),        "Type-Specific Attribute",  NULL}};ACPI_RSDUMP_INFO        AcpiRsDumpExtIrq[8] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtIrq),             "Extended IRQ",             NULL},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer),     "Type",                     AcpiGbl_ConsumeDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering),           "Triggering",               AcpiGbl_HeDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity),             "Polarity",                 AcpiGbl_LlDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable),             "Sharing",                  AcpiGbl_ShrDecode},    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource),       NULL,                       NULL},    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount),       "Interrupt Count",          NULL},    {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]),        "Interrupt List",           NULL}};ACPI_RSDUMP_INFO        AcpiRsDumpGenericReg[6] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGenericReg),         "Generic Register",         NULL},    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.SpaceId),               "Space ID",                 NULL},    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitWidth),              "Bit Width",                NULL},    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitOffset),             "Bit Offset",               NULL},    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.AccessSize),            "Access Size",              NULL},    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (GenericReg.Address),               "Address",                  NULL}};/* * Tables used for common address descriptor flag fields */static ACPI_RSDUMP_INFO AcpiRsDumpGeneralFlags[5] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGeneralFlags),       NULL,                       NULL},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.ProducerConsumer),         "Consumer/Producer",        AcpiGbl_ConsumeDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Decode),                   "Address Decode",           AcpiGbl_DecDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MinAddressFixed),          "Min Relocatability",       AcpiGbl_MinDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MaxAddressFixed),          "Max Relocatability",       AcpiGbl_MaxDecode}};static ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[5] ={    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags),        "Resource Type",            (void *) "Memory Range"},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.WriteProtect),    "Write Protect",            AcpiGbl_RwDecode},    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Caching),         "Caching",                  AcpiGbl_MemDecode},    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.RangeType),       "Range Type",               AcpiGbl_MtpDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Translation),     "Translation",              AcpiGbl_TtpDecode}};static ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[4] ={    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags),            "Resource Type",            (void *) "I/O Range"},    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.RangeType),        "Range Type",               AcpiGbl_RngDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.Translation),      "Translation",              AcpiGbl_TtpDecode},    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.TranslationType),  "Translation Type",         AcpiGbl_TrsDecode}};/* * Table used to dump _PRT contents */static ACPI_RSDUMP_INFO   AcpiRsDumpPrt[5] ={    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt),                NULL,                       NULL},    {ACPI_RSD_UINT64,   ACPI_PRT_OFFSET (Address),                          "Address",                  NULL},    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (Pin),                              "Pin",                      NULL},    {ACPI_RSD_STRING,   ACPI_PRT_OFFSET (Source[0]),                        "Source",                   NULL},    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (SourceIndex),                      "Source Index",             NULL}};/******************************************************************************* * * FUNCTION:    AcpiRsDumpDescriptor * * PARAMETERS:  Resource * * RETURN:      None * * DESCRIPTION: * ******************************************************************************/static voidAcpiRsDumpDescriptor (    void                    *Resource,    ACPI_RSDUMP_INFO        *Table){    UINT8                   *Target = NULL;    UINT8                   *PreviousTarget;    char                    *Name;    UINT8                    Count;    /* First table entry must contain the table length (# of table entries) */    Count = Table->Offset;    while (Count)    {        PreviousTarget = Target;        Target = ACPI_ADD_PTR (UINT8, Resource, Table->Offset);        Name = Table->Name;        switch (Table->Opcode)        {        case ACPI_RSD_TITLE:            /*             * Optional resource title             */            if (Table->Name)            {                AcpiOsPrintf ("%s Resource\n", Name);            }            break;        /* Strings */        case ACPI_RSD_LITERAL:            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer));            break;        case ACPI_RSD_STRING:            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target));            break;        /* Data items, 8/16/32/64 bit */        case ACPI_RSD_UINT8:            AcpiRsOutInteger8 (Name, ACPI_GET8 (Target));            break;        case ACPI_RSD_UINT16:            AcpiRsOutInteger16 (Name, ACPI_GET16 (Target));            break;        case ACPI_RSD_UINT32:            AcpiRsOutInteger32 (Name, ACPI_GET32 (Target));            break;        case ACPI_RSD_UINT64:            AcpiRsOutInteger64 (Name, ACPI_GET64 (Target));            break;        /* Flags: 1-bit and 2-bit flags supported */        case ACPI_RSD_1BITFLAG:            AcpiRsOutString (Name, ACPI_CAST_PTR (char,                Table->Pointer [*Target & 0x01]));            break;        case ACPI_RSD_2BITFLAG:            AcpiRsOutString (Name, ACPI_CAST_PTR (char,                Table->Pointer [*Target & 0x03]));            break;        case ACPI_RSD_SHORTLIST:            /*             * Short byte list (single line output) for DMA and IRQ resources             * Note: The list length is obtained from the previous table entry             */            if (PreviousTarget)            {                AcpiRsOutTitle (Name);                AcpiRsDumpShortByteList (*PreviousTarget, Target);            }            break;        case ACPI_RSD_LONGLIST:            /*             * Long byte list for Vendor resource data             * Note: The list length is obtained from the previous table entry             */            if (PreviousTarget)            {                AcpiRsDumpByteList (ACPI_GET16 (PreviousTarget), Target);            }            break;        case ACPI_RSD_DWORDLIST:            /*             * Dword list for Extended Interrupt resources             * Note: The list length is obtained from the previous table entry             */            if (PreviousTarget)            {                AcpiRsDumpDwordList (*PreviousTarget,                    ACPI_CAST_PTR (UINT32, Target));            }            break;        case ACPI_RSD_ADDRESS:            /*             * Common flags for all Address resources             */            AcpiRsDumpAddressCommon (ACPI_CAST_PTR (ACPI_RESOURCE_DATA, Target));            break;        case ACPI_RSD_SOURCE:            /*             * Optional ResourceSource for Address resources             */            AcpiRsDumpResourceSource (ACPI_CAST_PTR (ACPI_RESOURCE_SOURCE, Target));            break;        default:            AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",                Table->Opcode);            return;        }        Table++;        Count--;    }}/******************************************************************************* * * FUNCTION:    AcpiRsDumpResourceSource * * PARAMETERS:  ResourceSource      - Pointer to a Resource Source struct * * RETURN:      None * * DESCRIPTION: Common routine for dumping the optional ResourceSource and the *              corresponding ResourceSourceIndex. * ******************************************************************************/static voidAcpiRsDumpResourceSource (    ACPI_RESOURCE_SOURCE    *ResourceSource){    ACPI_FUNCTION_ENTRY ();    if (ResourceSource->Index == 0xFF)    {        return;    }    AcpiRsOutInteger8 ("Resource Source Index",        ResourceSource->Index);    AcpiRsOutString ("Resource Source",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -