From 1017f7399b40ec750195857a0493c3df156fffbe Mon Sep 17 00:00:00 2001 From: Landry Breuil Date: Mon, 7 Mar 2011 20:28:08 +0100 Subject: openbsd: rename has_sensor() to get_sensor() and use it to grab the sensordev struct Signed-off-by: Richard Hughes --- src/openbsd/up-apm-native.h | 5 ++++- src/openbsd/up-native.c | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src/openbsd') diff --git a/src/openbsd/up-apm-native.h b/src/openbsd/up-apm-native.h index c2c3698..cbd931d 100644 --- a/src/openbsd/up-apm-native.h +++ b/src/openbsd/up-apm-native.h @@ -13,6 +13,9 @@ #include +/* sensor struct defs */ +#include + #include #include @@ -44,7 +47,7 @@ typedef struct UpApmNative* up_apm_native_new (const char*); const gchar * up_apm_native_get_path(UpApmNative*); gboolean up_native_is_laptop(); -gboolean up_native_has_sensor(const char*); +gboolean up_native_get_sensor(const char*, struct sensordev*); G_END_DECLS #endif diff --git a/src/openbsd/up-native.c b/src/openbsd/up-native.c index 678d840..aed89f6 100644 --- a/src/openbsd/up-native.c +++ b/src/openbsd/up-native.c @@ -2,7 +2,6 @@ #include "up-native.h" #include -#include #include #include /* XXX why does this macro needs to be in the .c ? */ @@ -57,8 +56,9 @@ up_native_is_laptop() { int apm_fd; struct apm_power_info bstate; + struct sensordev acpiac; - if (up_native_has_sensor("acpiac0")) + if (up_native_get_sensor("acpiac0", &acpiac)) return TRUE; if ((apm_fd = open("/dev/apm", O_RDONLY)) == -1) { @@ -72,25 +72,25 @@ up_native_is_laptop() } /** - * detect if a sensordev is present by its xname (acpibatX/acpiacX) + * get a sensordev by its xname (acpibatX/acpiacX) + * returns a gboolean if found or not */ gboolean -up_native_has_sensor(const char * id) +up_native_get_sensor(const char * id, struct sensordev * snsrdev) { int devn; - struct sensordev snsrdev; - size_t sdlen = sizeof(snsrdev); + size_t sdlen = sizeof(struct sensordev); int mib[] = {CTL_HW, HW_SENSORS, 0, 0 ,0}; for (devn = 0 ; ; devn++) { mib[2] = devn; - if (sysctl(mib, 3, &snsrdev, &sdlen, NULL, 0) == -1) { + if (sysctl(mib, 3, snsrdev, &sdlen, NULL, 0) == -1) { if (errno == ENXIO) continue; if (errno == ENOENT) break; } - if (!strcmp(snsrdev.xname, id)) + if (!strcmp(snsrdev->xname, id)) return TRUE; } return FALSE; -- cgit v1.2.1