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

📄 rsaddr.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 2 页
字号:
                        0,                        sizeof (AML_RESOURCE_ADDRESS64)}};/******************************************************************************* * * AcpiRsConvertExtAddress64 - All Extended (64-bit) address resources * ******************************************************************************/ACPI_RSCONVERT_INFO     AcpiRsConvertExtAddress64[5] ={    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64,                        ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_ADDRESS64),                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertExtAddress64)},    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64,                        sizeof (AML_RESOURCE_EXTENDED_ADDRESS64),                        0},    /* Resource Type, General Flags, and Type-Specific Flags */    {ACPI_RSC_ADDRESS,  0, 0, 0},    /* Revision ID */    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.ExtAddress64.RevisionID),                        AML_OFFSET (ExtAddress64.RevisionID),                        1},    /*     * These fields are contiguous in both the source and destination:     * Address Granularity     * Address Range Minimum     * Address Range Maximum     * Address Translation Offset     * Address Length     * Type-Specific Attribute     */    {ACPI_RSC_MOVE64,   ACPI_RS_OFFSET (Data.ExtAddress64.Granularity),                        AML_OFFSET (ExtAddress64.Granularity),                        6}};/******************************************************************************* * * AcpiRsConvertGeneralFlags - Flags common to all address descriptors * ******************************************************************************/static ACPI_RSCONVERT_INFO  AcpiRsConvertGeneralFlags[6] ={    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.Flags),                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertGeneralFlags)},    /* Resource Type (Memory, Io, BusNumber, etc.) */    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Address.ResourceType),                        AML_OFFSET (Address.ResourceType),                        1},    /* General Flags - Consume, Decode, MinFixed, MaxFixed */    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.ProducerConsumer),                        AML_OFFSET (Address.Flags),                        0},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Decode),                        AML_OFFSET (Address.Flags),                        1},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MinAddressFixed),                        AML_OFFSET (Address.Flags),                        2},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MaxAddressFixed),                        AML_OFFSET (Address.Flags),                        3}};/******************************************************************************* * * AcpiRsConvertMemFlags - Flags common to Memory address descriptors * ******************************************************************************/static ACPI_RSCONVERT_INFO  AcpiRsConvertMemFlags[5] ={    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemFlags)},    /* Memory-specific flags */    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.WriteProtect),                        AML_OFFSET (Address.SpecificFlags),                        0},    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Caching),                        AML_OFFSET (Address.SpecificFlags),                        1},    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.RangeType),                        AML_OFFSET (Address.SpecificFlags),                        3},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Translation),                        AML_OFFSET (Address.SpecificFlags),                        5}};/******************************************************************************* * * AcpiRsConvertIoFlags - Flags common to I/O address descriptors * ******************************************************************************/static ACPI_RSCONVERT_INFO  AcpiRsConvertIoFlags[4] ={    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertIoFlags)},    /* I/O-specific flags */    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.RangeType),                        AML_OFFSET (Address.SpecificFlags),                        0},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.Translation),                        AML_OFFSET (Address.SpecificFlags),                        4},    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.TranslationType),                        AML_OFFSET (Address.SpecificFlags),                        5}};/******************************************************************************* * * FUNCTION:    AcpiRsGetAddressCommon * * PARAMETERS:  Resource            - Pointer to the internal resource struct *              Aml                 - Pointer to the AML resource descriptor * * RETURN:      TRUE if the ResourceType field is OK, FALSE otherwise * * DESCRIPTION: Convert common flag fields from a raw AML resource descriptor *              to an internal resource descriptor * ******************************************************************************/BOOLEANAcpiRsGetAddressCommon (    ACPI_RESOURCE           *Resource,    AML_RESOURCE            *Aml){    ACPI_FUNCTION_ENTRY ();    /* Validate the Resource Type */    if ((Aml->Address.ResourceType > 2) && (Aml->Address.ResourceType < 0xC0))    {        return (FALSE);    }    /* Get the Resource Type and General Flags */    (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertGeneralFlags);    /* Get the Type-Specific Flags (Memory and I/O descriptors only) */    if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)    {        (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertMemFlags);    }    else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)    {        (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertIoFlags);    }    else    {        /* Generic resource type, just grab the TypeSpecific byte */        Resource->Data.Address.Info.TypeSpecific = Aml->Address.SpecificFlags;    }    return (TRUE);}/******************************************************************************* * * FUNCTION:    AcpiRsSetAddressCommon * * PARAMETERS:  Aml                 - Pointer to the AML resource descriptor *              Resource            - Pointer to the internal resource struct * * RETURN:      None * * DESCRIPTION: Convert common flag fields from a resource descriptor to an *              AML descriptor * ******************************************************************************/voidAcpiRsSetAddressCommon (    AML_RESOURCE            *Aml,    ACPI_RESOURCE           *Resource){    ACPI_FUNCTION_ENTRY ();    /* Set the Resource Type and General Flags */    (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertGeneralFlags);    /* Set the Type-Specific Flags (Memory and I/O descriptors only) */    if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)    {        (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertMemFlags);    }    else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)    {        (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertIoFlags);    }    else    {        /* Generic resource type, just copy the TypeSpecific byte */        Aml->Address.SpecificFlags = Resource->Data.Address.Info.TypeSpecific;    }}

⌨️ 快捷键说明

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