Mac Developer Library

Developer

IOMbufBigMemoryCursor Class Reference

Options
Deployment Target:

On This Page
Language:

IOMbufBigMemoryCursor

Inheritance


Not Applicable

Conforms To


Not Applicable

Import Statement


Not Applicable

Objective-C

@import Kernel;

Availability


Available in OS X v10.0 through OS X v10.5.

An IOMbufMemoryCursor subclass that outputs a vector of IOPhysicalSegments in the big endian byte order.

The IOMbufBigMemoryCursor would be used when the DMA hardware requires a big endian address and length pair. This cursor outputs an array of IOPhysicalSegments that are encoded in big-endian format.

  • Generates a big endian physical scatter/gather list from a given mbuf.

    Declaration

    C++

    UInt32 getPhysicalSegments( mbuf_t packet, struct IOMemoryCursor::PhysicalSegment *vector, UInt32 numVectorSegments = 0);

    Parameters

    packet

    The mbuf packet.

    vector

    Pointer to an array of IOPhysicalSegments for the output physical scatter/gather list.

    numVectorSegments

    Maximum number of IOPhysicalSegments accepted.

    Return Value

    Returns the number of segments that were filled in, or 0 if an error occurred.

  • Generates a big endian physical scatter/gather list from a given mbuf.

    Declaration

    C++

    UInt32 getPhysicalSegmentsWithCoalesce( mbuf_t packet, struct IOMemoryCursor::PhysicalSegment *vector, UInt32 numVectorSegments = 0);

    Parameters

    packet

    The mbuf packet.

    vector

    Pointer to an array of IOPhysicalSegments for the output physical scatter/gather list.

    numVectorSegments

    Maximum number of IOPhysicalSegments accepted.

    Return Value

    Returns the number of segments that were filled in, or 0 if an error occurred.

    Discussion

    Generate a big endian physical scatter/gather list from a given mbuf. Coalesce mbuf chain when the number of segments in the scatter/gather list exceeds numVectorSegments.

  • Factory function that creates and initializes an IOMbufBigMemoryCursor in one operation.

    Declaration

    C++

    static IOMbufBigMemoryCursor * withSpecification( UInt32maxSegmentSize, UInt32maxNumSegments);

    Parameters

    maxSegmentSize

    Maximum allowable size for one segment.

    maxNumSegments

    Maximum number of segments.

    Return Value

    Returns a new mbuf cursor if successfully created and initialized, 0 otherwise.

    Discussion

    See also IOMbufMemoryCursor::initWithSpecification.