hdio
—
SMD and IPI disk control operations
Note — the SMC and IPI drivers have been discontinued.
dkio(7I) is now the preferred method for retrieving disk
information.
The SMD and IPI disk drivers supplied with this release support a
set of ioctl(2) requests for diagnostics and bad sector
information. Basic to these ioctl(2) requests are the
definitions in
<sys/hdio.h>
.
HDKIOCGTYPE
- The argument is a pointer to a hdk_type structure
(described below). This ioctl(2) gets specific
information from the hard disk.
HDKIOCSTYPE
- The argument is a pointer to a hdk_type structure
(described below). This ioctl(2) sets specific
information about the hard disk.
/*
* Used for drive info
*/
struct hdk_type {
ushort_t hdkt_hsect; /* hard sector count (read only) */
ushort_t hdkt_promrev; /* prom revision (read only) */
uchar_t hdkt_drtype; /* drive type (ctlr specific) */
uchar_t hdkt_drstat; /* drive status (ctlr specific, ro) */
};
HDKIOCGBAD
- The argument is a pointer to a hdk_badmap structure
(described below). This ioctl(2) is used to get the bad
sector map from the disk.
HDKIOCSBAD
- The argument is a pointer to a hdk_badmap structure
(described below). This ioctl(2) is used to set the bad
sector map on the disk.
/*
* Used for bad sector map
*/
struct hdk_badmap {
caddr_t hdkb_bufaddr; /* address of user's map buffer */
};
HDKIOCGDIAG
- The argument is a pointer to a hdk_diag structure
(described below). This ioctl(2) gets the most recent
command that failed along with the sector and error number from the hard
disk.
/*
* Used for disk diagnostics
*/
struct hdk_diag {
ushort_t hdkd_errcmd; /* most recent command in error */
daddr_t hdkd_errsect; /* most recent sector in error */
uchar_t hdkd_errno; /* most recent error number */
uchar_t hdkd_severe; /* severity of most recent error */
};