Lines Matching refs:IOWorkLoop
51 /*! @class IOWorkLoop
52 @discussion An IOWorkLoop is a thread of control that is intended to be used to provide single threaded access to hardware. This class has no knowledge of the nature and type of the events that it marshals and forwards. When a device driver successfully starts (see IOService::start), it is expected to create the event sources it will need to receive events. Then a work loop is initialized and the events are added to the work loop for monitoring. In general this set up will be automated by the family superclass of the specific device.
58 class IOWorkLoop : public OSObject
60 OSDeclareDefaultStructors(IOWorkLoop)
89 static void threadMainContinuation(IOWorkLoop *self);
102 This is a recursive lock, which allows multiple layers of code to share a single IOWorkLoop without deadlock. This is common in IOKit since threads of execution tend to follow the service plane in the IORegistry, and multiple objects along the call path may acquire the gate for the same (shared) workloop.
137 @discussion This structure will be used to expand the capablilties of the IOWorkLoop in the future.
179 static IOWorkLoop *workLoop();
186 static IOWorkLoop *workLoopWithOptions(IOOptionBits options);
275 OSMetaClassDeclareReservedUsed(IOWorkLoop, 0);
299 OSMetaClassDeclareReservedUsed(IOWorkLoop, 1);
304 OSMetaClassDeclareReservedUnused(IOWorkLoop, 2);
305 OSMetaClassDeclareReservedUnused(IOWorkLoop, 3);
306 OSMetaClassDeclareReservedUnused(IOWorkLoop, 4);
307 OSMetaClassDeclareReservedUnused(IOWorkLoop, 5);
308 OSMetaClassDeclareReservedUnused(IOWorkLoop, 6);
309 OSMetaClassDeclareReservedUnused(IOWorkLoop, 7);