The
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.
KERNEL CONFIGURATION
It is only necessary to explicitly configure one
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
driver to perform functions on devices of other classes that claim to
also support
functionality.
IOCTLS
The following
ioctl(2)
calls apply to
devices.
They are defined in the header file
#include <cam/scsi/scsi_ses.h>
(q.v.).
SESIOC_GETNOBJ
Used to find out how many
objects are driven by this particular device instance.
SESIOC_GETOBJMAP
Read, from the kernel, an array of SES objects which contains
the object identifier, which subenclosure it is in, and the
type of the object.
SESIOC_GETENCSTAT
Get the overall enclosure status.
SESIOC_SETENCSTAT
Set the overall enclosure status.
SESIOC_GETOBJSTAT
Get the status of a particular object.
SESIOC_SETOBJSTAT
Set the status of a particular object.
SESIOC_GETTEXT
Get the associated help text for an object (not yet implemented).
devices often have descriptive text for an object which can tell
you things like location (e.g, "left power supply").
SESIOC_INIT
Initialize the enclosure.
EXAMPLE USAGE
The files contained in
#include <usr/share/examples/ses>
show simple mechanisms for how to use these interfaces, as well as a
very stupid simple monitoring daemon.
FILES
/dev/ses N
The
NthSES
device.
DIAGNOSTICS
When the kernel is configured with
DEBUG
enabled, the first open to an SES device will spit out overall enclosure
parameters to the console.
HISTORY
The
driver was written for the
CAMSCSI
subsystem by Matthew Jacob.
This is a functional equivalent of a similar
driver available in Solaris, Release 7.