HDIO(7I) Ioctl Requests HDIO(7I)

hdio
SMD and IPI disk control operations

#include <sys/hdio.h>

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>.

The argument is a pointer to a hdk_type structure (described below). This ioctl(2) gets specific information from the hard disk.
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) */
};
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.
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 */
};
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 */
};

ioctl(2), dkio(7I)
October 23, 2017 OmniOS