X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FUefiLib%2FAcpi.c;fp=MdePkg%2FLibrary%2FUefiLib%2FAcpi.c;h=397fde24ed7b42b2dc6f5b817eeff14af70e2131;hb=2f88bd3a1296c522317f1c21377876de63de5be7;hp=d4f7fc8aa83cda3ec961ee2c167fa6404e8569e2;hpb=1436aea4d5707e672672a11bda72be2c63c936c3;p=mirror_edk2.git diff --git a/MdePkg/Library/UefiLib/Acpi.c b/MdePkg/Library/UefiLib/Acpi.c index d4f7fc8aa8..397fde24ed 100644 --- a/MdePkg/Library/UefiLib/Acpi.c +++ b/MdePkg/Library/UefiLib/Acpi.c @@ -30,18 +30,18 @@ **/ EFI_ACPI_COMMON_HEADER * ScanTableInSDT ( - IN EFI_ACPI_DESCRIPTION_HEADER *Sdt, - IN UINTN TablePointerSize, - IN UINT32 Signature, - IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL, - OUT BOOLEAN *PreviousTableLocated OPTIONAL + IN EFI_ACPI_DESCRIPTION_HEADER *Sdt, + IN UINTN TablePointerSize, + IN UINT32 Signature, + IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL, + OUT BOOLEAN *PreviousTableLocated OPTIONAL ) { - UINTN Index; - UINTN EntryCount; - UINT64 EntryPtr; - UINTN BasePtr; - EFI_ACPI_COMMON_HEADER *Table; + UINTN Index; + UINTN EntryCount; + UINT64 EntryPtr; + UINTN BasePtr; + EFI_ACPI_COMMON_HEADER *Table; if (PreviousTableLocated != NULL) { ASSERT (PreviousTable != NULL); @@ -57,7 +57,7 @@ ScanTableInSDT ( EntryCount = (Sdt->Length - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / TablePointerSize; BasePtr = (UINTN)(Sdt + 1); - for (Index = 0; Index < EntryCount; Index ++) { + for (Index = 0; Index < EntryCount; Index++) { EntryPtr = 0; CopyMem (&EntryPtr, (VOID *)(BasePtr + Index * TablePointerSize), TablePointerSize); Table = (EFI_ACPI_COMMON_HEADER *)((UINTN)(EntryPtr)); @@ -77,7 +77,6 @@ ScanTableInSDT ( // return Table; } - } } @@ -97,8 +96,8 @@ LocateAcpiFacsFromFadt ( IN EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt ) { - EFI_ACPI_COMMON_HEADER *Facs; - UINT64 Data64; + EFI_ACPI_COMMON_HEADER *Facs; + UINT64 Data64; if (Fadt == NULL) { return NULL; @@ -107,13 +106,14 @@ LocateAcpiFacsFromFadt ( if (Fadt->Header.Revision < EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION) { Facs = (EFI_ACPI_COMMON_HEADER *)(UINTN)Fadt->FirmwareCtrl; } else { - CopyMem (&Data64, &Fadt->XFirmwareCtrl, sizeof(UINT64)); + CopyMem (&Data64, &Fadt->XFirmwareCtrl, sizeof (UINT64)); if (Data64 != 0) { Facs = (EFI_ACPI_COMMON_HEADER *)(UINTN)Data64; } else { Facs = (EFI_ACPI_COMMON_HEADER *)(UINTN)Fadt->FirmwareCtrl; } } + return Facs; } @@ -130,8 +130,8 @@ LocateAcpiDsdtFromFadt ( IN EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt ) { - EFI_ACPI_COMMON_HEADER *Dsdt; - UINT64 Data64; + EFI_ACPI_COMMON_HEADER *Dsdt; + UINT64 Data64; if (Fadt == NULL) { return NULL; @@ -140,13 +140,14 @@ LocateAcpiDsdtFromFadt ( if (Fadt->Header.Revision < EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION) { Dsdt = (EFI_ACPI_COMMON_HEADER *)(UINTN)Fadt->Dsdt; } else { - CopyMem (&Data64, &Fadt->XDsdt, sizeof(UINT64)); + CopyMem (&Data64, &Fadt->XDsdt, sizeof (UINT64)); if (Data64 != 0) { Dsdt = (EFI_ACPI_COMMON_HEADER *)(UINTN)Data64; } else { Dsdt = (EFI_ACPI_COMMON_HEADER *)(UINTN)Fadt->Dsdt; } } + return Dsdt; } @@ -170,10 +171,10 @@ LocateAcpiDsdtFromFadt ( **/ EFI_ACPI_COMMON_HEADER * LocateAcpiTableInAcpiConfigurationTable ( - IN EFI_GUID *AcpiGuid, - IN UINT32 Signature, - IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL, - OUT BOOLEAN *PreviousTableLocated OPTIONAL + IN EFI_GUID *AcpiGuid, + IN UINT32 Signature, + IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL, + OUT BOOLEAN *PreviousTableLocated OPTIONAL ) { EFI_STATUS Status; @@ -194,7 +195,7 @@ LocateAcpiTableInAcpiConfigurationTable ( // // Get ACPI ConfigurationTable (RSD_PTR) // - Status = EfiGetSystemConfigurationTable(AcpiGuid, (VOID **)&Rsdp); + Status = EfiGetSystemConfigurationTable (AcpiGuid, (VOID **)&Rsdp); if (EFI_ERROR (Status) || (Rsdp == NULL)) { return NULL; } @@ -205,20 +206,20 @@ LocateAcpiTableInAcpiConfigurationTable ( // Search XSDT // if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION) { - Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN) Rsdp->XsdtAddress; + Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp->XsdtAddress; if (Signature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) { ASSERT (PreviousTable == NULL); // // It is to locate DSDT, // need to locate FADT first. // - Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) ScanTableInSDT ( - Xsdt, - sizeof (UINT64), - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, - NULL, - NULL - ); + Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *)ScanTableInSDT ( + Xsdt, + sizeof (UINT64), + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + NULL, + NULL + ); Table = LocateAcpiDsdtFromFadt (Fadt); } else if (Signature == EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) { ASSERT (PreviousTable == NULL); @@ -226,13 +227,13 @@ LocateAcpiTableInAcpiConfigurationTable ( // It is to locate FACS, // need to locate FADT first. // - Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) ScanTableInSDT ( - Xsdt, - sizeof (UINT64), - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, - NULL, - NULL - ); + Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *)ScanTableInSDT ( + Xsdt, + sizeof (UINT64), + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + NULL, + NULL + ); Table = LocateAcpiFacsFromFadt (Fadt); } else { Table = ScanTableInSDT ( @@ -248,7 +249,8 @@ LocateAcpiTableInAcpiConfigurationTable ( if (Table != NULL) { return Table; } else if ((PreviousTableLocated != NULL) && - *PreviousTableLocated) { + *PreviousTableLocated) + { // // PreviousTable could be located in XSDT, // but next table could not be located in XSDT. @@ -259,20 +261,20 @@ LocateAcpiTableInAcpiConfigurationTable ( // // Search RSDT // - Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN) Rsdp->RsdtAddress; + Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp->RsdtAddress; if (Signature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) { ASSERT (PreviousTable == NULL); // // It is to locate DSDT, // need to locate FADT first. // - Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) ScanTableInSDT ( - Rsdt, - sizeof (UINT32), - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, - NULL, - NULL - ); + Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *)ScanTableInSDT ( + Rsdt, + sizeof (UINT32), + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + NULL, + NULL + ); Table = LocateAcpiDsdtFromFadt (Fadt); } else if (Signature == EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) { ASSERT (PreviousTable == NULL); @@ -280,13 +282,13 @@ LocateAcpiTableInAcpiConfigurationTable ( // It is to locate FACS, // need to locate FADT first. // - Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) ScanTableInSDT ( - Rsdt, - sizeof (UINT32), - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, - NULL, - NULL - ); + Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *)ScanTableInSDT ( + Rsdt, + sizeof (UINT32), + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + NULL, + NULL + ); Table = LocateAcpiFacsFromFadt (Fadt); } else { Table = ScanTableInSDT ( @@ -339,13 +341,13 @@ LocateAcpiTableInAcpiConfigurationTable ( EFI_ACPI_COMMON_HEADER * EFIAPI EfiLocateNextAcpiTable ( - IN UINT32 Signature, - IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL + IN UINT32 Signature, + IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL ) { - EFI_ACPI_COMMON_HEADER *Table; - BOOLEAN TempPreviousTableLocated; - BOOLEAN *PreviousTableLocated; + EFI_ACPI_COMMON_HEADER *Table; + BOOLEAN TempPreviousTableLocated; + BOOLEAN *PreviousTableLocated; if (PreviousTable != NULL) { if (PreviousTable->Signature != Signature) { @@ -355,7 +357,8 @@ EfiLocateNextAcpiTable ( return NULL; } else if ((Signature == EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE) || (Signature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) || - (Signature == EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE)) { + (Signature == EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE)) + { // // There is only one FADT/DSDT/FACS table, // so don't try to locate next one. @@ -363,7 +366,7 @@ EfiLocateNextAcpiTable ( return NULL; } - PreviousTableLocated = &TempPreviousTableLocated; + PreviousTableLocated = &TempPreviousTableLocated; *PreviousTableLocated = FALSE; } else { PreviousTableLocated = NULL; @@ -378,7 +381,8 @@ EfiLocateNextAcpiTable ( if (Table != NULL) { return Table; } else if ((PreviousTableLocated != NULL) && - *PreviousTableLocated) { + *PreviousTableLocated) + { // // PreviousTable could be located in gEfiAcpi20TableGuid system // configuration table, but next table could not be located in @@ -415,7 +419,7 @@ EfiLocateNextAcpiTable ( EFI_ACPI_COMMON_HEADER * EFIAPI EfiLocateFirstAcpiTable ( - IN UINT32 Signature + IN UINT32 Signature ) { return EfiLocateNextAcpiTable (Signature, NULL);