Lines Matching refs:event

48     @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.
50 The thread main method walks the event source linked list and messages each one requesting a work check. At this point each event source is expected to notify its registered owner that the event has occurred. After each event has been walked and each indicates that another loop isn't required (by setting the 'more' flag to false) the thread will go to sleep on a signaling semaphore.
52 When an event source is registered with a work loop it is informed of the semaphore to use to wake up the loop.
88 @abstract Checks if the event source passed in overrides checkForWork() to perform any work.
89 IOWorkLoop uses this to determine if the event source should be polled in runEventSources() or not.
90 @param inEventSource The event source to check.
98 @constant mAddEvent Used to tag a Remove event source command.
99 @constant mRemoveEvent Used to tag a Remove event source command.
110 Pointer to first event source in linked list.
115 Internal control gate to maintain event system.
135 Set if an event chain has been changed and the system has to be rechecked from start. (Internal use only)
168 @discussion Mandatory free of the object independent of the current retain count. If the work loop is running, this method will not return until the thread has successfully terminated. Each event source in the chain will be released and the working semaphore will be destroyed.
170 If the client has some outstanding requests on an event they will never be informed of completion. If an external thread is blocked on any of the event sources they will be awakened with a KERN_INTERUPTED status.
178 event list calling the checkForWork method in each event source. If an
179 event source has more work to do, it can set the more flag and the middle
181 sleep until an event is signalled.
225 @discussion Add an event source to be monitored by the work loop. This function does not return until the work loop has acknowledged the arrival of the new event source. When a new event has been added the threadMain will always restart its loop and check all outstanding events. The event source is retained by the work loop.
232 @discussion Remove an event source from the work loop. This function does not return until the work loop has acknowledged the removal of the event source. When an event has been removed the threadMain will always restart its loop and check all outstanding events. The event source will be released before return.
239 @abstract Calls enable() in all event sources.
240 @discussion For all event sources in eventChain, call enable() function. See IOEventSource::enable().
245 @abstract Calls disable() in all event sources.
246 @discussion For all event sources in eventChain, call disable() function. See IOEventSource::disable().
251 @abstract Calls enable() in all interrupt event sources.
252 @discussion For all event sources (ES) for which OSDynamicCast(IOInterruptEventSource, ES) is valid, in eventChain call enable() function. See IOEventSource::enable().
257 @abstract Calls disable() in all interrupt event sources.
258 @discussion For all event sources (ES) for which OSDynamicCast(IOInterruptEventSource, ES) is valid, in eventChain call disable() function. See IOEventSource::disable().
264 // Internal APIs used by event sources to control the thread
274 virtual int sleepGate(void *event, UInt32 interuptibleType);
275 virtual void wakeupGate(void *event, bool oneThread);
282 @discussion Client function that causes the given action to be called in a single threaded manner. Beware: the work-loop's gate is recursive and runAction can cause direct or indirect re-entrancy. When executing on a client's thread, runAction will sleep until the work-loop's gate opens for execution of client actions, the action is single threaded against all other work-loop event sources.
297 walks the event list calling the checkForWork method in each event source.
298 If an event source has more work to do, it can set the more flag and the
316 // Internal APIs used by event sources to control the thread
317 virtual int sleepGate(void *event, AbsoluteTime deadline, UInt32 interuptibleType);