AML(2) AML(2)
NAME
amltag, amlval, amlint, amllen, amlinit, amlexit, amlload,
amlwalk, amleval, amlenum, amlalloc, amlfree - ACPI
interprter
SYNOPSIS
#include <u.h>
#include <aml.h>
int amltag(void *p)
void* amlval(void *p)
uvlong amlint(void *p)
int amllen(void *p)
void amlinit(void)
void amlexit(void)
int amlload(uchar *data, int len);
void* amlwalk(void *dot, char *name);
int amleval(void *dot, char *fmt, ...);
void amlenum(void *dot, char *seg,
int (*proc)(void *, void *), void *arg);
void* amlalloc(usize);
void amlfree(void*);
DESCRIPTION
Aml implements an interpreter for the ACPI machine language,
AML. ACPI is supposed to supplant older configuration meth-
ods such as the MP tables and older power-management methods
such as APM. AML is used by 386 and AMD64 platform BIOS to
things that are not part of the ACPI fixed description
tables, such as interrupts. When used, the aml interperter
must run in the kernel to parse interrupts, etc. at boot
time.
Aml provides access to the following AML object types.
L L L - - - LFB L L.
tag type name b uchar* buffer
s char* string i uvlong* integer
p void** package r void* region
f void* field u void* bufferfield
N void* name R void* reference
amlload(data, len)
Start the interperter with the given AML code. For
userspace, kernel provides #P/acpitbls.
amlexit()
Terminate the interperter and free its resources
amlalloc(nbytes)
Page 1 Plan 9 (printed 10/29/25)
AML(2) AML(2)
Provided by the caller. Allocate and clear nbytes.
amlfree(p)
Provided by the caller. Free memory allocated with
amlalloc.
amltag(p)
Return the “tag” of the given AML object.
amlval(p)
Evaluate one level of indirection on AML object p.
amlint(p)
Return the value of the integer pointed to by p. P may
have tag `i' or `s'. Objects of tag `s' are converted
with strtoull (see atof(2)).
amllen(p)
Return the number of elements in p.
amlwalk(dot, name)
Walk the aml heirarchy to name from the current posi-
tion, dot.
amleval(dot, name)
Evaluate the method name from the corrent position, IR
dot.
amlenum(dot, seg, procfn, arg)
Call function procfn(arg) for each matching object
under dot.
SEE ALSO
BUGS
A 32-bit little-endian machine is assumed.
Page 2 Plan 9 (printed 10/29/25)