ATADeviceNub

Inherits from
IOATADevice
Availability
Available in OS X v10.0 and later.
Declared in
ATADeviceNub.h

Overview

ATADeviceNub is a concrete implementation of IOATADevice.

clients of IOATA (disk drivers) should use the interface presented by IOATADevice. Concrete nubs are private to the IOATA family and specific subclasses of IOATADevice are instantiated by controller drivers to provide the abstract interface to clients.

Tasks

Miscellaneous

Instance Methods

allocCommand

create command objects for clients.

virtual IOATACommand* allocCommand( void );

ataDeviceNub

static creator function - used by IOATAControllers to create nubs.

static ATADeviceNub* ataDeviceNub( IOATAController *provider, ataUnitID unit, ataDeviceType devType);

attach

override of IOService method.

virtual bool attach( IOService *provider );

executeCommand

Submit IO requests

virtual IOReturn executeCommand( IOATACommand *command);

freeCommand

Clients use this method to dispose of command objects.

virtual void freeCommand( IOATACommand *inCommand);

getDeviceID

get the unit id of this drive (0 or 1)

virtual IOReturn getDeviceID( void);

init

used after creating the nub.

virtual bool init( IOATAController *provider, ataUnitID unit, ataDeviceType devType);

MyATACallback

to be deprecated.

static void MyATACallback( IOATACommand *command );

processCallback

to be deprecated.

void processCallback( IOATACommand *command );

publishBusProperties

puts info about this device's bus capability in the device tree.

virtual void publishBusProperties( void);

publishProperties

publish the nub's properties in the device tree.

virtual void publishProperties( void );

publishVendorProperties

will be deprecated.

virtual void publishVendorProperties( void );

swapBytes16

to be deprecated.

void swapBytes16( UInt8 *dataBuffer, IOByteCount length);

ExpansionData

struct ExpansionData {
};
Discussion

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

Instance Variables

reserved

ExpansionData *reserved;

Reserved for future use. (Internal use only)