]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOMessage.h
xnu-1699.24.8.tar.gz
[apple/xnu.git] / iokit / IOKit / IOMessage.h
index 77a1001aa573e7ef96ec716ea76aac526fcb968a..4a571b9d42ed186cfb750c5be8801e766f785b29 100644 (file)
@@ -7,7 +7,7 @@
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
+ * may notificationused to create, or enable the creation or redistribution of,
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
 #include <IOKit/IOReturn.h>
 #include <IOKit/IOTypes.h>
 
+/*!
+ * @header IOMessage.h
+ *
+ * Defines message type constants for several IOKit messaging API's.
+ *
+ */
+
 typedef UInt32 IOMessage;
 
 #define iokit_common_msg(message)          (UInt32)(sys_iokit|sub_iokit_common|message)
 #define iokit_family_msg(sub,message)      (UInt32)(sys_iokit|sub|message)
 
-/*! @defined iokit_vendor_specific_msg
-    @discussion iokit_vendor_specific_msg passes messages in the sub_iokit_vendor_specific
-    subsystem. It can be used to be generate messages that are used for private 
-    communication between vendor specific code with the  IOService::message() etc. APIs.
-*/
+/*! 
+ * @defined         iokit_vendor_specific_msg
+ * @discussion      iokit_vendor_specific_msg passes messages in the sub_iokit_vendor_specific
+ *                  subsystem. It can be used to generate messages that are used for private 
+ *                  communication between vendor specific code with the IOService::message() etc. APIs.
+ */
 #define iokit_vendor_specific_msg(message) (UInt32)(sys_iokit|sub_iokit_vendor_specific|message)
 
 #define kIOMessageServiceIsTerminated      iokit_common_msg(0x010)
@@ -54,29 +62,159 @@ typedef UInt32 IOMessage;
 
 #define kIOMessageServiceBusyStateChange   iokit_common_msg(0x120)
 
+#define kIOMessageConsoleSecurityChange    iokit_common_msg(0x128)
+
 #define kIOMessageServicePropertyChange    iokit_common_msg(0x130)
 
-#define kIOMessageCanDevicePowerOff        iokit_common_msg(0x200)
+#define kIOMessageCopyClientID             iokit_common_msg(0x330)
+
+#define kIOMessageSystemCapabilityChange   iokit_common_msg(0x340)
+#define kIOMessageDeviceSignaledWakeup     iokit_common_msg(0x350)
+
+
+/*!
+ * @defined         kIOMessageDeviceWillPowerOff
+ * @discussion      Indicates the device is about to move to a lower power state.
+ *                  Sent to IOKit interest notification clients of type <code>kIOAppPowerStateInterest</code>
+ *                  and <code>kIOGeneralInterest</code>.
+ */
 #define kIOMessageDeviceWillPowerOff       iokit_common_msg(0x210)
-#define kIOMessageDeviceWillNotPowerOff    iokit_common_msg(0x220)
+
+/*!
+ * @defined         kIOMessageDeviceHasPoweredOn
+ * @discussion      Indicates the device has just moved to a higher power state.
+ *                  Sent to IOKit interest notification clients of type <code>kIOAppPowerStateInterest</code>
+ *                  and <code>kIOGeneralInterest</code>.
+ */
 #define kIOMessageDeviceHasPoweredOn       iokit_common_msg(0x230)
 
-// IOService power mgt does not send
-//   kIOMessageDeviceWillPowerOn
-//   kIOMessageDeviceHasPoweredOff
-#define kIOMessageDeviceWillPowerOn        iokit_common_msg(0x215)
-#define kIOMessageDeviceHasPoweredOff      iokit_common_msg(0x225)
+/*! @group          In-kernel system shutdown and restart notifications
+ */
 
-#define kIOMessageCanSystemPowerOff        iokit_common_msg(0x240)
+/*!
+ * @defined         kIOMessageSystemWillPowerOff
+ * @discussion      Indicates an imminent system shutdown. Recipients have a limited 
+ *                  amount of time to respond, otherwise the system will timeout and 
+ *                  shutdown even without a response.
+ *                  Delivered to in-kernel IOKit drivers via <code>IOService::systemWillShutdown()</code>, 
+ *                  and to clients of <code>registerPrioritySleepWakeInterest()</code>.
+ *                  Never delivered to user space notification clients.
+ */
 #define kIOMessageSystemWillPowerOff       iokit_common_msg(0x250)
-#define kIOMessageSystemWillNotPowerOff    iokit_common_msg(0x260)
+
+/*!
+ * @defined         kIOMessageSystemWillRestart
+ * @discussion      Indicates an imminent system restart. Recipients have a limited 
+ *                  amount of time to respond, otherwise the system will timeout and 
+ *                  restart even without a response.
+ *                  Delivered to in-kernel IOKit drivers via <code>IOService::systemWillShutdown()</code>, 
+ *                  and to clients of <code>registerPrioritySleepWakeInterest()</code>.
+ *                  Never delivered to user space notification clients.
+ */
+#define kIOMessageSystemWillRestart        iokit_common_msg(0x310)
+
+/*!
+ * @defined         kIOMessageSystemPagingOff
+ * @discussion      Indicates an imminent system shutdown, paging device now unavailable.
+ *                                     Recipients have a limited amount of time to respond, otherwise the
+ *                                     system will timeout and shutdown even without a response.
+ *                  Delivered to clients of <code>registerPrioritySleepWakeInterest()</code>.
+ *                  Never delivered to user space notification clients.
+ */
+#define kIOMessageSystemPagingOff       iokit_common_msg(0x255)
+
+
+/*! @group          System sleep and wake notifications
+ */
+
+/*!
+ * @defined         kIOMessageCanSystemSleep
+ * @discussion      Announces/Requests permission to proceed to system sleep.
+ *                  Delivered to in-kernel IOKit drivers via <code>kIOGeneralInterest</code>
+ *                  and <code>kIOPriorityPowerStateInterest</code>.
+ *                  Delivered to user clients of <code>IORegisterForSystemPower</code>.
+ */
 #define kIOMessageCanSystemSleep           iokit_common_msg(0x270)
-#define kIOMessageSystemWillSleep          iokit_common_msg(0x280)
+
+/*!
+ * @defined         kIOMessageSystemWillNotSleep
+ * @discussion      Announces that the system has retracted a previous attempt to sleep; 
+ *                  it follows <code>kIOMessageCanSystemSleep</code>.
+ *                  Delivered to in-kernel IOKit drivers via <code>kIOGeneralInterest</code>
+ *                  and <code>kIOPriorityPowerStateInterest</code>.
+ *                  Delivered to user clients of <code>IORegisterForSystemPower</code>.
+ */
 #define kIOMessageSystemWillNotSleep       iokit_common_msg(0x290)
-#define kIOMessageSystemHasPoweredOn       iokit_common_msg(0x300)
-#define kIOMessageSystemWillRestart        iokit_common_msg(0x310)
+
+/*!
+ * @defined         kIOMessageSystemWillSleep
+ * @discussion      Announces that sleep is beginning.
+ *                  Delivered to in-kernel IOKit drivers via <code>kIOGeneralInterest</code>
+ *                  and <code>kIOPriorityPowerStateInterest</code>.
+ *                  Delivered to user clients of <code>IORegisterForSystemPower</code>.
+ */
+#define kIOMessageSystemWillSleep          iokit_common_msg(0x280)
+
+/*!
+ * @defined         kIOMessageSystemWillPowerOn
+ * @discussion      Announces that the system is beginning to power the device tree; most 
+ *                  devices are unavailable at this point..
+ *                  Delivered to in-kernel IOKit drivers via <code>kIOGeneralInterest</code>
+ *                  and <code>kIOPriorityPowerStateInterest</code>.
+ *                  Delivered to user clients of <code>IORegisterForSystemPower</code>.
+ */
 #define kIOMessageSystemWillPowerOn        iokit_common_msg(0x320)
 
-#define kIOMessageCopyClientID            iokit_common_msg(0x330)
+/*!
+ * @defined         kIOMessageSystemHasPoweredOn
+ * @discussion      Announces that the system and its devices have woken up.
+ *                  Delivered to in-kernel IOKit drivers via <code>kIOGeneralInterest</code>
+ *                  and <code>kIOPriorityPowerStateInterest</code>.
+ *                  Delivered to user clients of <code>IORegisterForSystemPower</code>.
+ */
+#define kIOMessageSystemHasPoweredOn       iokit_common_msg(0x300)
+
+/*! @group          Unused and deprecated notifications
+ */
+
+/*! 
+ * @defined         kIOMessageCanDevicePowerOff
+ * @discussion      Delivered to <code>kIOAppPowerStateInterest</code> clients of 
+ *                  devices that implement their own idle timeouts.
+ *                  This message type is almost never used.
+ */
+#define kIOMessageCanDevicePowerOff        iokit_common_msg(0x200)
+
+/*! 
+ * @defined         kIOMessageDeviceWillNotPowerOff
+ * @discussion      This IOKit interest notification is largely unused; 
+ *                  it's not very interesting.
+ */
+#define kIOMessageDeviceWillNotPowerOff    iokit_common_msg(0x220)
+
+/*! 
+ * @defined         kIOMessageSystemWillNotPowerOff
+ * @deprecated      This IOKit message is unused.
+ */
+#define kIOMessageSystemWillNotPowerOff    iokit_common_msg(0x260)
+
+/*!
+ * @defined         kIOMessageCanSystemPowerOff
+ * @deprecated      This IOKit message is unused.
+ */
+#define kIOMessageCanSystemPowerOff        iokit_common_msg(0x240)
+
+/*!
+ * @defined         kIOMessageDeviceWillPowerOn
+ * @discussion      IOService power mgt does not send kIOMessageDeviceWillPowerOn.
+ */
+#define kIOMessageDeviceWillPowerOn        iokit_common_msg(0x215)
+
+/*!
+ * @defined         kIOMessageDeviceHasPoweredOff
+ * @discussion      IOService power mgt does not send kIOMessageDeviceHasPoweredOff.
+ */
+#define kIOMessageDeviceHasPoweredOff      iokit_common_msg(0x225)
+
 
 #endif /* ! __IOKIT_IOMESSAGE_H */