Home | History | Annotate | Download | only in include
History log of /src/sys/external/bsd/acpica/dist/include/actbl1.h
RevisionDateAuthorComments
 1.25  24-Aug-2025  christos merge our changes into 20250807
 1.24  24-Feb-2025  christos merge conflicts between 2024-08-27 and 2024-12-12
 1.23  13-Sep-2024  christos Merge conflicts between 20230628 and 20240827
 1.22  01-Sep-2023  christos branches: 1.22.6;
merge conflicts between 20230628 and 20221020
 1.21  10-Dec-2022  christos merge acpica 20220331 to 20221020
 1.20  27-Aug-2022  christos merge conflicts between acpica-20211217 and acpica-20220331
 1.19  28-Oct-2021  christos merge conflicts between 2021-06-04 and 2021-09-30
 1.18  06-Jul-2021  christos merge changes for acpica-20210604
 1.17  03-Apr-2021  christos branches: 1.17.2;
Merge local changes with acpica-20210331
 1.16  27-Nov-2020  christos branches: 1.16.2;
merge conflicts
 1.15  28-Mar-2020  christos branches: 1.15.4;
merge conflicts
 1.14  29-Apr-2019  christos merge conflicts
 1.13  07-Apr-2018  christos branches: 1.13.2;
Merge conflicts; STA methods and fields are not present anymore.
 1.12  12-Nov-2017  christos branches: 1.12.2;
merge conflicts
 1.11  15-Sep-2017  christos merge conflicts
 1.10  25-Jan-2017  christos merge conflicts
 1.9  04-May-2016  christos branches: 1.9.2; 1.9.4;
merge new acpica
 1.8  09-Jan-2016  christos merge new acpica
 1.7  18-Aug-2015  christos merge conflicts
 1.6  13-Apr-2015  christos resolve conflicts.
 1.5  25-Oct-2014  christos branches: 1.5.2;
merge conflicts
 1.4  27-Dec-2013  christos resolve conflicts
 1.3  17-Feb-2011  jruoho branches: 1.3.2; 1.3.4; 1.3.8; 1.3.10; 1.3.20; 1.3.24;
Merge ACPICA 20110211.
 1.2  17-Feb-2011  jruoho Apply our local patches.
 1.1  17-Feb-2011  jruoho branches: 1.1.1;
Initial revision
 1.1.1.24  24-Aug-2025  christos Import 20250807 (previous was 20241212)
 1.1.1.23  24-Feb-2025  christos Import new acpica-2024-12-12; previous one was 2024-08-27
 1.1.1.22  13-Sep-2024  christos Import acpica-20240827 (previous was acpica-20230628)
 1.1.1.21  01-Sep-2023  christos Import acpica-20230628 (last was 20221020)
 1.1.1.20  10-Dec-2022  christos Import acpica 2022-10-20

20 October 2022. Summary of changes for version 20221020:

This release is available at https://acpica.org/downloads

0) Global changes:

Allow disabling of -Werror. For distro maintainers having `-Werror`
can delay update of GCC. Since every GCC release might add new
warnings that were not yet captured, it might break the build of
packages. With this change, distros can now build with `NOWERROR=TRUE`
instead of patching either the errors or the makefiles. The default
behavior keeps on using `-Werror`.

1) ACPICA kernel-resident subsystem:

Added support for FFH Operation Region special context data.
FFH(Fixed Function Hardware) Opregion is approved to be added in
ACPI 6.5 via code first approach[1]. It requires special context
data similar to GPIO and Generic Serial Bus as it needs to know
platform specific offset and length.

Reverted this commit "executer/exsystem: Warn about sleeps greater
than 10 ms." Due to user complaints about valid sleeps greater than
10ms seen in some existing machines -- generating lots of warnings.

Do not touch VGA memory when EBDA < 1KiB. The ACPICA code assumes
that EBDA region must be at least 1KiB in size. Because this is
not guaranteed, it might happen that while scanning the memory for
RSDP pointer, the kernel touches memory above 640KiB. This is
unwanted as the VGA memory range may not be decoded or even present
when running under virtualization.

