Mac Developer Library

Developer

IOATABusCommand Class Reference

Options
Deployment Target:

On This Page
Language:

IOATABusCommand

More...

Inheritance


Not Applicable

Conforms To


Not Applicable

Import Statement


Not Applicable @import Kernel;

Availability


Available in OS X v10.0 and later.
  • factory method to create an instance of this class used by subclasses of IOATADevice

    Declaration

    C++

    static IOATABusCommand* allocateCmd( void);

    Import Statement

  • call the completion callback function

    Declaration

    C++

    virtual void executeCallback( void);

    Import Statement

  • get pointer to the memory descriptor for this transaction

    Declaration

    C++

    virtual IOMemoryDescriptor* getBuffer ( void);

    Import Statement

  • return the byte count for this transaction to transfer.

    Declaration

    C++

    virtual IOByteCount getByteCount ( void);

    Import Statement

  • return the callback pointer

    Declaration

    C++

    virtual IOATACompletionFunction* getCallbackPtr ( void );

    Import Statement

  • return the flags for this command.

    Declaration

    C++

    virtual ataFlags getFlags ( void );

    Import Statement

  • return the command opcode

    Declaration

    C++

    virtual ataOpcode getOpcode( void );

    Import Statement

  • return pointer to the array of packet data.

    Declaration

    C++

    virtual UInt16* getPacketData( void);

    Import Statement

  • return the size of atapi packet if any.

    Declaration

    C++

    virtual UInt16 getPacketSize( void);

    Import Statement

  • the position within the memory buffer for the transaction.

    Declaration

    C++

    virtual IOByteCount getPosition ( void);

    Import Statement

  • get the register mask for desired regs

    Declaration

    C++

    virtual ataRegMask getRegMask( void );

    Import Statement

  • return the taskfile structure pointer.

    Declaration

    C++

    virtual ataTaskFile* getTaskFilePtr( void);

    Import Statement

  • return the timeout value for this command

    Declaration

    C++

    virtual UInt32 getTimeoutMS ( void );

    Import Statement

  • number of bytes between interrupts.

    Declaration

    C++

    virtual IOByteCount getTransferChunkSize( void);

    Import Statement

  • return the unit id (0 master, 1 slave)

    Declaration

    C++

    virtual ataUnitID getUnit( void );

    Import Statement

  • Zeroes all data, returns false if allocation fails. protected.

    Declaration

    C++

    virtual bool init();

    Import Statement

  • set the byte count of bytes actually transferred.

    Declaration

    C++

    virtual void setActualTransfer ( IOByteCount bytesTransferred );

    Import Statement

  • mark the command as being in progress.

    Declaration

    C++

    virtual void setCommandInUse( bool inUse = true);

    Import Statement

  • set the result code

    Declaration

    C++

    virtual void setResult( IOReturn );

    Import Statement

  • set to blank state, call prior to re-use of this object

    Declaration

    C++

    virtual void zeroCommand( void);

    Import Statement

Data Types

  • Declaration

    C++

    struct ExpansionData { };

    Discussion

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

Instance Variables

  • IOSyncer for use by IOATAController

    Declaration

    C++

    IOSyncer* syncer;

  • state-semaphore for use by IOATAController

    Declaration

    C++

    UInt32 state;

  • Reserved for future use. (Internal use only)

    Declaration

    C++

    ExpansionData *reserved;

  • queue header for use by IOATAController.

    Declaration

    C++

    queue_chain_t queueChain;