sesio
—
enclosure services device driver interface
The ses
device driver provides the following ioctls as a
means to access SCSI enclosure services devices.
The ses
driver supports the following ioctls:
SES_IOCTL_GETSTATE
- This ioctl obtains enclosure state in the ses_ioctl
structure.
SES_IOCTL_SETSTATE
- This ioctl is used to set parameters on the enclosure services device. The
ses_ioctl structure is used to pass information into
the driver.
- Example 1
- Using the
SES_IOCTL_GETSTATE
ioctl
The following example uses the
SES_IOCTL_GETSTATE
ioctl to recover 20 bytes of page
4 from a previously opened device.
char abuf[30];
struct ses_ioctl *sesp;
int status;
sesp = (ses_ioctl *)abuf;
sesp->size = 20;
sesp->page_code = 4;
status = ioctl(fd, SES_IOCTL_GETSTATE, abuf);
EIO
- The
ses
driver was unable to obtain data from the
enclosure services device or the data transfer could not be
completed.
ENOTTY
- The
ses
driver does not support the requested
ioctl function.
ENXIO
- The enclosure services device does not exist.
EFAULT
- The user specified a bad data length.
The ses_ioctl structure has the following fields:
uint32_t page_size; /* Size of buffer that follows */
uint8_t page_code: /* Page to be read/written */
uint8_t reserved[3]; /* Reserved; Set to 0 */