Check that EBDA pointer is in valid memory. If the memory at 0x40e
is uninitialized, the retrieved physical memory address of EBDA
may be beyond the low memory (i.e. above 640K). If so, the kernel
may unintentionally access the VGA memory, that might not be decoded
or even present in case of virtualization.

2) iASL Compiler/Disassembler and ACPICA tools:

Completed the existing partial support for the CDAT "table". Although
this isn't technically an ACPI table (It doesn't go into the XSDT),
it is possible to support this table in the Data Table compiler.
Created one new file, "utilities/utcksum.c", used to centralize
checksum generation/validation into one location. Includes changes
to makefiles and MSVC project files.

Updated support for the IORT table - update to version E.e

Added CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table

iASL: Added CCEL table to both compiler/disassembler.

iASL: NHLT table: Fixed compilation of optional undocumented fields

iASL: Fix iASL compile error due to ACPI_TDEL_OFFSET. Commit #
10e4763 ("iASL: Add CCEL table to both compiler/disassembler")
introduced the iASL build issue. The issue is due to using
ACPI_TDEL_OFFSET for CCEL table member reference. To fix it, change
ACPI_TDEL_OFFSET with ACPI_CCEL_OFFSET.
 1.1.1.19  27-Aug-2022  christos Import acpica-2022-03-31
 1.1.1.18  28-Oct-2021  christos 30 September 2021. Summary of changes for version 20210930:

This release is available at https://acpica.org/downloads

1) ACPICA kernel-resident subsystem:

Hardware: Avoid evaluating methods too early during system resume.
During wakeup from system-wide sleep states, AcpiGetSleepTypeData()
is called and it tries to get memory from the OS in order to evaluate
a control method, but if KFENCE is enabled in the Linux kernel,
the memory allocation attempt causes an IRQ work to be queued and
a self-IPI to be sent to the CPU running the code which requires
the memory controller to be ready, so if that happens too early in
the wakeup path, it doesn't work.

Prevent that from taking place by calling AcpiGetSleepTypeData()
for S0 upfront, when preparing to enter a given sleep state, and
saving the data obtained by it for later use during system wakeup.

Added a new _OSI string, "Windows 2020". Posted by superm1.

2) iASL Compiler/Disassembler and ACPICA tools:

iASL compiler: Updated the check for usage of _CRS, _DIS, _PRS, and _SRS objects:
New/latest rules: Under a Device Object:
1) If _PRS is present, must have _CRS and _SRS
2) If _SRS is present, must have _PRS (_PRS requires _CRS and _SRS)
3) If _DIS is present, must have _SRS (_SRS requires _PRS, _PRS requires _CRS
and _SRS)
4) If _SRS is present, probably should have a _DIS (Remark only)

iASL table disassembler: Added disassembly support for the NHLT
ACPI table. Note: support for Vendor-defined microphone arrays and
SNR extensions are not supported at this time -- mostly due to a
lack of example tables. Actual compiler support for NHLT is
forthcoming.

Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity.
It uses the same subtable structure as the existing Generic Initiator
Affinity type.

Added the flag for online capable in the MADT, introduced in ACPI
6.3. Posted by superm1.

3) ACPICA documentation: Updated the legal info (that appears at
the start of the Documents) to clarify distribution rights that
are granted.

30 July 2021. Summary of changes for version 20210730:

This release is available at https://acpica.org/downloads

1) ACPICA kernel-resident subsystem:

2) iASL Compiler/Disassembler and ACPICA tools:

iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects (July 2021).
Under the Device Object:
1) If _DIS is present, must have a _CRS and _SRS
2) If _PRS is present, must have a _CRS, _DIS, and _SRS
3) If _SRS is present, must have a _CRS and _DIS
A warning will be issued for each of these cases.
Note: For existing ASL/projects, these warnings may be disabled by
specifying this on the command line:
"-vw 3141"

iASL Table Disassembler/Table compiler: Fix for WPBT table with no
command-line arguments. Handle the case where the Command-line
Arguments table field does not exist (zero).

Headers: Add new DBG2 Serial Port Subtypes
The Microsoft Debug Port Table 2 (DBG2) specification revision
September 21, 2020 comprises additional Serial Port Subtypes [1].
Reflect that in the actbl1.h header file. Submitted by:
semihalf-wojtas-marcin

