]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOServicePM.h
xnu-3248.40.184.tar.gz
[apple/xnu.git] / iokit / IOKit / IOServicePM.h
index 2a2c4c4007e645301b9ec57c189f0311728b9c12..17662cb4e081a4e2b673800bc13fcb1fbd1cbb17 100644 (file)
@@ -47,8 +47,26 @@ class IOPMRequest;
 class IOPMRequestQueue;
 class IOPMCompletionQueue;
 
+typedef void (*IOPMCompletionAction)(void * target, void * param);
+
+// PM channels for IOReporting
+#ifndef kPMPowerStatesChID
+#define kPMPowerStatesChID  IOREPORT_MAKEID('P','M','S','t','H','i','s','t')
+#endif
+
+#ifndef kPMCurrStateChID
+#define kPMCurrStateChID  IOREPORT_MAKEID( 'P','M','C','u','r','S','t','\0' )
+#endif
+
+// state_id details in PM channels
+#define kPMReportPowerOn       0x01
+#define kPMReportDeviceUsable  0x02
+#define kPMReportLowPower      0x04
+
+
 typedef unsigned long       IOPMPowerStateIndex;
 typedef uint32_t            IOPMPowerChangeFlags;
+typedef uint32_t            IOPMRequestTag;
 
 struct IOPMDriverCallEntry {
     queue_chain_t   link;
@@ -56,6 +74,13 @@ struct IOPMDriverCallEntry {
     IOService *     target;
 };
 
+// Power clients (desires)
+extern const OSSymbol *     gIOPMPowerClientDevice;
+extern const OSSymbol *     gIOPMPowerClientDriver;
+extern const OSSymbol *     gIOPMPowerClientChildProxy;
+extern const OSSymbol *     gIOPMPowerClientChildren;
+extern const OSSymbol *     gIOPMPowerClientRootDomain;
+
 /* Binary compatibility with drivers that access pm_vars */
 #ifdef __LP64__
 #define PM_VARS_SUPPORT     0