ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference

 


IOATAController

Inherits from:
Declared In:

Overview

The base class for the ATA controller family.

Discussion

Provides the interface common to all ata bus controllers. Subclasses of IOATAController implement drivers for specific bus hardware. Disk devices are clients of IOATAController and communicate via the IOATABusNub instantiated for each device discovered by the specific IOATAController subclass when it probes hardware. Via the nub, the ATA Controller provides standard information about bus capability, accepts requests for transfer mode configuration (timing), accepts requests for IO and bus operations, notifies the device driver about bus events which may affect the device, such as soft-resets or device removal (ie, media-bay and PC-card) and removal of queued IO requests which have not been dispatched into the hardware.

The HeaderDoc for this class is incomplete. The source however is heavily commented and should be consulted until such time as complete HeaderDoc is available.



Functions

busCanDispatch

Answers whether the bus is in state such that the next command can be dispatched.

dispatchNext

Causes the command at the front of the queue to dequeue, made the current command and begin execution.

handleCommand

Handles the client command from the workloop context.


busCanDispatch


Answers whether the bus is in state such that the next command can be dispatched.

protected

virtual bool busCanDispatch( void );
Return Value

Returns true if bus is free to issue commands. Returns false if bus cannot issue commands at this time.


dispatchNext


Causes the command at the front of the queue to dequeue, made the current command and begin execution.

protected

virtual IOReturn dispatchNext( void );
Return Value

Returns noErr if successful dispatch.


handleCommand


Handles the client command from the workloop context.

protected

virtual IOReturn handleCommand( void *command, void *param1 = 0, void *param2 = 0, void *param3 = 0);
Parameters
client

The client object.

command

The command code.

param0

Command parameter.

param1

Command parameter.

param2

Command parameter.

param3

Command parameter.

Return Value

Returns kIOReturnSuccess on success, or an error code otherwise.

Discussion

This method is called by executeCommand() to handle the client command from the workloop context.

Structs and Unions


ExpansionData


protected

struct ExpansionData { };
Discussion

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

Member Data


reserved


protected

ExpansionData *reserved;
Discussion

Reserved for future use. (Internal use only)


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2008-12-19