iASL: Add full support for the AEST table (data compiler)
Includes support in the table compiler and the disassembler.

Add PRMT module header to facilitate parsing.
This structure is used in to parse PRMT in other Operating Systems
that relies on using subtable headers in order to parse ACPI tables.
Although the PRMT doesn't have "subtables" it has a list of module
information structures that act as subtables.

iASL: Table disassembler: Add missing strings to decode subtable types.
Includes the MADT and CEDT tables.
 1.1.1.17  06-Jul-2021  christos Import acpica-20210604
 1.1.1.16  03-Apr-2021  christos 31 March 2021. Summary of changes for version 20210331:

This release is available at https://acpica.org/downloads, and
includes all ACPI 6.4 support

1) ACPICA kernel-resident subsystem:
ACPI 6.4: iASL: deprecate DDBHandleObj keyword
Always create namespace nodes using AcpiNsCreateNode(). ACPICA is
allocating an object using kmalloc(), but then frees it using
kmem_cache_free(<"Acpi-Namespace" kmem_cache>). This is wrong.
Fixed a race condition in generic serial bus operation region
handler. Fixed by Hans de Goede.

2) iASL Compiler/Disassembler and ACPICA tools:

ACPI 6.4: NFIT: add Location Cookie field
ACPI 6.4: HMAT: add new fields/flags
ACPI 6.4: Add new flags in SRAT
ACPI 6.4: add SDEV secure access components
ACPI 6.4: add Csi2Bus resource template
ACPI 6.4: add support for PHAT table
ACPI 6.4: add support for PMTT table
Add disassembly support for the IVRS table. Compilation of the
table is not yet complete. Fixed a potential infinite loop due to
type mismatch. The for-loop is using a UINT8 counter and comparing
the upper limit against a UINT32 AslGbl_ExpectedMessagesIndex
maximum. In the case where AslGbl_ExpectedMessagesIndex is > 255
the counter i will wrap around to zero and the loop will never
exit. I suspect the AslGbl_ExpectedMessagesIndex is never that
high, but fixing this does future proof the code and cleans up
static analysis warnings.Colin King.

iASL/TableCompiler: update it with IORT table E.b revision changes.
From shamiali2008.
iASL/TableCompiler: Add compilation support for the VIOT table.
Signed-off-by: Jean-Philippe Brucker.
iASL/TableCompiler: Add compilation support for CEDT table.
Also, update the CEDT template.
 1.1.1.15  27-Nov-2020  christos 13 November 2020. Summary of changes for version 20201113:

This release is available at https://acpica.org/downloads

1) ACPICA kernel-resident subsystem:

Interpreter: fixed a memory leak by using use existing buffer in
_HID repair. There was a memory leak that occurred when a _CID
object is defined as a package containing string objects. When _CID
is checked for any possible repairs, it calls a helper function to
repair _HID (because _CID basically contains multiple _HID entries).
The _HID repair function assumes that string objects are standalone
objects that are not contained inside of any packages. The _HID
repair function replaced the string object with a brand new object
and attempted to delete the old object by decrementing the reference
count of the old object. Strings inside of packages have a reference
count of 2 so the _HID repair function leaves this object in a
dangling state and causes a memory leak. Instead of allocating a
brand new object and removing the old object, use the existing
object when repairing the _HID object.

Added function trace macros to improve namespace debugging. The
namespace repair mechanism does not have function tracing macros.
Add several trace macros to improve debuggability.

