2 .\" Matthew Jacob <mjacob@FreeBSD.org>. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .Nd SCSI Environmental Services driver
37 driver provides support for all
39 devices of the environmental services class that are attached to the system
42 Host Adapter, as well as emulated support for SAF-TE (SCSI Accessible
43 Fault Tolerant Enclosures).
44 The environmental services class generally are enclosure devices that
45 provide environmental information such as number of power supplies (and
46 state), temperature, device slots, and so on.
51 adapter must also be separately configured into the system
54 Environmental Services device can be configured.
55 .Sh KERNEL CONFIGURATION
56 It is only necessary to explicitly configure one
58 device; data structures are dynamically allocated as devices are found
64 .Va SES_ENABLE_PASSTHROUGH ,
65 may be specified to allow the
67 driver to perform functions on devices of other classes that claim to
77 They are defined in the header file
78 .In cam/scsi/scsi_enc.h
80 .Bl -tag -width ENCIOC_GETENCSTAT
82 Used to find out how many
84 elements are driven by this particular device instance.
85 .It Dv ENCIOC_GETELMMAP
86 Read, from the kernel, an array of SES elements which contains
87 the element identifier, which subenclosure it is in, and the
90 .It Dv ENCIOC_GETENCSTAT
91 Get the overall enclosure status.
92 .It Dv ENCIOC_SETENCSTAT
93 Set the overall enclosure status.
94 .It Dv ENCIOC_GETELMSTAT
95 Get the status of a particular element.
96 .It Dv ENCIOC_SETELMSTAT
97 Set the status of a particular element.
99 Get the associated help text for an element (not yet implemented).
101 devices often have descriptive text for an element which can tell
102 you things like location (e.g., "left power supply").
104 Initialize the enclosure.
105 .It Dv ENCIOC_GETELMDESC
106 Get the element's descriptor string.
107 .It Dv ENCIOC_GETELMDEVNAMES
108 Get the device names, if any, associated with this element.
109 .It Dv ENCIOC_GETSTRING
110 Used to read the SES String In Diagnostic Page.
111 The contents of this page are device-specific.
112 .It Dv ENCIOC_SETSTRING
113 Used to set the SES String Out Diagnostic Page.
114 The contents of this page are device-specific.
115 .It Dv ENCIOC_GETENCNAME
116 Used to get the name of the enclosure.
117 .It Dv ENCIOC_GETENCID
118 Used to get the Enclosure Logical Identifier.
121 The files contained in
122 .In /usr/share/examples/ses
123 show simple mechanisms for how to use these interfaces, as well as a
124 very stupid simple monitoring daemon.
126 .Bl -tag -width /dev/rsdXXXXX -compact
127 .It Pa /dev/ses Ns Ar N
134 When the kernel is configured with
136 enabled, the first open to an SES device will spit out overall enclosure
137 parameters to the console.
143 driver was originally written for the
146 subsystem by Matthew Jacob and first released in
148 It was a functional equivalent of a similar
149 driver available in Solaris, Release 7.
150 It was largely rewritten by Alexander Motin, Justin Gibbs, and Will Andrews for