27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Device <strong>Configuration</strong><br />

6.2.5 _DSD (Device Specific Data)<br />

This optional object is used to provide device drivers (via OSPM) with additional device properties<br />

<strong>and</strong> information. _DSD returns a variable-length package containing a list of Device Data Descriptor<br />

structures each consisting of a Universal Unique Identifier (UUID) <strong>and</strong> a package (Data Structure).<br />

The UUID is all that is needed to define the Data Structure. The UUID itself may place a restriction<br />

based on _HID or the optional _CID, _CLS, _HRV, _SUB objects, or _HID <strong>and</strong> one of those<br />

optional objects. However, it also may not place such a restriction.<br />

New UUIDs may be created by OEMs <strong>and</strong> IHVs or other interface or device governing bodies (e.g.<br />

the PCI SIG or the UEFI Forum), as long as the UUID is different from other published UUIDs.<br />

The list of well-known UUIDs allocated for _DSD <strong>and</strong> the definition of data formats associated with<br />

them is available in the following auxiliary document hosted by the UEFI Forum: http://<br />

www.uefi.org/acpi.<br />

Arguments:<br />

None<br />

Return Value:<br />

A variable-length Package containing a list of Device Data Descriptor structures as described<br />

below.<br />

Return Value Information<br />

Package ()<br />

{<br />

Device Data Descriptor 0<br />

...<br />

Device Data Descriptor n<br />

}<br />

Each Device Data Descriptor structure consists of two elements, as follows:<br />

UUID<br />

Data Structure<br />

// Buffer (16 bytes)<br />

// Package (depending on UUID)<br />

UUID is a Universal Unique Identifier (16 bytes) that uniquely determines the format of Data<br />

Structure.<br />

Data Structure is a set of device specific data items the format of which is uniquely determined by<br />

the UUID <strong>and</strong> the meaning of which is uniquely determined by the UUID possibly in combination<br />

with a PNP or ACPI device ID.<br />

Multiple Device Data Descriptor structures with the same UUID are not permitted.<br />

_DSD must return the same data each time it is evaluated. Firmware should not expect it to be<br />

evaluated every time (in case it is implemented as a method).<br />

Examples:<br />

Note: The UUID used in the following examples is assumed to define the data format for Data Structure<br />

as a list of packages of length 2 (Properties) whose first element (Key) must be a String <strong>and</strong> the<br />

second element is a Value associated with that key. The set of valid Keys <strong>and</strong> the format <strong>and</strong><br />

Version 6.0 299

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

Saved successfully!

Ooh no, something went wrong!