From 3b25c8dc22e280bb0b5e2fcc6ec3754a2ff36236 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Mon, 13 Aug 2007 20:19:44 +0000 Subject: [PATCH] Pass structures by reference in sensors and sensord, again for a small performance gain and better consistency with the new libsensors API. git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4668 7894878c-1315-0410-8ee3-d5d059ff63e0 --- prog/sensord/rrd.c | 6 +++--- prog/sensord/sense.c | 18 +++++++++--------- prog/sensord/sensord.h | 6 +++--- prog/sensors/main.c | 42 ++++++++++++++++++++++-------------------- 4 files changed, 37 insertions(+), 35 deletions(-) diff --git a/prog/sensord/rrd.c b/prog/sensord/rrd.c index e44d52b2..d7a7bc56 100644 --- a/prog/sensord/rrd.c +++ b/prog/sensord/rrd.c @@ -157,13 +157,13 @@ applyToFeatures const char *rawLabel = NULL; char *label = NULL; int valid = 0; - if (getValid (*chip, labelNumber, &valid)) { + if (getValid (chip, labelNumber, &valid)) { sensorLog (LOG_ERR, "Error getting sensor validity: %s/#%d", chip->prefix, labelNumber); ret = -1; - } else if (getRawLabel (*chip, labelNumber, &rawLabel)) { + } else if (getRawLabel (chip, labelNumber, &rawLabel)) { sensorLog (LOG_ERR, "Error getting raw sensor label: %s/#%d", chip->prefix, labelNumber); ret = -1; - } else if (getLabel (*chip, labelNumber, &label)) { + } else if (getLabel (chip, labelNumber, &label)) { sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber); ret = -1; } else if (valid) { diff --git a/prog/sensord/sense.c b/prog/sensord/sense.c index 67867a59..701dd03b 100644 --- a/prog/sensord/sense.c +++ b/prog/sensord/sense.c @@ -35,7 +35,7 @@ int getValid -(sensors_chip_name name, int feature, int *valid) { +(const sensors_chip_name *name, int feature, int *valid) { int err; err = sensors_get_ignored (name, feature); if (err >= 0) { @@ -47,19 +47,19 @@ getValid int getLabel -(sensors_chip_name name, int feature, char **label) { +(const sensors_chip_name *name, int feature, char **label) { int err; - err = sensors_get_label (&name, feature, label); + err = sensors_get_label (name, feature, label); return err; } int getRawLabel -(sensors_chip_name name, int feature, const char **label) { +(const sensors_chip_name *name, int feature, const char **label) { const sensors_feature_data *rawFeature; int nr1 = 0, nr2 = 0, err = 0; do { - rawFeature = sensors_get_all_features (&name, &nr1, &nr2); + rawFeature = sensors_get_all_features (name, &nr1, &nr2); } while (rawFeature && (rawFeature->number != feature)); /* TODO: Ensure labels match RRD construct and are not repeated! */ if (!rawFeature) { @@ -110,10 +110,10 @@ readUnknownChip int valid = 0; double value; - if (getValid (*chip, sensor->number, &valid)) { + if (getValid (chip, sensor->number, &valid)) { sensorLog (LOG_ERR, "Error getting sensor validity: %s/%s", chip->prefix, sensor->name); ret = 20; - } else if (getLabel (*chip, sensor->number, &label)) { + } else if (getLabel (chip, sensor->number, &label)) { sensorLog (LOG_ERR, "Error getting sensor label: %s/%s", chip->prefix, sensor->name); ret = 21; } else if (!valid) { @@ -170,10 +170,10 @@ doKnownChip if ((action == DO_SCAN) && !alarm) { continue; - } else if (getValid (*chip, labelNumber, &valid)) { + } else if (getValid (chip, labelNumber, &valid)) { sensorLog (LOG_ERR, "Error getting sensor validity: %s/#%d", chip->prefix, labelNumber); ret = 22; - } else if (getLabel (*chip, labelNumber, &label)) { + } else if (getLabel (chip, labelNumber, &label)) { sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber); ret = 22; } else if (valid) { diff --git a/prog/sensord/sensord.h b/prog/sensord/sensord.h index 943aa0a0..94e53313 100644 --- a/prog/sensord/sensord.h +++ b/prog/sensord/sensord.h @@ -58,9 +58,9 @@ extern int unloadLib (void); /* from sense.c */ -extern int getValid (sensors_chip_name name, int feature, int *valid); -extern int getLabel (sensors_chip_name name, int feature, char **label); -extern int getRawLabel (sensors_chip_name name, int feature, const char **label); +extern int getValid (const sensors_chip_name *name, int feature, int *valid); +extern int getLabel (const sensors_chip_name *name, int feature, char **label); +extern int getRawLabel (const sensors_chip_name *name, int feature, const char **label); extern int readChips (void); extern int scanChips (void); diff --git a/prog/sensors/main.c b/prog/sensors/main.c index 91b03a5e..9171a056 100644 --- a/prog/sensors/main.c +++ b/prog/sensors/main.c @@ -46,10 +46,10 @@ extern int main(int argc, char *arv[]); static void print_short_help(void); static void print_long_help(void); static void print_version(void); -static void do_a_print(sensors_chip_name name); -static int do_a_set(sensors_chip_name name); +static void do_a_print(const sensors_chip_name *name); +static int do_a_set(const sensors_chip_name *name); static int do_the_real_work(int *error); -static const char *sprintf_chip_name(sensors_chip_name name); +static const char *sprintf_chip_name(const sensors_chip_name *name); #define CHIPS_MAX 20 sensors_chip_name chips[CHIPS_MAX]; @@ -261,10 +261,10 @@ int do_the_real_work(int *error) for(i = 0; i < chips_count; i++) if (sensors_match_chip(chip, &chips[i])) { if(do_sets) { - if (do_a_set(*chip)) + if (do_a_set(chip)) *error = 1; } else - do_a_print(*chip); + do_a_print(chip); i = chips_count; cnt++; } @@ -272,11 +272,11 @@ int do_the_real_work(int *error) } /* returns 1 on error */ -int do_a_set(sensors_chip_name name) +int do_a_set(const sensors_chip_name *name) { int res; - if ((res = sensors_do_chip_sets(&name))) { + if ((res = sensors_do_chip_sets(name))) { if (res == -SENSORS_ERR_PROC) { fprintf(stderr,"%s: %s for writing;\n",sprintf_chip_name(name), sensors_strerror(res)); @@ -293,38 +293,40 @@ int do_a_set(sensors_chip_name name) return 0; } -const char *sprintf_chip_name(sensors_chip_name name) +const char *sprintf_chip_name(const sensors_chip_name *name) { #define BUF_SIZE 200 static char buf[BUF_SIZE]; - if (name.bus == SENSORS_CHIP_NAME_BUS_ISA) - snprintf(buf,BUF_SIZE,"%s-isa-%04x",name.prefix,name.addr); - else if (name.bus == SENSORS_CHIP_NAME_BUS_PCI) - snprintf(buf,BUF_SIZE,"%s-pci-%04x",name.prefix,name.addr); - else if (name.bus == SENSORS_CHIP_NAME_BUS_DUMMY) - snprintf(buf,BUF_SIZE,"%s-%s-%04x",name.prefix,name.busname,name.addr); + if (name->bus == SENSORS_CHIP_NAME_BUS_ISA) + snprintf(buf, BUF_SIZE, "%s-isa-%04x", name->prefix, name->addr); + else if (name->bus == SENSORS_CHIP_NAME_BUS_PCI) + snprintf(buf, BUF_SIZE, "%s-pci-%04x", name->prefix, name->addr); + else if (name->bus == SENSORS_CHIP_NAME_BUS_DUMMY) + snprintf(buf, BUF_SIZE, "%s-%s-%04x", name->prefix, name->busname, + name->addr); else - snprintf(buf,BUF_SIZE,"%s-i2c-%d-%02x",name.prefix,name.bus,name.addr); + snprintf(buf, BUF_SIZE, "%s-i2c-%d-%02x", name->prefix, name->bus, + name->addr); return buf; } -void do_a_print(sensors_chip_name name) +void do_a_print(const sensors_chip_name *name) { if (hide_unknown) return; printf("%s\n",sprintf_chip_name(name)); if (!hide_adapter) { - const char *adap = sensors_get_adapter_name(name.bus); + const char *adap = sensors_get_adapter_name(name->bus); if (adap) printf("Adapter: %s\n", adap); else - fprintf(stderr, "Can't get adapter name for bus %d\n", name.bus); + fprintf(stderr, "Can't get adapter name for bus %d\n", name->bus); } if (do_unknown) - print_unknown_chip(&name); + print_unknown_chip(name); else - print_generic_chip(&name); + print_generic_chip(name); printf("\n"); }