|
ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference
|
IODBDMAMemoryCursor |
| Inherits from: | |
| Declared In: |
An IOMemoryCursor subclass that outputs a vector of DBDMA descriptors where the address and length are filled in.
The IODBDMAMemoryCursor would be used when the DBDMA hardware is available for the device for that will use an instance of this cursor.
Generates a DBDMA physical scatter/gather list given a memory descriptor.
Primary initializer for the IODBDMAMemoryCursor class.
Outpust the given segment into the output segments array in address and length fields of an DBDMA descriptor.
Creates and initializes an IODBDMAMemoryCursor in one operation.
getPhysicalSegments |
Generates a DBDMA physical scatter/gather list given a memory descriptor.
public
virtual UInt32 getPhysicalSegments( IOMemoryDescriptor *descriptor, IOByteCount fromPosition, IODBDMADescriptor *segments, UInt32 maxSegments, UInt32 maxTransferSize = 0, IOByteCount *transferSize = 0)
descriptorIOMemoryDescriptor that describes the data associated with an I/O request.
fromPositionStarting location of the I/O within a memory descriptor.
segmentsPointer to an array of DBDMA descriptors for the output physical scatter/gather list. Be warned no room is left for a preamble in the output array. 'segments' should point to the first memory description slot in a DBDMA command.
maxSegmentsMaximum number of segments that can be written to the DBDMA descriptor table.
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 an IOByteCount variable that can contain the total size of the transfer being described. Defaults to 0 indicating that no transfer size need be returned.
If the descriptor is exhausted of memory, a zero is returned, otherwise the number of segments that were filled in is returned.
Generates a list of DBDMA descriptors where the address and length fields are filled in appropriately. But the client is expected to fill in the rest of the DBDMA descriptor as is appropriate for their particular hardware. Wraps IOMemoryCursor::genPhysicalSegments.
initWithSpecification |
Primary initializer for the IODBDMAMemoryCursor class.
public
virtual bool initWithSpecification( IOPhysicalLength maxSegmentSize, IOPhysicalLength maxTransferSize, IOPhysicalLength alignment = 1);
maxSegmentSizeMaximum allowable size for one segment. Defaults to 0.
maxTransferSizeMaximum size of an entire transfer. Defaults to 0 indicating no maximum.
alignmentAlignment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
Returns true if the inherited classes and this instance initialize successfully.
outputSegment |
Outpust the given segment into the output segments array in address and length fields of an DBDMA descriptor.
public
static void outputSegment( PhysicalSegment segment, void *segments, UInt32 segmentIndex);
segmentThe physical address and length that is next to be output.
segmentsBase of the output vector of DMA address length pairs.
segmentIndexIndex to output 'segment' in the 'segments' array.
withSpecification |
Creates and initializes an IODBDMAMemoryCursor in one operation.
public
static IODBDMAMemoryCursor * withSpecification( IOPhysicalLength maxSegmentSize, IOPhysicalLength maxTransferSize, IOPhysicalLength alignment = 1);
maxSegmentSizeMaximum allowable size for one segment. Defaults to 0.
maxTransferSizeMaximum size of an entire transfer. Defaults to 0 indicating no maximum.
alignmentAlignment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.
Returns a new memory cursor if successfully created and initialized, 0 otherwise.
Factory function to create and initialize an IODBDMAMemoryCursor in one operation. See also IODBDMAMemoryCursor::initWithSpecification.
dbdmaOutputSegment |
#define dbdmaOutputSegment IODBDMAMemoryCursor::outputSegment
Backward compatibility define for the old global function definition. See IODBDMAMemoryCursor::outputSegment.
|
Last Updated: 2008-12-19