]> xenbits.xen.org Git - xenclient/xen.git/commitdiff
Sleep button support for guest.
authorKamala Narasimhan <kamala.narasimhan@citrix.com>
Wed, 18 Feb 2009 20:53:36 +0000 (15:53 -0500)
committerKamala Narasimhan <kamala.narasimhan@citrix.com>
Wed, 18 Feb 2009 20:53:36 +0000 (15:53 -0500)
tools/firmware/hvmloader/acpi/ssdt_pm.asl
tools/firmware/hvmloader/acpi/ssdt_pm.h
tools/xenpmd/acpi-events.c

index 077f8951c8f4230331dc13dda64ff37608594308..38714c87e52314c13a862ec1c2af71230ba549ac 100644 (file)
@@ -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()
index a1887cd0e094b0d4f5b07e9a3369893736a8a878..0820ca13b83d9e47509773f04ce00d5025c7d765 100644 (file)
@@ -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,
 };
index f4b3fe7739e58e24db1a9d887fd80ad1d783f360..7abecb81d7d32ce80ff677d444455b8e560578ef 100644 (file)
 #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();
 }