summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2006-01-28 09:53:37 +0000
committerdlg <dlg@openbsd.org>2006-01-28 09:53:37 +0000
commit6c848b7fa3f54a1570b7da506d0e5c89f2e9914e (patch)
tree51560aad51165316f78327fcf5ac812e2bdb2c57
parentadd -- after options, so files with leading - work. (diff)
downloadwireguard-openbsd-6c848b7fa3f54a1570b7da506d0e5c89f2e9914e.tar.xz
wireguard-openbsd-6c848b7fa3f54a1570b7da506d0e5c89f2e9914e.zip
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@
-rw-r--r--sys/kern/kern_sensors.c31
-rw-r--r--sys/kern/kern_sysctl.c14
-rw-r--r--sys/sys/sensors.h13
3 files changed, 35 insertions, 23 deletions
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 <dlg@openbsd.org>
@@ -27,8 +27,8 @@
#include <sys/sensors.h>
-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)
{
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index 516f1281964..5cdfb1ae031 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sysctl.c,v 1.137 2006/01/19 17:08:40 grange Exp $ */
+/* $OpenBSD: kern_sysctl.c,v 1.138 2006/01/28 09:53:37 dlg Exp $ */
/* $NetBSD: kern_sysctl.c,v 1.17 1996/05/20 17:49:05 mrg Exp $ */
/*-
@@ -1747,19 +1747,19 @@ int
sysctl_sensors(int *name, u_int namelen, void *oldp, size_t *oldlenp,
void *newp, size_t newlen)
{
- struct sensor *s = NULL;
+ struct sensor *s;
int num;
if (namelen != 1)
return (ENOTDIR);
num = name[0];
- SLIST_FOREACH(s, &_sensors_list, list)
- if (s->num == num)
- return (sysctl_rdstruct(oldp, oldlenp, newp, s,
- sizeof(struct sensor)));
- return (ENOENT);
+ s = sensor_get(num);
+ if (s == NULL)
+ return (ENOENT);
+
+ return (sysctl_rdstruct(oldp, oldlenp, newp, s, sizeof(struct sensor)));
}
int
diff --git a/sys/sys/sensors.h b/sys/sys/sensors.h
index 235ce797013..b1bf848a14a 100644
--- a/sys/sys/sensors.h
+++ b/sys/sys/sensors.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sensors.h,v 1.13 2006/01/19 17:08:40 grange Exp $ */
+/* $OpenBSD: sensors.h,v 1.14 2006/01/28 09:53:37 dlg Exp $ */
/*
* Copyright (c) 2003, 2004 Alexander Yurchenko <grange@openbsd.org>
@@ -84,14 +84,13 @@ struct sensor {
SLIST_HEAD(sensors_head, sensor);
#ifdef _KERNEL
-extern int _sensors_count;
-extern struct sensors_head _sensors_list;
-void sensor_add(struct sensor *);
-void sensor_del(struct sensor *);
+void sensor_add(struct sensor *);
+void sensor_del(struct sensor *);
+struct sensor *sensor_get(int);
-int sensor_task_register(void *, void (*)(void *), int);
-void sensor_task_unregister(void *);
+int sensor_task_register(void *, void (*)(void *), int);
+void sensor_task_unregister(void *);
#endif /* _KERNEL */