diff --git a/changes.txt b/changes.txt index 2c13c692d194..9c1952e49d50 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,27 @@ +---------------------------------------- +8 April 2026. Summary of changes for version 20260804: + +Major changes: + +• ACPI Table Enhancements: +Updated IORT and MADT template compilations to add new IWB and GICv5 translator/router/ITS entries. Introduced full support for the new DTPR table, including compiler and disassembler handling, template fixes, and register structure refinements. — Jose Marinho and Michal Camacho Romero + +• Expanded IDs, GUIDs, and Methods: +Added Framework Computer Hardware IDs, modern standby _DSM GUIDs, and TPM2 start methods. Updated _DSM Arg3 formatting and _CPC handling to align with newer ACPI specifications and avoid Linux compatibility warnings. — Daniel Schaefer and Saket Dumbre + +• Compiler, Disassembler, and Tooling Improvements: +Enhanced the ASL compiler and disassembler with External() deduplication, alias node support, improved validation of malformed inputs, and comma-separated Package output. Updated acpisrc to recognize missing structures and improved parse tree walk termination logic. — ikaros and Pawel Chmielewski + +• Security and Stability Fixes: +Fixed multiple critical issues, including heap-buffer-overflows, use-after-free, NULL pointer dereferences, integer overflows, and out-of-bounds accesses across AML parsing, interpretation, and table handling code paths. — ikaros and Weiming Shi + +• Resource and Register Refactoring: +Corrected I2C LVR resource descriptor handling and refactored TPR Base/Limit registers to use compatible bitmask representations, with additional validation and cleanup across DTPR-related code. — Akhil R and Michal Camacho Romero + +• General Cleanup and Build Fixes: +Fixed a syntax error caused by a stray character, corrected spelling issues, improved comment alignment and formatting, updated dummy compiler metadata, and disabled excessive MSVC bitfield warnings (C4214) to improve build clarity. — Colin Ian King and Saket Dumbre + + ---------------------------------------- 12 December 2025. Summary of changes for version 20251212: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index eb5327bf1d9c..be6ec7c8e45e 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -452,6 +452,15 @@ AcGetOneTableFromFile ( TableLength = TableHeader.Length; } + /* Table length must be at least large enough to hold the header */ + + if (TableLength < HeaderLength) + { + fprintf (stderr, "Table length too small for header: 0x%.2X\n", + TableLength); + return (AE_BAD_HEADER); + } + /* Allocate a buffer for the entire table */ Table = AcpiOsAllocate ((ACPI_SIZE) TableLength); diff --git a/source/common/acgetline.c b/source/common/acgetline.c index 207f7aa07de7..f23aab0a555b 100644 --- a/source/common/acgetline.c +++ b/source/common/acgetline.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adfile.c b/source/common/adfile.c index a5667af8cfea..e58278c1b7e4 100644 --- a/source/common/adfile.c +++ b/source/common/adfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adisasm.c b/source/common/adisasm.c index dafc0d1e3a0f..771c007edbb4 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adwalk.c b/source/common/adwalk.c index d61b3235a0d6..0f169a89490b 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahids.c b/source/common/ahids.c index 018d009bb0c5..d35a7439551e 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -202,6 +202,14 @@ const AH_DEVICE_ID AslDeviceIds[] = {"CPLM3218", "Capella Micro CM3218x Ambient Light Sensor"}, {"DELLABCE", "Dell Airplane Mode Switch Driver"}, {"DLAC3002", "Qualcomm Atheros Bluetooth UART Transport"}, + {"FRMW0001", "Framework I2C HID from EC (Laptop 13 Intel 11-13th Gen)"}, + {"FRMW0002", "Framework PS2 Touchpad Emulation"}, + {"FRMW0003", "Framework I2C HID from EC (Laptop 16 AMD Ryzen 7040)"}, + {"FRMW0004", "Framework I2C HID from EC for keyboard media ikeys"}, + {"FRMW0005", "Framework I2C HID from EC for ALS Sensor"}, + {"FRMW0006", "Framework Desktop ARGB HID Interface (Chrome EC RGBKBD)"}, + {"FRMWC004", "Framework EC Controller"}, + {"FRMWC006", "Framework EC Sensor Hub"}, {"FTTH5506", "FocalTech 5506 Touch Controller"}, {"HAD0F28", "Intel HDMI Audio Driver"}, {"INBC0000", "GPIO Expander"}, diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index 601650e6f935..2127816cb050 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahtable.c b/source/common/ahtable.c index 46c6c3b381a5..f3f8bdf7444f 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -216,6 +216,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_DBGP, "Debug Port Table"}, {ACPI_SIG_DMAR, "DMA Remapping Table"}, {ACPI_SIG_DRTM, "Dynamic Root of Trust for Measurement Table"}, + {ACPI_SIG_DTPR, "DMA TXT Protection Ranges Table"}, {ACPI_SIG_DSDT, "Differentiated System Description Table (AML table)"}, {ACPI_SIG_ECDT, "Embedded Controller Boot Resources Table"}, {ACPI_SIG_EINJ, "Error Injection Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index 2986f737977c..88f2c057c48b 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -204,6 +204,11 @@ const AH_UUID Gbl_AcpiUuids[] = {"Cache Properties", UUID_CACHE_PROPERTIES}, {"Physical Package Property", UUID_PHYSICAL_PROPERTY}, + {"[Modern Standby]", NULL}, + {"Modern Standby Microsoft", UUID_LPS0_MICROSOFT}, + {"Modern Standby Intel", UUID_LPS0_INTEL}, + {"Modern Standby AMD", UUID_LPS0_AMD}, + {"[Miscellaneous]", NULL}, {"Platform-wide Capabilities", UUID_PLATFORM_CAPABILITIES}, {"Dynamic Enumeration", UUID_DYNAMIC_ENUMERATION}, diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index 2c4c88988e95..12d6a514fe6f 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmextern.c b/source/common/dmextern.c index 7821f0f867c2..d6961d7380c4 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index e1d8979c4476..84976d1fe262 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmswitch.c b/source/common/dmswitch.c index 87dde14d4353..8e0a7755aaa2 100644 --- a/source/common/dmswitch.c +++ b/source/common/dmswitch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 6eb0fd65758e..4d5e349a0293 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -568,6 +568,10 @@ static const char *AcpiDmTpm2Subnames[] = "Reserved", "Reserved", "Command Response Buffer with ARM SMC", + "FIFO over I2C", + "Command Response Buffer with AMD Mailbox", + "Reserved", + "Command Response Buffer with ARM Framework-A", "Unknown Subtable Type" /* Reserved */ }; @@ -700,6 +704,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, NULL, TemplateDbgp}, {ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, DtCompileDmar, TemplateDmar}, {ACPI_SIG_DRTM, NULL, AcpiDmDumpDrtm, DtCompileDrtm, TemplateDrtm}, + {ACPI_SIG_DTPR, NULL, AcpiDmDumpDtpr, DtCompileDtpr, TemplateDtpr}, {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, NULL, TemplateEcdt}, {ACPI_SIG_EINJ, NULL, AcpiDmDumpEinj, DtCompileEinj, TemplateEinj}, {ACPI_SIG_ERDT, NULL, AcpiDmDumpErdt, DtCompileErdt, TemplateErdt}, diff --git a/source/common/dmtables.c b/source/common/dmtables.c index e0cc8ac5c02b..b6b5516a8df8 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index 2d81c11a47cf..97d53e548cc7 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index d0c5e8363eb4..fa83efe5b71b 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -1670,6 +1670,115 @@ AcpiDmDumpDrtm ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpDtpr + * + * PARAMETERS: Table - A DTPR table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a DTPR. + * + ******************************************************************************/ + +void +AcpiDmDumpDtpr ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_TPR_ARRAY *TprArr; + ACPI_TPR_INSTANCE *TprInstance; + ACPI_TPR_AUX_SR *TprAuxSr; + ACPI_TPR_SERIALIZE_REQUEST *TprSerializeRequest; + UINT32 i = 0, j, InsCnt, TprRefCnt; + UINT32 Offset = sizeof(ACPI_TABLE_DTPR); + + /* Main table */ + + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoDtpr); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Subtables */ + + while (Offset < Table->Length) + { + InsCnt = ((ACPI_TABLE_DTPR*) Table)->InsCnt; + + for (i = 0; i < InsCnt; i++) + { + TprInstance = ACPI_ADD_PTR(ACPI_TPR_INSTANCE, Table, Offset); + Status = AcpiDmDumpTable(Table->Length, Offset, TprInstance, + sizeof(ACPI_TPR_INSTANCE), AcpiDmTableInfoDtprInstance); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Each of the TPR instances must have the same number of TPRs*/ + TprRefCnt = TprInstance->TprCnt; + + Offset += sizeof(ACPI_TPR_INSTANCE); + + if (TprInstance->TprCnt < 2) + { + AcpiOsPrintf("TPR Instance No.%d has invalid number of TPRs.\n" + "There should be at least 2 of them, but there is %d.", + i, TprInstance->TprCnt); + return; + } + else + { + if (TprInstance->TprCnt != TprRefCnt) + { + AcpiOsPrintf("Each of TPR instances should have equal\n" + "number of TPRs. TprInstance No.%d has %d TPRs" + ", while the reference TPR instance has %d.\n", + i, TprInstance->TprCnt, TprRefCnt); + return; + } + } + + for (j = 0; j < TprInstance->TprCnt; j++) + { + TprArr = ACPI_ADD_PTR(ACPI_TPR_ARRAY, Table, Offset); + Status = AcpiDmDumpTable(Table->Length, Offset, TprArr, + sizeof(ACPI_TPR_ARRAY), AcpiDmTableInfoDtprArr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof(ACPI_TPR_ARRAY); + } + } + + TprAuxSr = ACPI_ADD_PTR(ACPI_TPR_AUX_SR, Table, Offset); + Status = AcpiDmDumpTable(Table->Length, Offset, TprAuxSr, + sizeof(ACPI_TPR_AUX_SR), AcpiDmTableInfoDtprSerializeReq0); + + Offset += sizeof(ACPI_TPR_AUX_SR); + + for (i = 0; i < TprAuxSr->SrlCnt; i++) + { + TprSerializeRequest = ACPI_ADD_PTR(ACPI_TPR_SERIALIZE_REQUEST, + Table, Offset); + Status = AcpiDmDumpTable(Table->Length, Offset, TprSerializeRequest, + sizeof(ACPI_TPR_SERIALIZE_REQUEST), AcpiDmTableInfoDtprSerializeReq1); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof(ACPI_TPR_SERIALIZE_REQUEST); + } + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpEinj diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index a5125bae971f..e6d5809e22c2 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index 544792926b84..9f8af190f418 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index 262c03feef53..382ebc463b25 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index e0059026e40d..49c6570a4bb0 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -1153,6 +1153,44 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[] = }; +/******************************************************************************* + * + * DTPR - DMA TXT Protection Ranges Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoDtpr[] = +{ + {ACPI_DMT_UINT32, ACPI_DTPR_OFFSET (Flags), "Flags (reserved)", 0}, + {ACPI_DMT_UINT32, ACPI_DTPR_OFFSET (InsCnt), "Instance Count", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoDtprInstance[] = +{ + {ACPI_DMT_UINT32, ACPI_DTPR_INST_OFFSET (Flags), "Instance control flags (reserved)", 0}, + {ACPI_DMT_UINT32, ACPI_DTPR_INST_OFFSET (TprCnt), "Number of TPR ranges in instance", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoDtprArr[] = +{ + {ACPI_DMT_UINT64, ACPI_DTPR_ARR_OFFSET (Base), "TPR Base Address", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoDtprSerializeReq0[] = +{ + {ACPI_DMT_UINT32, ACPI_DTPR_AUX_SR_OFFSET (SrlCnt), "Number of serialization registers", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoDtprSerializeReq1[] = +{ + {ACPI_DMT_UINT64, ACPI_DTPR_SR_OFFSET (SrRegister), "Serialize Request register", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * * ECDT - Embedded Controller Boot Resources Table diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index c936af40586d..2137f5436d18 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -1243,7 +1243,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt30[] = { {ACPI_DMT_UINT16, ACPI_MADT30_OFFSET (Reserved), "Reserved", 0}, {ACPI_DMT_UINT32, ACPI_MADT30_OFFSET (LinkedTranslatorId), "Linked Its Id", 0}, - {ACPI_DMT_UINT32, ACPI_MADT30_OFFSET (TranslateFrameId), "Its Transalte Id", 0}, + {ACPI_DMT_UINT32, ACPI_MADT30_OFFSET (TranslateFrameId), "Its Translate Id", 0}, {ACPI_DMT_UINT32, ACPI_MADT30_OFFSET (Reserved2), "Reserved", 0}, {ACPI_DMT_UINT64, ACPI_MADT30_OFFSET (BaseAddress), "Its Translate Frame Physical Base Address", 0}, ACPI_DMT_TERMINATOR diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index 2b5891c0500e..4a59ced29ad8 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/getopt.c b/source/common/getopt.c index 9ca2db57f512..3c007823bbbf 100644 --- a/source/common/getopt.c +++ b/source/common/getopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index 980af908e649..f3c0c139409e 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index cad84bc00a02..7cb5445fb0a8 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index 7775c3877dd6..b2a4b40a85e9 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslbtypes.c b/source/compiler/aslbtypes.c index d1674daaef1b..60e3f8e197ac 100644 --- a/source/compiler/aslbtypes.c +++ b/source/compiler/aslbtypes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcache.c b/source/compiler/aslcache.c index 094c6422c1b8..ae678fdd1029 100644 --- a/source/compiler/aslcache.c +++ b/source/compiler/aslcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index caaf983aea5d..901bc4b28bef 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -586,14 +586,16 @@ CgWriteTableHeader ( /* OEMID */ Child = Child->Asl.Next; - memcpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, - strlen (Child->Asl.Value.String)); + /* Bound copy to header field size to avoid overflow on malformed input */ + strncpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, + ACPI_OEM_ID_SIZE); /* OEM TableID */ Child = Child->Asl.Next; - memcpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, - strlen (Child->Asl.Value.String)); + /* Bound copy to header field size to avoid overflow on malformed input */ + strncpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, + ACPI_OEM_TABLE_ID_SIZE); /* OEM Revision */ diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index 2d05bc88588f..0a19c1fa8f7e 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index 7fc16401202b..962f8548b369 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index e3fbf504e9ee..d50f0f9e366b 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcstyle.y b/source/compiler/aslcstyle.y index 59a1abea1bee..6384a1e932d6 100644 --- a/source/compiler/aslcstyle.y +++ b/source/compiler/aslcstyle.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldebug.c b/source/compiler/asldebug.c index dc37941de414..85d2824fb3ee 100644 --- a/source/compiler/asldebug.c +++ b/source/compiler/asldebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h index 89b6b8a69956..5f694efe40df 100644 --- a/source/compiler/asldefine.h +++ b/source/compiler/asldefine.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 69ec08c48489..034fec9974aa 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c index 617865410908..f1529a7f63f6 100644 --- a/source/compiler/aslexternal.c +++ b/source/compiler/aslexternal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -170,6 +170,10 @@ static void ExMoveExternals ( ACPI_PARSE_OBJECT *DefinitionBlockOp); +static void +ExRemoveOpFromTree ( + ACPI_PARSE_OBJECT *Op); + /******************************************************************************* * @@ -194,9 +198,14 @@ ExDoExternal ( ACPI_PARSE_OBJECT *ArgCountOp; ACPI_PARSE_OBJECT *TypeOp; ACPI_PARSE_OBJECT *ExternTypeOp = Op->Asl.Child->Asl.Next; + ACPI_PARSE_OBJECT *Existing; + ACPI_PARSE_OBJECT *NameOp = Op->Asl.Child; + ACPI_PARSE_OBJECT *ExistingNameOp; UINT32 ExternType; UINT8 ParamCount = ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS; UINT32 ParamTypes[ACPI_METHOD_NUM_ARGS]; + char *NewPath = NULL; + char *ExistingPath; ExternType = AnMapObjTypeToBtype (ExternTypeOp); @@ -250,6 +259,53 @@ ExDoExternal ( ArgCountOp->Asl.Value.Integer = ParamCount; UtSetParseOpName (ArgCountOp); + /* + * Deduplicate identical External() declarations. The disassembler + * already collapses duplicates; mirror that behavior in the compiler + * so duplicate externals do not bloat emitted AML. + */ + + NewPath = NameOp->Asl.Namepath; + if (!NewPath && NameOp->Asl.Value.String) + { + (void) UtInternalizeName (NameOp->Asl.Value.String, &NewPath); + NameOp->Asl.Namepath = NewPath; + } + + Existing = AslGbl_ExternalsListHead; + while (Existing && NewPath) + { + ExistingNameOp = Existing->Asl.Child->Asl.Child; + ExistingPath = ExistingNameOp->Asl.Namepath; + if (!ExistingPath && ExistingNameOp->Asl.Value.String) + { + (void) UtInternalizeName (ExistingNameOp->Asl.Value.String, + &ExistingPath); + ExistingNameOp->Asl.Namepath = ExistingPath; + } + + if (ExistingPath && !strcmp (NewPath, ExistingPath)) + { + ACPI_PARSE_OBJECT *ExistingArgCount; + + /* Update arg count if this instance is more specific */ + + ExistingArgCount = Existing->Asl.Child->Asl.Child->Asl.Next->Asl.Next; + if ((ExternType == ACPI_BTYPE_METHOD) && + (ParamCount < ExistingArgCount->Asl.Value.Integer)) + { + ExistingArgCount->Asl.Value.Integer = ParamCount; + } + + /* Remove duplicate External node from the parse tree */ + + ExRemoveOpFromTree (Op); + return; + } + + Existing = Existing->Asl.Next; + } + /* Create new list node of arbitrary type */ ListOp = TrAllocateOp (PARSEOP_DEFAULT_ARG); @@ -280,6 +336,53 @@ ExDoExternal ( } +/******************************************************************************* + * + * FUNCTION: ExRemoveOpFromTree + * + * PARAMETERS: Op - Parse op to remove from the tree + * + * RETURN: None + * + * DESCRIPTION: Unlink a parse op from its parent sibling list. Used to drop + * duplicate External() declarations before AML emission. + * + ******************************************************************************/ + +static void +ExRemoveOpFromTree ( + ACPI_PARSE_OBJECT *Op) +{ + ACPI_PARSE_OBJECT *Parent; + ACPI_PARSE_OBJECT *Child; + + + if (!Op || !Op->Asl.Parent) + { + return; + } + + Parent = Op->Asl.Parent; + Child = Parent->Asl.Child; + + if (Child == Op) + { + Parent->Asl.Child = Op->Asl.Next; + return; + } + + while (Child && Child->Asl.Next != Op) + { + Child = Child->Asl.Next; + } + + if (Child) + { + Child->Asl.Next = Op->Asl.Next; + } +} + + /******************************************************************************* * * FUNCTION: ExInsertArgCount diff --git a/source/compiler/aslfileio.c b/source/compiler/aslfileio.c index a793952e4d9e..ea03e76a1be9 100644 --- a/source/compiler/aslfileio.c +++ b/source/compiler/aslfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index e861fb042f8b..8f2f17dbdb5a 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfold.c b/source/compiler/aslfold.c index ac6778937d9a..192e2a67b599 100644 --- a/source/compiler/aslfold.c +++ b/source/compiler/aslfold.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index c79758919f6f..0f2d5931cec8 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -252,6 +252,7 @@ extern FILE *AslCompilerin; extern int DtParserdebug; extern int PrParserdebug; extern const ASL_MAPPING_ENTRY AslKeywordMapping[]; +extern const UINT32 AslKeywordMappingCount; extern char *AslCompilertext; extern char *DtCompilerParsertext; diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index 8761d3269cb9..8a22cc29d94d 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index cb13d1ebcfe7..728ea9bd810c 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhex.c b/source/compiler/aslhex.c index 6ab28ed5f720..8e2b702f854c 100644 --- a/source/compiler/aslhex.c +++ b/source/compiler/aslhex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslkeywords.y b/source/compiler/aslkeywords.y index 7cb670e61bfb..bdd42231cf55 100644 --- a/source/compiler/aslkeywords.y +++ b/source/compiler/aslkeywords.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllength.c b/source/compiler/asllength.c index 305e869c410c..928e7e7fa0d3 100644 --- a/source/compiler/asllength.c +++ b/source/compiler/asllength.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllisting.c b/source/compiler/asllisting.c index 27800e053fad..5f7ac060d278 100644 --- a/source/compiler/asllisting.c +++ b/source/compiler/asllisting.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllistsup.c b/source/compiler/asllistsup.c index 5a6e372f3693..6a75fe196baa 100644 --- a/source/compiler/asllistsup.c +++ b/source/compiler/asllistsup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index 4b969ccbbc2a..2df8e4c15031 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -1406,6 +1406,8 @@ LdNamespace2Begin ( /* Save the target node within the alias node as well as type information */ + /* Mark as alias node and store target namespace node */ + Node->Flags |= ANOBJ_IS_ALIAS; Node->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode); Node->Type = TargetNode->Type; if (Node->Type == ACPI_TYPE_METHOD) diff --git a/source/compiler/asllookup.c b/source/compiler/asllookup.c index 702a0a1e86e2..f618efbafce9 100644 --- a/source/compiler/asllookup.c +++ b/source/compiler/asllookup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmain.c b/source/compiler/aslmain.c index 722c2ba3e85c..51b8d89a3238 100644 --- a/source/compiler/aslmain.c +++ b/source/compiler/aslmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index cc57f0fb96fa..667645ab0c30 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -611,3 +611,5 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /*! [End] no source code translation !*/ }; + +const UINT32 AslKeywordMappingCount = ACPI_ARRAY_LENGTH (AslKeywordMapping); diff --git a/source/compiler/aslmapenter.c b/source/compiler/aslmapenter.c index c6d0a5973d53..8748255da2b5 100644 --- a/source/compiler/aslmapenter.c +++ b/source/compiler/aslmapenter.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapoutput.c b/source/compiler/aslmapoutput.c index a0337ebca912..60bc4559ca78 100644 --- a/source/compiler/aslmapoutput.c +++ b/source/compiler/aslmapoutput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmaputils.c b/source/compiler/aslmaputils.c index bb0003affdd7..78d61e0a3aab 100644 --- a/source/compiler/aslmaputils.c +++ b/source/compiler/aslmaputils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index eaabf6cc7922..a6008a5a7f3e 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -412,7 +412,8 @@ const char *AslTableCompilerMsgs [] = /* ASL_MSG_UNKNOWN_FORMAT */ "Unknown format value", /* ASL_MSG_RESERVED_VALUE */ "Value for field is reserved or unknown", /* ASL_MSG_TWO_ZERO_VALUES */ "32-bit DSDT Address and 64-bit X_DSDT Address cannot both be zero", -/* ASL_MSG_BAD_PARSE_TREE */ "Parse tree appears to be ill-defined" +/* ASL_MSG_BAD_PARSE_TREE */ "Parse tree appears to be ill-defined", +/* ASL_MSG_MALFORMED_HEADER */ "Malformed ACPI table header detected" }; /* Preprocessor */ diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index dc0bbe10bd0d..f8ef09bbe9d3 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -414,6 +414,7 @@ typedef enum ASL_MSG_RESERVED_VALUE, ASL_MSG_TWO_ZERO_VALUES, ASL_MSG_BAD_PARSE_TREE, + ASL_MSG_MALFORMED_HEADER, /* These messages are used by the Preprocessor only */ diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 0e9df4c9607d..761ebd387cae 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 88cfa5238720..108e10301155 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c index 24c778f334e6..be23318b4504 100644 --- a/source/compiler/asloffset.c +++ b/source/compiler/asloffset.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index 250bdd7fc99c..3221142a4509 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -863,6 +863,14 @@ OpcGenerateAmlOpcode ( Index = (UINT16) (Op->Asl.ParseOpcode - ASL_PARSE_OPCODE_BASE); + if ((Op->Asl.ParseOpcode < ASL_PARSE_OPCODE_BASE) || + (Index >= AslKeywordMappingCount)) + { + AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op, + "Invalid parse opcode in OpcGenerateAmlOpcode"); + return; + } + Op->Asl.AmlOpcode = AslKeywordMapping[Index].AmlOpcode; Op->Asl.AcpiBtype = AslKeywordMapping[Index].AcpiBtype; Op->Asl.CompileFlags |= AslKeywordMapping[Index].Flags; diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index 327aef15dcff..c66f223751d5 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -851,7 +851,9 @@ OpnDoPackage ( { ACPI_PARSE_OBJECT *InitializerOp; ACPI_PARSE_OBJECT *PackageLengthOp; + UINT64 DeclaredLength; UINT32 PackageLength = 0; + UINT32 MaxEncodedLength = 0x0FFFFFFF; /* Max AML package length encoding (28 bits) */ /* Opcode and package length first, followed by the initializer list */ @@ -875,9 +877,21 @@ OpnDoPackage ( /* If package length is a constant, compare to the initializer list */ if ((PackageLengthOp->Asl.ParseOpcode == PARSEOP_INTEGER) || - (PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST)) + (PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST) || + (PackageLengthOp->Asl.ParseOpcode == PARSEOP_PACKAGE_LENGTH)) { - if (PackageLengthOp->Asl.Value.Integer > PackageLength) + DeclaredLength = PackageLengthOp->Asl.Value.Integer; + + /* Guard against values that cannot be encoded in AML package length format */ + + if (DeclaredLength > MaxEncodedLength) + { + AslError (ASL_ERROR, ASL_MSG_ENCODING_LENGTH, PackageLengthOp, NULL); + DeclaredLength = MaxEncodedLength; + PackageLengthOp->Asl.Value.Integer = DeclaredLength; + } + + if (DeclaredLength > PackageLength) { /* * Allow package length to be longer than the initializer @@ -891,9 +905,9 @@ OpnDoPackage ( PackageLengthOp, NULL); } - PackageLength = (UINT32) PackageLengthOp->Asl.Value.Integer; + PackageLength = (UINT32) DeclaredLength; } - else if (PackageLengthOp->Asl.Value.Integer < PackageLength) + else if (DeclaredLength < PackageLength) { /* * The package length is smaller than the length of the @@ -999,7 +1013,13 @@ OpnDoLoadTable ( /* Fourth child is the RootPath string */ Next = Next->Asl.Next; - if (Next->Asl.ParseOpcode == PARSEOP_ZERO) + if ((Next->Asl.ParseOpcode == PARSEOP_ZERO) || + ((Next->Asl.Value.Integer == 0) && + ((Next->Asl.ParseOpcode == PARSEOP_INTEGER) || + (Next->Asl.ParseOpcode == PARSEOP_BYTECONST) || + (Next->Asl.ParseOpcode == PARSEOP_WORDCONST) || + (Next->Asl.ParseOpcode == PARSEOP_DWORDCONST)|| + (Next->Asl.ParseOpcode == PARSEOP_QWORDCONST)))) { Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL; Next->Asl.Value.String = "\\"; diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c index 2172fe9090a3..f720e4c5b418 100644 --- a/source/compiler/aslopt.c +++ b/source/compiler/aslopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index b529538e2efc..feb61d4ee8bc 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index e89702aa6b4e..919590a1c80e 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index 3ff5eb1a9d3e..7565786a3178 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpld.c b/source/compiler/aslpld.c index 086db9df2f3c..977944bac1ec 100644 --- a/source/compiler/aslpld.c +++ b/source/compiler/aslpld.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index 474fddeca51d..a6e09063ecaf 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprepkg.c b/source/compiler/aslprepkg.c index 49078d24491e..b11650a3d010 100644 --- a/source/compiler/aslprepkg.c +++ b/source/compiler/aslprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprimaries.y b/source/compiler/aslprimaries.y index 608009d30da3..ef5aa3a7a8b1 100644 --- a/source/compiler/aslprimaries.y +++ b/source/compiler/aslprimaries.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index 3727c41f28b0..87fdac5684a8 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprune.c b/source/compiler/aslprune.c index 839ed9415ba5..f17fa776401d 100644 --- a/source/compiler/aslprune.c +++ b/source/compiler/aslprune.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index 8d0b711d52dc..8b6d5d6c7ee9 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index fd8a33d3c0d6..617a366411fd 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c index c5eb17948fae..70d71a456a86 100644 --- a/source/compiler/aslrestype1.c +++ b/source/compiler/aslrestype1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c index ca8b76af40d4..7e40e886b283 100644 --- a/source/compiler/aslrestype1i.c +++ b/source/compiler/aslrestype1i.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index 2886c0328cd8..1c5c3bfa594d 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c index f16f53f3b14d..f57b921b95a1 100644 --- a/source/compiler/aslrestype2d.c +++ b/source/compiler/aslrestype2d.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c index 0ad2ac49c5ac..e58a3702f882 100644 --- a/source/compiler/aslrestype2e.c +++ b/source/compiler/aslrestype2e.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c index 33a66c1e8b0a..86e01a5d6039 100644 --- a/source/compiler/aslrestype2q.c +++ b/source/compiler/aslrestype2q.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index f7d895575b19..172a505e7840 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c index 0d95d6628dc5..ce0cf1a3a528 100644 --- a/source/compiler/aslrestype2w.c +++ b/source/compiler/aslrestype2w.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrules.y b/source/compiler/aslrules.y index c96d4cc75db6..00dede690168 100644 --- a/source/compiler/aslrules.y +++ b/source/compiler/aslrules.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 104f9793be26..a8b0fa5991f7 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstubs.c b/source/compiler/aslstubs.c index d361986078be..b7275bc75fd1 100644 --- a/source/compiler/aslstubs.c +++ b/source/compiler/aslstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l index 74ac78d8c4ef..d9e609faee46 100644 --- a/source/compiler/aslsupport.l +++ b/source/compiler/aslsupport.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.y b/source/compiler/aslsupport.y index 3bd09a55e704..7595c1065df6 100644 --- a/source/compiler/aslsupport.y +++ b/source/compiler/aslsupport.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index 50d6031e5ed0..0497ba9535ec 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 0a29287176a2..5b9d0dbc2209 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltree.c b/source/compiler/asltree.c index 83a95be0793b..d0e9870e1d09 100644 --- a/source/compiler/asltree.c +++ b/source/compiler/asltree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.h b/source/compiler/asltypes.h index 50234d71f0a7..36052302e9bf 100644 --- a/source/compiler/asltypes.h +++ b/source/compiler/asltypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index 2c2669559585..3bfbae4f7b04 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index 6c7e472ab2e7..becc18ade503 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index 155dec7dd5ce..3d6e19d342c1 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 16ba00652f9b..771a549de355 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -197,6 +197,7 @@ AnMethodTypingWalkEnd ( void *Context) { UINT32 ThisOpBtype; + ACPI_PARSE_OBJECT *TargetMethodOp; switch (Op->Asl.ParseOpcode) @@ -227,12 +228,24 @@ AnMethodTypingWalkEnd ( if (Op->Asl.Child->Asl.Node && (Op->Asl.ParentMethod != Op->Asl.Child->Asl.Node->Op)) { + TargetMethodOp = Op->Asl.Child->Asl.Node->Op; + + /* Break mutual-recursion loops during typing */ + if (TargetMethodOp->Asl.CompileFlags & OP_VISITED) + { + break; + } + + TargetMethodOp->Asl.CompileFlags |= OP_VISITED; + /* We must type the method here */ - TrWalkParseTree (Op->Asl.Child->Asl.Node->Op, + TrWalkParseTree (TargetMethodOp, ASL_WALK_VISIT_UPWARD, NULL, AnMethodTypingWalkEnd, NULL); + TargetMethodOp->Asl.CompileFlags &= ~OP_VISITED; + ThisOpBtype = AnGetBtype (Op->Asl.Child); } } diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index 82d3e8c06c57..d7e10cc41afd 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -558,11 +558,23 @@ XfNamespaceLocateBegin ( Node = NextOp->Asl.Node; + /* Malformed tree: parent method has no namespace node */ + if (!Node) + { + return_ACPI_STATUS (AE_OK); + } + /* Get Arg # */ RegisterNumber = Op->Asl.AmlOpcode - AML_ARG0; /* 0x68 through 0x6F */ MethodArgs = Node->MethodArgs; + /* Gracefully handle malformed trees where method args were not set up */ + if (!MethodArgs) + { + return_ACPI_STATUS (AE_OK); + } + /* Mark this Arg as referenced */ MethodArgs[RegisterNumber].Flags |= ASL_ARG_REFERENCED; diff --git a/source/compiler/aslxrefout.c b/source/compiler/aslxrefout.c index 6e2cfe47acb7..a1f9e750e2cc 100644 --- a/source/compiler/aslxrefout.c +++ b/source/compiler/aslxrefout.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c index b9057919984b..503437ddb50f 100644 --- a/source/compiler/cvcompiler.c +++ b/source/compiler/cvcompiler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c index be1ff6664726..2c6bd01b8afb 100644 --- a/source/compiler/cvdisasm.c +++ b/source/compiler/cvdisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c index 3a08fe4aae2e..5cb9e2cac8a6 100644 --- a/source/compiler/cvparser.c +++ b/source/compiler/cvparser.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index e23d98d4c631..2f0a72ee3c22 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -363,18 +363,42 @@ DtInsertCompilerIds ( return; } - /* Walk to the Compiler fields at the end of the header */ + /* Walk to the Compiler fields at the end of the header, with safety checks */ + + if (!FieldList) + { + DtError (ASL_WARNING, ASL_MSG_MALFORMED_HEADER, NULL, NULL); + return; + } Next = FieldList; for (i = 0; i < 7; i++) { + if (!Next || !Next->Next) + { + /* Malformed/short header: cannot insert compiler IDs */ + DtError (ASL_WARNING, ASL_MSG_MALFORMED_HEADER, FieldList, NULL); + return; + } Next = Next->Next; } + /* Ensure both Creator ID and Revision fields exist */ + if (!Next || !Next->Next) + { + DtError (ASL_WARNING, ASL_MSG_MALFORMED_HEADER, FieldList, NULL); + return; + } + Next->Value = ASL_CREATOR_ID; Next->Flags = DT_FIELD_NOT_ALLOCATED; Next = Next->Next; + if (!Next) + { + DtError (ASL_WARNING, ASL_MSG_MALFORMED_HEADER, FieldList, NULL); + return; + } Next->Value = VersionString; Next->Flags = DT_FIELD_NOT_ALLOCATED; } diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 503700fe3c88..db2326e5e1f1 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -609,6 +609,10 @@ ACPI_STATUS DtCompileDrtm ( void **PFieldList); +ACPI_STATUS +DtCompileDtpr ( + void **PFieldList); + ACPI_STATUS DtCompileEinj ( void **PFieldList); @@ -819,6 +823,7 @@ extern const unsigned char TemplateDbg2[]; extern const unsigned char TemplateDbgp[]; extern const unsigned char TemplateDmar[]; extern const unsigned char TemplateDrtm[]; +extern const unsigned char TemplateDtpr[]; extern const unsigned char TemplateEcdt[]; extern const unsigned char TemplateEinj[]; extern const unsigned char TemplateErdt[]; diff --git a/source/compiler/dtcompilerparser.l b/source/compiler/dtcompilerparser.l index ac99efb5ffcc..6da20db9da9f 100644 --- a/source/compiler/dtcompilerparser.l +++ b/source/compiler/dtcompilerparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompilerparser.y b/source/compiler/dtcompilerparser.y index 7fa06fe52b15..ff30ba34fd99 100644 --- a/source/compiler/dtcompilerparser.y +++ b/source/compiler/dtcompilerparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c index c981a49f753c..3e45af014862 100644 --- a/source/compiler/dtexpress.c +++ b/source/compiler/dtexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index 3942de55f4f3..bee04c737734 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 2ee882a1ec2b..40d3149ced0b 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -422,6 +422,12 @@ DtParseLine ( End++; } + /* No value characters present */ + if (End <= Start) + { + return (AE_OK); + } + Length = ACPI_PTR_DIFF (End, Start); TmpValue = UtLocalCalloc (Length + 1); diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index d0dc97723e0d..e013a64c0f48 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.y b/source/compiler/dtparser.y index 2f01f06e4f04..2003172e0db2 100644 --- a/source/compiler/dtparser.y +++ b/source/compiler/dtparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtsubtable.c b/source/compiler/dtsubtable.c index 1735a6329577..c01a9f630634 100644 --- a/source/compiler/dtsubtable.c +++ b/source/compiler/dtsubtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -430,7 +430,12 @@ DtGetSubtableLength ( case ACPI_DMT_IORTMEM: - Step = 10; + /* + * The ACPI_DMT_IORTMEM type is defined in AcpiDmTableInfoIortAcc. + * TODO: compute number of fields ("Step") directly from the array initialisation. + * This may require some refactoring of dmtbinfo2.c and acdiasasm.h + */ + Step = 11; break; default: diff --git a/source/compiler/dttable.c b/source/compiler/dttable.c index d28d5d8ce8ef..a9d342880d6d 100644 --- a/source/compiler/dttable.c +++ b/source/compiler/dttable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index e5f6115bf9cf..d128188c68bd 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -1726,6 +1726,124 @@ DtCompileDrtm ( } +/****************************************************************************** + * + * FUNCTION: DtCompileDtpr + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile DTPR. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileDtpr ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_TABLE_DTPR *Dtpr; + ACPI_TPR_INSTANCE *TprInst; + UINT32 i, InsCnt, SrlCnt, TprCnt; + + + ParentTable = DtPeekSubtable (); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDtpr, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + Dtpr = ACPI_SUB_PTR (ACPI_TABLE_DTPR, Subtable->Buffer, + sizeof (ACPI_TABLE_HEADER)); + if (!Dtpr) + { + AcpiOsPrintf ("DTPR buffer pointer is NULL\n"); + return (AE_NULL_OBJECT); + } + + InsCnt = Dtpr->InsCnt; + + while (*PFieldList) + { + for (i = 0; i < InsCnt; i++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDtprInstance, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + TprInst = ACPI_CAST_PTR (ACPI_TPR_INSTANCE, Subtable->Buffer); + if (!TprInst) + { + AcpiOsPrintf ("Tpr Instance buffer pointer is NULL\n"); + return (AE_NULL_OBJECT); + } + + TprCnt = TprInst->TprCnt; + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + + while (*PFieldList && TprCnt) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDtprArr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + TprCnt--; + } + + DtPopSubtable(); + ParentTable = DtPeekSubtable (); + } + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDtprSerializeReq0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + SrlCnt = *ACPI_CAST_PTR(UINT32, Subtable->Buffer); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + + while (*PFieldList && SrlCnt) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDtprSerializeReq1, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + SrlCnt--; + } + + + DtPopSubtable(); + ParentTable = DtPeekSubtable (); + } + + return Status; +} + /****************************************************************************** * * FUNCTION: DtCompileEinj @@ -2984,6 +3102,19 @@ DtCompileIort ( IortRmr->RmrCount = RmrCount; break; + case ACPI_IORT_NODE_IWB: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort7, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 12dd29561053..a1f17819cb69 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 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -439,6 +439,21 @@ DtCompileMadt ( InfoTable = AcpiDmTableInfoMadt27; break; + case ACPI_MADT_TYPE_GICV5_IRS: + + InfoTable = AcpiDmTableInfoMadt28; + break; + + case ACPI_MADT_TYPE_GICV5_ITS: + + InfoTable = AcpiDmTableInfoMadt29; + break; + + case ACPI_MADT_TYPE_GICV5_ITS_TRANSLATE: + + InfoTable = AcpiDmTableInfoMadt30; + break; + default: if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED) diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index c3fd33465f0b..cb06d4a05aab 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 88bc38f25c39..460f3a54afe5 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -643,6 +643,23 @@ const unsigned char TemplateEcdt[] = 0x09,0x00 /* 00000040 ".." */ }; +const unsigned char TemplateDtpr[] = +{ + 0x44,0x54,0x50,0x52,0x68,0x00,0x00,0x00, /* 00000000 "DTPRh..." */ + 0x01,0x0B,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".#INTEL." */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x00,0x00,0x00,0x01,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x04,0x04,0x25,0x20,0x00,0x00,0x00,0x00, /* 00000020 "........" */ + 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ + 0x02,0x00,0x00,0x00,0x30,0xB0,0xAA,0xFF, /* 00000030 "....0..." */ + 0xFF,0x1F,0x00,0x00,0x38,0xB0,0xAA,0xFF, /* 00000038 "....8..." */ + 0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x02,0x00,0x00,0x00,0x30,0xB0,0xBB,0xFF, /* 00000048 "....0..." */ + 0xFF,0x1F,0x00,0x00,0x38,0xB0,0xBB,0xFF, /* 00000050 "....8..." */ + 0xFF,0x1F,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000058 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000060 "........" */ +}; + const unsigned char TemplateEinj[] = { 0x45,0x49,0x4E,0x4A,0x30,0x01,0x00,0x00, /* 00000000 "EINJ0..." */ @@ -1188,11 +1205,11 @@ const unsigned char TemplateHpet[] = const unsigned char TemplateIort[] = { - 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000000 "IORT<..." */ - 0x05,0xCB,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x49,0x4F,0x52,0x54,0x78,0x02,0x00,0x00, /* 00000000 "IORTx..." */ + 0x05,0x85,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x17,0x12,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000020 "..! ...." */ + 0x07,0x08,0x25,0x20,0x08,0x00,0x00,0x00, /* 00000020 "..% ...." */ 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "4......." */ 0x49,0x4F,0x52,0x54,0x00,0x18,0x00,0x01, /* 00000030 "IORT...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -1204,10 +1221,10 @@ const unsigned char TemplateIort[] = 0x00,0x5C,0x5F,0x53,0x42,0x2E,0x50,0x43, /* 00000068 ".\_SB.PC" */ 0x49,0x30,0x2E,0x44,0x45,0x56,0x30,0x00, /* 00000070 "I0.DEV0." */ 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000078 "IORT<..." */ - 0x03,0xF1,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000080 "..INTEL " */ + 0x05,0xCB,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000080 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000088 "Template" */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000090 "....INTL" */ - 0x05,0x01,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000098 "..! ...." */ + 0x17,0x12,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000098 "..! ...." */ 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "4......." */ 0x49,0x4F,0x52,0x54,0x00,0x18,0x00,0x01, /* 000000A8 "IORT...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ @@ -1259,7 +1276,14 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000230 "........" */ - 0x00,0x00,0x00,0x00 /* 00000238 "...." */ + 0x00,0x00,0x00,0x00,0x07,0x3C,0x00,0x01, /* 00000238 ".....<.." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000240 "........" */ + 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x2F, /* 00000248 "(....../" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x5F, /* 00000250 "......\_" */ + 0x53,0x42,0x5F,0x2E,0x49,0x57,0x42,0x30, /* 00000258 "SB_.IWB0" */ + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000260 "........" */ + 0x00,0x40,0x00,0x00,0x00,0x30,0x00,0x00, /* 00000268 ".@...0.." */ + 0x00,0x01,0x00,0x00,0x00 /* 00000270 "....." */ }; const unsigned char TemplateIovt[] = @@ -1387,15 +1411,15 @@ const unsigned char TemplateLpit[] = 0x00,0x00,0x00,0x00 /* 00000090 "...." */ }; -/* MADT with ACPI 6.0 subtables */ +/* MADT with ACPI 6.7 subtables */ const unsigned char TemplateMadt[] = { - 0x41,0x50,0x49,0x43,0x62,0x02,0x00,0x00, /* 00000000 "APICb..." */ - 0x07,0x44,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".DINTEL " */ + 0x41,0x50,0x49,0x43,0xAA,0x02,0x00,0x00, /* 00000000 "APIC...." */ + 0x07,0x5F,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "._INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x28,0x06,0x23,0x20,0x00,0x00,0x00,0x00, /* 00000020 "(.# ...." */ + 0x07,0x08,0x25,0x20,0x00,0x00,0x00,0x00, /* 00000020 "..% ...." */ 0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */ 0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -1467,7 +1491,16 @@ const unsigned char TemplateMadt[] = 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00, /* 00000248 "..`....." */ 0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00, /* 00000250 "....`..." */ 0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000258 "........" */ - 0x00,0x00 /* 00000260 ".." */ + 0x00,0x00,0x1D,0x10,0x00,0x00,0x00,0x00, /* 00000260 "........" */ + 0x00,0x00,0x00,0x00,0x12,0x2F,0x00,0x00, /* 00000268 "...../.." */ + 0x00,0x00,0x1E,0x18,0x00,0x00,0x00,0x00, /* 00000270 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000278 "........" */ + 0x00,0x00,0x00,0x00,0x13,0x2F,0x00,0x00, /* 00000280 "...../.." */ + 0x00,0x00,0x1C,0x20,0x05,0x00,0x00,0x00, /* 00000288 "... ...." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000290 "........" */ + 0x00,0x00,0x00,0x00,0x1A,0x2F,0x00,0x00, /* 00000298 "...../.." */ + 0x00,0x00,0x00,0x00,0x1B,0x2F,0x00,0x00, /* 000002A0 "...../.." */ + 0x00,0x00 /* 000002A8 ".." */ }; const unsigned char TemplateMcfg[] = diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 5b69a359b0a4..34ed36875e1a 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index 26a11f573402..8e3a602027b8 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prexpress.c b/source/compiler/prexpress.c index 6cdb5efd0289..fdd8319d6953 100644 --- a/source/compiler/prexpress.c +++ b/source/compiler/prexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prmacros.c b/source/compiler/prmacros.c index 8b4ed754d640..3a98117b2fba 100644 --- a/source/compiler/prmacros.c +++ b/source/compiler/prmacros.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index 22b87328bda7..895e00e8f0d5 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.y b/source/compiler/prparser.y index 0e4fb8e139dc..9ca336999128 100644 --- a/source/compiler/prparser.y +++ b/source/compiler/prparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prscan.c b/source/compiler/prscan.c index 49cb211c199b..f0a0480c954c 100644 --- a/source/compiler/prscan.c +++ b/source/compiler/prscan.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prutils.c b/source/compiler/prutils.c index f516c30fe70f..31bdceed5821 100644 --- a/source/compiler/prutils.c +++ b/source/compiler/prutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 529037663c18..7dac8ff29ab9 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index b2159fbd04fe..526b93adea9a 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index 27b568e0f645..5585e7303b20 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index 7cdd12c5e34d..f130d0133583 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 74603d6d11aa..15e6fd0991a3 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index 887c14fd6415..2f2924f8506d 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 70d65db06be7..f44c7b7c9c8c 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index c806e01e3553..6210f6525759 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index 3309a4285ec8..82baf91e67b9 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index b3a2529c36f2..bec3a15de385 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index 82810e6a3289..eab2378e50cb 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c index 8e9c58111150..e0033772b296 100644 --- a/source/components/debugger/dbtest.c +++ b/source/components/debugger/dbtest.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index 9db2425d6aa8..83d15ee72b95 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index 2f77edbf5530..2c221e4b7023 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c index 3a9416140496..700ccbc6899b 100644 --- a/source/components/disassembler/dmbuffer.c +++ b/source/components/disassembler/dmbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c index 7dc9a5225549..347b3d3ccc2f 100644 --- a/source/components/disassembler/dmcstyle.c +++ b/source/components/disassembler/dmcstyle.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmdeferred.c b/source/components/disassembler/dmdeferred.c index 3a30cfd689e9..8c0d9cb04c84 100644 --- a/source/components/disassembler/dmdeferred.c +++ b/source/components/disassembler/dmdeferred.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c index f26878344b90..b3bb27a73fc1 100644 --- a/source/components/disassembler/dmnames.c +++ b/source/components/disassembler/dmnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c index a8fbb269502f..e325a964d1f0 100644 --- a/source/components/disassembler/dmopcode.c +++ b/source/components/disassembler/dmopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -797,6 +797,7 @@ AcpiDmDisassembleOneOp ( UINT32 Offset; UINT32 Length; ACPI_PARSE_OBJECT *Child; + ACPI_PARSE_OBJECT *MethodCallOp; ACPI_STATUS Status; UINT8 *Aml; const AH_DEVICE_ID *IdInfo; @@ -986,6 +987,13 @@ AcpiDmDisassembleOneOp ( case AML_INT_NAMEPATH_OP: AcpiDmNamestring (Op->Common.Value.Name); + /* If this namepath is a Package element, emit a separating comma */ + if ((Op->Common.Parent) && + ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) || + (Op->Common.Parent->Common.AmlOpcode == AML_VARIABLE_PACKAGE_OP))) + { + AcpiOsPrintf (", "); + } break; case AML_INT_NAMEDFIELD_OP: @@ -1086,10 +1094,19 @@ AcpiDmDisassembleOneOp ( case AML_INT_METHODCALL_OP: + MethodCallOp = Op; Op = AcpiPsGetDepthNext (NULL, Op); Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; AcpiDmNamestring (Op->Common.Value.Name); + + /* If the method name is a Package element, emit a separating comma */ + if ((MethodCallOp->Common.Parent) && + ((MethodCallOp->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) || + (MethodCallOp->Common.Parent->Common.AmlOpcode == AML_VARIABLE_PACKAGE_OP))) + { + AcpiOsPrintf (", "); + } break; case AML_WHILE_OP: diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c index 1e37f8f3b6a6..ebec29442b8a 100644 --- a/source/components/disassembler/dmresrc.c +++ b/source/components/disassembler/dmresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -536,9 +536,30 @@ AcpiDmIsResourceTemplate ( return (AE_TYPE); } + /* + * Check if this op was allocated from the extended parse object cache. + * Only extended ops (NAMED_OBJECT, DEFERRED, BYTELIST) have the + * Named.Data and Named.Length fields. Generic ops would overflow. + */ + if (NextOp->Common.Flags == ACPI_PARSEOP_GENERIC) + { + return (AE_TYPE); + } + Aml = NextOp->Named.Data; BufferLength = NextOp->Common.Value.Size; + /* + * Validate BufferLength against Named.Length to prevent reading + * beyond the actual data. Named.Length is computed during parsing + * and represents the actual byte count, while Value.Size comes + * from the AML and can be manipulated by malformed AML. + */ + if (BufferLength > NextOp->Named.Length) + { + return (AE_TYPE); + } + /* * Any buffer smaller than one byte cannot possibly be a resource * template. Two bytes could possibly be a "NULL" resource template diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index c8c77c611f97..96faf1966859 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index ecd049fc0c77..946bb1f887f8 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c index acfbdb76612c..72a2b7d3aa95 100644 --- a/source/components/disassembler/dmresrcs.c +++ b/source/components/disassembler/dmresrcs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmutils.c b/source/components/disassembler/dmutils.c index 987d456522cd..3dd095df8b40 100644 --- a/source/components/disassembler/dmutils.c +++ b/source/components/disassembler/dmutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index b738417b05cc..b57b6a5409ed 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -305,13 +305,6 @@ AcpiDmWalkParseTree ( } } - /* Terminate walk at start op */ - - if (Op == StartOp) - { - break; - } - /* No more children, re-visit this node */ if (!NodePreviouslyVisited) @@ -320,6 +313,13 @@ AcpiDmWalkParseTree ( continue; } + /* Terminate walk at start op */ + + if (Op == StartOp) + { + break; + } + /* No more children, visit peers */ if (Op->Common.Next) diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c index 7fe605f1d180..04b0a66849f0 100644 --- a/source/components/dispatcher/dsargs.c +++ b/source/components/dispatcher/dsargs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 3eaa6f3f8262..3cf2d0443942 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index 2bc7dc004f5c..89ad50015384 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index 15e35fd76f38..6d6deed9966f 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c index 758233ec999c..aeca4eae94ad 100644 --- a/source/components/dispatcher/dsinit.c +++ b/source/components/dispatcher/dsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index 09745e120bc2..fc8917b324c0 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -901,6 +901,8 @@ AcpiDsTerminateControlMethod ( ACPI_OPERAND_OBJECT *MethodDesc, ACPI_WALK_STATE *WalkState) { + UINT32 i; + ACPI_NAMESPACE_NODE *RefNode; ACPI_FUNCTION_TRACE_PTR (DsTerminateControlMethod, WalkState); @@ -914,6 +916,45 @@ AcpiDsTerminateControlMethod ( if (WalkState) { + /* + * Check if the return value is a RefOf reference to a method local + * or argument. If so, clear the reference to avoid use-after-free + * when the walk state is deleted. + */ + if (WalkState->ReturnDesc && + (WalkState->ReturnDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && + (WalkState->ReturnDesc->Reference.Class == ACPI_REFCLASS_REFOF)) + { + RefNode = WalkState->ReturnDesc->Reference.Object; + if (RefNode) + { + /* Check against method locals */ + for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++) + { + if (RefNode == &WalkState->LocalVariables[i]) + { + AcpiUtRemoveReference (WalkState->ReturnDesc); + WalkState->ReturnDesc = NULL; + break; + } + } + + /* Check against method arguments if not already cleared */ + if (WalkState->ReturnDesc) + { + for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) + { + if (RefNode == &WalkState->Arguments[i]) + { + AcpiUtRemoveReference (WalkState->ReturnDesc); + WalkState->ReturnDesc = NULL; + break; + } + } + } + } + } + /* Delete all arguments and locals */ AcpiDsMethodDataDeleteAll (WalkState); diff --git a/source/components/dispatcher/dsmthdat.c b/source/components/dispatcher/dsmthdat.c index 98e69efa1f05..6a9552df9e5f 100644 --- a/source/components/dispatcher/dsmthdat.c +++ b/source/components/dispatcher/dsmthdat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c index 08d93ecd406b..2b8e75253e04 100644 --- a/source/components/dispatcher/dsobject.c +++ b/source/components/dispatcher/dsobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index baba6805b363..88614790395d 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c index 22f4a99ba276..5f1e8b0597a6 100644 --- a/source/components/dispatcher/dspkginit.c +++ b/source/components/dispatcher/dspkginit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c index d2d16c4865f0..0919636cf2d6 100644 --- a/source/components/dispatcher/dsutils.c +++ b/source/components/dispatcher/dsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index bb1558ea312c..4b852fa233be 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index b4b7e512dbea..4c27b9a91431 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 4ad4014a2811..b53850c0890c 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswscope.c b/source/components/dispatcher/dswscope.c index 58cc75509897..ce48ddc5ce81 100644 --- a/source/components/dispatcher/dswscope.c +++ b/source/components/dispatcher/dswscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index a5a63d01b1a7..01d4a29c6c7d 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index b2dd444a38a6..ba296d32dc52 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evglock.c b/source/components/events/evglock.c index 153a7ff0a21f..52ce050760e0 100644 --- a/source/components/events/evglock.c +++ b/source/components/events/evglock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c index 01e628a29589..c5b4a4863306 100644 --- a/source/components/events/evgpe.c +++ b/source/components/events/evgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c index 899e19b13990..234df2a9cce8 100644 --- a/source/components/events/evgpeblk.c +++ b/source/components/events/evgpeblk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c index 5321950d51fa..5bea15f71c18 100644 --- a/source/components/events/evgpeinit.c +++ b/source/components/events/evgpeinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeutil.c b/source/components/events/evgpeutil.c index 32e7c0fa3274..de12a826f2e1 100644 --- a/source/components/events/evgpeutil.c +++ b/source/components/events/evgpeutil.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index efc466462f85..bc04cf6fc217 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -290,6 +290,13 @@ AcpiEvHasDefaultHandler ( while (HandlerObj) { + /* Validate handler object type before accessing fields */ + + if (HandlerObj->Common.Type != ACPI_TYPE_LOCAL_ADDRESS_HANDLER) + { + break; + } + if (HandlerObj->AddressSpace.SpaceId == SpaceId) { if (HandlerObj->AddressSpace.HandlerFlags & @@ -460,6 +467,11 @@ AcpiEvFindRegionHandler ( while (HandlerObj) { + if (HandlerObj->Common.Type != ACPI_TYPE_LOCAL_ADDRESS_HANDLER) + { + break; + } + /* Same SpaceId indicates a handler is installed */ if (HandlerObj->AddressSpace.SpaceId == SpaceId) diff --git a/source/components/events/evmisc.c b/source/components/events/evmisc.c index d2e751d0192b..31ee8f24e602 100644 --- a/source/components/events/evmisc.c +++ b/source/components/events/evmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index 757983b35b76..1fe34495a43a 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c index d8d09cdd0dc4..2d9c2932377b 100644 --- a/source/components/events/evrgnini.c +++ b/source/components/events/evrgnini.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evsci.c b/source/components/events/evsci.c index 1c8352f5cf77..709c81776062 100644 --- a/source/components/events/evsci.c +++ b/source/components/events/evsci.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c index 2d334fd455fb..233b205edb46 100644 --- a/source/components/events/evxface.c +++ b/source/components/events/evxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfevnt.c b/source/components/events/evxfevnt.c index 9e7972eae8f6..84158bb084cd 100644 --- a/source/components/events/evxfevnt.c +++ b/source/components/events/evxfevnt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c index bda4e6e93bf4..642f35d3213a 100644 --- a/source/components/events/evxfgpe.c +++ b/source/components/events/evxfgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index 04c880183aaf..3b3027531a77 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconcat.c b/source/components/executer/exconcat.c index 3010d9d4d0b7..93f114b8cd03 100644 --- a/source/components/executer/exconcat.c +++ b/source/components/executer/exconcat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index 2edf1577ffd5..f9fec826db25 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -247,6 +247,8 @@ AcpiExLoadTableOp ( ACPI_OPERAND_OBJECT *ReturnObj; ACPI_OPERAND_OBJECT *DdbHandle; UINT32 TableIndex; + char OemId[ACPI_OEM_ID_SIZE + 1]; + char OemTableId[ACPI_OEM_TABLE_ID_SIZE + 1]; ACPI_FUNCTION_TRACE (ExLoadTableOp); @@ -262,13 +264,34 @@ AcpiExLoadTableOp ( *ReturnDesc = ReturnObj; + /* + * Validate OEM ID and OEM Table ID string lengths. + * AcpiTbFindTable expects strings that can safely read + * ACPI_OEM_ID_SIZE and ACPI_OEM_TABLE_ID_SIZE bytes. + */ + if ((Operand[1]->String.Length > ACPI_OEM_ID_SIZE) || + (Operand[2]->String.Length > ACPI_OEM_TABLE_ID_SIZE)) + { + return_ACPI_STATUS (AE_AML_STRING_LIMIT); + } + + /* + * Copy OEM strings to local buffers with guaranteed null-termination. + * This prevents heap-buffer-overflow when AcpiTbFindTable reads + * ACPI_OEM_ID_SIZE/ACPI_OEM_TABLE_ID_SIZE bytes. + */ + memcpy (OemId, Operand[1]->String.Pointer, Operand[1]->String.Length); + OemId[Operand[1]->String.Length] = 0; + memcpy (OemTableId, Operand[2]->String.Pointer, Operand[2]->String.Length); + OemTableId[Operand[2]->String.Length] = 0; + /* Find the ACPI table in the RSDT/XSDT */ AcpiExExitInterpreter (); Status = AcpiTbFindTable ( Operand[0]->String.Pointer, - Operand[1]->String.Pointer, - Operand[2]->String.Pointer, &TableIndex); + OemId, + OemTableId, &TableIndex); AcpiExEnterInterpreter (); if (ACPI_FAILURE (Status)) { diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c index 31666876daf3..a2890f21a825 100644 --- a/source/components/executer/exconvrt.c +++ b/source/components/executer/exconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c index de0bf9e3625f..f78c7e53f69b 100644 --- a/source/components/executer/excreate.c +++ b/source/components/executer/excreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c index 17e14d8098fb..7660f6a8e85b 100644 --- a/source/components/executer/exdebug.c +++ b/source/components/executer/exdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index a6d1e420eb51..a3c8e76ca83d 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 4f4e7043ad65..ac968acf5eda 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index b81235c2451e..a1e955a9edd1 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmisc.c b/source/components/executer/exmisc.c index b24720c61230..befd8a998e80 100644 --- a/source/components/executer/exmisc.c +++ b/source/components/executer/exmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index ba0ffe66fcf1..6f454ad48030 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c index 46996ba50c32..4dcf6c07c2fc 100644 --- a/source/components/executer/exnames.c +++ b/source/components/executer/exnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg1.c b/source/components/executer/exoparg1.c index 339c4d3c8ccf..95182a3f00eb 100644 --- a/source/components/executer/exoparg1.c +++ b/source/components/executer/exoparg1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c index 83b2d480bca2..2501994e3b9b 100644 --- a/source/components/executer/exoparg2.c +++ b/source/components/executer/exoparg2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg3.c b/source/components/executer/exoparg3.c index 722bbec46521..e42317ab3039 100644 --- a/source/components/executer/exoparg3.c +++ b/source/components/executer/exoparg3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -225,11 +225,18 @@ AcpiExOpcode_3A_0T_0R ( AcpiOsSignal (ACPI_SIGNAL_FATAL, &Fatal); +#ifndef ACPI_CONTINUE_ON_FATAL /* * Might return while OS is shutting down, so abort the AML execution * by returning an error. */ return_ACPI_STATUS (AE_ERROR); +#else + /* + * The alstests require that the Fatal() opcode does not return an error. + */ + return_ACPI_STATUS (AE_OK); +#endif case AML_EXTERNAL_OP: /* @@ -313,7 +320,8 @@ AcpiExOpcode_3A_1T_1R ( /* Truncate request if larger than the actual String/Buffer */ - else if ((Index + Length) > Operand[0]->String.Length) + else if ((Index + Length) > Operand[0]->String.Length || + (Index + Length) < Index) /* Check for overflow */ { Length = (ACPI_SIZE) Operand[0]->String.Length - (ACPI_SIZE) Index; diff --git a/source/components/executer/exoparg6.c b/source/components/executer/exoparg6.c index 00ca4f727540..85c1e2db839e 100644 --- a/source/components/executer/exoparg6.c +++ b/source/components/executer/exoparg6.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exprep.c b/source/components/executer/exprep.c index c022231dea1d..0673adbd9ef6 100644 --- a/source/components/executer/exprep.c +++ b/source/components/executer/exprep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exregion.c b/source/components/executer/exregion.c index 32cec4d38ebe..0a9d89638ac0 100644 --- a/source/components/executer/exregion.c +++ b/source/components/executer/exregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 319d81eee522..1bfe167aa65b 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index 6dc658cff8c1..4481ba54c605 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index 2bc79bea248d..eaa669f5f4f6 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index f5740276766f..0a40abc2ced8 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index f39769119fcd..a0d8fe5b794e 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstoren.c b/source/components/executer/exstoren.c index 71d0ad10dfdc..26f5a78870fe 100644 --- a/source/components/executer/exstoren.c +++ b/source/components/executer/exstoren.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstorob.c b/source/components/executer/exstorob.c index 026ab5bd2bc8..74137617d7a4 100644 --- a/source/components/executer/exstorob.c +++ b/source/components/executer/exstorob.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index 1f42625a60fa..c21cfe1e26fd 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/extrace.c b/source/components/executer/extrace.c index 2d596f2b57e4..86b06261df60 100644 --- a/source/components/executer/extrace.c +++ b/source/components/executer/extrace.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c index f7472a299e1f..cc38a66e0bbd 100644 --- a/source/components/executer/exutils.c +++ b/source/components/executer/exutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index 21081dc4a37f..4b9c04e769ab 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index c6ed4246eb61..da0384aed826 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index bb4ebc0225ec..1209965a1f7c 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwpci.c b/source/components/hardware/hwpci.c index 32fb6af53fb3..122b8784cb63 100644 --- a/source/components/hardware/hwpci.c +++ b/source/components/hardware/hwpci.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index de375d9972e3..0bee958057bd 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index bb38234ec7f7..83b31db44892 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwtimer.c b/source/components/hardware/hwtimer.c index 68cf627093c6..20a9774a6389 100644 --- a/source/components/hardware/hwtimer.c +++ b/source/components/hardware/hwtimer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwvalid.c b/source/components/hardware/hwvalid.c index 0dfe4d2577ad..34f55dba257c 100644 --- a/source/components/hardware/hwvalid.c +++ b/source/components/hardware/hwvalid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 5075fdcff9f0..7766397a3a83 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index eefc239bcb92..70929451a1d2 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index 5f044e198543..077aa93751a0 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index d4ff32d59654..8098277691b6 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsarguments.c b/source/components/namespace/nsarguments.c index 6676abe07293..513fc1148c67 100644 --- a/source/components/namespace/nsarguments.c +++ b/source/components/namespace/nsarguments.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsconvert.c b/source/components/namespace/nsconvert.c index ae039a10264d..d5da6f015bc8 100644 --- a/source/components/namespace/nsconvert.c +++ b/source/components/namespace/nsconvert.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index e3db14a11e17..c44c9ccfde7d 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c index 86471b854af1..a3d75f44a3ee 100644 --- a/source/components/namespace/nsdumpdv.c +++ b/source/components/namespace/nsdumpdv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c index 98353ea6c671..a46c6b92f556 100644 --- a/source/components/namespace/nseval.c +++ b/source/components/namespace/nseval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c index 50a2290ac3d8..9dd898e56fd4 100644 --- a/source/components/namespace/nsinit.c +++ b/source/components/namespace/nsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index 5e90b3b6ed9d..e733b5ed7038 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c index 64a9109cf5d4..982ea66846cd 100644 --- a/source/components/namespace/nsnames.c +++ b/source/components/namespace/nsnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -400,6 +400,13 @@ AcpiNsBuildNormalizedPath ( goto BuildTrailingNull; } + /* Validate the Node to avoid use-after-free vulnerabilities */ + + if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED) + { + goto BuildTrailingNull; + } + NextNode = Node; while (NextNode && NextNode != AcpiGbl_RootNode) { diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c index aec3991bd388..f08e53214005 100644 --- a/source/components/namespace/nsobject.c +++ b/source/components/namespace/nsobject.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -336,6 +336,13 @@ AcpiNsDetachObject ( ObjDesc = Node->Object; + /* Alias nodes point directly to other namespace nodes; skip teardown */ + if (Node->Flags & ANOBJ_IS_ALIAS) + { + Node->Object = NULL; + return_VOID; + } + if (!ObjDesc || (ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA)) { diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c index 32c7d3088902..f5246446c857 100644 --- a/source/components/namespace/nsparse.c +++ b/source/components/namespace/nsparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nspredef.c b/source/components/namespace/nspredef.c index 7a0e5005e3c8..19e904796bea 100644 --- a/source/components/namespace/nspredef.c +++ b/source/components/namespace/nspredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsprepkg.c b/source/components/namespace/nsprepkg.c index e26269aaed25..f5eafc2a2cf2 100644 --- a/source/components/namespace/nsprepkg.c +++ b/source/components/namespace/nsprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -779,6 +779,13 @@ AcpiNsCustomPackage ( /* Get version number, must be Integer */ + if (!(*Elements)) + { + ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + "Return Package has a NULL version element")); + return_ACPI_STATUS (AE_AML_OPERAND_TYPE); + } + if ((*Elements)->Common.Type != ACPI_TYPE_INTEGER) { ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c index 21f0c9205758..3a612bc16da3 100644 --- a/source/components/namespace/nsrepair.c +++ b/source/components/namespace/nsrepair.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index 0b43412b4e76..be5127c96cf1 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c index df61f280ea01..cf6cceb35303 100644 --- a/source/components/namespace/nssearch.c +++ b/source/components/namespace/nssearch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c index 5f9faa8e3728..312c62d153ac 100644 --- a/source/components/namespace/nsutils.c +++ b/source/components/namespace/nsutils.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c index ca5f39475ef9..f03d332cd598 100644 --- a/source/components/namespace/nswalk.c +++ b/source/components/namespace/nswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c index 244817c5818a..182f3aaa80f8 100644 --- a/source/components/namespace/nsxfeval.c +++ b/source/components/namespace/nsxfeval.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 939ad04d514e..49dc017a7261 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c index aa906f9ecba0..9191d94df7c6 100644 --- a/source/components/namespace/nsxfobj.c +++ b/source/components/namespace/nsxfobj.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c index 36afbd73bad4..e9dadf4a40ad 100644 --- a/source/components/parser/psargs.c +++ b/source/components/parser/psargs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -197,6 +197,7 @@ AcpiPsGetNextPackageLength ( UINT32 PackageLength = 0; UINT32 ByteCount; UINT8 ByteZeroMask = 0x3F; /* Default [0:5] */ + UINT32 Remaining; ACPI_FUNCTION_TRACE (PsGetNextPackageLength); @@ -206,7 +207,24 @@ AcpiPsGetNextPackageLength ( * Byte 0 bits [6:7] contain the number of additional bytes * used to encode the package length, either 0,1,2, or 3 */ + + /* Check if we have at least one byte to read */ + Remaining = (UINT32) ACPI_PTR_DIFF (ParserState->AmlEnd, Aml); + if (Remaining == 0) + { + return_UINT32 (0); + } + ByteCount = (Aml[0] >> 6); + + /* Validate ByteCount and ensure we have enough bytes to read */ + if (ByteCount >= Remaining) + { + /* Clamp to available bytes and advance to end */ + ParserState->Aml = ParserState->AmlEnd; + return_UINT32 (0); + } + ParserState->Aml += ((ACPI_SIZE) ByteCount + 1); /* Get bytes 3, 2, 1 as needed */ @@ -545,6 +563,8 @@ AcpiPsGetNextSimpleArg ( UINT32 Length; UINT16 Opcode; UINT8 *Aml = ParserState->Aml; + UINT32 Remaining = (UINT32) ACPI_PTR_DIFF (ParserState->AmlEnd, Aml); + UINT64 PartialValue; ACPI_FUNCTION_TRACE_U32 (PsGetNextSimpleArg, ArgType); @@ -557,8 +577,16 @@ AcpiPsGetNextSimpleArg ( /* Get 1 byte from the AML stream */ Opcode = AML_BYTE_OP; - Arg->Common.Value.Integer = (UINT64) *Aml; - Length = 1; + if (Remaining >= 1) + { + Arg->Common.Value.Integer = (UINT64) *Aml; + Length = 1; + } + else + { + Arg->Common.Value.Integer = 0; + Length = 0; + } break; case ARGP_WORDDATA: @@ -566,8 +594,23 @@ AcpiPsGetNextSimpleArg ( /* Get 2 bytes from the AML stream */ Opcode = AML_WORD_OP; - ACPI_MOVE_16_TO_64 (&Arg->Common.Value.Integer, Aml); - Length = 2; + if (Remaining >= 2) + { + ACPI_MOVE_16_TO_64 (&Arg->Common.Value.Integer, Aml); + Length = 2; + } + else + { + Arg->Common.Value.Integer = 0; + Length = 0; + if (Remaining > 0) + { + PartialValue = 0; + memcpy (&PartialValue, Aml, Remaining); + Arg->Common.Value.Integer = PartialValue; + Length = Remaining; + } + } break; case ARGP_DWORDDATA: @@ -575,8 +618,23 @@ AcpiPsGetNextSimpleArg ( /* Get 4 bytes from the AML stream */ Opcode = AML_DWORD_OP; - ACPI_MOVE_32_TO_64 (&Arg->Common.Value.Integer, Aml); - Length = 4; + if (Remaining >= 4) + { + ACPI_MOVE_32_TO_64 (&Arg->Common.Value.Integer, Aml); + Length = 4; + } + else + { + Arg->Common.Value.Integer = 0; + Length = 0; + if (Remaining > 0) + { + PartialValue = 0; + memcpy (&PartialValue, Aml, Remaining); + Arg->Common.Value.Integer = PartialValue; + Length = Remaining; + } + } break; case ARGP_QWORDDATA: @@ -584,8 +642,23 @@ AcpiPsGetNextSimpleArg ( /* Get 8 bytes from the AML stream */ Opcode = AML_QWORD_OP; - ACPI_MOVE_64_TO_64 (&Arg->Common.Value.Integer, Aml); - Length = 8; + if (Remaining >= 8) + { + ACPI_MOVE_64_TO_64 (&Arg->Common.Value.Integer, Aml); + Length = 8; + } + else + { + Arg->Common.Value.Integer = 0; + Length = 0; + if (Remaining > 0) + { + PartialValue = 0; + memcpy (&PartialValue, Aml, Remaining); + Arg->Common.Value.Integer = PartialValue; + Length = Remaining; + } + } break; case ARGP_CHARLIST: @@ -598,11 +671,32 @@ AcpiPsGetNextSimpleArg ( /* Find the null terminator */ Length = 0; - while (Aml[Length]) + while ((Length < Remaining) && Aml[Length]) { Length++; } - Length++; + if (Length < Remaining) + { + /* Account for the terminating null */ + Length++; + } + else + { + /* + * No terminator found - add null at buffer boundary + * and report a warning + */ + ACPI_WARNING ((AE_INFO, + "Invalid AML string: no null terminator, truncating at offset %u", + (UINT32) (Aml - ParserState->Aml))); + + /* Add null terminator at the boundary */ + if (Remaining > 0) + { + Aml[Remaining - 1] = 0; + Length = Remaining; + } + } break; case ARGP_NAME: @@ -659,6 +753,11 @@ AcpiPsGetNextField ( ASL_CV_CAPTURE_COMMENTS_ONLY (ParserState); Aml = ParserState->Aml; + if (Aml >= ParserState->AmlEnd) + { + return_PTR (NULL); + } + /* Determine field type */ switch (ACPI_GET8 (ParserState->Aml)) @@ -710,6 +809,11 @@ AcpiPsGetNextField ( /* Get the 4-character name */ + if ((ParserState->Aml + ACPI_NAMESEG_SIZE) > ParserState->AmlEnd) + { + AcpiPsFreeOp (Field); + return_PTR (NULL); + } ACPI_MOVE_32_TO_32 (&Name, ParserState->Aml); AcpiPsSetName (Field, Name); ParserState->Aml += ACPI_NAMESEG_SIZE; @@ -756,6 +860,11 @@ AcpiPsGetNextField ( /* Get the two bytes (Type/Attribute) */ + if ((ParserState->Aml + 2) > ParserState->AmlEnd) + { + AcpiPsFreeOp (Field); + return_PTR (NULL); + } AccessType = ACPI_GET8 (ParserState->Aml); ParserState->Aml++; AccessAttribute = ACPI_GET8 (ParserState->Aml); @@ -768,6 +877,11 @@ AcpiPsGetNextField ( if (Opcode == AML_INT_EXTACCESSFIELD_OP) { + if (ParserState->Aml >= ParserState->AmlEnd) + { + AcpiPsFreeOp (Field); + return_PTR (NULL); + } AccessLength = ACPI_GET8 (ParserState->Aml); ParserState->Aml++; diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index d46eb6aff46a..58719d974408 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -566,7 +566,8 @@ AcpiPsParseLoop ( WalkState->Aml = ParserState->Aml; ACPI_ERROR ((AE_INFO, "Skipping While/If block")); - if (*WalkState->Aml == AML_ELSE_OP) + if ((WalkState->Aml < ParserState->AmlEnd) && + (*WalkState->Aml == AML_ELSE_OP)) { ACPI_ERROR ((AE_INFO, "Skipping Else block")); WalkState->ParserState.Aml = WalkState->Aml + 1; diff --git a/source/components/parser/psobject.c b/source/components/parser/psobject.c index 146a487995ce..aa1ea040456e 100644 --- a/source/components/parser/psobject.c +++ b/source/components/parser/psobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index 9da094f1eafd..ef373a19d11d 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopinfo.c b/source/components/parser/psopinfo.c index dcc426ff1c7b..45bf1b07cd86 100644 --- a/source/components/parser/psopinfo.c +++ b/source/components/parser/psopinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index 5b6ddc7d0f84..6d4f62473335 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psscope.c b/source/components/parser/psscope.c index 5a10f8c9b84c..e30a906cc2ef 100644 --- a/source/components/parser/psscope.c +++ b/source/components/parser/psscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pstree.c b/source/components/parser/pstree.c index 71485e77fbaf..e05a5d661b89 100644 --- a/source/components/parser/pstree.c +++ b/source/components/parser/pstree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psutils.c b/source/components/parser/psutils.c index b040ef0ccd89..616b3cb9eb43 100644 --- a/source/components/parser/psutils.c +++ b/source/components/parser/psutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pswalk.c b/source/components/parser/pswalk.c index 093da84e6c83..06d8435c53c5 100644 --- a/source/components/parser/pswalk.c +++ b/source/components/parser/pswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -198,7 +198,7 @@ AcpiPsDeleteParseTree ( { /* This debug option will print the entire parse tree */ - AcpiOsPrintf (" %*.s%s %p", (Level * 4), " ", + AcpiOsPrintf (" %*s%s %p", (Level * 4), "", AcpiPsGetOpcodeName (Op->Common.AmlOpcode), Op); if (Op->Named.AmlOpcode == AML_INT_NAMEPATH_OP) diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c index 818be3a850c6..ec0fa756fa50 100644 --- a/source/components/parser/psxface.c +++ b/source/components/parser/psxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index 8c3eb456f687..e3c06a851b40 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index 581803865206..b7e73fea0478 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index ac2bf12dbb72..01f188bcb270 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index 56933b94093f..6bd78e9c94c9 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 9528d4c9fe93..b370cf71b88a 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index f8d51c01fc16..a269975b52e6 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsio.c b/source/components/resources/rsio.c index cfb078e79415..7cd3eefef719 100644 --- a/source/components/resources/rsio.c +++ b/source/components/resources/rsio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index ddf964717350..74f62c6130f4 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index 779f9626ea54..0462dec81d6f 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmemory.c b/source/components/resources/rsmemory.c index d44dffacb23e..1e9d9d84567a 100644 --- a/source/components/resources/rsmemory.c +++ b/source/components/resources/rsmemory.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index fa256ed4942b..665559f780e2 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index add26305ee46..87c9bed93e1e 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -447,7 +447,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertCsi2SerialBus[14] = * ******************************************************************************/ -ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[17] = +ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[18] = { {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, ACPI_RS_SIZE (ACPI_RESOURCE_I2C_SERIALBUS), @@ -515,6 +515,11 @@ ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[17] = AML_OFFSET (I2cSerialBus.TypeSpecificFlags), 0}, + /* Read LVR from Type Specific Flags, bits[15:8] */ + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.I2cSerialBus.Lvr), + AML_OFFSET (I2cSerialBus.TypeSpecificFlags) + 1, + 1}, + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.I2cSerialBus.ConnectionSpeed), AML_OFFSET (I2cSerialBus.ConnectionSpeed), 1}, diff --git a/source/components/resources/rsutils.c b/source/components/resources/rsutils.c index 0faac38e913d..56ebdd2afe36 100644 --- a/source/components/resources/rsutils.c +++ b/source/components/resources/rsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c index ad9783b7fb81..ef384ce21353 100644 --- a/source/components/resources/rsxface.c +++ b/source/components/resources/rsxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index b371f3e259fa..83420e85aab4 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 002b69254f85..35558a4fcda6 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -736,8 +736,11 @@ AcpiTbConvertFadt ( * Note: If the legacy length field is > 0xFF bits, ignore * this check. (GPE registers can be larger than the * 64-bit GAS structure can accommodate, 0xFF bits). + * Also skip if BitWidth is 0, indicating the 64-bit field + * was not populated - legacy length will be used instead. */ if ((ACPI_MUL_8 (Length) <= ACPI_UINT8_MAX) && + (Address64->BitWidth != 0) && (Address64->BitWidth != ACPI_MUL_8 (Length))) { ACPI_BIOS_WARNING ((AE_INFO, diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 6c88e1eaf8d7..03280fab4ec9 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index bd606170c65f..3d61d08ca9a5 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index 72dab8dafab2..0ba178510e43 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index 2aeb296e7a98..893e22175c9f 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index 783567cef38e..b407ebaa5a5c 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index 8a61d50f6686..52d279bd46fc 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index 63cf27e7b2ce..fd20b1d96468 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utaddress.c b/source/components/utilities/utaddress.c index 6d1b9aa48189..d1c3044d1530 100644 --- a/source/components/utilities/utaddress.c +++ b/source/components/utilities/utaddress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utalloc.c b/source/components/utilities/utalloc.c index ae3c6a93649a..8b7f2a8754b6 100644 --- a/source/components/utilities/utalloc.c +++ b/source/components/utilities/utalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c index 05918b1696b0..c989eb82bf7a 100644 --- a/source/components/utilities/utascii.c +++ b/source/components/utilities/utascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utbuffer.c b/source/components/utilities/utbuffer.c index b08d260b83f1..f73dd33b9071 100644 --- a/source/components/utilities/utbuffer.c +++ b/source/components/utilities/utbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcache.c b/source/components/utilities/utcache.c index 2f80c77f63e7..ee18374dda1a 100644 --- a/source/components/utilities/utcache.c +++ b/source/components/utilities/utcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcksum.c b/source/components/utilities/utcksum.c index 5469075c6ba6..e1391d16e415 100644 --- a/source/components/utilities/utcksum.c +++ b/source/components/utilities/utcksum.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c index cf1acf0e5afd..1eab64322ede 100644 --- a/source/components/utilities/utclib.c +++ b/source/components/utilities/utclib.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcopy.c b/source/components/utilities/utcopy.c index 338b9f9c0c07..f5163a15a14b 100644 --- a/source/components/utilities/utcopy.c +++ b/source/components/utilities/utcopy.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -918,7 +918,16 @@ AcpiUtCopySimpleObject ( break; } - AcpiUtAddReference (SourceDesc->Reference.Object); + /* + * Local/Arg/Debug references do not have a valid Object pointer + * that can be referenced + */ + if ((SourceDesc->Reference.Class != ACPI_REFCLASS_LOCAL) && + (SourceDesc->Reference.Class != ACPI_REFCLASS_ARG) && + (SourceDesc->Reference.Class != ACPI_REFCLASS_DEBUG)) + { + AcpiUtAddReference (SourceDesc->Reference.Object); + } break; case ACPI_TYPE_REGION: diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index 0c7dd83292c7..be83f1136491 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c index 4f26e3aa3139..00c8fdaf2e93 100644 --- a/source/components/utilities/utdecode.c +++ b/source/components/utilities/utdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index 868ad0e580a6..b567a304f82c 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c index 6502794cf5b2..d92b31af76ef 100644 --- a/source/components/utilities/uterror.c +++ b/source/components/utilities/uterror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uteval.c b/source/components/utilities/uteval.c index d33d73655a22..cd5a5cf99527 100644 --- a/source/components/utilities/uteval.c +++ b/source/components/utilities/uteval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utexcep.c b/source/components/utilities/utexcep.c index aa0ff78d4953..28333c7241ca 100644 --- a/source/components/utilities/utexcep.c +++ b/source/components/utilities/utexcep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 2b953ddac14f..96e884cb1b5e 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uthex.c b/source/components/utilities/uthex.c index 7343b99c420e..79544aa49646 100644 --- a/source/components/utilities/uthex.c +++ b/source/components/utilities/uthex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utids.c b/source/components/utilities/utids.c index 9d9b07584747..0ad511747e4d 100644 --- a/source/components/utilities/utids.c +++ b/source/components/utilities/utids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c index 2299f58dd162..ccd2e1539957 100644 --- a/source/components/utilities/utinit.c +++ b/source/components/utilities/utinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utlock.c b/source/components/utilities/utlock.c index c7ee5a575bed..9886c49a9ab9 100644 --- a/source/components/utilities/utlock.c +++ b/source/components/utilities/utlock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmath.c b/source/components/utilities/utmath.c index a3692d725b8a..faf063024de2 100644 --- a/source/components/utilities/utmath.c +++ b/source/components/utilities/utmath.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c index 7c0f9810204f..3e47633d8ed4 100644 --- a/source/components/utilities/utmisc.c +++ b/source/components/utilities/utmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmutex.c b/source/components/utilities/utmutex.c index bc1a43afc062..dc5c02bdc860 100644 --- a/source/components/utilities/utmutex.c +++ b/source/components/utilities/utmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utnonansi.c b/source/components/utilities/utnonansi.c index 76fa07f6df2f..9855d8c389c6 100644 --- a/source/components/utilities/utnonansi.c +++ b/source/components/utilities/utnonansi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utobject.c b/source/components/utilities/utobject.c index 3278f0578c13..fb3468f79da4 100644 --- a/source/components/utilities/utobject.c +++ b/source/components/utilities/utobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index 6e034eb35816..de99801a8ed9 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utownerid.c b/source/components/utilities/utownerid.c index 31c6db05a474..e9caf194e67c 100644 --- a/source/components/utilities/utownerid.c +++ b/source/components/utilities/utownerid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index 1bda772a06d2..97b6b6d5706b 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index 070552fc4c93..36ed3bbd8fd5 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index c952e7621d5d..727fb89a1949 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -322,6 +322,29 @@ AcpiUtWalkAmlResources ( while (Aml < EndAml) { + /* + * Validate that the remaining buffer space can hold enough + * bytes to safely access fields during validation. + * For large resource descriptors (bit 7 set), we need enough + * bytes to access the Type field in SerialBus resources. + * Small resource descriptors only need sizeof(AML_RESOURCE_END_TAG). + */ + if ((ACPI_SIZE) (EndAml - Aml) < sizeof (AML_RESOURCE_END_TAG)) + { + return_ACPI_STATUS (AE_AML_BUFFER_LENGTH); + } + + /* + * For large resource descriptors, ensure enough space for + * the header plus SerialBus Type field access. + */ + if ((ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE) && + ((ACPI_SIZE) (EndAml - Aml) < + ACPI_OFFSET (AML_RESOURCE_COMMON_SERIALBUS, Type) + 1)) + { + return_ACPI_STATUS (AE_AML_BUFFER_LENGTH); + } + /* Validate the Resource Type and Resource Length */ Status = AcpiUtValidateResource (WalkState, Aml, &ResourceIndex); @@ -338,6 +361,15 @@ AcpiUtWalkAmlResources ( Length = AcpiUtGetDescriptorLength (Aml); + /* + * Validate that the descriptor length doesn't exceed the + * remaining buffer size to prevent reading beyond the end. + */ + if (Length > (ACPI_SIZE) (EndAml - Aml)) + { + return_ACPI_STATUS (AE_AML_BUFFER_LENGTH); + } + /* Invoke the user function */ if (UserFunction) diff --git a/source/components/utilities/utstate.c b/source/components/utilities/utstate.c index 1dbecba74da7..7ce23cc909bf 100644 --- a/source/components/utilities/utstate.c +++ b/source/components/utilities/utstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index 19ddd2581eac..8dae542d924c 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index 0c96520d4b2c..76e481daa6ea 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrtoul64.c b/source/components/utilities/utstrtoul64.c index 8b927db677de..9f1cdb760e0d 100644 --- a/source/components/utilities/utstrtoul64.c +++ b/source/components/utilities/utstrtoul64.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uttrack.c b/source/components/utilities/uttrack.c index fa5c49fbcf98..bee105d1f72e 100644 --- a/source/components/utilities/uttrack.c +++ b/source/components/utilities/uttrack.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index 5eacf9fc6d03..a29220d39f98 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxface.c b/source/components/utilities/utxface.c index 5e10fc23c528..72d36eb18a66 100644 --- a/source/components/utilities/utxface.c +++ b/source/components/utilities/utxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxferror.c b/source/components/utilities/utxferror.c index 43e940f636b7..a4f0887a34d9 100644 --- a/source/components/utilities/utxferror.c +++ b/source/components/utilities/utxferror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c index 8c6da2fba74d..1cdb24594aa5 100644 --- a/source/components/utilities/utxfinit.c +++ b/source/components/utilities/utxfinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfmutex.c b/source/components/utilities/utxfmutex.c index b82a4a95490a..6d94f45d87c7 100644 --- a/source/components/utilities/utxfmutex.c +++ b/source/components/utilities/utxfmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acapps.h b/source/include/acapps.h index ccaea124afb1..be9bfdfc4857 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -159,7 +159,7 @@ /* Common info for tool signons */ #define ACPICA_NAME "Intel ACPI Component Architecture" -#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2025 Intel Corporation" +#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2026 Intel Corporation" #if ACPI_MACHINE_WIDTH == 64 #define ACPI_WIDTH " (64-bit version)" diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index 682ddcd72625..2a88d9789c5f 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acclib.h b/source/include/acclib.h index 3960ffd2582e..d6c81823f354 100644 --- a/source/include/acclib.h +++ b/source/include/acclib.h @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/accommon.h b/source/include/accommon.h index 7da7cf757409..2e841088970b 100644 --- a/source/include/accommon.h +++ b/source/include/accommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconfig.h b/source/include/acconfig.h index 983dc3021185..e139f5837008 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconvert.h b/source/include/acconvert.h index 9dedc51a7ef9..ac2e3f9c3a30 100644 --- a/source/include/acconvert.h +++ b/source/include/acconvert.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdebug.h b/source/include/acdebug.h index 05225eeffec3..d69b1558e763 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 5416d0b3f2bd..0fec2e54748a 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -467,6 +467,11 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDtpr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDtprInstance[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDtprArr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDtprSerializeReq0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDtprSerializeReq1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; @@ -873,6 +878,10 @@ void AcpiDmDumpDrtm ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpDtpr ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpEinj ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acdispat.h b/source/include/acdispat.h index 0573e5817dff..4d80aeba95cf 100644 --- a/source/include/acdispat.h +++ b/source/include/acdispat.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acevents.h b/source/include/acevents.h index 22eff360559c..c765abf7ffb3 100644 --- a/source/include/acevents.h +++ b/source/include/acevents.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 7216e0d49148..643426fb47e6 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 02167c3af092..b77f5a0d0444 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/achware.h b/source/include/achware.h index 46efffb50708..fa20fcd8092d 100644 --- a/source/include/achware.h +++ b/source/include/achware.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acinterp.h b/source/include/acinterp.h index b7f9e8f615e4..c0d372e52c64 100644 --- a/source/include/acinterp.h +++ b/source/include/acinterp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/aclocal.h b/source/include/aclocal.h index ff18d617f79a..d9f126f0f6a1 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -332,6 +332,7 @@ typedef struct acpi_namespace_node #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ +#define ANOBJ_IS_ALIAS 0x40 /* iASL only: Node is an alias to another node */ #define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ diff --git a/source/include/acmacros.h b/source/include/acmacros.h index eabe403b3998..03ebb8848b5f 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnames.h b/source/include/acnames.h index 070e318fb8cc..24915ab7c407 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h index 41f704b3d74b..cc6b5989436f 100644 --- a/source/include/acnamesp.h +++ b/source/include/acnamesp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acobject.h b/source/include/acobject.h index 95be1a95b4c7..739b981b43e1 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acopcode.h b/source/include/acopcode.h index c8d17c3554d0..38e18f8593e4 100644 --- a/source/include/acopcode.h +++ b/source/include/acopcode.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acoutput.h b/source/include/acoutput.h index 49a466dba33a..c0c37ef611f0 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acparser.h b/source/include/acparser.h index 8b3d3702f4a2..baf43876fb76 100644 --- a/source/include/acparser.h +++ b/source/include/acparser.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpi.h b/source/include/acpi.h index 53120c948c9f..5260c0e778a3 100644 --- a/source/include/acpi.h +++ b/source/include/acpi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpiosxf.h b/source/include/acpiosxf.h index e16a51a57689..9faab24d2a50 100644 --- a/source/include/acpiosxf.h +++ b/source/include/acpiosxf.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 67d60c68b6c5..a6c6e1bc2ac8 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20251212 +#define ACPI_CA_VERSION 0x20260408 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 8cf6cf2dfcad..684c5a553e18 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -522,7 +522,7 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_CPC", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Bufs) */ - PACKAGE_INFO (ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,0,0,0), + PACKAGE_INFO (ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_PACKAGE, 0,0,0,0), {{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */ METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, @@ -587,7 +587,7 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ PACKAGE_INFO (ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_PACKAGE, 1,0), - {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY | ACPI_TYPE_PACKAGE) | ARG_COUNT_IS_MINIMUM, + {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_PACKAGE | ACPI_TYPE_ANY) | ARG_COUNT_IS_MINIMUM, METHOD_RETURNS (ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */ {{"_DSS", METHOD_1ARGS (ACPI_TYPE_INTEGER), diff --git a/source/include/acresrc.h b/source/include/acresrc.h index e5a96d545ef1..d648194883da 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index ab48a3911ae6..e9a20fa23e28 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -641,6 +641,7 @@ typedef struct acpi_resource_i2c_serialbus UINT8 AccessMode; UINT16 SlaveAddress; UINT32 ConnectionSpeed; + UINT8 Lvr; } ACPI_RESOURCE_I2C_SERIALBUS; diff --git a/source/include/acstruct.h b/source/include/acstruct.h index b1c54f09fe55..3c6ebfc2d179 100644 --- a/source/include/acstruct.h +++ b/source/include/acstruct.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actables.h b/source/include/actables.h index 6f2cacbde3a1..edf3b80afc38 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 0d80f67b6982..ff61c1861ee2 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -168,6 +168,7 @@ #define ACPI_DBGP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DBGP,f) #define ACPI_DMAR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DMAR,f) #define ACPI_DRTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DRTM,f) +#define ACPI_DTPR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DTPR,f) #define ACPI_ECDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ECDT,f) #define ACPI_EINJ_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_EINJ,f) #define ACPI_ERDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ERDT,f) @@ -284,6 +285,10 @@ #define ACPI_DRTM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST,f) #define ACPI_DRTM1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE,f) #define ACPI_DRTM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_DPS_ID,f) +#define ACPI_DTPR_INST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPR_INSTANCE,f) +#define ACPI_DTPR_ARR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPR_ARRAY,f) +#define ACPI_DTPR_AUX_SR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPR_AUX_SR,f) +#define ACPI_DTPR_SR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPR_SERIALIZE_REQUEST,f) #define ACPI_EINJ0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WHEA_HEADER,f) #define ACPI_ERDT_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTBL_HDR_16,f) #define ACPI_ERDT_CACD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CACD,f) @@ -496,6 +501,9 @@ #define ACPI_DMAR0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f,o) #define ACPI_DRTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_DRTM,f,o) #define ACPI_DRTM1a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DRTM_RESOURCE,f,o) +#define ACPI_DTPR_BASE_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TPRN_BASE_REG,f,o) +#define ACPI_DTPR_LIM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TPRN_LIMIT_REG,f,o) +#define ACPI_DTPR_SR_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TPR_SERIALIZE_REQUEST,f,o) #define ACPI_ERDT_RMDD_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_ERDT_RMDD,f,o) #define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o) #define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o) diff --git a/source/include/actbl.h b/source/include/actbl.h index e3bfafd9bbd2..f55c8358f3ba 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 6e7937999a5b..72a5c47d99c8 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -181,6 +181,7 @@ #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ #define ACPI_SIG_DRTM "DRTM" /* Dynamic Root of Trust for Measurement table */ +#define ACPI_SIG_DTPR "DTPR" /* DMA TXT Protection Ranges table */ #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ #define ACPI_SIG_EINJ "EINJ" /* Error Injection table */ #define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */ @@ -1342,6 +1343,291 @@ typedef struct acpi_drtm_dps_id } ACPI_DRTM_DPS_ID; +/******************************************************************************* + * + * DTPR - DMA TXT Protection Ranges Table + * Version 1 + * + * Conforms to "Intel® Trusted Execution Technology (Intel® TXT) DMA Protection + * Ranges", + * Revision 0.73, August 2021 + * + ******************************************************************************/ + +typedef struct acpi_table_dtpr { + ACPI_TABLE_HEADER header; + UINT32 Flags; /* 36 */ + UINT32 InsCnt; + +} ACPI_TABLE_DTPR; + +typedef struct acpi_tpr_array { + UINT64 Base; + +} ACPI_TPR_ARRAY; + +typedef struct acpi_tpr_instance { + UINT32 Flags; + UINT32 TprCnt; + +} ACPI_TPR_INSTANCE; + +typedef struct acpi_tpr_aux_sr { + UINT32 SrlCnt; + +} ACPI_TPR_AUX_SR; + + +/* + * TPRn_BASE (ACPI_TPRN_BASE_REG) + * + * Specifies the start address of TPRn region. TPR region address and size must + * be with 1MB resolution. These bits are compared with the result of the + * TPRn_LIMIT[63:20], which is applied to the incoming address, to + * determine if an access fall within the TPRn defined region. + * + * Minimal TPRn_Base resolution is 1MB. Applied to the incoming address, to + * determine if an access fall within the TPRn defined region. Width is + * determined by a bus width which can be obtained via CPUID + * function 0x80000008. + */ + +typedef UINT64 ACPI_TPRN_BASE_REG; + + +/* TPRn_BASE Register Bit Masks */ + +/* Bit 3 - RW: access: 1 == RO, 0 == RW register (for TPR must be RW) */ +#define ACPI_TPRN_BASE_RW_SHIFT 3 + + +#define ACPI_TPRN_BASE_RW_MASK ((UINT64) 1 << ACPI_TPRN_BASE_RW_SHIFT) + + +/* + * Bit 4 - Enable: 0 – TPRn address range enabled; + * 1 – TPRn address range disabled. + */ +#define ACPI_TPRN_BASE_ENABLE_SHIFT 4 + + +#define ACPI_TPRN_BASE_ENABLE_MASK ((UINT64) 1 << ACPI_TPRN_BASE_ENABLE_SHIFT) + + +/* Bits 63:20 - TprBaseRw */ +#define ACPI_TPRN_BASE_ADDR_SHIFT 20 + + +#define ACPI_TPRN_BASE_ADDR_MASK ((UINT64) 0xFFFFFFFFFFF << \ + ACPI_TPRN_BASE_ADDR_SHIFT) + + +/* TPRn_BASE Register Bit Handlers*/ + +/* + * GET_TPRN_BASE_RW: + * + * Read RW bit from TPRn Base Register - bit 3. + * + * Input: + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * + * Output: + * + * Returns RW bit value (UINT64). + */ +#define GET_TPRN_BASE_RW(reg) (((UINT64) reg & ACPI_TPRN_BASE_RW_MASK) >> \ + ACPI_TPRN_BASE_RW_SHIFT) + + +/* + * GET_TPRN_BASE_ENABLE: + * + * Read Enable bit from TPRn Base Register - bit 4. + * + * Input: + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * + * Output: + * + * Returns Enable bit value (UINT64). + */ +#define GET_TPRN_BASE_ENABLE(reg) (((UINT64) reg & ACPI_TPRN_BASE_ENABLE_MASK) \ + >> ACPI_TPRN_BASE_ENABLE_SHIFT) + + +/* + * GET_TPRN_BASE_ADDR: + * + * Read TPRn Base Register address from bits 63:20. + * + * Input: + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * + * Output: + * + * Returns TPRn Base Register address (UINT64). + */ +#define GET_TPRN_BASE_ADDR(reg) (((UINT64) reg & ACPI_TPRN_BASE_ADDR_MASK) \ + >> ACPI_TPRN_BASE_ADDR_SHIFT) + + +/* + * SET_TPRN_BASE_RW: + * + * Set RW bit in TPRn Base Register - bit 3. + * + * Input: + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * - val (represents RW value to be set (UINT64)) + */ +#define SET_TPRN_BASE_RW(reg, val) ACPI_REGISTER_INSERT_VALUE(reg, \ + ACPI_TPRN_BASE_RW_SHIFT, \ + ACPI_TPRN_BASE_RW_MASK, val); + + +/* + * SET_TPRN_BASE_ENABLE: + * + * Set Enable bit in TPRn Base Register - bit 4. + * + * Input: + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * - val (represents Enable value to be set (UINT64)) + */ +#define SET_TPRN_BASE_ENABLE(reg, val) ACPI_REGISTER_INSERT_VALUE(reg, \ + ACPI_TPRN_BASE_ENABLE_SHIFT, \ + ACPI_TPRN_BASE_ENABLE_MASK, val); + + +/* + * SET_TPRN_BASE_ADDR: + * + * Set TPRn Base Register address - bits 63:20 + * + * Input + * - reg (represents TPRn Base Register (ACPI_TPRN_BASE_REG)) + * - val (represents address value to be set (UINT64)) + */ +#define SET_TPRN_BASE_ADDR(reg, val) ACPI_REGISTER_INSERT_VALUE(reg, \ + ACPI_TPRN_BASE_ADDR_SHIFT, \ + ACPI_TPRN_BASE_ADDR_MASK, val); + + +/* + * TPRn_LIMIT + * + * This register defines an isolated region of memory that can be enabled + * to prohibit certain system agents from accessing memory. When an agent + * sends a request upstream, whether snooped or not, a TPR prevents that + * transaction from changing the state of memory. + * + * Minimal TPRn_Limit resolution is 1MB. Width is determined by a bus width. + */ + +typedef UINT64 ACPI_TPRN_LIMIT_REG; + + +/* TPRn_LIMIT Register Bit Masks */ + + +/* Bit 3 - RW: access: 1 == RO, 0 == RW register (for TPR must be RW) */ +#define ACPI_TPRN_LIMIT_RW_SHIFT 3 + + +#define ACPI_TPRN_LIMIT_RW_MASK ((UINT64) 1 << ACPI_TPRN_LIMIT_RW_SHIFT) + + +/* Bits 63:20 - TprLimitRw */ +#define ACPI_TPRN_LIMIT_ADDR_SHIFT 20 + + +#define ACPI_TPRN_LIMIT_ADDR_MASK ((UINT64) 0xFFFFFFFFFFF << \ + ACPI_TPRN_LIMIT_ADDR_SHIFT) + + +/* TPRn_LIMIT Register Bit Handlers*/ + +/* + * GET_TPRN_LIMIT_RW: + * + * Read RW bit from TPRn Limit Register - bit 3. + * + * Input: + * - reg (represents TPRn Limit Register (ACPI_TPRN_LIMIT_REG)) + * + * Output: + * + * Returns RW bit value (UINT64). + */ +#define GET_TPRN_LIMIT_RW(reg) (((UINT64) reg & ACPI_TPRN_LIMIT_RW_MASK) \ + >> ACPI_TPRN_LIMIT_RW_SHIFT) + + +/* + * GET_TPRN_LIMIT_ADDR: + * + * Read TPRn Limit Register address from bits 63:20. + * + * Input: + * - reg (represents TPRn Limit Register (ACPI_TPRN_LIMIT_REG)) + * + * Output: + * + * Returns TPRn Limit Register address (UINT64). + */ +#define GET_TPRN_LIMIT_ADDR(reg) (((UINT64) reg & ACPI_TPRN_LIMIT_ADDR_MASK) \ + >> ACPI_TPRN_LIMIT_ADDR_SHIFT) + + +/* + * SET_TPRN_LIMIT_RW: + * + * Set RW bit in TPRn Limit Register - bit 3. + * + * Input: + * - reg (represents TPRn Limit Register (ACPI_TPRN_LIMIT_REG)) + * - val (represents RW value to be set (UINT64)) + */ +#define SET_TPRN_LIMIT_RW(reg, val) ACPI_REGISTER_INSERT_VALUE(reg, \ + ACPI_TPRN_LIMIT_RW_SHIFT, \ + ACPI_TPRN_LIMIT_RW_MASK, val); + + +/* + * SET_TPRN_LIMIT_ADDR: + * + * Set TPRn Limit Register address - bits 63:20. + * + * Input: + * - reg (represents TPRn Limit Register (ACPI_TPRN_LIMIT_REG)) + * - val (represents address value to be set (UINT64)) + */ +#define SET_TPRN_LIMIT_ADDR(reg, val) ACPI_REGISTER_INSERT_VALUE(reg, \ + ACPI_TPRN_LIMIT_ADDR_SHIFT, \ + ACPI_TPRN_LIMIT_ADDR_MASK, val); + + +/* + * SERIALIZE_REQUEST + * + * This register is used to request serialization of non-coherent DMA + * transactions. OS shall issue it before changing of TPR settings + * (base / size). + */ + +typedef struct acpi_tpr_serialize_request { + UINT64 SrRegister; + /* + * BIT 1 - Status of serialization request (RO) + * 0 == register idle, 1 == serialization in progress + * BIT 2 - Control field to initiate serialization (RW) + * 0 == normal, 1 == initialize serialization + * (self-clear to allow multiple serialization requests) + */ +} ACPI_TPR_SERIALIZE_REQUEST; + + /******************************************************************************* * * ECDT - Embedded Controller Boot Resources Table @@ -2473,7 +2759,6 @@ typedef struct acpi_ibft_target } ACPI_IBFT_TARGET; - /* Reset to default packing */ #pragma pack() diff --git a/source/include/actbl2.h b/source/include/actbl2.h index a51ff1ecaa09..a5e71e67285a 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 6392359249c9..4886b12c0315 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actypes.h b/source/include/actypes.h index 3c95887b1678..38f3afa8c811 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acutils.h b/source/include/acutils.h index 55a012367964..45cc8d6a01c1 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acuuid.h b/source/include/acuuid.h index a950972b01b3..9546baa7f1de 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -205,6 +205,11 @@ #define UUID_CACHE_PROPERTIES "6DC63E77-257E-4E78-A973-A21F2796898D" #define UUID_PHYSICAL_PROPERTY "DDE4D59A-AA42-4349-B407-EA40F57D9FB7" +/* Modern Standby */ +#define UUID_LPS0_MICROSOFT "11E00D56-CE64-47CE-837B-1F898F9AA461" +#define UUID_LPS0_INTEL "C4EB40A0-6CD2-11E2-BCFD-0800200C9A66" +#define UUID_LPS0_AMD "E3F32452-FEBC-43CE-9039-932122D37721" + /* Miscellaneous */ #define UUID_PLATFORM_CAPABILITIES "0811b06e-4a27-44f9-8d60-3cbbc22e7b48" diff --git a/source/include/amlcode.h b/source/include/amlcode.h index 6bb591904794..ffd48e9e6751 100644 --- a/source/include/amlcode.h +++ b/source/include/amlcode.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index 4482ed378ab1..3362b52b3205 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/accygwin.h b/source/include/platform/accygwin.h index be567e4e8fd5..67bbb5a0149d 100644 --- a/source/include/platform/accygwin.h +++ b/source/include/platform/accygwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonfly.h b/source/include/platform/acdragonfly.h index 4723efeaa261..94d2808a8954 100644 --- a/source/include/platform/acdragonfly.h +++ b/source/include/platform/acdragonfly.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonflyex.h b/source/include/platform/acdragonflyex.h index 3686a17a129d..ae28370ac146 100644 --- a/source/include/platform/acdragonflyex.h +++ b/source/include/platform/acdragonflyex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h index f35d7e83582a..89906d3f9d53 100644 --- a/source/include/platform/acefi.h +++ b/source/include/platform/acefi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefiex.h b/source/include/platform/acefiex.h index 8e2379c06c17..9dc3b91fe432 100644 --- a/source/include/platform/acefiex.h +++ b/source/include/platform/acefiex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index b3093e04e67f..add584b028cc 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenvex.h b/source/include/platform/acenvex.h index e9632619abf5..2735e02174de 100644 --- a/source/include/platform/acenvex.h +++ b/source/include/platform/acenvex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index e81a5d40bcdf..6cd64c385146 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index ab0d418365ab..f5e89d8b06f7 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgccex.h b/source/include/platform/acgccex.h index bb3b55cf2ca6..fae2413bf712 100644 --- a/source/include/platform/acgccex.h +++ b/source/include/platform/acgccex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index 607913e6e54e..5cf8fa50a4b2 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acintel.h b/source/include/platform/acintel.h index 21edaaf06e1d..0b2973849c06 100644 --- a/source/include/platform/acintel.h +++ b/source/include/platform/acintel.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index fab9cb0ba14a..162cafff1345 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinuxex.h b/source/include/platform/aclinuxex.h index 89d00ccb8d4f..65c13e5c8845 100644 --- a/source/include/platform/aclinuxex.h +++ b/source/include/platform/aclinuxex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmacosx.h b/source/include/platform/acmacosx.h index 6b4f29269501..28e5ef81e996 100644 --- a/source/include/platform/acmacosx.h +++ b/source/include/platform/acmacosx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvc.h b/source/include/platform/acmsvc.h index 8f5d77816cc1..38f45a7a34ab 100644 --- a/source/include/platform/acmsvc.h +++ b/source/include/platform/acmsvc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvcex.h b/source/include/platform/acmsvcex.h index 01c86397f7f1..fdd2cf17fb14 100644 --- a/source/include/platform/acmsvcex.h +++ b/source/include/platform/acmsvcex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acnetbsd.h b/source/include/platform/acnetbsd.h index 6fa69bbb077f..da2be99e835e 100644 --- a/source/include/platform/acnetbsd.h +++ b/source/include/platform/acnetbsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acos2.h b/source/include/platform/acos2.h index b4dd359ae805..731e29dbe9ea 100644 --- a/source/include/platform/acos2.h +++ b/source/include/platform/acos2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acqnx.h b/source/include/platform/acqnx.h index cae305e785a2..74e2f8f99075 100644 --- a/source/include/platform/acqnx.h +++ b/source/include/platform/acqnx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin.h b/source/include/platform/acwin.h index c05695cfccf2..1dfef818f06f 100644 --- a/source/include/platform/acwin.h +++ b/source/include/platform/acwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -186,6 +186,7 @@ #pragma warning( disable: 4201) #pragma warning( disable: 4068) +#pragma warning( disable: 4214) #pragma warning( push) #define ACPI_MACHINE_WIDTH 32 diff --git a/source/include/platform/acwin64.h b/source/include/platform/acwin64.h index cc8811b9007b..9e0507f3107a 100644 --- a/source/include/platform/acwin64.h +++ b/source/include/platform/acwin64.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aczephyr.h b/source/include/platform/aczephyr.h index 307eabafd7f7..732a3e099b45 100644 --- a/source/include/platform/aczephyr.h +++ b/source/include/platform/aczephyr.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c index 2f190fa95d91..f538fc20b682 100644 --- a/source/os_specific/service_layers/osbsdtbl.c +++ b/source/os_specific/service_layers/osbsdtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osgendbg.c b/source/os_specific/service_layers/osgendbg.c index d526b589daff..7c46e461a363 100644 --- a/source/os_specific/service_layers/osgendbg.c +++ b/source/os_specific/service_layers/osgendbg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c index 636a6184197f..a5ba0c873190 100644 --- a/source/os_specific/service_layers/oslinuxtbl.c +++ b/source/os_specific/service_layers/oslinuxtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixdir.c b/source/os_specific/service_layers/osunixdir.c index 9a6d4dabea3c..84235b965bd6 100644 --- a/source/os_specific/service_layers/osunixdir.c +++ b/source/os_specific/service_layers/osunixdir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixmap.c b/source/os_specific/service_layers/osunixmap.c index 40c647ccb739..404278cab9e0 100644 --- a/source/os_specific/service_layers/osunixmap.c +++ b/source/os_specific/service_layers/osunixmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index a26d3e44f9e6..57834ed038fe 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswindir.c b/source/os_specific/service_layers/oswindir.c index 8b14673d2343..b6c4c885f9a0 100644 --- a/source/os_specific/service_layers/oswindir.c +++ b/source/os_specific/service_layers/oswindir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c index 1bb1ef5d8e7a..46fb8bbcdf2a 100644 --- a/source/os_specific/service_layers/oswintbl.c +++ b/source/os_specific/service_layers/oswintbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index 325ec2f3dc51..f7c01575e7ce 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oszephyr.c b/source/os_specific/service_layers/oszephyr.c index 4e5c1234d554..23d41b76c0b2 100644 --- a/source/os_specific/service_layers/oszephyr.c +++ b/source/os_specific/service_layers/oszephyr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c index 1de931afa496..d98e80f093a9 100644 --- a/source/tools/acpibin/abcompare.c +++ b/source/tools/acpibin/abcompare.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index 904e89ead321..0da661eeec84 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index af6b281cb6f5..0b3a7a97bb5b 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index ba70415253ab..16a945de1fc4 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index 0d770820f77a..c0b3d107dcc9 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c index 8fe54f77ecf2..19c94ba09438 100644 --- a/source/tools/acpidump/apfiles.c +++ b/source/tools/acpidump/apfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index 352ebdab965f..373a66baa45e 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index 7f8bb6902625..20b988fd0b36 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c index 9378f0c911ec..2a4a3d2c322b 100644 --- a/source/tools/acpiexec/aeexception.c +++ b/source/tools/acpiexec/aeexception.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index 1c41f4da5b13..d32f53e43e52 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index b628aecd1dbd..97fa4072485d 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c index d079edfd7656..67114a573f80 100644 --- a/source/tools/acpiexec/aeinitfile.c +++ b/source/tools/acpiexec/aeinitfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 8370bdd74727..3a4e3b27c43a 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 47fefb641682..8a4b1bbc38f4 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index f91c2cf1f9f9..ccca56029399 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -658,10 +658,19 @@ AeRegionHandler ( * NOTE: RegionElement->Length is in bytes, therefore it we compare against * ByteWidth (see above) */ - if ((RegionObject->Region.SpaceId != ACPI_ADR_SPACE_GPIO) && + if (Address < RegionElement->Address || ((UINT64) Address + ByteWidth) > ((UINT64)(RegionElement->Address) + RegionElement->Length)) { + if (RegionObject->Region.SpaceId == ACPI_ADR_SPACE_GPIO) + { + if (Function == ACPI_READ) + { + memset (Value, 0, ByteWidth); + } + return (AE_OK); + } + ACPI_WARNING ((AE_INFO, "Request on [%4.4s] is beyond region limit " "Req-0x%X+0x%X, Base=0x%X, Len-0x%X", @@ -682,6 +691,11 @@ DoFunction: /* * Perform a read or write to the buffer space */ + if (ByteWidth == 0) + { + return (AE_AML_OPERAND_VALUE); + } + switch (Function) { case ACPI_READ: diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index 219b6554b2b2..c8042b18ccd5 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.h b/source/tools/acpiexec/aetables.h index 9fc8590b40ba..b840efe37452 100644 --- a/source/tools/acpiexec/aetables.h +++ b/source/tools/acpiexec/aetables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c index 9153359ac0e4..9e9fb0bd119c 100644 --- a/source/tools/acpiexec/aetests.c +++ b/source/tools/acpiexec/aetests.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index ccc7162a0eea..7348afa3f010 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index 3fe56850aaf4..3c449ed82abb 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahamlops.c b/source/tools/acpihelp/ahamlops.c index 71591587e063..9d3cf75d0a50 100644 --- a/source/tools/acpihelp/ahamlops.c +++ b/source/tools/acpihelp/ahamlops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahasl.c b/source/tools/acpihelp/ahasl.c index 305738837960..371ebbcf3dc6 100644 --- a/source/tools/acpihelp/ahasl.c +++ b/source/tools/acpihelp/ahasl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 34c3f7465e03..f0764bc4cd78 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslops.c b/source/tools/acpihelp/ahaslops.c index 085d774d299a..36a9103182fa 100644 --- a/source/tools/acpihelp/ahaslops.c +++ b/source/tools/acpihelp/ahaslops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index bbe23cd8f4ba..c3dbc0e6cc88 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahgrammar.c b/source/tools/acpihelp/ahgrammar.c index 7265552c8bbd..c5c73e549c6c 100644 --- a/source/tools/acpihelp/ahgrammar.c +++ b/source/tools/acpihelp/ahgrammar.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index abd67ba2a9bb..31c6615cc57d 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h index 691a088f2547..1a8e02cc9213 100644 --- a/source/tools/acpisrc/acpisrc.h +++ b/source/tools/acpisrc/acpisrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/ascase.c b/source/tools/acpisrc/ascase.c index 382b7099da6f..d5b64ba58517 100644 --- a/source/tools/acpisrc/ascase.c +++ b/source/tools/acpisrc/ascase.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index e331a46fb129..914de37902d4 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -185,7 +185,7 @@ AsCountLines ( #define MODULE_HEADER_BEGIN "/******************************************************************************\n *\n * Module Name:"; #define MODULE_HEADER_END " *****************************************************************************/\n\n" -#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2025, Intel Corp.\n" +#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2026, Intel Corp.\n" /* Opening signature of the Intel legal header */ diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index 8578a303563e..ece2e79cb091 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index 81e9f53047ed..acb5cb14d1c9 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c index 956fd51a8abe..b6194f71154b 100644 --- a/source/tools/acpisrc/asremove.c +++ b/source/tools/acpisrc/asremove.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index 25d70c2e11fe..6a74ab7fe05d 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -197,7 +197,7 @@ ACPI_STRING_TABLE StandardDataTypes[] = { char EmptyHeader[] = ""; char DualLicenseHeader[] = "/*\n" -" * Copyright (C) 2000 - 2025, Intel Corp.\n" +" * Copyright (C) 2000 - 2026, Intel Corp.\n" " * All rights reserved.\n" " *\n" " * Redistribution and use in source and binary forms, with or without\n" @@ -321,7 +321,31 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_DMTABLE_DATA", SRC_TYPE_STRUCT}, {"ACPI_DMTABLE_INFO", SRC_TYPE_STRUCT}, {"ACPI_DMTABLE_HANDLER", SRC_TYPE_SIMPLE}, + {"ACPI_EFI_ALLOCATE_TYPE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_BOOT_SERVICES", SRC_TYPE_STRUCT}, + {"ACPI_EFI_CONFIGURATION_TABLE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_DEVICE_PATH", SRC_TYPE_STRUCT}, + {"ACPI_EFI_FILE_HANDLE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_FILE_INFO", SRC_TYPE_STRUCT}, + {"ACPI_EFI_FILE_IO_INTERFACE", SRC_TYPE_STRUCT}, {"ACPI_EFI_FILE", SRC_TYPE_SIMPLE}, + {"ACPI_EFI_FILE_STRUCT", SRC_TYPE_STRUCT}, + {"ACPI_EFI_GUID", SRC_TYPE_STRUCT}, + {"ACPI_EFI_INPUT_KEY", SRC_TYPE_STRUCT}, + {"ACPI_EFI_INTERFACE_TYPE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_LOADED_IMAGE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_LOCATE_SEARCH_TYPE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_MEMORY_DESCRIPTOR", SRC_TYPE_STRUCT}, + {"ACPI_EFI_MEMORY_TYPE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_OPEN_PROTOCOL_INFORMATION_ENTRY", SRC_TYPE_STRUCT}, + {"ACPI_EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS", SRC_TYPE_STRUCT}, + {"ACPI_EFI_PCI_IO_PROTOCOL_WIDTH", SRC_TYPE_STRUCT}, + {"ACPI_EFI_PCI_IO", SRC_TYPE_STRUCT}, + {"ACPI_EFI_RUNTIME_SERVICES", SRC_TYPE_STRUCT}, + {"ACPI_EFI_SYSTEM_TABLE", SRC_TYPE_STRUCT}, + {"ACPI_EFI_TABLE_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_EFI_TIME_CAPABILITIES", SRC_TYPE_STRUCT}, + {"ACPI_EFI_TIME", SRC_TYPE_STRUCT}, {"ACPI_EVALUATE_INFO", SRC_TYPE_STRUCT}, {"ACPI_EVENT_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_EVENT_STATUS", SRC_TYPE_SIMPLE}, @@ -342,6 +366,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_FIXED_EVENT_INFO", SRC_TYPE_STRUCT}, {"ACPI_FFH_INFO", SRC_TYPE_STRUCT}, {"ACPI_GBL_EVENT_HANDLER", SRC_TYPE_SIMPLE}, + {"ACPI_GED_HANDLER_INFO", SRC_TYPE_STRUCT}, {"ACPI_GENERIC_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_GENERIC_STATE", SRC_TYPE_UNION}, {"ACPI_GET_DEVICES_INFO", SRC_TYPE_STRUCT}, @@ -349,6 +374,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_GPE_BLOCK_INFO", SRC_TYPE_STRUCT}, {"ACPI_GPE_CALLBACK", SRC_TYPE_SIMPLE}, {"ACPI_GPE_DEVICE_INFO", SRC_TYPE_STRUCT}, + {"ACPI_GPE_DISPATCH_INFO", SRC_TYPE_STRUCT}, {"ACPI_GPE_EVENT_INFO", SRC_TYPE_STRUCT}, {"ACPI_GPE_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_GPE_HANDLER_INFO", SRC_TYPE_STRUCT}, @@ -372,6 +398,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_INTERPRETER_MODE", SRC_TYPE_SIMPLE}, {"ACPI_IO_ADDRESS", SRC_TYPE_SIMPLE}, {"ACPI_IO_ATTRIBUTE", SRC_TYPE_STRUCT}, + {"ACPI_KEYP_CONFIG_UNIT", SRC_TYPE_STRUCT}, + {"ACPI_KEYP_RP_INFO", SRC_TYPE_STRUCT}, {"ACPI_LPIT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_LPIT_IO", SRC_TYPE_STRUCT}, {"ACPI_LPIT_NATIVE", SRC_TYPE_STRUCT}, @@ -433,6 +461,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_OPERAND_OBJECT", SRC_TYPE_UNION}, {"ACPI_OSD_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_OSD_EXEC_CALLBACK", SRC_TYPE_SIMPLE}, + {"ACPI_OS_SEMAPHORE_INFO", SRC_TYPE_STRUCT}, {"ACPI_OWNER_ID", SRC_TYPE_SIMPLE}, {"ACPI_PACKAGE_INFO", SRC_TYPE_STRUCT}, {"ACPI_PACKAGE_INFO2", SRC_TYPE_STRUCT}, @@ -442,6 +471,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PARSE_OBJ_ASL", SRC_TYPE_STRUCT}, {"ACPI_PARSE_OBJ_COMMON", SRC_TYPE_STRUCT}, {"ACPI_PARSE_OBJ_NAMED", SRC_TYPE_STRUCT}, + {"ACPI_PARSE_OBJECT_LIST", SRC_TYPE_STRUCT}, {"ACPI_PARSE_OBJECT", SRC_TYPE_UNION}, {"ACPI_PARSE_STATE", SRC_TYPE_STRUCT}, {"ACPI_PARSE_UPWARDS", SRC_TYPE_SIMPLE}, @@ -470,8 +500,10 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_RASF_SHARED_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_RAS2_PARAMETER_BLOCK", SRC_TYPE_STRUCT}, {"ACPI_RAS2_PATROL_SCRUB_PARAM", SRC_TYPE_STRUCT}, + {"ACPI_RAS2_PCC_DESC", SRC_TYPE_STRUCT}, {"ACPI_RAS2_LA2PA_TRANSLATION_PARAM", SRC_TYPE_STRUCT}, {"ACPI_RAS2_SHMEM", SRC_TYPE_STRUCT}, + {"ACPI_REFERENCE_CLASSES", SRC_TYPE_STRUCT}, {"ACPI_REGION_WALK_INFO", SRC_TYPE_STRUCT}, {"ACPI_REPAIR_FUNCTION", SRC_TYPE_SIMPLE}, {"ACPI_REPAIR_INFO", SRC_TYPE_STRUCT}, @@ -482,6 +514,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_RESOURCE_ADDRESS16", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT}, + {"ACPI_RESOURCE_CLOCK_INPUT", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_COMMON_SERIALBUS", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_CSI2_SERIALBUS", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_EXTENDED_ADDRESS64", SRC_TYPE_STRUCT}, @@ -527,7 +560,10 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_SEMAPHORE", SRC_TYPE_SIMPLE}, {"ACPI_SERIAL_INFO", SRC_TYPE_STRUCT}, {"ACPI_SIGNAL_FATAL_INFO", SRC_TYPE_STRUCT}, + {"ACPI_SIMPLE_INPUT_INTERFACE", SRC_TYPE_STRUCT}, {"ACPI_SIMPLE_REPAIR_INFO", SRC_TYPE_STRUCT}, + {"ACPI_SIMPLE_TEXT_OUTPUT_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_SIMPLE_TEXT_OUTPUT_MODE", SRC_TYPE_STRUCT}, {"ACPI_SIZE", SRC_TYPE_SIMPLE}, {"ACPI_SLEEP_FUNCTION", SRC_TYPE_SIMPLE}, {"ACPI_SLEEP_FUNCTIONS", SRC_TYPE_STRUCT}, @@ -582,6 +618,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"AML_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT}, {"AML_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT}, {"AML_RESOURCE_COMMON_SERIALBUS", SRC_TYPE_STRUCT}, + {"AML_RESOURCE_CLOCK_INPUT", SRC_TYPE_STRUCT}, {"AML_RESOURCE_CSI2_SERIALBUS", SRC_TYPE_STRUCT}, {"AML_RESOURCE_DMA", SRC_TYPE_STRUCT}, {"AML_RESOURCE_END_DEPENDENT", SRC_TYPE_STRUCT}, @@ -642,6 +679,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ASL_RESOURCE_INFO", SRC_TYPE_STRUCT}, {"ASL_RESOURCE_NODE", SRC_TYPE_STRUCT}, {"ASL_WALK_CALLBACK", SRC_TYPE_SIMPLE}, + {"ASL_WALK_INFO", SRC_TYPE_STRUCT}, {"ASL_XREF_INFO", SRC_TYPE_STRUCT}, {"UINT64_OVERLAY", SRC_TYPE_UNION}, {"UINT64_STRUCT", SRC_TYPE_STRUCT}, @@ -651,7 +689,9 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { */ {"ACPI_TABLE_AEST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_AGDI", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_APMT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ASF", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_ASPT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, @@ -665,6 +705,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DRTM", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_DTPR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_EINJ", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ERDT", SRC_TYPE_STRUCT}, @@ -680,6 +721,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_IORT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_IOVT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_IVRS", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_KEYP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MADT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCFG", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCHI", SRC_TYPE_STRUCT}, @@ -696,13 +738,19 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_PMTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PPTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PRMT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_RAS2", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_RASF", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RGRT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_RHCT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_RIMT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_S3PT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SBST", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_SDEI", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SDEV", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SVKL", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_SWFT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SLIC", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SLIT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SPCR", SRC_TYPE_STRUCT}, @@ -730,15 +778,23 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_AEST_HEADER", SRC_TYPE_STRUCT}, {"ACPI_AEST_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_AEST_NODE_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE_16K", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE_4K", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE_64K", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE_COMMON", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE_HEADER", SRC_TYPE_STRUCT}, {"ACPI_AEST_NODE_INTERRUPT", SRC_TYPE_STRUCT}, {"ACPI_AEST_NODE_INTERRUPT_V2", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PCIE", SRC_TYPE_STRUCT}, {"ACPI_AEST_PROCESSOR", SRC_TYPE_STRUCT}, {"ACPI_AEST_PROCESSOR_CACHE", SRC_TYPE_STRUCT}, {"ACPI_AEST_PROCESSOR_GENERIC", SRC_TYPE_STRUCT}, {"ACPI_AEST_PROCESSOR_TLB", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PROXY", SRC_TYPE_STRUCT}, {"ACPI_AEST_SMMU", SRC_TYPE_STRUCT}, {"ACPI_AEST_VENDOR", SRC_TYPE_STRUCT}, {"ACPI_AEST_VENDOR_V2", SRC_TYPE_STRUCT}, + {"ACPI_APMT_NODE", SRC_TYPE_STRUCT}, {"ACPI_ASF_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_ASF_ALERT", SRC_TYPE_STRUCT}, {"ACPI_ASF_ALERT_DATA", SRC_TYPE_STRUCT}, @@ -747,27 +803,50 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_ASF_INFO", SRC_TYPE_STRUCT}, {"ACPI_ASF_REMOTE", SRC_TYPE_STRUCT}, {"ACPI_ASF_RMCP", SRC_TYPE_STRUCT}, + {"ACPI_ASPT_ACPI_MBOX_REGS", SRC_TYPE_STRUCT}, + {"ACPI_ASPT_GLOBAL_REGS", SRC_TYPE_STRUCT}, + {"ACPI_ASPT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_ASPT_SEV_MBOX_REGS", SRC_TYPE_STRUCT}, {"ACPI_BERT_REGION", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_DSEMTS", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_DSIS", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_DSLBIS", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_DSMAS", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_DSMSCIS", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_SSLBE", SRC_TYPE_STRUCT}, + {"ACPI_CDAT_SSLBIS", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_CFMWS", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_CFMWS_TARGET_ELEMENT", SRC_TYPE_STRUCT}, {"ACPI_CEDT_CHBS", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_CXIMS", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_CXIMS_TARGET_ELEMENT", SRC_TYPE_STRUCT}, {"ACPI_CEDT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_CPEP_POLLING", SRC_TYPE_STRUCT}, {"ACPI_CSRT_GROUP", SRC_TYPE_STRUCT}, {"ACPI_CSRT_DESCRIPTOR", SRC_TYPE_STRUCT}, {"ACPI_CSRT_SHARED_INFO", SRC_TYPE_STRUCT}, {"ACPI_DBG2_DEVICE", SRC_TYPE_STRUCT}, + {"ACPI_DBG2_HEADER", SRC_TYPE_STRUCT}, {"ACPI_DMAR_HEADER", SRC_TYPE_STRUCT}, {"ACPI_DMAR_DEVICE_SCOPE", SRC_TYPE_STRUCT}, {"ACPI_DMAR_ANDD", SRC_TYPE_STRUCT}, {"ACPI_DMAR_ATSR", SRC_TYPE_STRUCT}, {"ACPI_DMAR_RHSA", SRC_TYPE_STRUCT}, + {"ACPI_DMAR_SATC", SRC_TYPE_STRUCT}, + {"ACPI_DMAR_SIDP", SRC_TYPE_STRUCT}, {"ACPI_DMAR_HARDWARE_UNIT", SRC_TYPE_STRUCT}, + {"ACPI_DMAR_PCI_PATH", 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_ERROR_TYPE_WITH_ADDR", SRC_TYPE_STRUCT}, {"ACPI_EINJ_TRIGGER", SRC_TYPE_STRUCT}, + {"ACPI_EINJ_VENDOR", SRC_TYPE_STRUCT}, + {"ACPI_ENTRY_TYPES", SRC_TYPE_STRUCT}, {"ACPI_ERDT_RMDD", SRC_TYPE_STRUCT}, {"ACPI_ERDT_CACD", SRC_TYPE_STRUCT}, {"ACPI_ERDT_DACD", SRC_TYPE_STRUCT}, @@ -786,6 +865,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_FPDT_BOOT", SRC_TYPE_STRUCT}, {"ACPI_FPDT_BOOT_POINTER", SRC_TYPE_STRUCT}, {"ACPI_FPDT_S3PT_POINTER", SRC_TYPE_STRUCT}, + {"ACPI_GTDT_EL2", SRC_TYPE_STRUCT}, {"ACPI_GTDT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_GTDT_TIMER_BLOCK", SRC_TYPE_STRUCT}, {"ACPI_GTDT_TIMER_ENTRY", SRC_TYPE_STRUCT}, @@ -817,6 +897,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_IBFT_TARGET", SRC_TYPE_STRUCT}, {"ACPI_IORT_ID_MAPPING", SRC_TYPE_STRUCT}, {"ACPI_IORT_ITS_GROUP", SRC_TYPE_STRUCT}, + {"ACPI_IORT_IWB", SRC_TYPE_STRUCT}, {"ACPI_IORT_MEMORY_ACCESS", SRC_TYPE_STRUCT}, {"ACPI_IORT_NAMED_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_IORT_NODE", SRC_TYPE_STRUCT}, @@ -832,24 +913,40 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_IOVT_DEVICE_ENTRY", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HEADER", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HARDWARE", SRC_TYPE_STRUCT}, + {"ACPI_IVRS_HARDWARE1", SRC_TYPE_STRUCT}, + {"ACPI_IVRS_HARDWARE2", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DE_HEADER", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DEVICE4", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DEVICE8A", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DEVICE8B", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DEVICE8C", SRC_TYPE_STRUCT}, + {"ACPI_IVRS_DEVICE_HID", SRC_TYPE_STRUCT}, {"ACPI_IVRS_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_MADT_ADDRESS_OVERRIDE", SRC_TYPE_STRUCT}, + {"ACPI_MADT_APLIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_BIO_PIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_CORE_PIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_EIO_PIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_GENERIC_MSI_FRAME", SRC_TYPE_STRUCT}, {"ACPI_MADT_GENERIC_REDISTRIBUTOR", SRC_TYPE_STRUCT}, + {"ACPI_MADT_GENERIC_TRANSLATOR", SRC_TYPE_STRUCT}, + {"ACPI_MADT_GICV5_IRS", SRC_TYPE_STRUCT}, + {"ACPI_MADT_GICv5_ITS", SRC_TYPE_STRUCT}, + {"ACPI_MADT_GICv5_ITS_TRANSLATE", SRC_TYPE_STRUCT}, {"ACPI_MADT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_MADT_HT_PIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_IMSIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_IO_APIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_IO_SAPIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_LIO_PIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_APIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_APIC_NMI", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_APIC_OVERRIDE", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_SAPIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_X2APIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_LOCAL_X2APIC_NMI", SRC_TYPE_STRUCT}, + {"ACPI_MADT_LPC_PIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_MSI_PIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_GENERIC_DISTRIBUTOR", SRC_TYPE_STRUCT}, {"ACPI_MADT_GENERIC_INTERRUPT", SRC_TYPE_STRUCT}, {"ACPI_MADT_INTERRUPT_OVERRIDE", SRC_TYPE_STRUCT}, @@ -857,17 +954,30 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_NMI_SOURCE", SRC_TYPE_STRUCT}, {"ACPI_MADT_MULTIPROC_WAKEUP", SRC_TYPE_STRUCT}, {"ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX", SRC_TYPE_STRUCT}, + {"ACPI_MADT_OEM_DATA", SRC_TYPE_STRUCT}, + {"ACPI_MADT_PLIC", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, + {"ACPI_MADT_RINTC", SRC_TYPE_STRUCT}, {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_FUNC_DEPS", SRC_TYPE_STRUCT}, {"ACPI_MPAM_MSC_NODE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_ACPI_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_CACHE_LOCATOR", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_GENERIC_LOCATOR", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE", SRC_TYPE_STRUCT}, {"ACPI_MPAM_RESOURCE_LOCATOR", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_MEMORY_LOCATOR", SRC_TYPE_STRUCT}, {"ACPI_MPAM_RESOURCE_NODE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_SMMU_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_MPST_CHANNEL", SRC_TYPE_STRUCT}, {"ACPI_MRRM_MEM_RANGE_ENTRY", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_DATA", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_NODE", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_STATE", SRC_TYPE_STRUCT}, + {"ACPI_MPST_SHARED", SRC_TYPE_STRUCT}, {"ACPI_MSCT_PROXIMITY", SRC_TYPE_STRUCT}, {"ACPI_NFIT_CAPABILITIES", SRC_TYPE_STRUCT}, {"ACPI_NFIT_CONTROL_REGION", SRC_TYPE_STRUCT}, @@ -917,15 +1027,31 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PRMT_MODULE_HEADER", SRC_TYPE_STRUCT}, {"ACPI_PRMT_MODULE_INFO", SRC_TYPE_STRUCT}, {"ACPI_PRMT_HANDLER_INFO", SRC_TYPE_STRUCT}, + {"ACPI_RHCT_CMO_NODE", SRC_TYPE_STRUCT}, + {"ACPI_RHCT_HART_INFO", SRC_TYPE_STRUCT}, + {"ACPI_RHCT_ISA_STRING", SRC_TYPE_STRUCT}, + {"ACPI_RHCT_MMU_NODE", SRC_TYPE_STRUCT}, + {"ACPI_RHCT_NODE_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_ID_MAPPING", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_IOMMU", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_IOMMU_WIRE_GSI", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_NODE", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_PCIE_RC", SRC_TYPE_STRUCT}, + {"ACPI_RIMT_PLATFORM_DEVICE", SRC_TYPE_STRUCT}, {"ACPI_RSDP_COMMON", SRC_TYPE_STRUCT}, {"ACPI_RSDP_EXTENSION", SRC_TYPE_STRUCT}, {"ACPI_S3PT_RESUME", SRC_TYPE_STRUCT}, {"ACPI_S3PT_SUSPEND", SRC_TYPE_STRUCT}, + {"ACPI_SDEV_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_SDEV_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_SDEV_ID_COMPONENT", SRC_TYPE_STRUCT}, + {"ACPI_SDEV_MEM_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_SDEV_NAMESPACE", SRC_TYPE_STRUCT}, {"ACPI_SDEV_PCIE", SRC_TYPE_STRUCT}, {"ACPI_SDEV_PCIE_PATH", SRC_TYPE_STRUCT}, + {"ACPI_SDEV_SECURE_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_SVKL_KEY", SRC_TYPE_STRUCT}, + {"ACPI_SWFT_FILE", SRC_TYPE_STRUCT}, {"ACPI_SRAT_CPU_AFFINITY", SRC_TYPE_STRUCT}, {"ACPI_SRAT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_SRAT_GIC_ITS_AFFINITY", SRC_TYPE_STRUCT}, @@ -934,11 +1060,15 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_SRAT_MEM_AFFINITY", SRC_TYPE_STRUCT}, {"ACPI_SRAT_X2APIC_CPU_AFFINITY", SRC_TYPE_STRUCT}, {"ACPI_SRAT_RINTC_AFFINITY", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_TCPA_HDR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TCPA_CLIENT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TCPA_SERVER", SRC_TYPE_STRUCT}, {"ACPI_TPM2_TRAILER", SRC_TYPE_STRUCT}, {"ACPI_TPM23_TRAILER", SRC_TYPE_STRUCT}, {"ACPI_TPM2_ARM_SMC", SRC_TYPE_STRUCT}, + {"ACPI_TPR_AUX_SR", SRC_TYPE_STRUCT}, + {"ACPI_TPR_INSTANCE", SRC_TYPE_STRUCT}, + {"ACPI_TPR_SERIALIZE_REQUEST", SRC_TYPE_STRUCT}, {"ACPI_VIOT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_VIOT_PCI_RANGE", SRC_TYPE_STRUCT}, {"ACPI_VIOT_MMIO", SRC_TYPE_STRUCT}, @@ -952,6 +1082,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"DT_FIELD", SRC_TYPE_STRUCT}, {"DT_SUBTABLE", SRC_TYPE_STRUCT}, {"DT_WALK_CALLBACK", SRC_TYPE_SIMPLE}, + {"DT_TABLE_UNIT", SRC_TYPE_STRUCT}, /* iASL preprocessor */ @@ -969,9 +1100,11 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { /* AcpiHelp utility */ {"AH_AML_OPCODE", SRC_TYPE_STRUCT}, + {"AH_AML_TYPE", SRC_TYPE_STRUCT}, {"AH_ASL_OPERATOR", SRC_TYPE_STRUCT}, {"AH_ASL_KEYWORD", SRC_TYPE_STRUCT}, {"AH_DEVICE_ID", SRC_TYPE_STRUCT}, + {"AH_DIRECTIVE_INFO", SRC_TYPE_STRUCT}, {"AH_PREDEFINED_NAME", SRC_TYPE_STRUCT}, {"AH_TABLE", SRC_TYPE_STRUCT}, {"AH_UUID", SRC_TYPE_STRUCT}, @@ -985,6 +1118,11 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"EXTERNAL_FIND_INFO", SRC_TYPE_STRUCT}, {"OSL_TABLE_INFO", SRC_TYPE_STRUCT}, + {"DIRECTIVE_INFO", SRC_TYPE_STRUCT}, + {"HISTORY_INFO", SRC_TYPE_STRUCT}, + {"INIT_FILE_ENTRY", SRC_TYPE_STRUCT}, + {"NFIT_DEVICE_HANDLE", SRC_TYPE_STRUCT}, + {NULL, 0} }; @@ -1264,8 +1402,8 @@ ACPI_CONVERSION_TABLE LicenseConversionTable = ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2025", "(c) 1999 - 2025", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ - {"(c) 2006 - 2023", "(c) 2006 - 2025", REPLACE_WHOLE_WORD}, /* Test suites */ + {"(c) 1999 - 2025", "(c) 1999 - 2026", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ + {"(c) 2006 - 2023", "(c) 2006 - 2026", REPLACE_WHOLE_WORD}, /* Test suites */ #if 0 {"SUPPORT, ASSISTANCE", "SUPPORT, ASSISTANCE", REPLACE_WHOLE_WORD}, /* Fix intel header */ diff --git a/source/tools/acpisrc/asutils.c b/source/tools/acpisrc/asutils.c index ae788e7d1324..5649b2b81a4e 100644 --- a/source/tools/acpisrc/asutils.c +++ b/source/tools/acpisrc/asutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 1760422a2e72..a3ca09b6a4f9 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.h b/source/tools/acpixtract/acpixtract.h index 2a3bcf6d020a..ec813cac2018 100644 --- a/source/tools/acpixtract/acpixtract.h +++ b/source/tools/acpixtract/acpixtract.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 54cc22bf3e45..1d5435965f02 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c index 03bc7b6d0d84..bb4c2cfd438b 100644 --- a/source/tools/acpixtract/axutils.c +++ b/source/tools/acpixtract/axutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/efihello/efihello.c b/source/tools/efihello/efihello.c index daa12fa99668..d659ff1d0721 100644 --- a/source/tools/efihello/efihello.c +++ b/source/tools/efihello/efihello.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index b3bff9beb3ca..f5b488c87d72 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.h b/source/tools/examples/examples.h index 88f520a63c0b..97900c1f6a8e 100644 --- a/source/tools/examples/examples.h +++ b/source/tools/examples/examples.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/exstubs.c b/source/tools/examples/exstubs.c index aede01ee0cd6..9ddecdf9c47a 100644 --- a/source/tools/examples/exstubs.c +++ b/source/tools/examples/exstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 090876e61d3d..8b270ec9dc81 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License