Functions



genPhysicalSegments

Abstract: Generate a physical scatter/gather list given a memory descriptor.
public:

virtual UInt32 genPhysicalSegments( IOMemoryDescriptor *descriptor, IOByteCount fromPosition, void * segments, UInt32 maxSegments, UInt32 maxTransferSize = 0, IOByteCount *transferSize = 0);

Generates a list of physical segments from the given memory descriptor, relative to the current position of the descriptor.

Parameters

NameDescription
descriptorIOMemoryDescriptor that describes the data associated with an I/O request.
fromPositionStarting location of the I/O within a memory descriptor.
segmentsVoid pointer to base of output physical scatter/gather list. Always passed directly onto the SegmentFunction without interpretation by the cursor.
maxSegmentsMaximum number of segments that can be written to segments array.
maxTransferSizeMaximum transfer size is limited to that many bytes, otherwise it defaults to the maximum transfer size specified when the memory cursor was initialized.
transferSizePointer to a IOByteCount variable that can contain the total size of the transfer being described. Default to 0 indicating that no transfer size need be returned.
Result: If the descriptor is exhausted of memory, a zero is returned, otherwise the number of segments that were filled in is returned.

initWithSpecification

Abstract: Primary initialiser for the IOMemoryCursor class.
public:

virtual bool initWithSpecification(SegmentFunction outSegFunc, IOPhysicalLength maxSegmentSize = 0, IOPhysicalLength maxTransferSize = 0, IOPhysicalLength alignment = 1);

Parameters

NameDescription
outSegFuncSegmentFunction to call to output one physical segment.
maxSegmentSizeMaximum allowable size for one segment. Defaults to 0.
maxTransferSizeMaximum size of an entire transfer. Default to 0 indicating no maximum.
alignmentAlligment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
Result: true if the inherited classes and this instance initialise successfully.

withSpecification

Abstract: Factory function to create and initialise an IOMemoryCursor in one operation, see $link IOMemoryCursor::initWithSpecification.
public:

static IOMemoryCursor * withSpecification(SegmentFunction outSegFunc, IOPhysicalLength maxSegmentSize = 0, IOPhysicalLength maxTransferSize = 0, IOPhysicalLength alignment = 1);

Parameters

NameDescription
outSegFuncSegmentFunction to call to output one physical segment.
maxSegmentSizeMaximum allowable size for one segment. Defaults to 0.
maxTransferSizeMaximum size of an entire transfer. Default to 0 indicating no maximum.
alignmentAlligment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
Result: A new memory cursor if successfully created and initialised, 0 otherwise.

© 2000 Apple Computer, Inc. — (Last Updated 2/23/2000)