diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2017-02-28 20:06:31 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2017-02-28 20:06:31 +0000 |
commit | 691d1929c1c1f25857086b168ef9973b2472de41 (patch) | |
tree | 04e90e804d87765833c7230981b2cca94e2ebf94 /source/common | |
parent | a0b3a9cf1fc8fe1d9f95e69cdf8914bb6ebcee03 (diff) | |
download | src-691d1929c1c1f25857086b168ef9973b2472de41.tar.gz src-691d1929c1c1f25857086b168ef9973b2472de41.zip |
Import ACPICA 20170224.vendor/acpica/20170224
Notes
Notes:
svn path=/vendor-sys/acpica/dist/; revision=314405
svn path=/vendor-sys/acpica/20170224/; revision=314406; tag=vendor/acpica/20170224
Diffstat (limited to 'source/common')
-rw-r--r-- | source/common/adisasm.c | 25 | ||||
-rw-r--r-- | source/common/adwalk.c | 2 | ||||
-rw-r--r-- | source/common/dmextern.c | 25 | ||||
-rw-r--r-- | source/common/dmtables.c | 22 | ||||
-rw-r--r-- | source/common/dmtbinfo.c | 10 |
5 files changed, 81 insertions, 3 deletions
diff --git a/source/common/adisasm.c b/source/common/adisasm.c index d1ac077aa1e1..25926564a440 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -326,6 +326,21 @@ AdDisassembleOneTable ( ACPI_OWNER_ID OwnerId; +#ifdef ACPI_ASL_COMPILER + + /* + * For ASL-/ASL+ converter: replace the temporary "XXXX" + * table signature with the original. This "XXXX" makes + * it harder for the AML interpreter to run the badaml + * (.xxx) file produced from the converter in case if + * it fails to get deleted. + */ + if (Gbl_CaptureComments) + { + strncpy (Table->Signature, AcpiGbl_TableSig, 4); + } +#endif + /* ForceAmlDisassembly means to assume the table contains valid AML */ if (!AcpiGbl_ForceAmlDisassembly && !AcpiUtIsAmlTable (Table)) @@ -475,6 +490,7 @@ AdReparseOneTable ( ACPI_OWNER_ID OwnerId) { ACPI_STATUS Status; + ACPI_COMMENT_ADDR_NODE *AddrListHead; fprintf (stderr, @@ -508,6 +524,15 @@ AdReparseOneTable ( AcpiDmAddExternalsToNamespace (); + /* For -ca option: clear the list of comment addresses. */ + + while (AcpiGbl_CommentAddrListHead) + { + AddrListHead= AcpiGbl_CommentAddrListHead; + AcpiGbl_CommentAddrListHead = AcpiGbl_CommentAddrListHead->Next; + AcpiOsFree(AddrListHead); + } + /* Parse the table again. No need to reload it, however */ Status = AdParseTable (Table, NULL, FALSE, FALSE); diff --git a/source/common/adwalk.c b/source/common/adwalk.c index 130f66d6ac3b..c1da64c1e4ce 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -878,7 +878,7 @@ AcpiDmXrefDescendingOp ( * method. */ if (!(Op->Asl.Parent && - (Op->Asl.Parent->Asl.AmlOpcode == AML_COND_REF_OF_OP))) + (Op->Asl.Parent->Asl.AmlOpcode == AML_CONDITIONAL_REF_OF_OP))) { if (Node) { diff --git a/source/common/dmextern.c b/source/common/dmextern.c index fab660623c88..66e3d212e8d3 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -1165,6 +1165,31 @@ AcpiDmEmitExternals ( /******************************************************************************* * + * FUNCTION: AcpiDmEmitExternal + * + * PARAMETERS: Op External Parse Object + * + * RETURN: None + * + * DESCRIPTION: Emit an External() ASL statement for the current External + * parse object + * + ******************************************************************************/ + +void +AcpiDmEmitExternal ( + ACPI_PARSE_OBJECT *NameOp, + ACPI_PARSE_OBJECT *TypeOp) +{ + AcpiOsPrintf ("External ("); + AcpiDmNamestring (NameOp->Common.Value.Name); + AcpiOsPrintf ("%s)\n", + AcpiDmGetObjectTypeName ((ACPI_OBJECT_TYPE) TypeOp->Common.Value.Integer)); +} + + +/******************************************************************************* + * * FUNCTION: AcpiDmUnresolvedWarning * * PARAMETERS: Type - Where to output the warning. diff --git a/source/common/dmtables.c b/source/common/dmtables.c index 5c93cab771cd..46e4bad9bfd9 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -47,6 +47,8 @@ #include "actables.h" #include "acparser.h" #include "acapps.h" +#include "acmacros.h" +#include "acconvert.h" #define _COMPONENT ACPI_TOOLS @@ -202,6 +204,14 @@ AdCreateTableHeader ( AcpiOsPrintf (" */\n"); /* + * Print comments that come before this definition block. + */ + if (Gbl_CaptureComments) + { + ASL_CV_PRINT_ONE_COMMENT(AcpiGbl_ParseOpRoot,AML_COMMENT_STANDARD, NULL, 0); + } + + /* * Open the ASL definition block. * * Note: the AMLFilename string is left zero-length in order to just let @@ -388,6 +398,7 @@ AdParseTable ( AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); + ASL_CV_INIT_FILETREE(Table, AmlStart, AmlLength); /* Create the root object */ @@ -397,6 +408,17 @@ AdParseTable ( return (AE_NO_MEMORY); } +#ifdef ACPI_ASL_COMPILER + if (Gbl_CaptureComments) + { + AcpiGbl_ParseOpRoot->Common.CvFilename = AcpiGbl_FileTreeRoot->Filename; + } + else + { + AcpiGbl_ParseOpRoot->Common.CvFilename = NULL; + } +#endif + /* Create and initialize a new walk state */ WalkState = AcpiDsCreateWalkState (0, AcpiGbl_ParseOpRoot, NULL, NULL); diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index 2ac5c48e1ead..0cdbe501e676 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -171,6 +171,7 @@ #define ACPI_IORT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NAMED_COMPONENT,f) #define ACPI_IORT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_ROOT_COMPLEX,f) #define ACPI_IORT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU,f) +#define ACPI_IORT3A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU_GSI,f) #define ACPI_IORT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU_V3,f) #define ACPI_IORTA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_MEMORY_ACCESS,f) #define ACPI_IORTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f) @@ -259,6 +260,7 @@ #define ACPI_GTDT0a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o) #define ACPI_GTDT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o) #define ACPI_IORT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o) +#define ACPI_IORT3a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU_GSI,f,o) #define ACPI_IORT4_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU_V3,f,o) #define ACPI_IORTA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_MEMORY_ACCESS,f,o) #define ACPI_IORTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_ID_MAPPING,f,o) @@ -1549,8 +1551,12 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[] = ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[] = { - {ACPI_DMT_UINT64, 0, "SMMU_NSgIrpt Interrupt", 0}, - {ACPI_DMT_UINT64, 0, "SMMU_NSgCfgIrpt Interrupt", 0}, + {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgIrpt), "NSgIrpt", 0}, + {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgIrptFlags), "NSgIrpt Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_IORT3a_FLAG_OFFSET (NSgIrptFlags, 0), "Edge Triggered", 0}, + {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgCfgIrpt), "NSgCfgIrpt", 0}, + {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgCfgIrptFlags), "NSgCfgIrpt Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_IORT3a_FLAG_OFFSET (NSgCfgIrptFlags, 0), "Edge Triggered", 0}, ACPI_DMT_TERMINATOR }; |