2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-02 23:35:57 +00:00

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
This commit is contained in:
Jean Delvare
2007-08-13 20:19:44 +00:00
parent d9ec11a6c7
commit 3b25c8dc22
4 changed files with 37 additions and 35 deletions

View File

@@ -157,13 +157,13 @@ applyToFeatures
const char *rawLabel = NULL; const char *rawLabel = NULL;
char *label = NULL; char *label = NULL;
int valid = 0; 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); sensorLog (LOG_ERR, "Error getting sensor validity: %s/#%d", chip->prefix, labelNumber);
ret = -1; 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); sensorLog (LOG_ERR, "Error getting raw sensor label: %s/#%d", chip->prefix, labelNumber);
ret = -1; 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); sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber);
ret = -1; ret = -1;
} else if (valid) { } else if (valid) {

View File

@@ -35,7 +35,7 @@
int int
getValid getValid
(sensors_chip_name name, int feature, int *valid) { (const sensors_chip_name *name, int feature, int *valid) {
int err; int err;
err = sensors_get_ignored (name, feature); err = sensors_get_ignored (name, feature);
if (err >= 0) { if (err >= 0) {
@@ -47,19 +47,19 @@ getValid
int int
getLabel getLabel
(sensors_chip_name name, int feature, char **label) { (const sensors_chip_name *name, int feature, char **label) {
int err; int err;
err = sensors_get_label (&name, feature, label); err = sensors_get_label (name, feature, label);
return err; return err;
} }
int int
getRawLabel 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; const sensors_feature_data *rawFeature;
int nr1 = 0, nr2 = 0, err = 0; int nr1 = 0, nr2 = 0, err = 0;
do { do {
rawFeature = sensors_get_all_features (&name, &nr1, &nr2); rawFeature = sensors_get_all_features (name, &nr1, &nr2);
} while (rawFeature && (rawFeature->number != feature)); } while (rawFeature && (rawFeature->number != feature));
/* TODO: Ensure labels match RRD construct and are not repeated! */ /* TODO: Ensure labels match RRD construct and are not repeated! */
if (!rawFeature) { if (!rawFeature) {
@@ -110,10 +110,10 @@ readUnknownChip
int valid = 0; int valid = 0;
double value; 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); sensorLog (LOG_ERR, "Error getting sensor validity: %s/%s", chip->prefix, sensor->name);
ret = 20; 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); sensorLog (LOG_ERR, "Error getting sensor label: %s/%s", chip->prefix, sensor->name);
ret = 21; ret = 21;
} else if (!valid) { } else if (!valid) {
@@ -170,10 +170,10 @@ doKnownChip
if ((action == DO_SCAN) && !alarm) { if ((action == DO_SCAN) && !alarm) {
continue; 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); sensorLog (LOG_ERR, "Error getting sensor validity: %s/#%d", chip->prefix, labelNumber);
ret = 22; 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); sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber);
ret = 22; ret = 22;
} else if (valid) { } else if (valid) {

View File

@@ -58,9 +58,9 @@ extern int unloadLib (void);
/* from sense.c */ /* from sense.c */
extern int getValid (sensors_chip_name name, int feature, int *valid); extern int getValid (const sensors_chip_name *name, int feature, int *valid);
extern int getLabel (sensors_chip_name name, int feature, char **label); extern int getLabel (const sensors_chip_name *name, int feature, char **label);
extern int getRawLabel (sensors_chip_name name, int feature, const char **label); extern int getRawLabel (const sensors_chip_name *name, int feature, const char **label);
extern int readChips (void); extern int readChips (void);
extern int scanChips (void); extern int scanChips (void);

View File

@@ -46,10 +46,10 @@ extern int main(int argc, char *arv[]);
static void print_short_help(void); static void print_short_help(void);
static void print_long_help(void); static void print_long_help(void);
static void print_version(void); static void print_version(void);
static void do_a_print(sensors_chip_name name); static void do_a_print(const sensors_chip_name *name);
static int do_a_set(sensors_chip_name name); static int do_a_set(const sensors_chip_name *name);
static int do_the_real_work(int *error); 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 #define CHIPS_MAX 20
sensors_chip_name chips[CHIPS_MAX]; sensors_chip_name chips[CHIPS_MAX];
@@ -261,10 +261,10 @@ int do_the_real_work(int *error)
for(i = 0; i < chips_count; i++) for(i = 0; i < chips_count; i++)
if (sensors_match_chip(chip, &chips[i])) { if (sensors_match_chip(chip, &chips[i])) {
if(do_sets) { if(do_sets) {
if (do_a_set(*chip)) if (do_a_set(chip))
*error = 1; *error = 1;
} else } else
do_a_print(*chip); do_a_print(chip);
i = chips_count; i = chips_count;
cnt++; cnt++;
} }
@@ -272,11 +272,11 @@ int do_the_real_work(int *error)
} }
/* returns 1 on error */ /* returns 1 on error */
int do_a_set(sensors_chip_name name) int do_a_set(const sensors_chip_name *name)
{ {
int res; int res;
if ((res = sensors_do_chip_sets(&name))) { if ((res = sensors_do_chip_sets(name))) {
if (res == -SENSORS_ERR_PROC) { if (res == -SENSORS_ERR_PROC) {
fprintf(stderr,"%s: %s for writing;\n",sprintf_chip_name(name), fprintf(stderr,"%s: %s for writing;\n",sprintf_chip_name(name),
sensors_strerror(res)); sensors_strerror(res));
@@ -293,38 +293,40 @@ int do_a_set(sensors_chip_name name)
return 0; 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 #define BUF_SIZE 200
static char buf[BUF_SIZE]; static char buf[BUF_SIZE];
if (name.bus == SENSORS_CHIP_NAME_BUS_ISA) if (name->bus == SENSORS_CHIP_NAME_BUS_ISA)
snprintf(buf,BUF_SIZE,"%s-isa-%04x",name.prefix,name.addr); snprintf(buf, BUF_SIZE, "%s-isa-%04x", name->prefix, name->addr);
else if (name.bus == SENSORS_CHIP_NAME_BUS_PCI) else if (name->bus == SENSORS_CHIP_NAME_BUS_PCI)
snprintf(buf,BUF_SIZE,"%s-pci-%04x",name.prefix,name.addr); snprintf(buf, BUF_SIZE, "%s-pci-%04x", name->prefix, name->addr);
else if (name.bus == SENSORS_CHIP_NAME_BUS_DUMMY) else if (name->bus == SENSORS_CHIP_NAME_BUS_DUMMY)
snprintf(buf,BUF_SIZE,"%s-%s-%04x",name.prefix,name.busname,name.addr); snprintf(buf, BUF_SIZE, "%s-%s-%04x", name->prefix, name->busname,
name->addr);
else 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; return buf;
} }
void do_a_print(sensors_chip_name name) void do_a_print(const sensors_chip_name *name)
{ {
if (hide_unknown) if (hide_unknown)
return; return;
printf("%s\n",sprintf_chip_name(name)); printf("%s\n",sprintf_chip_name(name));
if (!hide_adapter) { if (!hide_adapter) {
const char *adap = sensors_get_adapter_name(name.bus); const char *adap = sensors_get_adapter_name(name->bus);
if (adap) if (adap)
printf("Adapter: %s\n", adap); printf("Adapter: %s\n", adap);
else 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) if (do_unknown)
print_unknown_chip(&name); print_unknown_chip(name);
else else
print_generic_chip(&name); print_generic_chip(name);
printf("\n"); printf("\n");
} }