public:
virtual UInt32 getPhysicalSegments(IOMemoryDescriptor * descriptor, IOByteCount fromPosition, PhysicalSegment * segments, UInt32 maxSegments, UInt32 maxTransferSize = 0, IOByteCount * transferSize = 0) { return genPhysicalSegments(descriptor, fromPosition, segments, maxSegments, maxTransferSize, transferSize);
Generates a list of physical segments from the given memory descriptor, relative to the current position of the descriptor. Wraps $link IOMemoryCursor::genPhysicalSegments.
Result: If the descriptor is exhausted of memory, a zero is returned, otherwise the number of segments that were filled in is returned.
Name Description descriptor IOMemoryDescriptor that describes the data associated with an I/O request. fromPosition Starting location of the I/O within a memory descriptor. segments Pointer to an array of $link IOMemoryCursor::PhysicalSegments for the output physical scatter/gather list. maxSegments Maximum number of segments that can be written to segments array. maxTransferSize Maximum transfer size is limited to that many bytes, otherwise it defaults to the maximum transfer size specified when the memory cursor was initialized. transferSize Pointer 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.
public:
virtual bool initWithSpecification(IOPhysicalLength maxSegmentSize, IOPhysicalLength maxTransferSize, IOPhysicalLength alignment = 1);
Result: true if the inherited classes and this instance initialise successfully.
Name Description maxSegmentSize Maximum allowable size for one segment. Defaults to 0. maxTransferSize Maximum size of an entire transfer. Default to 0 indicating no maximum. alignment Alligment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
public:
static IOBigMemoryCursor * withSpecification(IOPhysicalLength maxSegmentSize, IOPhysicalLength maxTransferSize, IOPhysicalLength alignment = 1);
Result: A new memory cursor if successfully created and initialised, 0 otherwise.
Name Description maxSegmentSize Maximum allowable size for one segment. Defaults to 0. maxTransferSize Maximum size of an entire transfer. Default to 0 indicating no maximum. alignment Alligment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
#define bigOutputSegment IOBigMemoryCursor::outputSegment
Backward compatibilty define for the old global function definition. See $link IOBigMemoryCursor::outputSegment
© 2000 Apple Computer, Inc. (Last Updated 2/23/2000)