27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACPI Source Language (ASL)Reference<br />

of an ASL compiler.<br />

ASL statements declare objects. Each object has three parts, two of which might not be present.<br />

Object := ObjectType FixedList VariableList<br />

FixedList refers to a list, of known length, that supplies data that all instances of a given<br />

ObjectType must have. A fixed list is written as ( a , b , c , … ) where the number of arguments<br />

depends on the specific ObjectType, <strong>and</strong> some elements can be nested objects, that is (a, b, (q, r, s,<br />

t), d). Arguments to a FixedList can have default values, in which case they can be skipped. Thus,<br />

(a,,c) will cause the default value for the second argument to be used. Some ObjectTypes can have<br />

a null FixedList, which is simply omitted. Trailing arguments of some object types can be left out of<br />

a fixed list, in which case the default value is used.<br />

VariableList refers to a list, not of predetermined length, of child objects that help define the parent.<br />

It is written as { x, y, z, aa, bb, cc } where any argument can be a nested object. ObjectType<br />

determines what terms are legal elements of the VariableList. Some ObjectTypes may have a null<br />

variable list, which is simply omitted.<br />

Other rules for writing ASL statements are the following:<br />

• Multiple blanks are the same as one. Blank, (, ), ‘,’ <strong>and</strong> newline are all token separators.<br />

• // marks the beginning of a comment, which continues from the // to the end of the line.<br />

• /* marks the beginning of a comment, which continues from the /* to the next */.<br />

• “” (quotes) surround an ASCII string.<br />

• Numeric constants can be written in three ways: ordinary decimal, octal (using 0ddd) or<br />

hexadecimal, using the notation 0xdd.<br />

• Nothing indicates an empty item. For example, { Nothing } is equivalent to {}.<br />

19.2.1 ASL Grammar Notation<br />

The notation used to express the ASL grammar is specified in the following table.<br />

Table 19-350 ASL Grammar Notation<br />

Notation Convention Description Example<br />

Term := Term Term … The term to the left of := can be<br />

exp<strong>and</strong>ed into the sequence of<br />

terms on the right.<br />

aterm := bterm cterm means that aterm can be<br />

exp<strong>and</strong>ed into the two-term sequence of bterm<br />

followed by cterm.<br />

Angle brackets (< > ) Used to group items. | means either<br />

a b or c d.<br />

Arrow (=>)<br />

Indicates required run-time<br />

reduction of an ASL argument<br />

to an AML data type. Means<br />

“reduces to” or “evaluates to”<br />

at run-time.<br />

“TermArg => Integer” means that the argument<br />

must be an ASL TermArg that must resolve to an<br />

Integer data type when it is evaluated by an AML<br />

interpreter.<br />

Version 6.0 753

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!