1.\" $OpenBSD: sensor_attach.9,v 1.4 2007/03/22 16:55:31 deraadt Exp $ 2.\" $DragonFly: src/share/man/man9/sensor_attach.9,v 1.2 2007/10/03 20:06:54 swildner Exp $ 3.\" 4.\" Copyright (c) 2006 Michael Knudsen <mk@openbsd.org> 5.\" Copyright (c) 2006 Constantine A. Murenin <cnst+openbsd@bugmail.mojo.ru> 6.\" All rights reserved. 7.\" 8.\" Redistribution and use in source and binary forms, with or without 9.\" modification, are permitted provided that the following conditions 10.\" are met: 11.\" 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. The name of the author may not be used to endorse or promote products 15.\" derived from this software without specific prior written permission. 16.\" 17.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 19.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 20.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 23.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 25.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27.\" 28.Dd August 19, 2007 29.Dt SENSOR_ATTACH 9 30.Os 31.Sh NAME 32.Nm sensor_attach , 33.Nm sensor_detach , 34.Nm sensordev_install , 35.Nm sensordev_deinstall , 36.Nm sensor_task_register , 37.Nm sensor_task_unregister 38.Nd sensors framework 39.Sh SYNOPSIS 40.In sys/sensors.h 41.Ft void 42.Fn "sensordev_install" "struct ksensordev *sensdev" 43.Ft void 44.Fn "sensordev_deinstall" "struct ksensordev *sensdev" 45.Pp 46.Ft void 47.Fn "sensor_attach" "struct ksensordev *sensdev" "struct ksensor *sens" 48.Ft void 49.Fn "sensor_detach" "struct ksensordev *sensdev" "struct ksensor *sens" 50.Pp 51.Ft int 52.Fn "sensor_task_register" "void *arg" "void (*func)(void *)" "int period" 53.Ft void 54.Fn "sensor_task_unregister" "void *arg" 55.Sh DESCRIPTION 56The 57sensors 58framework API provides a mechanism for manipulation of hardware sensors 59that are available under the 60.Va hw.sensors 61.Xr sysctl 8 62tree. 63.Pp 64.Fn sensor_attach 65adds the sensor specified by the 66.Pa sens 67argument to the sensor device specified by the 68.Pa sensdev 69argument. 70.Fn sensor_detach 71can be used to remove sensors previously added by 72.Fn sensor_attach . 73.Pp 74.Fn sensordev_install 75registers the sensor device specified by the 76.Pa sensdev 77argument so that all sensors that are attached to the device become 78accessible via the sysctl interface. 79.Fn sensordev_deinstall 80can be used to remove sensor devices previously registered by 81.Fn sensordev_install . 82.Pp 83Drivers are responsible for retrieving, interpreting and normalising 84sensor values and updating the sensor struct periodically. 85If the driver needs process context, for example to sleep, it can 86register a task with the sensor framework. 87.Pp 88.Fn sensor_task_register 89is used to register a periodic task to update sensors. 90The 91.Fa func 92argument is a pointer to the function to run with an interval of 93.Fa period 94seconds. 95The 96.Fa arg 97parameter is the argument given to the 98.Fa func 99function. 100The 101.Fn sensor_task_unregister 102removes all tasks previously registered with 103.Fn sensor_task_register 104with an argument of 105.Fa arg . 106.Sh COMPATIBILITY 107.Ss sensor_task 108The 109.Fn sensor_task_register 110and 111.Fn sensor_task_unregister 112functions that are included in 113.Ox 4.2 114and later 115are not compatible with 116.Fx . 117.Fx 118includes an implementation that is similar and compatible 119with an earlier version of 120these 121.Va sensor_task 122functions that was available from 123.Ox 3.9 124until 125.Ox 4.1 . 126.Pp 127Drivers that only call 128.Fn sensor_task_register 129and don't check its return value are not affected by this 130.Va sensor_task 131compatibility notice. 132.Sh SEE ALSO 133.Xr systat 1 , 134.Xr sysctl 3 , 135.Xr sensorsd 8 , 136.Xr sysctl 8 137.Sh HISTORY 138The sensor framework was written by 139.An Alexander Yurchenko Aq grange@openbsd.org 140and first appeared in 141.Ox 3.4 . 142.An David Gwynne Aq dlg@openbsd.org 143later extended it for 144.Ox 3.8 . 145.An Constantine A. Murenin Aq cnst+openbsd@bugmail.mojo.ru 146extended it even further by introducing the concept of sensor devices in 147.Ox 4.1 . 148.Pp 149The framework was ported to 150.Fx 151by 152.An Constantine A. Murenin 153as a Google Summer of Code 2007 project. 154