|
| dad - driver for IDE disk devices |
SYNOPSIS
|
dad@ target,lun:partition
|
|
This driver
handles the ide disk drives on SPARC platforms. The type of disk drive is
determined using the ATA IDE identify device command and by reading the volume
label stored on block 0 of the drive. The volume label describes
the disk geometry and partitioning; it must be present or the disk cannot
be mounted by the system.
The block-files access the disk using the system's normal buffering
mechanism and are read and written without regard to physical disk records.
There is also a "raw" interface that provides for direct transmission between
the disk and the user's read or write buffer. A single read or write call
usually results in one I/O operation; raw I/O is therefore considerably more
efficient when many bytes are transmitted. The names of the block files are
found in /dev/dsk; the names of the raw files are found
in /dev/rdsk.
I/O requests to the raw device must be aligned on a 512-byte (DEV_BSIZE) boundary and must have a length that is a multiple of
512 bytes. Requests which do not meet the restrictions will cause the driver
to return an EINVAL error. I/O requests to the block
device have no alignment or length restrictions.
Device Statistics Support
|
Each device
maintains I/O statistics both for the device and for each partition allocated
on that device. For each device/partition, the driver accumulates reads, writes,
bytes read, and bytes written. The driver also takes hi-resolution time
stamps at queue entry and exit points, which facilitates monitoring the residence
time and cumulative residence-length product for each queue.
Each device also has error statistics associated with it. These must
include counters for hard errors, soft errors and transport errors. Other
data may be implemented as required.
|
|
|
-
/dev/dsk/cntndnsn
- block files
-
/dev/rdsk/cntndnsn
- raw files
where:
-
cn
- controller n
-
tn
- IDE target id n (0-3)
-
dn
- Always 0.
-
sn
- partition n (0-7)
The target ide numbers are assigned as:
- 0
- Master disk on Primary channel.
- 1
- Slave disk on Primary channel.
- 2
- Master disk on Secondary channel
- 3
- Slave disk on Secondary channel.
|
|
-
EACCES
- Permission denied.
-
EBUSY
- The
partition was opened exclusively by another thread.
-
EFAULT
- The argument was a bad address.
-
EINVAL
- Invalid argument.
-
EIO
- An I/O
error occurred.
-
ENOTTY
- This indicates that the device does not support the requested ioctl function.
-
ENXIO
- During
opening, the device did not exist.
-
EROFS
- The
device is a read-only device.
|
|
-
offline
- The driver has decided that the target disk is no longer there.
-
disk ok
- The
target disk is now responding again.
-
corrupt label - bad geometry
- The disk label is corrupted.
-
corrupt label - label checksum failed
- The disk label is corrupted.
-
corrupt label - wrong magic number
- The disk label is corrupted.
-
disk not responding to selection
- The target disk is not responding.
-
i/o to invalid geometry
- The geometry of the drive could not be established.
-
incomplete read/write - retrying/giving up
- There was a residue after the command completed normally.
-
no bp for disk label
- A bp with consistent memory could not be allocated.
-
no memory for disk label
- Free memory pool exhausted.
-
ATA transport failed: reason 'nnnn': {retrying|giving}
- The host adapter has failed to transport
a command to the target for the reason stated. The driver will either retry
the command or, ultimately, give up.
-
corrupt label - wrong magic number
- The disk label is corrupted.
-
corrupt label - label checksum failed
- The disk label is corrupted.
-
corrupt label - bad geometry
- The disk label is corrupted.
-
no mem for property
- Free memory pool exhausted.
-
transport rejected (<n>)
- Host adapter driver was unable to accept a command.
-
Device Fault
- There has been a Device Fault - reason for such error is vendor specific.
|
| |