Mac Developer Library

Developer

IODeviceMemory Class Reference

Options
Deployment Target:

On This Page
Language:

IODeviceMemory

Inheritance


  • IODeviceMemory

Conforms To


Not Applicable

Import Statement


Not Applicable

Objective-C

@import Kernel;

Availability


Available in OS X v10.0 and later.

An IOMemoryDescriptor used for device physical memory ranges.

The IODeviceMemory class is a simple subclass of IOMemoryDescriptor that uses its methods to describe a single range of physical memory on a device. IODeviceMemory objects are usually looked up with IOService or IOPCIDevice accessors, and are created by memory-mapped bus families. IODeviceMemory implements only some factory methods in addition to the methods of IOMemoryDescriptor.

  • Constructs an OSArray of IODeviceMemory instances, each describing one physical range, and a tag value.

    Declaration

    C++

    static OSArray * arrayFromList( InitElement list[], IOItemCount count );

    Parameters

    list

    An array of IODeviceMemory::InitElement structures.

    count

    The number of elements in the list.

    Return Value

    Returns a created OSArray of IODeviceMemory objects, to be released by the caller, or zero on failure.

    Discussion

    This method creates IODeviceMemory instances for each physical range passed in an IODeviceMemory::InitElement array. Each element consists of a physical address, length and tag value for the IODeviceMemory. The instances are returned as a created OSArray.

  • Constructs an IODeviceMemory instance, describing one physical range.

    Declaration

    C++

    static IODeviceMemory * withRange( IOPhysicalAddressaddress, IOPhysicalLengthwithLength );

    Parameters

    address

    The physical address of the first byte in the memory.

    withLength

    The length of memory.

    Return Value

    Returns the created IODeviceMemory on success, to be released by the caller, or zero on failure.

    Discussion

    This method creates an IODeviceMemory instance for one physical range passed as a physical address and length. It just calls IOMemoryDescriptor::withPhysicalAddress.

  • Constructs an IODeviceMemory instance, describing a subset of an existing IODeviceMemory range.

    Declaration

    C++

    static IODeviceMemory * withSubRange( IODeviceMemory *of, IOPhysicalAddressoffset, IOPhysicalLengthlength );

    Parameters

    of

    The parent IODeviceMemory of which a subrange is to be used for the new descriptor, which will be retained by the subrange IODeviceMemory.

    offset

    A byte offset into the parent's memory.

    length

    The length of the subrange.

    Return Value

    Returns the created IODeviceMemory on success, to be released by the caller, or zero on failure.

    Discussion

    This method creates an IODeviceMemory instance for a subset of an existing IODeviceMemory range, passed as a physical address offset and length. It just calls IOMemoryDescriptor::withSubRange.

Data Types

  • Declaration

    C++

    struct InitElement { IOPhysicalAddress start; IOPhysicalLength length; IOOptionBits tag; };

    Fields

    start

    First physical address in the range.

    length

    Length of the range.

    tag

    32-bit value not interpreted by IODeviceMemory or IOMemoryDescriptor, for use by the bus family.