|SENSOR_ATTACH(9)||Kernel Developer's Manual||SENSOR_ATTACH(9)|
struct ksensordev *
struct ksensor *
devnum, enum sensor_type
struct sensor_task *
*arg, void (*func)(void
The sensors framework API provides a mechanism for manipulation of hardware sensors that are available under the hw.sensors sysctl(8) tree.
sensor_attach() adds the sensor specified
by the sens argument to the sensor device specified by
the sensdev argument.
sensor_detach() can be used to remove sensors
previously added by
sensordev_install() registers the sensor
device specified by the sensdev argument so that all
sensors that are attached to the device become accessible via the sysctl
sensordev_deinstall() can be used to
remove sensor devices previously registered by
sensordev_get() takes ordinal number
devnum specifying a sensor device and returns a
pointer to the corresponding struct ksensordev, or
NULL if no such sensor device exists.
sensor_find() takes ordinal number
devnum specifying a sensor device, sensor type
stype and ordinal number of sensor of such type
numt, and returns a pointer to the corresponding
struct ksensor, or
NULL if no
such sensor exists.
sensor_find() will always return
NULL if the corresponding sensor devices are not
Drivers are responsible for retrieving, interpreting, and normalising sensor values and updating the sensor struct periodically. If the driver needs process context, for example to sleep, it can register a task with the sensor framework.
sensor_task_register() is used to register
a periodic task to update sensors. The func argument
is a pointer to the function to run with an interval of
period seconds. The arg
parameter is the argument given to the func function.
sensor_task_unregister() ensures that the task
specified by the st argument is no longer running, and
then removes it from the queue.
All the functions in the sensor framework must be called during
autoconf(9) or from a process context.
sensor_task_unregister() must not be
called from the sensor task that it is about to remove.
The sensor framework was written by Alexander Yurchenko <email@example.com> and first appeared in OpenBSD 3.4. David Gwynne <firstname.lastname@example.org> later extended it for OpenBSD 3.8. Constantine A. Murenin <email@example.com> extended it even further by introducing the concept of sensor devices in OpenBSD 4.1.
|September 14, 2015||OpenBSD-current|