#include <IOKit/IOCommandPool.h>
IOKit/IOCommandPool.h
@header IOCommandPool
@abstract
This header contains the IOCommandPool class definition.
classIOCommandPool
: public OSObject
| queue_head_t | fQueueHead | head of the queue of elements available |
| UInt32 | fSleepers | Count of threads sleeping on this pool |
| OSPtr<IOCommandGate> | fSerializer | command gate used for serializing pool access |
| ExpansionData * | reserved |
APPLE_KEXT_OVERRIDE
virtual void free(void)virtual protectedvirtual bool initWithWorkLoop(IOWorkLoop *workLoop)virtual
@function initWithWorkLoop
@abstract Primary initializer for an IOCommandPool object.
@discussion Primary initializer for an IOCommandPool.
Should probably use IOCommandPool::withWorkLoop() as it is easier to use.
@param workLoop
The workloop that this command pool should synchronize with.
@result Returns true if command pool was successfully initialized.
static OSPtr<IOCommandPool> withWorkLoop(IOWorkLoop *inWorkLoop)static
virtual bool init( IOService *inOwner, IOWorkLoop *inWorkLoop, UInt32 inSize = kIOCommandPoolDefaultSize )virtual
@function init
@abstract Should never be used, obsolete. See initWithWorkLoop.
static OSPtr<IOCommandPool> commandPool( IOService *inOwner, IOWorkLoop *inWorkLoop, UInt32 inSize = kIOCommandPoolDefaultSize )static
@function withWorkLoop
@abstract Should never be used, obsolete. See IOCommandPool::withWorkLoop.
virtual OSPtr<IOCommand> getCommand(bool blockForCommand = true)virtual
virtual void returnCommand(LIBKERN_CONSUMED IOCommand *command)virtual
virtual IOReturn gatedGetCommand( LIBKERN_RETURNS_NOT_RETAINED IOCommand **command, bool blockForCommand )virtual protected
@function gatedGetCommand
@discussion The gatedGetCommand method is used to serialize the extraction of a
command from the pool behind a command gate, runAction-ed by getCommand.
@param command
A pointer to a pointer to an IOCommand object where the returned
command will be stored.
@param blockForCommand
A bool that indicates whether to block the request until a command
becomes available.
@result Returns kIOReturnNoResources if no command is available and the client
doesn't wish to block until one does become available.
kIOReturnSuccess if the vCommand argument is valid.
virtual IOReturn gatedReturnCommand(IOCommand *command)virtual protected
@function gatedReturnCommand
@discussion The gatedReturnCommand method is used to serialize the return of a
command to the pool behind a command gate, runAction-ed by returnCommand.
@param command
A pointer to the IOCommand object to be returned to the pool.
@result Always returns kIOReturnSuccess if the vCommand argument is valid.