Handle "orphan" _REG methods for GPIO OpRegions. Before this change
AcpiEvExecuteRegMethods() had special handling to handle "orphan"
(no matching OpRegion declared) _REG methods for EC nodes. On Intel
Cherry Trail devices there are 2 possible ACPI OpRegions for
accessing GPIOs. The standard GeneralPurposeIo OpRegion and the
Cherry Trail - specific UserDefined 0x9X OpRegions. Having 2
different types of OpRegions leads to potential issues with checks
for OpRegion availability, or in other words checks if _REG has
been called for the OpRegion which the ACPI code wants to use.
Except for the "orphan" EC handling, ACPICA core does not call _REG
on an ACPI node which does not define an OpRegion matching the type
being registered; and the reference design DSDT, from which most
Cherry Trail DSDTs are derived, does not define GeneralPurposeIo,
nor UserDefined(0x93) OpRegions for the GPO2 (UID 3) device, because
no pins were assigned ACPI controlled functions in the reference
design. Together this leads to the perfect storm, at least on the
Cherry Trail based Medion Akayo E1239T. This design does use a GPO2
pin from its ACPI code and has added the Cherry Trail specific
UserDefined(0x93) opregion to its GPO2 ACPI node to access this
pin. But it uses a "has _REG been called" availability check for
the standard GeneralPurposeIo OpRegion. This clearly is a bug in
the DSDT, but this does work under Windows. This issue leads to
the intel vbtn driver reporting the device always being in tablet-mode
at boot, even if it is in laptop mode. Which in turn causes userspace
to ignore touchpad events. So in other words, this issue causes
the touchpad to not work at boot. This change fixes this by extending
the "orphan" _REG method handling to also apply to GPIO address-space
handlers.

2) iASL Compiler/Disassembler and ACPICA tools:

iASL: Added more info to namespace dump file (-ln option). In a
separate section of the dump file (after the main namespace dump),
emit the full pathname for each namespace node, its type, and the
ASL filename and line number where it is declared.

AcpiHelp: Added an option to display/decode iASL exceptions. Option
is: -x [Hex Value] where "Hex Value" is the iASL exception code.
If Hex Value is omitted, all iASL exceptions are displayed.

iASL: Use StringLiteral instead of StringData for some ASL macros.
The use of the stringData rule allows for some "string" oriented
opcodes (Such as ToString, ToHexString, etc.) None of which make
sense with the macros in question. This change modifies the StringData
part of the rule for these macros to a simple string literal - thus
disallowing the use of ToString, ToHexString, etc. The following
ASL operators (macros) are affected: EisaId Fprintf Printf ToUuid
Unicode Note: The MS compiler requires the use of string literals
for these operators also.

iASL: Added a remark for an unknown UUID: ASL_MSG_UUID_NOT_FOUND.
Search the list of "known" UUIDs for the input to the ToUUID macro.

Added 5 new UUIDs to the known UUID table. All related to NVDIMM
and the NFIT table.
 1.1.1.14  28-Mar-2020  christos 
 1.1.1.13  29-Apr-2019  christos 
 1.1.1.12  07-Apr-2018  christos 
 1.1.1.11  12-Nov-2017  christos 
 1.1.1.10  15-Sep-2017  christos 
 1.1.1.9  25-Jan-2017  christos One more time in the right place...
 1.1.1.8  04-May-2016  christos 22 April 2016. Summary of changes for version 20160422:

1) ACPICA kernel-resident subsystem:

Fixed a regression in the GAS (generic address structure) arbitrary bit
support in AcpiHwRead/AcpiHwWrite. Problem could cause incorrect behavior
and incorrect return values. Lv Zheng. ACPICA BZ 1270.

ACPI 6.0: Added support for new/renamed resource macros. One new argument
was added to each of these macros, and the original name has been
deprecated. The AML disassembler will always disassemble to the new
names. Support for the new macros was added to iASL, disassembler,
resource manager, and the acpihelp utility. ACPICA BZ 1274.

I2cSerialBus -> I2cSerialBusV2
SpiSerialBus -> SpiSerialBusV2
UartSerialBus -> UartSerialBusV2

ACPI 6.0: Added support for a new integer field that was appended to the
package object returned by the _BIX method. This adds iASL compile-time
and AML runtime error checking. ACPICA BZ 1273.

ACPI 6.1: Added support for a new PCCT subtable, "HW-Reduced Comm
Subspace Type2" (Headers, Disassembler, and data table compiler).

Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and
has a much larger code and data size.

Current Release:
Non-Debug Version: 137.4K Code, 52.6K Data, 190.0K Total
Debug Version: 201.5K Code, 82.2K Data, 283.7K Total
Previous Release:
Non-Debug Version: 137.1K Code, 51.5K Data, 188.6K Total
Debug Version: 201.0K Code, 82.0K Data, 283.0K Total


