SENSOR_ATTACH(9)

NAME
sensor_attach, sensor_detach, sensordev_install, sensordev_deinstall, sensor_task_register, sensor_task_unregister - sensors framework

SYNOPSIS
#include <sys/time.h>
#include <sys/sensors.h>
void
sensordev_install(struct ksensordev *sensdev);
void
sensordev_deinstall(struct ksensordev *sensdev);
void
sensor_attach(struct ksensordev *sensdev, struct ksensor *sens);
void
sensor_detach(struct ksensordev *sensdev, struct ksensor *sens);
void
sensor_task_register(void *arg, void (*func)(void *), int period);
void
sensor_task_unregister(void *arg);

DESCRIPTION
The sensors framework API provides a mechanism for manipulation of hardware sensors that are available under the hw.sensors sysctl(8) tree.

The sensor_attach() function adds the sensor specified by the sens argument to the sensor device specified by the sensdev argument. The sensor_detach() function can be used to remove sensors previously added by sensor_attach().

The sensordev_install() function registers the sensor device specified by the sensdev argument so that all sensors that are attached to the device become accessible via the sysctl interface. The sensordev_deinstall() function can be used to remove sensor devices previously registered by sensordev_install().

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.

The sensor_task_register() function 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. The sensor_task_unregister() function removes all tasks previously registered with sensor_task_register() with an argument of arg.

COMPATIBILITY

  sensor_task
The sensor_task_register() and sensor_task_unregister() functions that are included in OpenBSD 4.2 and later are not compatible with DragonFly. DragonFly includes an implementation that is similar and compatible with an earlier version of these sensor_task() functions that was available from OpenBSD 3.9 until OpenBSD 4.1.

Drivers that only call sensor_task_register() and do not check its return value are not affected by this sensor_task() compatibility notice.

SEE ALSO
systat(1), sysctl(3), sensorsd(8), sysctl(8)

HISTORY
The sensor framework was written by Alexander Yurchenko <grange@openbsd.org> and first appeared in OpenBSD 3.4. David Gwynne <dlg@openbsd.org> later extended it for OpenBSD 3.8. Constantine A. Murenin <cnst+openbsd@bugmail.mojo.ru> extended it even further by introducing the concept of sensor devices in OpenBSD 4.1.

The framework was ported to FreeBSD by Constantine A. Murenin as a Google Summer of Code 2007 project.