1
2#ifndef _IRDATIMEREVENTSOURCE
3#define _IRDATIMEREVENTSOURCE
4
5#include <IOKit/IOTimerEventSource.h>
6
7// subclass from standard IOTimerEventSource to
8// add a workaround for cancelTimer not being
9// reliable in the face of workloop gates.
10
11class IrDATimerEventSource : public IOTimerEventSource
12{
13    OSDeclareDefaultStructors(IrDATimerEventSource)
14
15public:
16    typedef void (*Action)(OSObject *owner, IrDATimerEventSource *sender);
17
18    static IrDATimerEventSource *timerEventSource(OSObject *inOwner, Action inAction);
19    Boolean SafeCancelTimeout();
20};
21
22#endif /* !_IRDATIMEREVENTSOURCE */
23