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.

ACPI-Defined Devices <strong>and</strong> Device-Specific Objects<br />

Example:<br />

// _DSM – Device Specific Method<br />

//<br />

// Arg0: UUID Unique function identifier<br />

// Arg1: Integer Revision Level<br />

// Arg2: Integer Function Index (0 = Return Supported Functions)<br />

// Arg3: Package Parameters<br />

Function(_DSM,{IntObj,BuffObj},{BuffObj, IntObj, IntObj, PkgObj})<br />

{<br />

//<br />

// Switch based on which unique function identifier was passed in<br />

//<br />

switch(Arg0)<br />

{<br />

//<br />

// First function identifier<br />

//<br />

case(ToUUID(“893f00a6-660c-494e-bcfd-3043f4fb67c0”))<br />

{<br />

switch(Arg2)<br />

{<br />

//<br />

// Function 0: Return supported functions, based on revision<br />

//<br />

case(0)<br />

{<br />

switch(Arg1)<br />

{<br />

// revision 0: functions 1-4 are supported<br />

case(0) {return (Buffer() {0x1F})}<br />

// revision 1: functions 1-5 are supported<br />

case(1) {return (Buffer() {0x3F})}<br />

}<br />

// revision 2+: functions 1-7 are supported<br />

return (Buffer() {0xFF})<br />

}<br />

//<br />

// Function 1:<br />

//<br />

case(1)<br />

{<br />

… function 1 code …<br />

Return(Zero)<br />

}<br />

//<br />

// Function 2:<br />

//<br />

case(2)<br />

{<br />

… function 2 code …<br />

Return(Buffer(){0x00})<br />

}<br />

case(3) { … function 3 code …}<br />

case(4) { … function 4 code …}<br />

case(5) { if (LLess(Arg1,1) BreakPoint; … function 5 code … }<br />

case(6) { if (LLess(Arg1,2) BreakPoint; … function 6 code … )<br />

case(7) { if (LLess(Arg1,3) BreakPoint; … function 7 code … )<br />

default {BreakPoint }<br />

}<br />

Version 6.0 533

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

Saved successfully!

Ooh no, something went wrong!