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