From: Kamala Narasimhan Date: Wed, 18 Feb 2009 20:53:36 +0000 (-0500) Subject: Sleep button support for guest. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cb821cc2d92d5a9c2bfd05411f371cdfeab3a629;p=xenclient%2Fxen.git Sleep button support for guest. --- diff --git a/tools/firmware/hvmloader/acpi/ssdt_pm.asl b/tools/firmware/hvmloader/acpi/ssdt_pm.asl index 077f895..38714c8 100644 --- a/tools/firmware/hvmloader/acpi/ssdt_pm.asl +++ b/tools/firmware/hvmloader/acpi/ssdt_pm.asl @@ -298,6 +298,21 @@ DefinitionBlock ("SSDT_PM.aml", "SSDT", 2, "Xen", "HVM", 0) Release (SYNC) } + Method (E0, 0, NotSerialized) + { + If (\_SB.SLP) + { + Store (One, \_SB.SLP) + Notify (\_SB.SLPB, 0x80) + } + + if (\_SB.WAK) + { + Store (One, \_SB.WAK) + Notify (\_SB.SLPB, 0x2) + } + } + Method (E1, 0, NotSerialized) { If (\_SB.SLP) @@ -361,7 +376,18 @@ DefinitionBlock ("SSDT_PM.aml", "SSDT", 2, "Xen", "HVM", 0) Name (_PRW, Package (0x02) { 0x01, - 0x04 /*Change to 3 */ + 0x04 + }) + } + + Device (SLPB) + { + Name (_HID, EisaId ("PNP0C0E")) + + Name (_PRW, Package (0x02) + { + 0x01, + 0x04 }) } @@ -508,6 +534,11 @@ DefinitionBlock ("SSDT_PM.aml", "SSDT", 2, "Xen", "HVM", 0) */ Scope (\_GPE) { + Method (_L00, 0, NotSerialized) + { + \_SB.E0() + } + Method (_L01, 0, NotSerialized) { \_SB.E1() diff --git a/tools/firmware/hvmloader/acpi/ssdt_pm.h b/tools/firmware/hvmloader/acpi/ssdt_pm.h index a1887cd..0820ca1 100644 --- a/tools/firmware/hvmloader/acpi/ssdt_pm.h +++ b/tools/firmware/hvmloader/acpi/ssdt_pm.h @@ -5,18 +5,18 @@ * Copyright (C) 2000 - 2006 Intel Corporation * Supports ACPI Specification Revision 3.0a * - * Compilation of "ssdt_pm.asl" - Fri Nov 14 16:09:54 2008 + * Compilation of "ssdt_pm.asl" - Wed Feb 18 11:34:39 2009 * * C source code output * */ unsigned char AmlCode_PM[] = { - 0x53,0x53,0x44,0x54,0x24,0x07,0x00,0x00, /* 00000000 "SSDT$..." */ - 0x02,0x73,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 ".sXen..." */ + 0x53,0x53,0x44,0x54,0xA4,0x07,0x00,0x00, /* 00000000 "SSDT...." */ + 0x02,0x2D,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 ".-Xen..." */ 0x48,0x56,0x4D,0x00,0x00,0x00,0x00,0x00, /* 00000010 "HVM....." */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x09,0x11,0x06,0x20,0x10,0x45,0x6C,0x5C, /* 00000020 "... .El\" */ + 0x09,0x11,0x06,0x20,0x10,0x43,0x73,0x5C, /* 00000020 "... .Cs\" */ 0x5F,0x53,0x42,0x5F,0x5B,0x80,0x44,0x42, /* 00000028 "_SB_[.DB" */ 0x47,0x41,0x01,0x0B,0x40,0xB0,0x01,0x5B, /* 00000030 "GA..@..[" */ 0x81,0x0B,0x44,0x42,0x47,0x41,0x01,0x44, /* 00000038 "..DBGA.D" */ @@ -123,122 +123,138 @@ unsigned char AmlCode_PM[] = 0x50,0x39,0x54,0x4D,0x50,0x5F,0x60,0xA4, /* 00000360 "P9TMP_`." */ 0x54,0x4D,0x50,0x5F,0x14,0x0C,0x52,0x45, /* 00000368 "TMP_..RE" */ 0x4C,0x5F,0x00,0x5B,0x27,0x53,0x59,0x4E, /* 00000370 "L_.['SYN" */ - 0x43,0x14,0x41,0x05,0x45,0x31,0x5F,0x5F, /* 00000378 "C.A.E1__" */ + 0x43,0x14,0x41,0x05,0x45,0x30,0x5F,0x5F, /* 00000378 "C.A.E0__" */ 0x00,0xA0,0x24,0x5C,0x2E,0x5F,0x53,0x42, /* 00000380 "..$\._SB" */ 0x5F,0x53,0x4C,0x50,0x5F,0x70,0x01,0x5C, /* 00000388 "_SLP_p.\" */ 0x2E,0x5F,0x53,0x42,0x5F,0x53,0x4C,0x50, /* 00000390 "._SB_SLP" */ 0x5F,0x86,0x5C,0x2E,0x5F,0x53,0x42,0x5F, /* 00000398 "_.\._SB_" */ - 0x50,0x42,0x54,0x4E,0x0A,0x80,0xA0,0x24, /* 000003A0 "PBTN...$" */ + 0x53,0x4C,0x50,0x42,0x0A,0x80,0xA0,0x24, /* 000003A0 "SLPB...$" */ 0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x57,0x41, /* 000003A8 "\._SB_WA" */ 0x4B,0x5F,0x70,0x01,0x5C,0x2E,0x5F,0x53, /* 000003B0 "K_p.\._S" */ 0x42,0x5F,0x57,0x41,0x4B,0x5F,0x86,0x5C, /* 000003B8 "B_WAK_.\" */ - 0x2E,0x5F,0x53,0x42,0x5F,0x50,0x42,0x54, /* 000003C0 "._SB_PBT" */ - 0x4E,0x0A,0x02,0x14,0x13,0x45,0x31,0x43, /* 000003C8 "N....E1C" */ - 0x5F,0x00,0x86,0x5C,0x2E,0x5F,0x53,0x42, /* 000003D0 "_..\._SB" */ - 0x5F,0x41,0x43,0x5F,0x5F,0x0A,0x80,0x14, /* 000003D8 "_AC__..." */ - 0x13,0x45,0x31,0x37,0x5F,0x00,0x86,0x5C, /* 000003E0 ".E17_..\" */ - 0x2E,0x5F,0x53,0x42,0x5F,0x4C,0x49,0x44, /* 000003E8 "._SB_LID" */ - 0x5F,0x0A,0x80,0x5B,0x82,0x48,0x05,0x4C, /* 000003F0 "_..[.H.L" */ - 0x49,0x44,0x5F,0x08,0x5F,0x48,0x49,0x44, /* 000003F8 "ID_._HID" */ - 0x0C,0x41,0xD0,0x0C,0x0D,0x14,0x1D,0x5F, /* 00000400 ".A....._" */ - 0x4C,0x49,0x44,0x00,0x70,0x5C,0x2E,0x5F, /* 00000408 "LID.p\._" */ - 0x53,0x42,0x5F,0x50,0x38,0x38,0x5F,0x60, /* 00000410 "SB_P88_`" */ - 0xA0,0x08,0x7B,0x60,0x0A,0x04,0x00,0xA4, /* 00000418 "..{`...." */ - 0x01,0xA4,0x00,0x08,0x5F,0x50,0x52,0x57, /* 00000420 "...._PRW" */ - 0x12,0x06,0x02,0x0A,0x17,0x0A,0x03,0x14, /* 00000428 "........" */ - 0x1D,0x5F,0x50,0x53,0x57,0x01,0x70,0x5C, /* 00000430 "._PSW.p\" */ - 0x2E,0x5F,0x53,0x42,0x5F,0x50,0x38,0x38, /* 00000438 "._SB_P88" */ - 0x5F,0x60,0xA0,0x08,0x7B,0x60,0x0A,0x04, /* 00000440 "_`..{`.." */ - 0x00,0xA4,0x01,0xA4,0x00,0x5B,0x82,0x1A, /* 00000448 ".....[.." */ - 0x50,0x42,0x54,0x4E,0x08,0x5F,0x48,0x49, /* 00000450 "PBTN._HI" */ - 0x44,0x0C,0x41,0xD0,0x0C,0x0C,0x08,0x5F, /* 00000458 "D.A...._" */ - 0x50,0x52,0x57,0x12,0x05,0x02,0x01,0x0A, /* 00000460 "PRW....." */ - 0x04,0x5B,0x82,0x41,0x05,0x41,0x43,0x5F, /* 00000468 ".[.A.AC_" */ - 0x5F,0x08,0x5F,0x48,0x49,0x44,0x0D,0x41, /* 00000470 "_._HID.A" */ - 0x43,0x50,0x49,0x30,0x30,0x30,0x33,0x00, /* 00000478 "CPI0003." */ - 0x08,0x5F,0x50,0x43,0x4C,0x12,0x0F,0x03, /* 00000480 "._PCL..." */ - 0x5C,0x5F,0x53,0x42,0x5F,0x42,0x41,0x54, /* 00000488 "\_SB_BAT" */ - 0x30,0x42,0x41,0x54,0x31,0x14,0x1C,0x5F, /* 00000490 "0BAT1.._" */ - 0x50,0x53,0x52,0x00,0x70,0x5C,0x2E,0x5F, /* 00000498 "PSR.p\._" */ - 0x53,0x42,0x5F,0x50,0x38,0x38,0x5F,0x60, /* 000004A0 "SB_P88_`" */ - 0xA0,0x07,0x7B,0x60,0x01,0x00,0xA4,0x01, /* 000004A8 "..{`...." */ - 0xA4,0x00,0x14,0x09,0x5F,0x53,0x54,0x41, /* 000004B0 "...._STA" */ - 0x00,0xA4,0x0A,0x0F,0x08,0x42,0x49,0x46, /* 000004B8 ".....BIF" */ - 0x50,0x12,0x02,0x0D,0x14,0x49,0x0C,0x42, /* 000004C0 "P....I.B" */ - 0x49,0x46,0x5F,0x01,0x41,0x43,0x51,0x52, /* 000004C8 "IF_.ACQR" */ - 0x49,0x4E,0x49,0x54,0x01,0x49,0x4E,0x49, /* 000004D0 "INIT.INI" */ - 0x54,0x68,0x48,0x4C,0x50,0x35,0x70,0x48, /* 000004D8 "ThHLP5pH" */ - 0x4C,0x50,0x37,0x88,0x42,0x49,0x46,0x50, /* 000004E0 "LP7.BIFP" */ - 0x00,0x00,0x70,0x48,0x4C,0x50,0x37,0x88, /* 000004E8 "..pHLP7." */ - 0x42,0x49,0x46,0x50,0x01,0x00,0x70,0x48, /* 000004F0 "BIFP..pH" */ - 0x4C,0x50,0x37,0x88,0x42,0x49,0x46,0x50, /* 000004F8 "LP7.BIFP" */ - 0x0A,0x02,0x00,0x70,0x48,0x4C,0x50,0x37, /* 00000500 "...pHLP7" */ - 0x88,0x42,0x49,0x46,0x50,0x0A,0x03,0x00, /* 00000508 ".BIFP..." */ - 0x70,0x48,0x4C,0x50,0x37,0x88,0x42,0x49, /* 00000510 "pHLP7.BI" */ - 0x46,0x50,0x0A,0x04,0x00,0x70,0x48,0x4C, /* 00000518 "FP...pHL" */ - 0x50,0x37,0x88,0x42,0x49,0x46,0x50,0x0A, /* 00000520 "P7.BIFP." */ - 0x05,0x00,0x70,0x48,0x4C,0x50,0x37,0x88, /* 00000528 "..pHLP7." */ - 0x42,0x49,0x46,0x50,0x0A,0x06,0x00,0x70, /* 00000530 "BIFP...p" */ - 0x48,0x4C,0x50,0x37,0x88,0x42,0x49,0x46, /* 00000538 "HLP7.BIF" */ - 0x50,0x0A,0x07,0x00,0x70,0x48,0x4C,0x50, /* 00000540 "P...pHLP" */ - 0x37,0x88,0x42,0x49,0x46,0x50,0x0A,0x08, /* 00000548 "7.BIFP.." */ - 0x00,0x70,0x48,0x4C,0x50,0x41,0x88,0x42, /* 00000550 ".pHLPA.B" */ - 0x49,0x46,0x50,0x0A,0x09,0x00,0x70,0x48, /* 00000558 "IFP...pH" */ - 0x4C,0x50,0x41,0x88,0x42,0x49,0x46,0x50, /* 00000560 "LPA.BIFP" */ - 0x0A,0x0A,0x00,0x70,0x48,0x4C,0x50,0x41, /* 00000568 "...pHLPA" */ - 0x88,0x42,0x49,0x46,0x50,0x0A,0x0B,0x00, /* 00000570 ".BIFP..." */ - 0x70,0x48,0x4C,0x50,0x41,0x88,0x42,0x49, /* 00000578 "pHLPA.BI" */ - 0x46,0x50,0x0A,0x0C,0x00,0x52,0x45,0x4C, /* 00000580 "FP...REL" */ - 0x5F,0xA4,0x42,0x49,0x46,0x50,0x5B,0x82, /* 00000588 "_.BIFP[." */ - 0x41,0x0B,0x42,0x41,0x54,0x30,0x08,0x5F, /* 00000590 "A.BAT0._" */ - 0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C,0x0A, /* 00000598 "HID.A..." */ - 0x08,0x5F,0x55,0x49,0x44,0x01,0x08,0x5F, /* 000005A0 "._UID.._" */ - 0x50,0x43,0x4C,0x12,0x07,0x01,0x5C,0x5F, /* 000005A8 "PCL...\_" */ - 0x53,0x42,0x5F,0x14,0x1F,0x5F,0x53,0x54, /* 000005B0 "SB_.._ST" */ - 0x41,0x00,0x70,0x5C,0x2E,0x5F,0x53,0x42, /* 000005B8 "A.p\._SB" */ - 0x5F,0x50,0x38,0x38,0x5F,0x60,0xA0,0x09, /* 000005C0 "_P88_`.." */ - 0x7B,0x60,0x0A,0x02,0x00,0xA4,0x0A,0x1F, /* 000005C8 "{`......" */ - 0xA4,0x0A,0x0F,0x14,0x0F,0x5F,0x42,0x49, /* 000005D0 "....._BI" */ - 0x46,0x00,0x70,0x42,0x49,0x46,0x5F,0x01, /* 000005D8 "F.pBIF_." */ - 0x60,0xA4,0x60,0x14,0x4D,0x05,0x5F,0x42, /* 000005E0 "`.`.M._B" */ - 0x53,0x54,0x00,0x41,0x43,0x51,0x52,0x49, /* 000005E8 "ST.ACQRI" */ - 0x4E,0x49,0x54,0x0A,0x02,0x49,0x4E,0x49, /* 000005F0 "NIT..INI" */ - 0x54,0x01,0x48,0x4C,0x50,0x35,0x08,0x42, /* 000005F8 "T.HLP5.B" */ - 0x53,0x54,0x30,0x12,0x02,0x04,0x70,0x48, /* 00000600 "ST0...pH" */ - 0x4C,0x50,0x37,0x88,0x42,0x53,0x54,0x30, /* 00000608 "LP7.BST0" */ - 0x00,0x00,0x70,0x48,0x4C,0x50,0x37,0x88, /* 00000610 "..pHLP7." */ - 0x42,0x53,0x54,0x30,0x01,0x00,0x70,0x48, /* 00000618 "BST0..pH" */ - 0x4C,0x50,0x37,0x88,0x42,0x53,0x54,0x30, /* 00000620 "LP7.BST0" */ - 0x0A,0x02,0x00,0x70,0x48,0x4C,0x50,0x37, /* 00000628 "...pHLP7" */ - 0x88,0x42,0x53,0x54,0x30,0x0A,0x03,0x00, /* 00000630 ".BST0..." */ - 0x52,0x45,0x4C,0x5F,0xA4,0x42,0x53,0x54, /* 00000638 "REL_.BST" */ - 0x30,0x5B,0x82,0x47,0x0A,0x42,0x41,0x54, /* 00000640 "0[.G.BAT" */ - 0x31,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00000648 "1._HID.A" */ - 0xD0,0x0C,0x0A,0x08,0x5F,0x55,0x49,0x44, /* 00000650 "...._UID" */ - 0x0A,0x02,0x08,0x5F,0x50,0x43,0x4C,0x12, /* 00000658 "..._PCL." */ - 0x07,0x01,0x5C,0x5F,0x53,0x42,0x5F,0x14, /* 00000660 "..\_SB_." */ - 0x09,0x5F,0x53,0x54,0x41,0x00,0xA4,0x0A, /* 00000668 "._STA..." */ - 0x0F,0x14,0x19,0x5F,0x42,0x49,0x46,0x00, /* 00000670 "..._BIF." */ - 0x70,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x50, /* 00000678 "p\._SB_P" */ - 0x42,0x32,0x5F,0x60,0xA4,0x42,0x49,0x46, /* 00000680 "B2_`.BIF" */ - 0x5F,0x0A,0x02,0x14,0x4E,0x05,0x5F,0x42, /* 00000688 "_...N._B" */ - 0x53,0x54,0x00,0x41,0x43,0x51,0x52,0x49, /* 00000690 "ST.ACQRI" */ - 0x4E,0x49,0x54,0x0A,0x02,0x49,0x4E,0x49, /* 00000698 "NIT..INI" */ - 0x54,0x0A,0x02,0x48,0x4C,0x50,0x35,0x08, /* 000006A0 "T..HLP5." */ - 0x42,0x53,0x54,0x31,0x12,0x02,0x04,0x70, /* 000006A8 "BST1...p" */ - 0x48,0x4C,0x50,0x37,0x88,0x42,0x53,0x54, /* 000006B0 "HLP7.BST" */ - 0x31,0x00,0x00,0x70,0x48,0x4C,0x50,0x37, /* 000006B8 "1..pHLP7" */ - 0x88,0x42,0x53,0x54,0x31,0x01,0x00,0x70, /* 000006C0 ".BST1..p" */ - 0x48,0x4C,0x50,0x37,0x88,0x42,0x53,0x54, /* 000006C8 "HLP7.BST" */ - 0x31,0x0A,0x02,0x00,0x70,0x48,0x4C,0x50, /* 000006D0 "1...pHLP" */ - 0x37,0x88,0x42,0x53,0x54,0x31,0x0A,0x03, /* 000006D8 "7.BST1.." */ - 0x00,0x52,0x45,0x4C,0x5F,0xA4,0x42,0x53, /* 000006E0 ".REL_.BS" */ - 0x54,0x31,0x10,0x39,0x5C,0x5F,0x47,0x50, /* 000006E8 "T1.9\_GP" */ - 0x45,0x14,0x10,0x5F,0x4C,0x30,0x31,0x00, /* 000006F0 "E.._L01." */ - 0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x45,0x31, /* 000006F8 "\._SB_E1" */ - 0x5F,0x5F,0x14,0x10,0x5F,0x4C,0x31,0x43, /* 00000700 "__.._L1C" */ - 0x00,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x45, /* 00000708 ".\._SB_E" */ - 0x31,0x43,0x5F,0x14,0x10,0x5F,0x4C,0x31, /* 00000710 "1C_.._L1" */ - 0x37,0x00,0x5C,0x2E,0x5F,0x53,0x42,0x5F, /* 00000718 "7.\._SB_" */ + 0x2E,0x5F,0x53,0x42,0x5F,0x53,0x4C,0x50, /* 000003C0 "._SB_SLP" */ + 0x42,0x0A,0x02,0x14,0x41,0x05,0x45,0x31, /* 000003C8 "B...A.E1" */ + 0x5F,0x5F,0x00,0xA0,0x24,0x5C,0x2E,0x5F, /* 000003D0 "__..$\._" */ + 0x53,0x42,0x5F,0x53,0x4C,0x50,0x5F,0x70, /* 000003D8 "SB_SLP_p" */ + 0x01,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x53, /* 000003E0 ".\._SB_S" */ + 0x4C,0x50,0x5F,0x86,0x5C,0x2E,0x5F,0x53, /* 000003E8 "LP_.\._S" */ + 0x42,0x5F,0x50,0x42,0x54,0x4E,0x0A,0x80, /* 000003F0 "B_PBTN.." */ + 0xA0,0x24,0x5C,0x2E,0x5F,0x53,0x42,0x5F, /* 000003F8 ".$\._SB_" */ + 0x57,0x41,0x4B,0x5F,0x70,0x01,0x5C,0x2E, /* 00000400 "WAK_p.\." */ + 0x5F,0x53,0x42,0x5F,0x57,0x41,0x4B,0x5F, /* 00000408 "_SB_WAK_" */ + 0x86,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x50, /* 00000410 ".\._SB_P" */ + 0x42,0x54,0x4E,0x0A,0x02,0x14,0x13,0x45, /* 00000418 "BTN....E" */ + 0x31,0x43,0x5F,0x00,0x86,0x5C,0x2E,0x5F, /* 00000420 "1C_..\._" */ + 0x53,0x42,0x5F,0x41,0x43,0x5F,0x5F,0x0A, /* 00000428 "SB_AC__." */ + 0x80,0x14,0x13,0x45,0x31,0x37,0x5F,0x00, /* 00000430 "...E17_." */ + 0x86,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x4C, /* 00000438 ".\._SB_L" */ + 0x49,0x44,0x5F,0x0A,0x80,0x5B,0x82,0x48, /* 00000440 "ID_..[.H" */ + 0x05,0x4C,0x49,0x44,0x5F,0x08,0x5F,0x48, /* 00000448 ".LID_._H" */ + 0x49,0x44,0x0C,0x41,0xD0,0x0C,0x0D,0x14, /* 00000450 "ID.A...." */ + 0x1D,0x5F,0x4C,0x49,0x44,0x00,0x70,0x5C, /* 00000458 "._LID.p\" */ + 0x2E,0x5F,0x53,0x42,0x5F,0x50,0x38,0x38, /* 00000460 "._SB_P88" */ + 0x5F,0x60,0xA0,0x08,0x7B,0x60,0x0A,0x04, /* 00000468 "_`..{`.." */ + 0x00,0xA4,0x01,0xA4,0x00,0x08,0x5F,0x50, /* 00000470 "......_P" */ + 0x52,0x57,0x12,0x06,0x02,0x0A,0x17,0x0A, /* 00000478 "RW......" */ + 0x03,0x14,0x1D,0x5F,0x50,0x53,0x57,0x01, /* 00000480 "..._PSW." */ + 0x70,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x50, /* 00000488 "p\._SB_P" */ + 0x38,0x38,0x5F,0x60,0xA0,0x08,0x7B,0x60, /* 00000490 "88_`..{`" */ + 0x0A,0x04,0x00,0xA4,0x01,0xA4,0x00,0x5B, /* 00000498 ".......[" */ + 0x82,0x1A,0x50,0x42,0x54,0x4E,0x08,0x5F, /* 000004A0 "..PBTN._" */ + 0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C,0x0C, /* 000004A8 "HID.A..." */ + 0x08,0x5F,0x50,0x52,0x57,0x12,0x05,0x02, /* 000004B0 "._PRW..." */ + 0x01,0x0A,0x04,0x5B,0x82,0x1A,0x53,0x4C, /* 000004B8 "...[..SL" */ + 0x50,0x42,0x08,0x5F,0x48,0x49,0x44,0x0C, /* 000004C0 "PB._HID." */ + 0x41,0xD0,0x0C,0x0E,0x08,0x5F,0x50,0x52, /* 000004C8 "A...._PR" */ + 0x57,0x12,0x05,0x02,0x01,0x0A,0x04,0x5B, /* 000004D0 "W......[" */ + 0x82,0x41,0x05,0x41,0x43,0x5F,0x5F,0x08, /* 000004D8 ".A.AC__." */ + 0x5F,0x48,0x49,0x44,0x0D,0x41,0x43,0x50, /* 000004E0 "_HID.ACP" */ + 0x49,0x30,0x30,0x30,0x33,0x00,0x08,0x5F, /* 000004E8 "I0003.._" */ + 0x50,0x43,0x4C,0x12,0x0F,0x03,0x5C,0x5F, /* 000004F0 "PCL...\_" */ + 0x53,0x42,0x5F,0x42,0x41,0x54,0x30,0x42, /* 000004F8 "SB_BAT0B" */ + 0x41,0x54,0x31,0x14,0x1C,0x5F,0x50,0x53, /* 00000500 "AT1.._PS" */ + 0x52,0x00,0x70,0x5C,0x2E,0x5F,0x53,0x42, /* 00000508 "R.p\._SB" */ + 0x5F,0x50,0x38,0x38,0x5F,0x60,0xA0,0x07, /* 00000510 "_P88_`.." */ + 0x7B,0x60,0x01,0x00,0xA4,0x01,0xA4,0x00, /* 00000518 "{`......" */ + 0x14,0x09,0x5F,0x53,0x54,0x41,0x00,0xA4, /* 00000520 ".._STA.." */ + 0x0A,0x0F,0x08,0x42,0x49,0x46,0x50,0x12, /* 00000528 "...BIFP." */ + 0x02,0x0D,0x14,0x49,0x0C,0x42,0x49,0x46, /* 00000530 "...I.BIF" */ + 0x5F,0x01,0x41,0x43,0x51,0x52,0x49,0x4E, /* 00000538 "_.ACQRIN" */ + 0x49,0x54,0x01,0x49,0x4E,0x49,0x54,0x68, /* 00000540 "IT.INITh" */ + 0x48,0x4C,0x50,0x35,0x70,0x48,0x4C,0x50, /* 00000548 "HLP5pHLP" */ + 0x37,0x88,0x42,0x49,0x46,0x50,0x00,0x00, /* 00000550 "7.BIFP.." */ + 0x70,0x48,0x4C,0x50,0x37,0x88,0x42,0x49, /* 00000558 "pHLP7.BI" */ + 0x46,0x50,0x01,0x00,0x70,0x48,0x4C,0x50, /* 00000560 "FP..pHLP" */ + 0x37,0x88,0x42,0x49,0x46,0x50,0x0A,0x02, /* 00000568 "7.BIFP.." */ + 0x00,0x70,0x48,0x4C,0x50,0x37,0x88,0x42, /* 00000570 ".pHLP7.B" */ + 0x49,0x46,0x50,0x0A,0x03,0x00,0x70,0x48, /* 00000578 "IFP...pH" */ + 0x4C,0x50,0x37,0x88,0x42,0x49,0x46,0x50, /* 00000580 "LP7.BIFP" */ + 0x0A,0x04,0x00,0x70,0x48,0x4C,0x50,0x37, /* 00000588 "...pHLP7" */ + 0x88,0x42,0x49,0x46,0x50,0x0A,0x05,0x00, /* 00000590 ".BIFP..." */ + 0x70,0x48,0x4C,0x50,0x37,0x88,0x42,0x49, /* 00000598 "pHLP7.BI" */ + 0x46,0x50,0x0A,0x06,0x00,0x70,0x48,0x4C, /* 000005A0 "FP...pHL" */ + 0x50,0x37,0x88,0x42,0x49,0x46,0x50,0x0A, /* 000005A8 "P7.BIFP." */ + 0x07,0x00,0x70,0x48,0x4C,0x50,0x37,0x88, /* 000005B0 "..pHLP7." */ + 0x42,0x49,0x46,0x50,0x0A,0x08,0x00,0x70, /* 000005B8 "BIFP...p" */ + 0x48,0x4C,0x50,0x41,0x88,0x42,0x49,0x46, /* 000005C0 "HLPA.BIF" */ + 0x50,0x0A,0x09,0x00,0x70,0x48,0x4C,0x50, /* 000005C8 "P...pHLP" */ + 0x41,0x88,0x42,0x49,0x46,0x50,0x0A,0x0A, /* 000005D0 "A.BIFP.." */ + 0x00,0x70,0x48,0x4C,0x50,0x41,0x88,0x42, /* 000005D8 ".pHLPA.B" */ + 0x49,0x46,0x50,0x0A,0x0B,0x00,0x70,0x48, /* 000005E0 "IFP...pH" */ + 0x4C,0x50,0x41,0x88,0x42,0x49,0x46,0x50, /* 000005E8 "LPA.BIFP" */ + 0x0A,0x0C,0x00,0x52,0x45,0x4C,0x5F,0xA4, /* 000005F0 "...REL_." */ + 0x42,0x49,0x46,0x50,0x5B,0x82,0x41,0x0B, /* 000005F8 "BIFP[.A." */ + 0x42,0x41,0x54,0x30,0x08,0x5F,0x48,0x49, /* 00000600 "BAT0._HI" */ + 0x44,0x0C,0x41,0xD0,0x0C,0x0A,0x08,0x5F, /* 00000608 "D.A...._" */ + 0x55,0x49,0x44,0x01,0x08,0x5F,0x50,0x43, /* 00000610 "UID.._PC" */ + 0x4C,0x12,0x07,0x01,0x5C,0x5F,0x53,0x42, /* 00000618 "L...\_SB" */ + 0x5F,0x14,0x1F,0x5F,0x53,0x54,0x41,0x00, /* 00000620 "_.._STA." */ + 0x70,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x50, /* 00000628 "p\._SB_P" */ + 0x38,0x38,0x5F,0x60,0xA0,0x09,0x7B,0x60, /* 00000630 "88_`..{`" */ + 0x0A,0x02,0x00,0xA4,0x0A,0x1F,0xA4,0x0A, /* 00000638 "........" */ + 0x0F,0x14,0x0F,0x5F,0x42,0x49,0x46,0x00, /* 00000640 "..._BIF." */ + 0x70,0x42,0x49,0x46,0x5F,0x01,0x60,0xA4, /* 00000648 "pBIF_.`." */ + 0x60,0x14,0x4D,0x05,0x5F,0x42,0x53,0x54, /* 00000650 "`.M._BST" */ + 0x00,0x41,0x43,0x51,0x52,0x49,0x4E,0x49, /* 00000658 ".ACQRINI" */ + 0x54,0x0A,0x02,0x49,0x4E,0x49,0x54,0x01, /* 00000660 "T..INIT." */ + 0x48,0x4C,0x50,0x35,0x08,0x42,0x53,0x54, /* 00000668 "HLP5.BST" */ + 0x30,0x12,0x02,0x04,0x70,0x48,0x4C,0x50, /* 00000670 "0...pHLP" */ + 0x37,0x88,0x42,0x53,0x54,0x30,0x00,0x00, /* 00000678 "7.BST0.." */ + 0x70,0x48,0x4C,0x50,0x37,0x88,0x42,0x53, /* 00000680 "pHLP7.BS" */ + 0x54,0x30,0x01,0x00,0x70,0x48,0x4C,0x50, /* 00000688 "T0..pHLP" */ + 0x37,0x88,0x42,0x53,0x54,0x30,0x0A,0x02, /* 00000690 "7.BST0.." */ + 0x00,0x70,0x48,0x4C,0x50,0x37,0x88,0x42, /* 00000698 ".pHLP7.B" */ + 0x53,0x54,0x30,0x0A,0x03,0x00,0x52,0x45, /* 000006A0 "ST0...RE" */ + 0x4C,0x5F,0xA4,0x42,0x53,0x54,0x30,0x5B, /* 000006A8 "L_.BST0[" */ + 0x82,0x47,0x0A,0x42,0x41,0x54,0x31,0x08, /* 000006B0 ".G.BAT1." */ + 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C, /* 000006B8 "_HID.A.." */ + 0x0A,0x08,0x5F,0x55,0x49,0x44,0x0A,0x02, /* 000006C0 ".._UID.." */ + 0x08,0x5F,0x50,0x43,0x4C,0x12,0x07,0x01, /* 000006C8 "._PCL..." */ + 0x5C,0x5F,0x53,0x42,0x5F,0x14,0x09,0x5F, /* 000006D0 "\_SB_.._" */ + 0x53,0x54,0x41,0x00,0xA4,0x0A,0x0F,0x14, /* 000006D8 "STA....." */ + 0x19,0x5F,0x42,0x49,0x46,0x00,0x70,0x5C, /* 000006E0 "._BIF.p\" */ + 0x2E,0x5F,0x53,0x42,0x5F,0x50,0x42,0x32, /* 000006E8 "._SB_PB2" */ + 0x5F,0x60,0xA4,0x42,0x49,0x46,0x5F,0x0A, /* 000006F0 "_`.BIF_." */ + 0x02,0x14,0x4E,0x05,0x5F,0x42,0x53,0x54, /* 000006F8 "..N._BST" */ + 0x00,0x41,0x43,0x51,0x52,0x49,0x4E,0x49, /* 00000700 ".ACQRINI" */ + 0x54,0x0A,0x02,0x49,0x4E,0x49,0x54,0x0A, /* 00000708 "T..INIT." */ + 0x02,0x48,0x4C,0x50,0x35,0x08,0x42,0x53, /* 00000710 ".HLP5.BS" */ + 0x54,0x31,0x12,0x02,0x04,0x70,0x48,0x4C, /* 00000718 "T1...pHL" */ + 0x50,0x37,0x88,0x42,0x53,0x54,0x31,0x00, /* 00000720 "P7.BST1." */ + 0x00,0x70,0x48,0x4C,0x50,0x37,0x88,0x42, /* 00000728 ".pHLP7.B" */ + 0x53,0x54,0x31,0x01,0x00,0x70,0x48,0x4C, /* 00000730 "ST1..pHL" */ + 0x50,0x37,0x88,0x42,0x53,0x54,0x31,0x0A, /* 00000738 "P7.BST1." */ + 0x02,0x00,0x70,0x48,0x4C,0x50,0x37,0x88, /* 00000740 "..pHLP7." */ + 0x42,0x53,0x54,0x31,0x0A,0x03,0x00,0x52, /* 00000748 "BST1...R" */ + 0x45,0x4C,0x5F,0xA4,0x42,0x53,0x54,0x31, /* 00000750 "EL_.BST1" */ + 0x10,0x4B,0x04,0x5C,0x5F,0x47,0x50,0x45, /* 00000758 ".K.\_GPE" */ + 0x14,0x10,0x5F,0x4C,0x30,0x30,0x00,0x5C, /* 00000760 ".._L00.\" */ + 0x2E,0x5F,0x53,0x42,0x5F,0x45,0x30,0x5F, /* 00000768 "._SB_E0_" */ + 0x5F,0x14,0x10,0x5F,0x4C,0x30,0x31,0x00, /* 00000770 "_.._L01." */ + 0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x45,0x31, /* 00000778 "\._SB_E1" */ + 0x5F,0x5F,0x14,0x10,0x5F,0x4C,0x31,0x43, /* 00000780 "__.._L1C" */ + 0x00,0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x45, /* 00000788 ".\._SB_E" */ + 0x31,0x43,0x5F,0x14,0x10,0x5F,0x4C,0x31, /* 00000790 "1C_.._L1" */ + 0x37,0x00,0x5C,0x2E,0x5F,0x53,0x42,0x5F, /* 00000798 "7.\._SB_" */ 0x45,0x31,0x37,0x5F, }; diff --git a/tools/xenpmd/acpi-events.c b/tools/xenpmd/acpi-events.c index f4b3fe7..7abecb8 100644 --- a/tools/xenpmd/acpi-events.c +++ b/tools/xenpmd/acpi-events.c @@ -37,10 +37,11 @@ #define XS_AC_ADAPTER_STATE_PATH "/pm/ac_adapter" #define XS_LID_STATE_PATH "/pm/lid_state" -#define XS_AC_ADAPTER_EVENT_PATH "/pm/events/acadapterstatechanged" -#define XS_LID_EVENT_PATH "/pm/events/lidstatechanged" -#define XS_PBTN_EVENT_PATH "/pm/events/powerbuttonpressed" -#define XS_OEM_EVENT_PATH "/oem/event" +#define XS_AC_ADAPTER_EVENT_PATH "/pm/events/acadapterstatechanged" +#define XS_LID_EVENT_PATH "/pm/events/lidstatechanged" +#define XS_PBTN_EVENT_PATH "/pm/events/powerbuttonpressed" +#define XS_SBTN_EVENT_PATH "/pm/events/sleepbuttonpressed" +#define XS_OEM_EVENT_PATH "/oem/event" static int socket_fd; static pthread_t acpi_thread; @@ -92,6 +93,11 @@ void handle_pbtn_pressed_event(void) xs_write(xs, XBT_NULL, XS_PBTN_EVENT_PATH, "1", 1); } +void handle_sbtn_pressed_event(void) +{ + xs_write(xs, XBT_NULL, XS_SBTN_EVENT_PATH, "1", 1); +} + void handle_oem_event(void) { xs_write(xs, XBT_NULL, XS_OEM_EVENT_PATH, "1", 1); @@ -118,6 +124,12 @@ void process_acpi_message(char *acpi_buffer) return; } + if ( strstr(acpi_buffer, "SBTN") ) + { + handle_sbtn_pressed_event(); + return; + } + if ( strstr(acpi_buffer, "WMID") ) handle_oem_event(); }