X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/de355530ae67247cbd0da700edb3a2a1dae884c2..13fec9890cf095cc781fdf7b8917cb03bf32dd4c:/iokit/IOKit/IOTimerEventSource.h diff --git a/iokit/IOKit/IOTimerEventSource.h b/iokit/IOKit/IOTimerEventSource.h index fd7335821..80fb27309 100644 --- a/iokit/IOKit/IOTimerEventSource.h +++ b/iokit/IOKit/IOTimerEventSource.h @@ -62,9 +62,13 @@ protected: AbsoluteTime abstime; /*! @struct ExpansionData - @discussion This structure will be used to expand the capablilties of the IOWorkLoop in the future. + @discussion This structure is private to the IOTimerEventSource implementation. */ - struct ExpansionData { }; + struct ExpansionData + { + SInt32 calloutGeneration; + IOWorkLoop * workLoop; + }; /*! @var reserved Reserved for future use. (Internal use only) */ @@ -89,6 +93,8 @@ protected: @abstract Have to implement it is mandatory in $link IOEventSource, but IOTimerEventSources don't actually use this work-loop mechanism. */ virtual bool checkForWork(); + virtual void setWorkLoop(IOWorkLoop *workLoop); + public: /*! @typedef Action @@ -203,6 +209,9 @@ public: @discussion Clear down any oustanding calls. By the time this function completes it is guaranteed that the action will not be called again. */ virtual void cancelTimeout(); +private: + static void timeoutAndRelease(void *self, void *wl); + private: OSMetaClassDeclareReservedUnused(IOTimerEventSource, 0); OSMetaClassDeclareReservedUnused(IOTimerEventSource, 1);