diff options
author | jkim <jkim@FreeBSD.org> | 2013-06-26 19:01:10 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2013-06-26 19:01:10 +0000 |
commit | 7aca7201724cb02a2a0541bd3ad2c0aca23dd076 (patch) | |
tree | 274ff6113dbdc6cbbbf50dc30d0527fb9cb0fc55 /source/tools | |
parent | af69f95bba3597db53a980597cfd371c9f6ee7cf (diff) | |
download | FreeBSD-src-7aca7201724cb02a2a0541bd3ad2c0aca23dd076.zip FreeBSD-src-7aca7201724cb02a2a0541bd3ad2c0aca23dd076.tar.gz |
Import ACPICA 20130626.
Diffstat (limited to 'source/tools')
-rw-r--r-- | source/tools/acpidump/acpidump.h | 12 | ||||
-rw-r--r-- | source/tools/acpidump/apdump.c | 25 | ||||
-rw-r--r-- | source/tools/acpidump/apmain.c | 24 | ||||
-rw-r--r-- | source/tools/acpiexec/aeexec.c | 7 | ||||
-rw-r--r-- | source/tools/acpiexec/aehandlers.c | 2 | ||||
-rw-r--r-- | source/tools/acpiexec/aemain.c | 8 | ||||
-rw-r--r-- | source/tools/acpihelp/ahmain.c | 4 | ||||
-rw-r--r-- | source/tools/acpisrc/asfile.c | 2 | ||||
-rw-r--r-- | source/tools/acpisrc/asmain.c | 8 |
9 files changed, 58 insertions, 34 deletions
diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index c76ec87..44fd7d3 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -98,6 +98,14 @@ typedef struct ap_dump_action #define AP_MAX_ACPI_FILES 256 /* Prevent infinite loops */ +/* Minimum FADT sizes for various table addresses */ + +#define MIN_FADT_FOR_DSDT (ACPI_FADT_OFFSET (Dsdt) + sizeof (UINT32)) +#define MIN_FADT_FOR_FACS (ACPI_FADT_OFFSET (Facs) + sizeof (UINT32)) +#define MIN_FADT_FOR_XDSDT (ACPI_FADT_OFFSET (XDsdt) + sizeof (UINT64)) +#define MIN_FADT_FOR_XFACS (ACPI_FADT_OFFSET (XFacs) + sizeof (UINT64)) + + /* * apdump - Table get/dump routines */ @@ -117,6 +125,10 @@ int ApDumpAllTables ( void); +BOOLEAN +ApIsValidHeader ( + ACPI_TABLE_HEADER *Table); + /* * apfiles - File I/O utilities diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index c229ba5..5000e4d 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -46,10 +46,6 @@ /* Local prototypes */ -static BOOLEAN -ApIsValidHeader ( - ACPI_TABLE_HEADER *Table); - static int ApDumpTableBuffer ( ACPI_TABLE_HEADER *Table, @@ -68,7 +64,7 @@ ApDumpTableBuffer ( * ******************************************************************************/ -static BOOLEAN +BOOLEAN ApIsValidHeader ( ACPI_TABLE_HEADER *Table) { @@ -77,7 +73,7 @@ ApIsValidHeader ( if (!AcpiUtValidAcpiName (Table->Signature)) { - fprintf (stderr, "Table signature (0x%X) is invalid\n", + fprintf (stderr, "Table signature (0x%8.8X) is invalid\n", *(UINT32 *) Table->Signature); return (FALSE); } @@ -86,7 +82,7 @@ ApIsValidHeader ( if (Table->Length <= sizeof (ACPI_TABLE_HEADER)) { - fprintf (stderr, "Table length (0x%X) is invalid\n", + fprintf (stderr, "Table length (0x%8.8X) is invalid\n", Table->Length); return (FALSE); } @@ -295,10 +291,10 @@ ApDumpTableByName ( ACPI_STATUS Status; - if (strlen (Signature) > ACPI_NAME_SIZE) + if (strlen (Signature) != ACPI_NAME_SIZE) { fprintf (stderr, - "Invalid table signature [%s]: too long (4 chars max)\n", + "Invalid table signature [%s]: must be exactly 4 characters\n", Signature); return (-1); } @@ -308,6 +304,17 @@ ApDumpTableByName ( strcpy (LocalSignature, Signature); AcpiUtStrupr (LocalSignature); + /* To be friendly, handle tables whose signatures do not match the name */ + + if (ACPI_COMPARE_NAME (LocalSignature, "FADT")) + { + strcpy (LocalSignature, ACPI_SIG_FADT); + } + else if (ACPI_COMPARE_NAME (LocalSignature, "MADT")) + { + strcpy (LocalSignature, ACPI_SIG_MADT); + } + /* Dump all instances of this signature (to handle multiple SSDTs) */ for (Instance = 0; Instance < AP_MAX_ACPI_FILES; Instance++) diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index 9ee4f46..4c90cb7 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -92,7 +92,7 @@ UINT32 CurrentAction = 0; #define AP_UTILITY_NAME "ACPI Binary Table Dump Utility" -#define AP_SUPPORTED_OPTIONS "?a:bf:hn:o:rsv" +#define AP_SUPPORTED_OPTIONS "?a:bf:hn:o:svz" /****************************************************************************** @@ -113,15 +113,15 @@ ApDisplayUsage ( ACPI_OPTION ("-b", "Dump tables to binary files"); ACPI_OPTION ("-h -?", "This help message"); ACPI_OPTION ("-o <File>", "Redirect output to file"); - ACPI_OPTION ("-r", "Revision (version)"); ACPI_OPTION ("-s", "Print table summaries only"); - ACPI_OPTION ("-v", "Verbose mode"); + ACPI_OPTION ("-v", "Version of this utility"); + ACPI_OPTION ("-z", "Verbose mode"); printf ("\nTable Options:\n"); - ACPI_OPTION ("-a <Address>", "Get table via physical address"); - ACPI_OPTION ("-f <BinaryFile>", "Get table via binary file"); - ACPI_OPTION ("-n <Signature>", "Get table via name/signature"); + ACPI_OPTION ("-a <Address>", "Get table via a physical address"); + ACPI_OPTION ("-f <BinaryFile>", "Get table via a binary file"); + ACPI_OPTION ("-n <Signature>", "Get table via a name/signature"); printf ( "\n" @@ -210,17 +210,17 @@ ApDoOptions ( } continue; - case 'r': /* Revision/version */ - - printf (ACPI_COMMON_SIGNON (AP_UTILITY_NAME)); - exit (0); - case 's': /* Print table summaries only */ Gbl_SummaryMode = TRUE; continue; - case 'v': /* Verbose mode */ + case 'v': /* Revision/version */ + + printf (ACPI_COMMON_SIGNON (AP_UTILITY_NAME)); + exit (0); + + case 'z': /* Verbose mode */ Gbl_VerboseMode = TRUE; fprintf (stderr, ACPI_COMMON_SIGNON (AP_UTILITY_NAME)); diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index 4c7cb4e..be4d8d6 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -588,7 +588,6 @@ AeMiscellaneousTests ( AE_CHECK_OK (AcpiLoadTable, Status); } - AeHardwareInterfaces (); AeGenericRegisters (); AeSetupConfiguration (Ssdt3Code); @@ -597,6 +596,8 @@ AeMiscellaneousTests ( AeTestPackageArgument (); AeMutexInterfaces (); + /* Test _OSI install/remove */ + Status = AcpiInstallInterface (""); AE_CHECK_STATUS (AcpiInstallInterface, Status, AE_BAD_PARAMETER); @@ -618,6 +619,10 @@ AeMiscellaneousTests ( Status = AcpiInstallInterface ("AnotherTestString"); AE_CHECK_OK (AcpiInstallInterface, Status); + /* Test _OSI execution */ + + Status = ExecuteOSI ("Extended Address Space Descriptor", 0xFFFFFFFF); + AE_CHECK_OK (ExecuteOSI, Status); Status = ExecuteOSI ("Windows 2001", 0xFFFFFFFF); AE_CHECK_OK (ExecuteOSI, Status); diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index 7f704ef..44ce31f 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -1192,7 +1192,7 @@ AeRegionHandler ( case AML_FIELD_ATTRIB_QUICK: case AML_FIELD_ATTRIB_SEND_RCV: case AML_FIELD_ATTRIB_BYTE: - + Length = 1; break; diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 2764b58..aa0612c 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -194,19 +194,19 @@ AeDoOptions ( break; case 'r': - + AcpiGbl_DisableAutoRepair = TRUE; break; case 't': - + #ifdef ACPI_DBG_TRACK_ALLOCATIONS AcpiGbl_DisableMemTracking = TRUE; #endif break; default: - + printf ("Unknown option: -d%s\n", AcpiGbl_Optarg); return (-1); } @@ -327,7 +327,7 @@ AeDoOptions ( break; default: - + usage(); return (-1); } diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 31748b2..07e162c 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -148,7 +148,7 @@ main ( break; case 's': - + DecodeType = AH_DECODE_ASL; break; @@ -171,7 +171,7 @@ main ( break; case AH_DECODE_AML_OPCODE: - + AhDecodeAmlOpcode (Name); break; diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index 9b8ec2f..d691582 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -312,7 +312,7 @@ AsConvertFile ( switch (FileType) { case FILE_TYPE_SOURCE: - + Functions = ConversionTable->SourceFunctions; StringTable = ConversionTable->SourceStringTable; LineTable = ConversionTable->SourceLineTable; diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index ee2f3a9..dc69189 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -334,7 +334,7 @@ main ( while ((j = AcpiGetopt (argc, argv, "cdhlqsuvy")) != EOF) switch(j) { case 'l': - + /* Linux code generation */ printf ("Creating Linux source code\n"); @@ -344,7 +344,7 @@ main ( break; case 'c': - + /* Cleanup code */ printf ("Code cleanup\n"); @@ -375,7 +375,7 @@ main ( break; case 'v': - + /* Verbose mode */ Gbl_VerboseMode = TRUE; @@ -403,7 +403,7 @@ main ( break; default: - + AsDisplayUsage (); return (-1); } |