summaryrefslogtreecommitdiff
path: root/source/tools
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools')
-rw-r--r--source/tools/acpihelp/acpihelp.h46
-rw-r--r--source/tools/acpihelp/ahaslkey.c31
-rw-r--r--source/tools/acpihelp/ahdecode.c58
-rw-r--r--source/tools/acpihelp/ahmain.c34
-rw-r--r--source/tools/acpisrc/astable.c27
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},