aboutsummaryrefslogtreecommitdiff
path: root/source/common
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2017-02-28 20:06:31 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2017-02-28 20:06:31 +0000
commit691d1929c1c1f25857086b168ef9973b2472de41 (patch)
tree04e90e804d87765833c7230981b2cca94e2ebf94 /source/common
parenta0b3a9cf1fc8fe1d9f95e69cdf8914bb6ebcee03 (diff)
downloadsrc-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.c25
-rw-r--r--source/common/adwalk.c2
-rw-r--r--source/common/dmextern.c25
-rw-r--r--source/common/dmtables.c22
-rw-r--r--source/common/dmtbinfo.c10
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
};