text: Device and Network Interfaces
  - enclosure services device driver interface
  #include <sys/sesio.h>
  The ses device driver provides the following ioctls as a means to access SCSI enclosure services devices.
  The ses driver supports the following ioctls:
  This ioctl obtains enclosure state in the ses_ioctl structure.
  This ioctl is used to set parameters on the enclosure services device. The ses_ioctl structure is used to pass information into the driver.
  The ses driver was unable to obtain data from the enclosure services device or the data transfer could not be completed.
  The ses driver does not support the requested ioctl function.
  The enclosure services device does not exist.
  The user specified a bad data length.
  The ses_ioctl structure has the following fields:
  uint32_t; /* Size of buffer that follows */ uint8_t page_code: /* Page to be read/written */ uint8_t reserved[3]; /* Reserved; Set to 0 */ unit8t buffer[1]; /* Size arbitrary, user specifies */
  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);
  See attributes(5) for descriptions of the following attributes: