Mac Developer Library

Developer

IOATABusInfo Class Reference

Options
Deployment Target:

On This Page
Language:

IOATABusInfo

Inheritance


Not Applicable

Conforms To


Not Applicable

Import Statement


Not Applicable

Objective-C

@import Kernel;

Availability


Available in OS X v10.0 and later.

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

  • 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;