DESCRIPTION
 The 
swsensor driver provides a software environmental sensor that works with 
sysctl(8) and 
envstat(8). The driver is intended to be loaded as a kernel module. One can, however, include the 
swsensor driver directly in a kernel using the configuration from the synopsis. By default, the sensor is of type 
ENVSYS_UNITS_INTEGER.
The following values can be specified in the modload(8) command when loading the swsensor module to alter the driver's behavior.
- 
Variable Usage
- 
- 
mode
- 
Controls whether or not swsensor provides internally-maintained limits and limit checking
- 
Value Meaning
- 
- 
0
- 
sensor has no internally-maintained limits
- 
1
- 
sensor provides its own internal limit value
- 
2
- 
sensor maintains an internal adjustable limit and performs its own comparison between the sensor's limit and its current value
 
- 
limit
- 
The initial alarm limit value, if limit emulation is selected (i.e., if mode is set to 1 or 2)
- 
value_max
- 
- 
value_min
- 
The maximum and minimum values. The corresponding ENVSYS_FVALID_MAX and ENVSYS_FVALID_MIN flags are implicitly set.
- 
percentage
- 
This boolean value controls the setting of the ENVSYS_FPERCENT flag.
- 
type
- 
Define the sensor's unit/type. By default, a Temperature sensor is created. Any of the string values from the following table can be specified:
| Temperature | Fan | Voltage AC |  
| Voltage DC | Ohms | Watts |  
| Ampere | Watt hour | Ampere hour |  
| Indicator | Integer | Drive |  
| Battery capacity | Battery charge |  
 (Values are case-sensitive, and spaces must be included.)
- 
value
- 
Provide an initial value for the sensor. If this is omitted, the sensor's initial value is set to zero.
For example,
modload -s type=Voltage\ DC swsensor
will create a sensor of type 
ENVSYS_UNITS_SVOLTS_DC, while
modload -i mode=1 -i limit=50 swsensor
will create a sensor which has an initial, device-provided limit of 50.
The sensor's raw value and state can be manually updated by modifying the sysctl(8) variables “hw.swsensor.cur_value” and “hw.swsensor.state” variables respectively.
 
BUGS
 The 
swsensor driver emulates a device with only a single sensor.
The swsensor driver can only emulate one hardware-managed limit; this is assumed to be the critical-min limit.