diff options
Diffstat (limited to 'source/tools')
| -rw-r--r-- | source/tools/acpihelp/acpihelp.h | 46 | ||||
| -rw-r--r-- | source/tools/acpihelp/ahaslkey.c | 31 | ||||
| -rw-r--r-- | source/tools/acpihelp/ahdecode.c | 58 | ||||
| -rw-r--r-- | source/tools/acpihelp/ahmain.c | 34 | ||||
| -rw-r--r-- | source/tools/acpisrc/astable.c | 27 |
5 files changed, 177 insertions, 19 deletions
diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index 83a10eac5ef2..e1b061dde611 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -62,16 +62,22 @@ #include <errno.h> -#define AH_DECODE_DEFAULT 0 -#define AH_DECODE_ASL 1 -#define AH_DECODE_ASL_KEYWORD 2 -#define AH_DECODE_PREDEFINED_NAME 3 -#define AH_DECODE_AML 4 -#define AH_DECODE_AML_OPCODE 5 -#define AH_DISPLAY_DEVICE_IDS 6 -#define AH_DECODE_EXCEPTION 7 -#define AH_DECODE_ASL_AML 8 -#define AH_DISPLAY_UUIDS 9 +typedef enum +{ + AH_DECODE_DEFAULT = 0, + AH_DECODE_ASL, + AH_DECODE_ASL_KEYWORD, + AH_DECODE_PREDEFINED_NAME, + AH_DECODE_AML, + AH_DECODE_AML_OPCODE, + AH_DISPLAY_DEVICE_IDS, + AH_DECODE_EXCEPTION, + AH_DECODE_ASL_AML, + AH_DISPLAY_UUIDS, + AH_DISPLAY_TABLES, + AH_DISPLAY_DIRECTIVES + +} AH_OPTION_TYPES; #define AH_MAX_ASL_LINE_LENGTH 70 #define AH_MAX_AML_LINE_LENGTH 100 @@ -106,11 +112,19 @@ typedef struct ah_asl_keyword } AH_ASL_KEYWORD; +typedef struct ah_directive_info +{ + char *Name; + char *Operands; + +} AH_DIRECTIVE_INFO; extern const AH_AML_OPCODE AmlOpcodeInfo[]; extern const AH_ASL_OPERATOR AslOperatorInfo[]; extern const AH_ASL_KEYWORD AslKeywordInfo[]; extern const AH_UUID AcpiUuids[]; +extern const AH_DIRECTIVE_INFO PreprocessorDirectives[]; +extern const AH_TABLE AcpiSupportedTables[]; extern BOOLEAN AhDisplayAll; void @@ -150,7 +164,19 @@ AhDisplayDeviceIds ( char *Name); void +AhDisplayTables ( + void); + +const AH_TABLE * +AcpiAhGetTableInfo ( + char *Signature); + +void AhDisplayUuids ( void); +void +AhDisplayDirectives ( + void); + #endif /* __ACPIHELP_H */ diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 502909485ce1..e15d47cd62c6 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -1,6 +1,7 @@ /****************************************************************************** * - * Module Name: ahaslkey - Table of all known ASL non-operator keywords + * Module Name: ahaslkey - Table of all known ASL non-operator keywords and + * table of iASL Preprocessor directives * *****************************************************************************/ @@ -147,3 +148,31 @@ const AH_ASL_KEYWORD AslKeywordInfo[] = ":= Transfer8 | Transfer16 | Transfer8_16"}, {NULL, NULL, NULL} }; + +/* Preprocessor directives */ + +const AH_DIRECTIVE_INFO PreprocessorDirectives[] = +{ + {"#define", "OriginalName, DefinedName"}, + {"#elif", "Expression"}, + {"#else", ""}, + {"#endif", ""}, + {"#error", "Message"}, + {"#if", "Expression"}, + {"#ifdef", "DefinedName"}, + {"#ifndef", "DefinedName"}, + {"#include", "\"Filename\""}, + {"#include", "<Filename>"}, + {"#includebuffer", "\"Filename\""}, + {"#includebuffer", "<Filename>"}, + {"#line", ""}, + {"#pragma", "Disable error-number"}, + {"#pragma", "Message"}, + {"#undef", "DefinedName"}, + {"#warning", ""}, + {"__DATE__", "Returns current date"}, + {"__FILE__", "Returns name of current ASL file"}, + {"__LINE__", "Returns line number in ASL file"}, + {"__PATH__", "Returns full pathname of current ASL file"}, + {NULL, 0} +}; diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index bb0f8614bf85..afd240016b38 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -60,6 +60,7 @@ static char Gbl_Buffer[BUFFER_LENGTH]; static char Gbl_LineBuffer[LINE_BUFFER_LENGTH]; + /* Local prototypes */ static BOOLEAN @@ -99,6 +100,22 @@ AhPrintOneField ( const char *Field); +void +AhDisplayDirectives ( + void) +{ + const AH_DIRECTIVE_INFO *Info; + + + printf ("iASL Preprocessor directives:\n\n"); + + for (Info = PreprocessorDirectives; Info->Name; Info++) + { + printf ("%16s : %s\n", Info->Name, Info->Operands); + } +} + + /******************************************************************************* * * FUNCTION: AhFindPredefinedNames (entry point for predefined name search) @@ -125,7 +142,7 @@ AhFindPredefinedNames ( if (!NamePrefix) { - Found = AhDisplayPredefinedName (Name, 0); + Found = AhDisplayPredefinedName (NULL, 0); return; } @@ -176,7 +193,7 @@ AhDisplayPredefinedName ( const AH_PREDEFINED_NAME *Info; BOOLEAN Found = FALSE; BOOLEAN Matched; - UINT32 i; + UINT32 i = 0; /* Find/display all names that match the input name prefix */ @@ -190,6 +207,7 @@ AhDisplayPredefinedName ( printf ("%*s%s\n", 6, " ", Info->Action); AhDisplayPredefinedInfo (Info->Name); + i++; continue; } @@ -213,6 +231,10 @@ AhDisplayPredefinedName ( } } + if (!Name) + { + printf ("\nFound %d Predefined ACPI Names\n", i); + } return (Found); } @@ -901,6 +923,38 @@ AhDisplayUuids ( /******************************************************************************* * + * FUNCTION: AhDisplayTables + * + * PARAMETERS: None + * + * RETURN: None + * + * DESCRIPTION: Display all known ACPI tables + * + ******************************************************************************/ + +void +AhDisplayTables ( + void) +{ + const AH_TABLE *Info; + UINT32 i = 0; + + + printf ("Known ACPI tables:\n"); + + for (Info = AcpiSupportedTables; Info->Signature; Info++) + { + printf ("%8s : %s\n", Info->Signature, Info->Description); + i++; + } + + printf ("\nTotal %u ACPI tables\n\n", i); +} + + +/******************************************************************************* + * * FUNCTION: AhDecodeException * * PARAMETERS: HexString - ACPI status string from command line, in diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 7f658120e30a..0416eec74e3e 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -51,7 +51,7 @@ AhDisplayUsage ( void); #define AH_UTILITY_NAME "ACPI Help Utility" -#define AH_SUPPORTED_OPTIONS "aehikmopsuv" +#define AH_SUPPORTED_OPTIONS "adehikmopstuv" /****************************************************************************** @@ -75,6 +75,10 @@ AhDisplayUsage ( ACPI_OPTION ("-a [Name/Prefix]", "Find/Display both ASL operator and AML opcode name(s)"); ACPI_OPTION ("-m [Name/Prefix]", "Find/Display AML opcode name(s)"); + ACPI_USAGE_TEXT ("\nACPI Values:\n"); + ACPI_OPTION ("-e [HexValue]", "Decode ACPICA exception code"); + ACPI_OPTION ("-o [HexValue]", "Decode hex AML opcode"); + ACPI_USAGE_TEXT ("\nASL (ACPI Source Language) Names and Symbols:\n"); ACPI_OPTION ("-k [Name/Prefix]", "Find/Display ASL non-operator keyword(s)"); ACPI_OPTION ("-p [Name/Prefix]", "Find/Display ASL predefined method name(s)"); @@ -82,12 +86,10 @@ AhDisplayUsage ( ACPI_USAGE_TEXT ("\nOther ACPI Names:\n"); ACPI_OPTION ("-i [Name/Prefix]", "Find/Display ACPI/PNP Hardware ID(s)"); + ACPI_OPTION ("-d", "Display iASL Preprocessor directives"); + ACPI_OPTION ("-t", "Display supported ACPI tables"); ACPI_OPTION ("-u", "Display ACPI-related UUIDs"); - ACPI_USAGE_TEXT ("\nACPI Values:\n"); - ACPI_OPTION ("-e [HexValue]", "Decode ACPICA exception code"); - ACPI_OPTION ("-o [HexValue]", "Decode hex AML opcode"); - ACPI_USAGE_TEXT ("\nName/Prefix or HexValue not specified means \"Display All\"\n"); ACPI_USAGE_TEXT ("\nDefault search with valid Name/Prefix and no options:\n"); ACPI_USAGE_TEXT (" Find ASL/AML operator names - if NamePrefix does not start with underscore\n"); @@ -133,6 +135,11 @@ main ( DecodeType = AH_DECODE_ASL_AML; break; + case 'd': + + DecodeType = AH_DISPLAY_DIRECTIVES; + break; + case 'e': DecodeType = AH_DECODE_EXCEPTION; @@ -168,6 +175,11 @@ main ( DecodeType = AH_DECODE_ASL; break; + case 't': + + DecodeType = AH_DISPLAY_TABLES; + break; + case 'u': DecodeType = AH_DISPLAY_UUIDS; @@ -235,7 +247,17 @@ main ( AhDisplayUuids (); break; - default: + case AH_DISPLAY_TABLES: + + AhDisplayTables (); + break; + + case AH_DISPLAY_DIRECTIVES: + + AhDisplayDirectives (); + break; + + default: if (!Name) { diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index d98b08ecf246..073971fb25f1 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -167,6 +167,8 @@ ACPI_STRING_TABLE LinuxDataTypes[] = { {"INT16", "s16", REPLACE_WHOLE_WORD}, {"INT8", "s8", REPLACE_WHOLE_WORD}, + {"__FUNCTION__", "__func__", REPLACE_WHOLE_WORD}, + {NULL, NULL, 0} }; @@ -317,6 +319,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PACKAGE_INFO", SRC_TYPE_STRUCT}, {"ACPI_PACKAGE_INFO2", SRC_TYPE_STRUCT}, {"ACPI_PACKAGE_INFO3", SRC_TYPE_STRUCT}, + {"ACPI_PACKAGE_INFO4", SRC_TYPE_STRUCT}, {"ACPI_PARSE_DOWNWARDS", SRC_TYPE_SIMPLE}, {"ACPI_PARSE_OBJ_ASL", SRC_TYPE_STRUCT}, {"ACPI_PARSE_OBJ_COMMON", SRC_TYPE_STRUCT}, @@ -518,6 +521,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_HEST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_HPET", SRC_TYPE_STRUCT}, {"ACPI_TABLE_IBFT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_IORT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_IVRS", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MADT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCFG", SRC_TYPE_STRUCT}, @@ -525,6 +529,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_MPST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSDM", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_NFIT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PCCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT}, @@ -536,6 +541,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_SPCR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SPMI", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SRAT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_STAO", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TCPA", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TPM2", SRC_TYPE_STRUCT}, {"ACPI_TABLE_UEFI", SRC_TYPE_STRUCT}, @@ -543,6 +549,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_WDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_WDDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_WDRT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_WPBT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_XENV", SRC_TYPE_STRUCT}, {"ACPI_TABLE_XSDT", SRC_TYPE_STRUCT}, {"ACPI_ASF_ADDRESS", SRC_TYPE_STRUCT}, @@ -566,6 +574,10 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_DMAR_RHSA", SRC_TYPE_STRUCT}, {"ACPI_DMAR_HARDWARE_UNIT", SRC_TYPE_STRUCT}, {"ACPI_DMAR_RESERVED_MEMORY", SRC_TYPE_STRUCT}, + {"ACPI_DRTM_DPS_ID", SRC_TYPE_STRUCT}, + {"ACPI_DRTM_RESOURCE", SRC_TYPE_STRUCT}, + {"ACPI_DRTM_RESOURCE_LIST", SRC_TYPE_STRUCT}, + {"ACPI_DRTM_VTABLE_LIST", SRC_TYPE_STRUCT}, {"ACPI_EINJ_ENTRY", SRC_TYPE_STRUCT}, {"ACPI_EINJ_TRIGGER", SRC_TYPE_STRUCT}, {"ACPI_ERST_ENTRY", SRC_TYPE_STRUCT}, @@ -595,6 +607,13 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_IBFT_INITIATOR", SRC_TYPE_STRUCT}, {"ACPI_IBFT_NIC", SRC_TYPE_STRUCT}, {"ACPI_IBFT_TARGET", SRC_TYPE_STRUCT}, + {"ACPI_IORT_ID_MAPPING", SRC_TYPE_STRUCT}, + {"ACPI_IORT_ITS_GROUP", SRC_TYPE_STRUCT}, + {"ACPI_IORT_MEMORY_ACCESS", SRC_TYPE_STRUCT}, + {"ACPI_IORT_NAMED_COMPONENT", SRC_TYPE_STRUCT}, + {"ACPI_IORT_NODE", SRC_TYPE_STRUCT}, + {"ACPI_IORT_ROOT_COMPLEX", SRC_TYPE_STRUCT}, + {"ACPI_IORT_SMMU", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HEADER", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HARDWARE", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DE_HEADER", SRC_TYPE_STRUCT}, @@ -628,6 +647,14 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MPST_POWER_STATE", SRC_TYPE_STRUCT}, {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, {"ACPI_MSCT_PROXIMITY", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_SYSTEM_ADDRESS", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_MEMORY_MAP", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_INTERLEAVE", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_SMBIOS", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_CONTROL_REGION", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_DATA_REGION", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_FLUSH_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_PCCT_HW_REDUCED", SRC_TYPE_STRUCT}, {"ACPI_PCCT_SHARED_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_PCCT_SUBSPACE", SRC_TYPE_STRUCT}, |
