[ Previous |
Next |
Contents |
Home |
Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts
Required IDE Adapter Device Driver ioctl
Commands
Various ioctl operations must be performed
for proper operation of the IDE adapter device driver. The ioctl operations
described here are the minimum set of commands the IDE adapter device driver
must implement to support IDE device drivers. Other operations may be
required in the IDE adapter device driver to support, for example, system
management facilities. IDE device driver writers also need to understand
these ioctl operations.
Every IDE adapter device driver must support
the IOCINFO ioctl operation. The structure to be returned to the caller is
the devinfo structure, including the ide union definition for
the IDE adapter found in the /usr/include/sys/devinfo.h file. The IDE
device driver should request the IOCINFO ioctl operation (probably
during its open routine) to get the maximum transfer size of the adapter.
Note: The IDE adapter device
driver ioctl operations can only be called from the process level. They
cannot be executed from a call on any more favored priority levels.
Attempting to call them from a more favored priority level can result in a
system crash.
ioctl Commands
The following IDEIOSTART and
IDEIOSTOP operations must be sent by the IDE device driver (for the
open and close routines, respectively) for each device. They cause the IDE
adapter device driver to allocate and initialize internal resources. The
IDEIORESET operation is provided for clearing device hard errors. The
IDEIOGTHW operation is supported by IDE adapter device drivers that
support gathered write commands to target devices.
Except where noted otherwise, the arg
parameter for each of the ioctl operations described here must contain a
long integer. In this field, the least significant byte is the IDE device ID
value. (The upper three bytes are reserved and should be set to 0.) This
provides the information required to allocate or deallocate resources and
perform IDE bus operations for the ioctl operation requested.
The following information is provided on the
various ioctl operations:
IDEIOSTART
|
|
This operation allocates and initializes IDE
device-dependent information local to the IDE adapter device driver. Run
this operation only on the first open of a device. Subsequent
IDEIOSTART commands to the same device fail unless an intervening
IDEIOSTOP command is issued.
The following values for the errno global
variable are supported:
0 |
|
Indicates successful completion. |
EIO |
Indicates lack of resources or other error-preventing device
allocation. |
EINVAL |
Indicates that the selected IDE device ID is already in use. |
ETIMEDOUT |
Indicates that the command did not complete. |
|
IDEIOSTOP
|
|
This operation deallocates resources local to the IDE
adapter device driver for this IDE device. This should be run on the last
close of an IDE device. If an IDEIOSTART operation has not been
previously issued, this command is unsuccessful.
The following values for the errno global
variable should be supported:
0 |
|
Indicates successful completion. |
EIO |
Indicates error preventing device deallocation. |
EINVAL |
Indicates that the selected IDE device ID has not been started. |
ETIMEDOUT |
Indicates that the command did not complete. |
|
IDEIORESET
|
|
This operation causes the IDE adapter device driver to send
an ATAPI device reset to the specified IDE device ID.
The IDE device driver should use this
command only when directed to do a forced open. This occurs in for the
situation when the device needs to be reset to clear an error condition.
Note: In normal system
operation, this command should not be issued, as it would reset all devices
connected to the controller. If an IDEIOSTART operation has not been
previously issued, this command is unsuccessful.
The following values for the errno global
variable are supported:
0 |
|
Indicates successful completion. |
EIO |
Indicates an unrecovered I/O error occurred. |
EINVAL |
Indicates that the selected IDE device ID has not been started. |
ETIMEDOUT |
Indicates that the command did not complete. |
|
IDEIOGTHW
|
|
This operation is only supported by IDE adapter device
drivers that support gathered write commands. The purpose of the operation
is to indicate support for gathered writes to IDE device drivers that intend
to use this facility. If the IDE adapter device driver does not support
gathered write commands, it must fail the operation. The IDE device driver
should call this operation from its open routine for a particular device
instance. If the operation is unsuccessful, the IDE device driver should not
attempt to run a gathered write command.
The arg parameter to the
IDEIOGTHW is set to NULL by the caller to indicate that no input
parameter is passed:
The following values for the errno global
variable are supported.
0 |
|
Indicates successful completion and in particular that the
adapter driver supports gathered writes. |
EINVAL |
Indicates that the IDE adapter device driver does not support gathered writes. |
|
Related Information
IDE Adapter Device Driver,
idecdrom IDE Device Driver,
idedisk IDE Device Driver,
IDEIOIDENT (Identify Device) IDE Adapter Device Driver ioctl Operation,
IDEIOINQU (Inquiry) IDE Adapter Device Driver ioctl Operation,
IDEIOREAD (Read) IDE Adapter Device Driver ioctl Operation,
IDEIOSTART (Start IDE) Adapter Device Driver ioctl Operation,
IDEIOSTOP (Stop) Device IDE Adapter Device Driver ioctl Operation,
IDEIOSTUNIT (Start Unit) IDE Adapter Device Driver ioctl Operation, and
IDEIOTUR (Test Unit Ready) IDE Adapter Device Driver ioctl Operation in AIX Version 4.3 Technical Reference: Kernel and Subsystems Volume 2.
Related Information
Execution of I/O Requests.
IDE Error Recovery.
[ Previous |
Next |
Contents |
Home |
Search ]