~apw/ubuntu/oneiric/lm-sensors-3/kernel-versions

« back to all changes in this revision

Viewing changes to prog/sensord/rrd.c

  • Committer: Bazaar Package Importer
  • Author(s): Aurelien Jarno
  • Date: 2011-02-06 14:46:28 UTC
  • mfrom: (1.1.4 upstream) (0.1.15 sid)
  • Revision ID: james.westby@ubuntu.com-20110206144628-14h2w8yva5p98vv9
Tags: 1:3.2.0-1
* New upstream version.
* Suggests fancontrol instead of recommending it in lm-sensors (closes:
  bug#567185).
* Suggests lm-sensors instead of recommending it in libsensors4 (closes:
  bug#602914).
* Suggests rrdtool in sensord (closes: bug#588132).
* Detect SMSC SCH5524-NS chip (closes: bug#588355).
* Bumped Standards-version to 3.9.1 (no changes).

Show diffs side-by-side

added added

removed removed

Lines of Context:
137
137
        }
138
138
}
139
139
 
 
140
/* Returns the number of features processed, or -1 on error */
140
141
static int _applyToFeatures(FeatureFN fn, void *data,
141
142
                            const sensors_chip_name *chip,
142
 
                            const ChipDescriptor *desc)
 
143
                            const ChipDescriptor *desc,
 
144
                            int labelOffset)
143
145
{
144
146
        int i;
145
147
        const FeatureDescriptor *features = desc->features;
147
149
        const char *rawLabel;
148
150
        char *label;
149
151
 
150
 
        for (i = 0; i < MAX_RRD_SENSORS && features[i].format; ++i) {
 
152
        for (i = 0; labelOffset + i < MAX_RRD_SENSORS && features[i].format; ++i) {
151
153
                feature = features + i;
152
154
                rawLabel = feature->feature->name;
153
155
 
158
160
                        return -1;
159
161
                }
160
162
 
161
 
                rrdCheckLabel(rawLabel, i);
162
 
                fn(data, rrdLabels[i], label, feature);
 
163
                rrdCheckLabel(rawLabel, labelOffset + i);
 
164
                fn(data, rrdLabels[labelOffset + i], label, feature);
163
165
                free(label);
164
166
        }
165
 
        return 0;
 
167
        return i;
166
168
}
167
169
 
168
170
static ChipDescriptor *lookup_known_chips(const sensors_chip_name *chip)
184
186
 
185
187
static int applyToFeatures(FeatureFN fn, void *data)
186
188
{
187
 
        int i, i_detected, ret;
 
189
        int i, i_detected, ret, labelOffset = 0;
188
190
        const sensors_chip_name *chip, *chip_arg;
189
191
        ChipDescriptor *desc;
190
192
 
197
199
                        if (!desc)
198
200
                                continue;
199
201
 
200
 
                        ret = _applyToFeatures(fn, data, chip, desc);
201
 
                        if (ret)
 
202
                        ret = _applyToFeatures(fn, data, chip, desc, labelOffset);
 
203
                        if (ret < 0)
202
204
                                return ret;
 
205
                        labelOffset += ret;
203
206
                }
204
207
        }
205
208
        return 0;
235
238
                        min = "-100";
236
239
                        max = "250";
237
240
                        break;
 
241
                case DataType_loadavg:
 
242
                        min = "0";
 
243
                        max = "U";
 
244
                        break;
238
245
                default:
239
246
                        min = max = "U";
240
247
                        break;
254
261
        int ret = 0;
255
262
        struct ds data = { 0, argv};
256
263
        ret = applyToFeatures(rrdGetSensors_DS, &data);
257
 
        if (!ret && sensord_args.doLoad)
258
 
                rrdGetSensors_DS(&data, LOADAVG, LOAD_AVERAGE, NULL);
 
264
        if (!ret && sensord_args.doLoad) {
 
265
                FeatureDescriptor feature;
 
266
                feature.type = DataType_loadavg;
 
267
                rrdGetSensors_DS (&data, LOADAVG, LOAD_AVERAGE, &feature);
 
268
        }
259
269
        return ret ? -1 : data.num;
260
270
}
261
271