diff options
Diffstat (limited to 'source/compiler/dttable2.c')
| -rw-r--r-- | source/compiler/dttable2.c | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 394187293237..0db2ff7fb684 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. * All rights reserved. * * 2. License @@ -790,6 +790,57 @@ DtCompileMpst ( /****************************************************************************** * + * FUNCTION: DtCompileMrrm + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MRRM. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMrrm ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMrrm, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Subtables (all are same type) */ + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMrrm0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + + return (AE_OK); +} + + +/****************************************************************************** + * * FUNCTION: DtCompileMsct * * PARAMETERS: List - Current field list pointer |
