PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Queue Operations

The Driver Services Library provides the following I/O parameter block queue manipulation functions:

OSErr PBQueueCreate         (QHdrPtr *qHeader);
OSErr PBQueueInit           (QHdrPtr qHeader);
OSErr PBQueueDelete         (QHdrPtr qHeader);


void  PBEnqueue             (QElemPtr qElement,         QHdrPtr qHeader);
OSErr PBEnqueueLast         (QElemPtr qElement,         QHdrPtr qHeader);
OSErr PBDequeue             (QElemPtr qElement,         QHdrPtr qHeader);
OSErr PBDequeueFirst        (QHdrPtr qHeader,       QElemPtr
*theFirstqElem);
OSErr PBDequeueLast         (QHdrPtr qHeader,       QElemPtr
*theLastqElem);
DESCRIPTION

PBQueueCreate creates a new I/O parameter block queue. PBQueueInit initializes it and PBQueueDelete deletes it. PBEnqueue places the element pointed to by qElement next in the queue and PBEnqueueLast places it last. PBDequeue removes the next element in the queue. PBDequeueFirst removes the first element and PBDequeueLast removes the last element. For detailed information about the I/O parameter block queue, see Inside Macintosh: OS Utilities.

EXECUTION CONTEXT

The three queue routines, PBQueueInit, PBQueueCreate, and PBQueueDelete, may be called only from task level, not from software or hardware interrupt level.

The five queue element routines may be called from task level, secondary interrupt level, or hardware interrupt level.

RETURN CODES (QUEUE ROUTINES)
noErr 0 No error
memFullErr -108 Not enough room in heap
RETURN CODES (ELEMENT ROUTINES)
noErr 0 No error
qErr -1 Queue element not found

© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)