diff options
Diffstat (limited to 'source/components/tables')
-rw-r--r-- | source/components/tables/tbdata.c | 9 | ||||
-rw-r--r-- | source/components/tables/tbfadt.c | 8 | ||||
-rw-r--r-- | source/components/tables/tbfind.c | 8 | ||||
-rw-r--r-- | source/components/tables/tbinstal.c | 13 | ||||
-rw-r--r-- | source/components/tables/tbprint.c | 5 | ||||
-rw-r--r-- | source/components/tables/tbutils.c | 48 | ||||
-rw-r--r-- | source/components/tables/tbxface.c | 18 | ||||
-rw-r--r-- | source/components/tables/tbxfload.c | 20 | ||||
-rw-r--r-- | source/components/tables/tbxfroot.c | 24 |
9 files changed, 70 insertions, 83 deletions
diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index 5769a8e705274..2943a08858022 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -122,7 +122,7 @@ AcpiTbAcquireTable ( case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); + ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); break; default: @@ -229,7 +229,7 @@ AcpiTbAcquireTempTable ( case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (Address)); + ACPI_PHYSADDR_TO_PTR (Address)); if (!TableHeader) { return (AE_NO_MEMORY); @@ -303,7 +303,7 @@ AcpiTbValidateTable ( if (!TableDesc->Pointer) { Status = AcpiTbAcquireTable (TableDesc, &TableDesc->Pointer, - &TableDesc->Length, &TableDesc->Flags); + &TableDesc->Length, &TableDesc->Flags); if (!TableDesc->Pointer) { Status = AE_NO_MEMORY; @@ -444,6 +444,7 @@ AcpiTbVerifyTempTable ( AcpiUtValidAcpiName (TableDesc->Signature.Ascii) ? TableDesc->Signature.Ascii : "????", ACPI_FORMAT_UINT64 (TableDesc->Address))); + goto InvalidateAndExit; } } @@ -721,7 +722,7 @@ AcpiTbAllocateOwnerId ( if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount) { Status = AcpiUtAllocateOwnerId ( - &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); + &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); } (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index bcbf576bc3680..bfb80e5557ae9 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -326,7 +326,7 @@ AcpiTbSelectAddress ( * * FUNCTION: AcpiTbParseFadt * - * PARAMETERS: TableIndex - Index for the FADT + * PARAMETERS: None * * RETURN: None * @@ -337,7 +337,7 @@ AcpiTbSelectAddress ( void AcpiTbParseFadt ( - UINT32 TableIndex) + void) { UINT32 Length; ACPI_TABLE_HEADER *Table; @@ -350,10 +350,10 @@ AcpiTbParseFadt ( * Get a local copy of the FADT and convert it to a common format * Map entire FADT, assumed to be smaller than one page. */ - Length = AcpiGbl_RootTableList.Tables[TableIndex].Length; + Length = AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Length; Table = AcpiOsMapMemory ( - AcpiGbl_RootTableList.Tables[TableIndex].Address, Length); + AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Address, Length); if (!Table) { return; diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 4d360ae8bee34..34cf12c13f47f 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -108,7 +108,7 @@ AcpiTbFindTable ( for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i) { if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature), - Header.Signature, ACPI_NAME_SIZE)) + Header.Signature, ACPI_NAME_SIZE)) { /* Not the requested table */ @@ -136,13 +136,13 @@ AcpiTbFindTable ( /* Check for table match on all IDs */ if (!memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->Signature, - Header.Signature, ACPI_NAME_SIZE) && + Header.Signature, ACPI_NAME_SIZE) && (!OemId[0] || !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemId, - Header.OemId, ACPI_OEM_ID_SIZE)) && + Header.OemId, ACPI_OEM_ID_SIZE)) && (!OemTableId[0] || !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemTableId, - Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) + Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) { *TableIndex = i; diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index a98a68989ec49..6abcc86c013bd 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -83,7 +83,7 @@ AcpiTbCompareTables ( Status = AcpiTbAcquireTable (&AcpiGbl_RootTableList.Tables[TableIndex], - &Table, &TableLength, &TableFlags); + &Table, &TableLength, &TableFlags); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -206,7 +206,7 @@ AcpiTbInstallFixedTable ( /* Fill a table descriptor for validation */ Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); if (ACPI_FAILURE (Status)) { ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", @@ -278,7 +278,8 @@ AcpiTbInstallStandardTable ( Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, Flags); if (ACPI_FAILURE (Status)) { - ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", + ACPI_ERROR ((AE_INFO, + "Could not acquire table length at %8.8X%8.8X", ACPI_FORMAT_UINT64 (Address))); return_ACPI_STATUS (Status); } @@ -291,7 +292,8 @@ AcpiTbInstallStandardTable ( AcpiGbl_DisableSsdtTableInstall && ACPI_COMPARE_NAME (&NewTableDesc.Signature, ACPI_SIG_SSDT)) { - ACPI_INFO ((AE_INFO, "Ignoring installation of %4.4s at %8.8X%8.8X", + ACPI_INFO ((AE_INFO, + "Ignoring installation of %4.4s at %8.8X%8.8X", NewTableDesc.Signature.Ascii, ACPI_FORMAT_UINT64 (Address))); goto ReleaseAndExit; } @@ -359,7 +361,8 @@ AcpiTbInstallStandardTable ( * need to be unregistered when they are unloaded, and slots in the * root table list should be reused when empty. */ - if (AcpiGbl_RootTableList.Tables[i].Flags & ACPI_TABLE_IS_LOADED) + if (AcpiGbl_RootTableList.Tables[i].Flags & + ACPI_TABLE_IS_LOADED) { /* Table is still loaded, this is an error */ diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index af73279cc6ee4..25f319967cd86 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -88,6 +88,7 @@ AcpiTbFixString ( { *String = '?'; } + String++; Length--; } @@ -156,8 +157,8 @@ AcpiTbPrintTableHeader ( { /* RSDP has no common fields */ - memcpy (LocalHeader.OemId, - ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->OemId, ACPI_OEM_ID_SIZE); + memcpy (LocalHeader.OemId, ACPI_CAST_PTR (ACPI_TABLE_RSDP, + Header)->OemId, ACPI_OEM_ID_SIZE); AcpiTbFixString (LocalHeader.OemId, ACPI_OEM_ID_SIZE); ACPI_INFO ((AE_INFO, "RSDP 0x%8.8X%8.8X %06X (v%.2d %-6.6s)", diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index 988a3b18f6376..19daea867e35f 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -86,16 +86,16 @@ AcpiTbInitializeFacs ( return (AE_OK); } else if (AcpiGbl_FADT.XFacs && - (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) + (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) { (void) AcpiGetTableByIndex (AcpiGbl_XFacsIndex, - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); AcpiGbl_FACS = Facs; } else if (AcpiGbl_FADT.Facs) { (void) AcpiGetTableByIndex (AcpiGbl_FacsIndex, - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); AcpiGbl_FACS = Facs; } @@ -108,33 +108,6 @@ AcpiTbInitializeFacs ( /******************************************************************************* * - * FUNCTION: AcpiTbTablesLoaded - * - * PARAMETERS: None - * - * RETURN: TRUE if required ACPI tables are loaded - * - * DESCRIPTION: Determine if the minimum required ACPI tables are present - * (FADT, FACS, DSDT) - * - ******************************************************************************/ - -BOOLEAN -AcpiTbTablesLoaded ( - void) -{ - - if (AcpiGbl_RootTableList.CurrentTableCount >= 4) - { - return (TRUE); - } - - return (FALSE); -} - - -/******************************************************************************* - * * FUNCTION: AcpiTbCheckDsdtHeader * * PARAMETERS: None @@ -160,6 +133,7 @@ AcpiTbCheckDsdtHeader ( ACPI_BIOS_ERROR ((AE_INFO, "The DSDT has been corrupted or replaced - " "old, new headers below")); + AcpiTbPrintTableHeader (0, &AcpiGbl_OriginalDsdtHeader); AcpiTbPrintTableHeader (0, AcpiGbl_DSDT); @@ -208,8 +182,8 @@ AcpiTbCopyDsdt ( AcpiTbInitTableDescriptor ( &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex], - ACPI_PTR_TO_PHYSADDR (NewTable), ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, - NewTable); + ACPI_PTR_TO_PHYSADDR (NewTable), + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, NewTable); ACPI_INFO ((AE_INFO, "Forced DSDT copy: length 0x%05X copied locally, original unmapped", @@ -254,7 +228,8 @@ AcpiTbGetRootTableEntry ( * 32-bit platform, RSDT: Return 32-bit table entry * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return */ - return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (UINT32, TableEntry))); + return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( + UINT32, TableEntry))); } else { @@ -420,10 +395,12 @@ AcpiTbParseRootTable ( ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex); if (ACPI_SUCCESS (Status) && - ACPI_COMPARE_NAME (&AcpiGbl_RootTableList.Tables[TableIndex].Signature, + ACPI_COMPARE_NAME ( + &AcpiGbl_RootTableList.Tables[TableIndex].Signature, ACPI_SIG_FADT)) { - AcpiTbParseFadt (TableIndex); + AcpiGbl_FadtIndex = TableIndex; + AcpiTbParseFadt (); } NextTable: @@ -432,7 +409,6 @@ NextTable: } AcpiOsUnmapMemory (Table, Length); - return_ACPI_STATUS (AE_OK); } diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index bcaf6af2a9906..f2c878618c805 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -246,8 +246,8 @@ AcpiGetTableHeader ( for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) { - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), - Signature)) + if (!ACPI_COMPARE_NAME ( + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) { continue; } @@ -264,15 +264,14 @@ AcpiGetTableHeader ( ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL) { Header = AcpiOsMapMemory ( - AcpiGbl_RootTableList.Tables[i].Address, - sizeof (ACPI_TABLE_HEADER)); + AcpiGbl_RootTableList.Tables[i].Address, + sizeof (ACPI_TABLE_HEADER)); if (!Header) { return (AE_NO_MEMORY); } - memcpy (OutTableHeader, Header, - sizeof (ACPI_TABLE_HEADER)); + memcpy (OutTableHeader, Header, sizeof (ACPI_TABLE_HEADER)); AcpiOsUnmapMemory (Header, sizeof (ACPI_TABLE_HEADER)); } else @@ -333,8 +332,8 @@ AcpiGetTable ( for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) { - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), - Signature)) + if (!ACPI_COMPARE_NAME ( + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) { continue; } @@ -405,7 +404,8 @@ AcpiGetTableByIndex ( { /* Table is not mapped, map it */ - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); + Status = AcpiTbValidateTable ( + &AcpiGbl_RootTableList.Tables[TableIndex]); if (ACPI_FAILURE (Status)) { (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index bd5f7d7bc41fe..b9b22259f11fc 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -210,6 +210,7 @@ AcpiTbLoadNamespace ( { ACPI_EXCEPTION ((AE_INFO, Status, "(%4.4s:%8.8s) while loading table", Table->Signature.Ascii, Table->Pointer->OemTableId)); + TablesFailed++; ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, @@ -227,7 +228,7 @@ AcpiTbLoadNamespace ( if (!TablesFailed) { ACPI_INFO ((AE_INFO, - "%u ACPI AML tables successfully acquired and loaded", + "%u ACPI AML tables successfully acquired and loaded\n", TablesLoaded)); } else @@ -343,8 +344,8 @@ AcpiLoadTable ( (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, - &TableIndex); + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, + &TableIndex); (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); if (ACPI_FAILURE (Status)) @@ -356,7 +357,8 @@ AcpiLoadTable ( * Note: Now table is "INSTALLED", it must be validated before * using. */ - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); + Status = AcpiTbValidateTable ( + &AcpiGbl_RootTableList.Tables[TableIndex]); if (ACPI_FAILURE (Status)) { goto UnlockAndExit; @@ -369,7 +371,7 @@ AcpiLoadTable ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, - AcpiGbl_TableHandlerContext); + AcpiGbl_TableHandlerContext); } UnlockAndExit: @@ -452,8 +454,8 @@ AcpiUnloadParentTable ( * that can create namespace objects. */ if (ACPI_COMPARE_NAME ( - AcpiGbl_RootTableList.Tables[i].Signature.Ascii, - ACPI_SIG_DSDT)) + AcpiGbl_RootTableList.Tables[i].Signature.Ascii, + ACPI_SIG_DSDT)) { Status = AE_TYPE; break; @@ -472,8 +474,8 @@ AcpiUnloadParentTable ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, - AcpiGbl_RootTableList.Tables[i].Pointer, - AcpiGbl_TableHandlerContext); + AcpiGbl_RootTableList.Tables[i].Pointer, + AcpiGbl_TableHandlerContext); } /* diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index 92ace5cb02beb..455f13334dd28 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -171,8 +171,8 @@ AcpiFindRootPointer ( /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, - ACPI_EBDA_PTR_LENGTH); + (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, + ACPI_EBDA_PTR_LENGTH); if (!TablePtr) { ACPI_ERROR ((AE_INFO, @@ -198,8 +198,8 @@ AcpiFindRootPointer ( * minimum of 1K length) */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, - ACPI_EBDA_WINDOW_SIZE); + (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, + ACPI_EBDA_WINDOW_SIZE); if (!TablePtr) { ACPI_ERROR ((AE_INFO, @@ -209,14 +209,16 @@ AcpiFindRootPointer ( return_ACPI_STATUS (AE_NO_MEMORY); } - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_EBDA_WINDOW_SIZE); + MemRover = AcpiTbScanMemoryForRsdp ( + TablePtr, ACPI_EBDA_WINDOW_SIZE); AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE); if (MemRover) { /* Return the physical address */ - PhysicalAddress += (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); + PhysicalAddress += + (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); *TableAddress = (ACPI_PHYSICAL_ADDRESS) PhysicalAddress; return_ACPI_STATUS (AE_OK); @@ -227,8 +229,8 @@ AcpiFindRootPointer ( * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, - ACPI_HI_RSDP_WINDOW_SIZE); + (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, + ACPI_HI_RSDP_WINDOW_SIZE); if (!TablePtr) { @@ -239,7 +241,8 @@ AcpiFindRootPointer ( return_ACPI_STATUS (AE_NO_MEMORY); } - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); + MemRover = AcpiTbScanMemoryForRsdp ( + TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); if (MemRover) @@ -297,7 +300,8 @@ AcpiTbScanMemoryForRsdp ( { /* The RSDP signature and checksum must both be correct */ - Status = AcpiTbValidateRsdp (ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); + Status = AcpiTbValidateRsdp ( + ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); if (ACPI_SUCCESS (Status)) { /* Sig and checksum valid, we have found a real RSDP */ |