Provided by: freebsd-manpages_12.2-1_all bug


     ses — SCSI Environmental Services driver


     device ses


     The ses driver provides support for all SCSI devices of the environmental services class
     that are attached to the system through a supported SCSI Host Adapter, as well as emulated
     support for SAF-TE (SCSI Accessible Fault Tolerant Enclosures).  The environmental services
     class generally are enclosure devices that provide environmental information such as number
     of power supplies (and state), temperature, device slots, and so on.

     A SCSI Host adapter must also be separately configured into the system before a SCSI
     Environmental Services device can be configured.


     It is only necessary to explicitly configure one ses device; data structures are dynamically
     allocated as devices are found on the SCSI bus.

     A separate option, SES_ENABLE_PASSTHROUGH, may be specified to allow the ses driver to
     perform functions on devices of other classes that claim to also support ses functionality.


     The following ioctl(2) calls apply to ses devices.  They are defined in the header file
     <cam/scsi/scsi_enc.h> (q.v.).

     ENCIOC_GETNELM     Used to find out how many ses elements are driven by this particular
                        device instance.

     ENCIOC_GETELMMAP   Read, from the kernel, an array of SES elements which contains the
                        element identifier, which subenclosure it is in, and the ses type of the

     ENCIOC_GETENCSTAT  Get the overall enclosure status.

     ENCIOC_SETENCSTAT  Set the overall enclosure status.

     ENCIOC_GETELMSTAT  Get the status of a particular element.

     ENCIOC_SETELMSTAT  Set the status of a particular element.

     ENCIOC_GETTEXT     Get the associated help text for an element (not yet implemented).  ses
                        devices often have descriptive text for an element which can tell you
                        things like location (e.g., "left power supply").

     ENCIOC_INIT        Initialize the enclosure.

     ENCIOC_GETELMDESC  Get the element's descriptor string.

                        Get the device names, if any, associated with this element.

     ENCIOC_GETSTRING   Used to read the SES String In Diagnostic Page.  The contents of this
                        page are device-specific.

     ENCIOC_SETSTRING   Used to set the SES String Out Diagnostic Page.  The contents of this
                        page are device-specific.

     ENCIOC_GETENCNAME  Used to get the name of the enclosure.

     ENCIOC_GETENCID    Used to get the Enclosure Logical Identifier.


     The files contained in </usr/share/examples/ses> show simple mechanisms for how to use these
     interfaces, as well as a very stupid simple monitoring daemon.


     /dev/sesN      The Nth SES device.


     When the kernel is configured with DEBUG enabled, the first open to an SES device will spit
     out overall enclosure parameters to the console.




     The ses driver was originally written for the CAM SCSI subsystem by Matthew Jacob and first
     released in FreeBSD 4.3.  It was a functional equivalent of a similar driver available in
     Solaris, Release 7.  It was largely rewritten by Alexander Motin, Justin Gibbs, and Will
     Andrews for FreeBSD 9.2.