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 Software Programming Model<br />

• All names are a fixed 32 bits.<br />

• The first byte of a name is inclusive of: ‘A’–‘Z’, ‘_’, (0x41–0x5A, 0x5F).<br />

• The remaining three bytes of a name are inclusive of: ‘A’–‘Z’, ‘0’–‘9’, ‘_’, (0x41–0x5A, 0x30–<br />

0x39, 0x5F).<br />

• By convention, when an ASL compiler pads a name shorter than 4 characters, it is done so with<br />

trailing underscores (‘_’). See the language definition for AML NameSeg in Section 17, “ACPI<br />

Source Language Reference.”<br />

• Names beginning with ‘_’ are reserved by this specification. Definition Blocks can only use<br />

names beginning with ‘_’ as defined by this specification.<br />

• A name proceeded with ‘\’ causes the name to refer to the root of the namespace (‘\’ is not part<br />

of the 32-bit fixed-length name).<br />

• A name proceeded with ‘^’ causes the name to refer to the parent of the current namespace (‘^’<br />

is not part of the 32-bit fixed-length name).<br />

Except for names preceded with a ‘\’, the current namespace determines where in the namespace<br />

hierarchy a name being created goes <strong>and</strong> where a name being referenced is found. A name is located<br />

by finding the matching name in the current namespace, <strong>and</strong> then in the parent namespace. If the<br />

parent namespace does not contain the name, the search continues recursively upwards until either<br />

the name is found or the namespace does not have a parent (the root of the namespace). This<br />

indicates that the name is not found 1 .<br />

An attempt to access names in the parent of the root will result in the name not being found.<br />

There are two types of namespace paths: an absolute namespace path (that is, one that starts with a<br />

‘\’ prefix), <strong>and</strong> a relative namespace path (that is, one that is relative to the current namespace). The<br />

namespace search rules discussed above, only apply to single NameSeg paths, which is a relative<br />

namespace path. For those relative name paths that contain multiple NameSegs or Parent Prefixes,<br />

‘^’, the search rules do not apply. If the search rules do not apply to a relative namespace path, the<br />

namespace object is looked up relative to the current namespace. For example:<br />

ABCD<br />

^ABCD<br />

XYZ.ABCD<br />

\XYZ.ABCD<br />

//search rules apply<br />

//search rules do not apply<br />

//search rules do not apply<br />

//search rules do not apply<br />

All name references use a 32-bit fixed-length name or use a Name Extension prefix to concatenate<br />

multiple 32-bit fixed-length name components together. This is useful for referring to the name of an<br />

object, such as a control method, that is not in the scope of the current namespace.<br />

The figure below shows a sample of the ACPI namespace after a Differentiated Definition Block has<br />

been loaded.<br />

1. Unless the operation being performed is explicitly prepared for failure in name resolution, this is considered<br />

an error <strong>and</strong> may cause the system to stop working.<br />

Version 6.0 213

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

Saved successfully!

Ooh no, something went wrong!