2) iASL Compiler/Disassembler and Tools:

iASL: Implemented an ASL grammar extension to allow/enable executable
"module-level code" to be created and executed under the various
operators that create new scopes. This type of AML code is already
supported in all known AML interpreters, and the grammar change will
appear in the next version of the ACPI specification. Simplifies the
conditional runtime creation of named objects under these object types:

Device
PowerResource
Processor
Scope
ThermalZone

iASL: Implemented a new ASL extension, a "For" loop macro to add greater
ease-of-use to the ASL language. The syntax is similar to the
corresponding C operator, and is implemented with the existing AML While
opcode -- thus requiring no changes to existing AML interpreters.

For (Initialize, Predicate, Update) {TermList}

Grammar:
ForTerm :=
For (
Initializer // Nothing | TermArg => ComputationalData
Predicate // Nothing | TermArg => ComputationalData
Update // Nothing | TermArg => ComputationalData
) {TermList}


iASL: The _HID/_ADR detection and validation has been enhanced to search
under conditionals in order to allow these objects to be conditionally
created at runtime.

iASL: Fixed several issues with the constant folding feature. The
improvement allows better detection and resolution of statements that can
be folded at compile time. ACPICA BZ 1266.

iASL/Disassembler: Fixed a couple issues with the Else{If{}...}
conversion to the ASL ElseIf operator where incorrect ASL code could be
generated.

iASL/Disassembler: Fixed a problem with the ASL+ code disassembly where
sometimes an extra (and extraneous) set of parentheses were emitted for
some combinations of operators. Although this did not cause any problems
with recompilation of the disassembled code, it made the code more
difficult to read. David Box. ACPICA BZ 1231.

iASL: Changed to ignore the unreferenced detection for predefined names
of resource descriptor elements, when the resource descriptor is
created/defined within a control method.

iASL: Disassembler: Fix a possible fault with externally declared Buffer
objects.
 1.1.1.7  09-Jan-2016  christos import new acpica:
 1.1.1.6  18-Aug-2015  christos 
 1.1.1.5  13-Apr-2015  christos 
 1.1.1.4  25-Oct-2014  christos 
 1.1.1.3  27-Dec-2013  christos import new acpica
 1.1.1.2  17-Feb-2011  jruoho Import 20110211.
 1.1.1.1  17-Feb-2011  jruoho Reimport ACPICA 20100528 to a new location.
 1.3.24.1  18-May-2014  rmind sync with head
 1.3.20.2  03-Dec-2017  jdolecek update from HEAD
 1.3.20.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.10.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.8.2  06-Jun-2011  jruoho Sync with HEAD.
 1.3.8.1  17-Feb-2011  jruoho file actbl1.h was added on branch jruoho-x86intr on 2011-06-06 09:09:01 +0000
 1.3.4.2  05-Mar-2011  rmind sync with head
 1.3.4.1  17-Feb-2011  rmind file actbl1.h was added on branch rmind-uvmplock on 2011-03-05 20:54:35 +0000
 1.3.2.2  17-Feb-2011  bouyer Sync with HEAD
 1.3.2.1  17-Feb-2011  bouyer file actbl1.h was added on branch bouyer-quota2 on 2011-02-17 12:00:28 +0000
 1.5.2.5  05-Feb-2017  skrll Sync with HEAD
 1.5.2.4  29-May-2016  skrll Sync with HEAD
 1.5.2.3  19-Mar-2016  skrll Sync with HEAD
 1.5.2.2  22-Sep-2015  skrll Sync with HEAD
 1.5.2.1  06-Jun-2015  skrll Sync with HEAD
 1.9.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.9.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.12.2.1  16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.13.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.13.2.1  10-Jun-2019  christos Sync with HEAD
 1.15.4.2  03-Apr-2021  thorpej Sync with HEAD.
 1.15.4.1  14-Dec-2020  thorpej Sync w/ HEAD.
 1.16.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.17.2.1  01-Aug-2021  thorpej Sync with HEAD.
 1.22.6.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed