]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOTimerEventSource.h
xnu-4903.221.2.tar.gz
[apple/xnu.git] / iokit / IOKit / IOTimerEventSource.h
index 91ab47cf0293988ce4b5100a388e130ee5df7f66..8ef49ef191cd9411a34a688f5f6a80beef9ac8b1 100644 (file)
@@ -159,6 +159,10 @@ public:
     @param sender The object that timed out. */
     typedef void (*Action)(OSObject *owner, IOTimerEventSource *sender);
 
+#ifdef __BLOCKS__
+    typedef void (^ActionBlock)(IOTimerEventSource *sender);
+#endif /* __BLOCKS__ */
+
     static IOTimerEventSource *
        timerEventSource(OSObject *owner, Action action = 0);
 
@@ -171,6 +175,22 @@ public:
     static IOTimerEventSource *
        timerEventSource(uint32_t options, OSObject *owner, Action action = 0);
 
+#ifdef __BLOCKS__
+/*! @function timerEventSource
+    @abstract Allocates and returns an initialized timer instance.
+    @param options Mask of kIOTimerEventSourceOptions* options.
+    @param inOwner The object that that will be passed to the Action callback.
+    @param action Block for the callout routine of this event source.
+    */
+    static IOTimerEventSource *
+       timerEventSource(uint32_t options, OSObject *inOwner, ActionBlock action);
+#endif /* __BLOCKS__ */
+
+#if XNU_KERNEL_PRIVATE
+       __inline__ void invokeAction(IOTimerEventSource::Action action, IOTimerEventSource * ts,
+            OSObject * owner, IOWorkLoop * workLoop);
+#endif /* XNU_KERNEL_PRIVATE */
+
 /*! @function init
     @abstract Initializes the timer with an owner, and a handler to call when the timeout expires.
     */