DragonFly On-Line Manual Pages
SENSOR_ATTACH(9) DragonFly Kernel Developer's Manual 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.
DragonFly 4.1 April 10, 2015 DragonFly 4.1