summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/compiler/dttable.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/compiler/dttable.c')
-rw-r--r--sys/contrib/dev/acpica/compiler/dttable.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/contrib/dev/acpica/compiler/dttable.c b/sys/contrib/dev/acpica/compiler/dttable.c
index d8ebeb4..8938e2d 100644
--- a/sys/contrib/dev/acpica/compiler/dttable.c
+++ b/sys/contrib/dev/acpica/compiler/dttable.c
@@ -1278,7 +1278,7 @@ DtCompileSrat (
/******************************************************************************
*
- * FUNCTION: DtTableInfoGeneric
+ * FUNCTION: DtGetGenericTableInfo
*
* PARAMETERS: Name - Generic type name
*
@@ -1288,8 +1288,8 @@ DtCompileSrat (
*
*****************************************************************************/
-static ACPI_DMTABLE_INFO *
-DtTableInfoGeneric (
+ACPI_DMTABLE_INFO *
+DtGetGenericTableInfo (
char *Name)
{
ACPI_DMTABLE_INFO *Info;
@@ -1346,6 +1346,8 @@ DtCompileUefi (
UINT16 *DataOffset;
+ /* Compile the predefined portion of the UEFI table */
+
Status = DtCompileTable (PFieldList, AcpiDmTableInfoUefi,
&Subtable, TRUE);
if (ACPI_FAILURE (Status))
@@ -1359,9 +1361,21 @@ DtCompileUefi (
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
+ /*
+ * Compile the "generic" portion of the UEFI table. This
+ * part of the table is not predefined and any of the generic
+ * operators may be used.
+ */
+
+ /* Find any and all labels in the entire generic portion */
+
+ DtDetectAllLabels (*PFieldList);
+
+ /* Now we can actually compile the parse tree */
+
while (*PFieldList)
{
- Info = DtTableInfoGeneric ((*PFieldList)->Name);
+ Info = DtGetGenericTableInfo ((*PFieldList)->Name);
if (!Info)
{
sprintf (MsgBuffer, "Generic data type \"%s\" not found",
OpenPOWER on IntegriCloud