Mac Developer Library

Developer

IOATABusInfo Class Reference

Options
Deployment Target:

On This Page
Language:

IOATABusInfo

used to indicate the capabilities of the bus the device is connected to, PIO and DMA modes supported, etc.

Inheritance


Not Applicable

Conforms To


Not Applicable

Import Statement


Not Applicable

Objective-C

@import Kernel;

Availability


Available in OS X v10.0 and later.
  • factory method

    Declaration

    C++

    static IOATABusInfo* atabusinfo( void);

  • bit-significant map of DMA mode(s) supported on the bus. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    UInt8 getDMAModes( void );

  • returns the bit-significant map of PIO mode(s) supported on the bus. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    UInt8 getPIOModes( void );

  • returns the socket type, internal fixed, media-bay, PC-Card Used by clients of ATAControllers to find out about the bus

    Declaration

    C++

    ataSocketType getSocketType( void );

  • bit-significant map of Ultra mode(s) supported on the bus. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    UInt8 getUltraModes( void );

  • How many devices are present on bus. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    UInt8 getUnits( void );

  • The maximum number of 512-byte blocks this controller supports in a single Extended LBA transfer. Some controllers may be limited to less than the maximum sector count allowed under extended LBA protocol.

    Declaration

    C++

    UInt16 maxBlocksExtended( void);

  • Bit significant map of supported transfer modes. Set by ATAControllers.

    Declaration

    C++

    void setDMAModes( UInt8 inModeBitMap );

  • Set true if supports DMA Queued Feature. Set by ATAControllers.

    Declaration

    C++

    void setDMAQueued( bool inState);

  • Set true for supports 48-bit LBA. Set by ATAControllers.

    Declaration

    C++

    void setExtendedLBA( bool inState );

  • value set by controllers to indicate the maximum number of blocks allowed in a single transfer of data. Some dma engines may not be capable of supporting the full 16-bit worth of sector count allowed under 48 bit extended LBA. Default is 256 blocks, same as standard ATA.

    Declaration

    C++

    void setMaxBlocksExtended( UInt16 inMaxBlocks);

    Discussion

    function setMaxBlocksExtended

  • Set true for supports overlapped packet feature set. Set by ATAControllers.

    Declaration

    C++

    void setOverlapped( bool inState);

  • Bit significant map of supported transfer modes. Set by ATAControllers.

    Declaration

    C++

    void setPIOModes( UInt8 inModeBitMap);

  • internal fixed, media-bay, PC-Card. Set by ATAControllers.

    Declaration

    C++

    void setSocketType( ataSocketType inSocketType );

  • Bit significant map of supported transfer modes. Set by ATAControllers.

    Declaration

    C++

    void setUltraModes( UInt8 inModeBitMap );

  • set to indicate how many devices are on this bus. Set by ATAControllers.

    Declaration

    C++

    void setUnits( UInt8 inNumUnits );

  • True = DMA supported on bus - inferred by looking at the DMA mode bits. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    bool supportsDMA( void );

  • Supports DMA Queued Feature set if true. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    bool supportsDMAQueued( void );

  • Supports 48-bit LBA if true. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    bool supportsExtendedLBA( void );

  • Supports overlapped packet feature set if true. Used by clients of ATAControllers to find out about the bus.

    Declaration

    C++

    bool supportsOverlapped( void );

  • set this object to a blank state.

    Declaration

    C++

    virtual void zeroData( void);

Data Types

  • Declaration

    C++

    struct ExpansionData { };

    Discussion

    This structure will be used to expand the capablilties of the IOWorkLoop in the future.

Instance Variables

  • Reserved for future use. (Internal use only)

    Declaration

    C++

    ExpansionData *reserved;