• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/iokit/IOKit/

Lines Matching refs:IODataQueue

45  * @class IODataQueue : public OSObject
47 * @discussion The IODataQueue class is designed to allow kernel code to queue data to a user process. IODataQueue objects are designed to be used in a single producer / single consumer situation. As such, there are no locks on the data itself. Because the kernel enqueue and user-space dequeue methods follow a strict set of guidelines, no locks are necessary to maintain the integrity of the data struct.
51 * <br>In order for the IODataQueue instance to notify the user process that data is available, a notification mach port must be set. When the queue is empty and a new entry is added, a message is sent to the specified port.
57 class IODataQueue : public OSObject
59 OSDeclareDefaultStructors(IODataQueue)
78 * @abstract Static method that creates a new IODataQueue instance with the capacity specified in the size parameter.
79 * @discussion The actual size of the entire data queue memory region (to be shared into a user process) is equal to the capacity plus the IODataQueueMemory overhead. This overhead value can be determined from the DATA_QUEUE_MEMORY_HEADER_SIZE macro in <IOKit/IODataQueueShared.h>. The size of the data queue memory region must include space for the overhead of each IODataQueueEntry. This entry overhead can be determined from the DATA_QUEUE_ENTRY_HEADER_SIZE macro in <IOKit/IODataQueueShared.h>.<br> This method allocates a new IODataQueue instance and then calls initWithCapacity() with the given size parameter. If the initWithCapacity() fails, the new instance is released and zero is returned.
81 * @result Returns the newly allocated IODataQueue instance. Zero is returned on failure.
83 static IODataQueue *withCapacity(UInt32 size);
87 * @abstract Static method that creates a new IODataQueue instance with the specified number of entries of the given size.
88 * @discussion This method will create a new IODataQueue instance with enough capacity for numEntries of entrySize. It does account for the IODataQueueEntry overhead for each entry. Note that the numEntries and entrySize are simply used to determine the data region size. They do not actually restrict the size of number of entries that can be added to the queue.<br> This method allocates a new IODataQueue instance and then calls initWithEntries() with the given numEntries and entrySize parameters. If the initWithEntries() fails, the new instance is released and zero is returned.
91 * @result Reeturns the newly allocated IODataQueue instance. Zero is returned on failure.
93 static IODataQueue *withEntries(UInt32 numEntries, UInt32 entrySize);
97 * @abstract Initializes an IODataQueue instance with the capacity specified in the size parameter.
106 * @abstract Initializes an IODataQueue instance with the specified number of entries of the given size.
107 * @discussion This method will initialize an IODataQueue instance with enough capacity for numEntries of entrySize. It does account for the IODataQueueEntry overhead for each entry. Note that the numEntries and entrySize are simply used to determine the data region size. They do not actually restrict the size of number of entries that can be added to the queue.<br> This method allocates a new IODataQueue instance and then calls initWithEntries() with the given numEntries and entrySize parameters.