From 6c848b7fa3f54a1570b7da506d0e5c89f2e9914e Mon Sep 17 00:00:00 2001 From: dlg Date: Sat, 28 Jan 2006 09:53:37 +0000 Subject: get rid of the sensors globals. theyre were only used by sysctl for locating and finding the correct sensor to spit out. instead provide a a sensor_get function that wraps up the access to the vars. theyre now safe inside kern_sensors.c. theres also a touch of whitespace tweaking ok grange@ --- sys/kern/kern_sensors.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'sys/kern/kern_sensors.c') diff --git a/sys/kern/kern_sensors.c b/sys/kern/kern_sensors.c index 2c2eeddbfaa..4d78912687b 100644 --- a/sys/kern/kern_sensors.c +++ b/sys/kern/kern_sensors.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sensors.c,v 1.6 2006/01/19 17:08:40 grange Exp $ */ +/* $OpenBSD: kern_sensors.c,v 1.7 2006/01/28 09:53:37 dlg Exp $ */ /* * Copyright (c) 2005 David Gwynne @@ -27,8 +27,8 @@ #include -int _sensors_count = 0; -struct sensors_head _sensors_list = SLIST_HEAD_INITIALIZER(&_sensors_list); +int sensors_count = 0; +struct sensors_head sensors_list = SLIST_HEAD_INITIALIZER(&sensors_list); struct sensor_task { void *arg; @@ -53,18 +53,18 @@ sensor_add(struct sensor *sens) int s; s = splhigh(); - if (_sensors_count == 0) { + if (sensors_count == 0) { sens->num = 0; - SLIST_INSERT_HEAD(&_sensors_list, sens, list); + SLIST_INSERT_HEAD(&sensors_list, sens, list); } else { - for (v = SLIST_FIRST(&_sensors_list); + for (v = SLIST_FIRST(&sensors_list); (nv = SLIST_NEXT(v, list)) != NULL; v = nv) if (nv->num - v->num > 1) break; sens->num = v->num + 1; SLIST_INSERT_AFTER(v, sens, list); } - _sensors_count++; + sensors_count++; splx(s); } @@ -74,11 +74,24 @@ sensor_del(struct sensor *sens) int s; s = splhigh(); - _sensors_count--; - SLIST_REMOVE(&_sensors_list, sens, sensor, list); + sensors_count--; + SLIST_REMOVE(&sensors_list, sens, sensor, list); splx(s); } +struct sensor * +sensor_get(int num) +{ + struct sensor *s; + + SLIST_FOREACH(s, &sensors_list, list) { + if (s->num == num) + return (s); + } + + return (NULL); +} + int sensor_task_register(void *arg, void (*func)(void *), int period) { -- cgit v1.2.3-59-g8ed1b