Changeset 4839
- Timestamp:
- 09/23/07 14:18:46 (6 years ago)
- Files:
-
- 1 modified
-
lm-sensors/branches/lm-sensors-3.0.0/lib/access.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/branches/lm-sensors-3.0.0/lib/access.c
r4838 r4839 227 227 { 228 228 const sensors_subfeature *subfeature; 229 const sensors_feature *feature;230 const sensors_chip *chip;231 229 const sensors_expr *expr = NULL; 232 230 double val; … … 237 235 if (!(subfeature = sensors_lookup_subfeature_nr(name, subfeat_nr))) 238 236 return -SENSORS_ERR_NO_ENTRY; 239 240 if (subfeature->flags & SENSORS_COMPUTE_MAPPING) 237 if (!(subfeature->flags & SENSORS_MODE_R)) 238 return -SENSORS_ERR_ACCESS_R; 239 240 /* Apply compute statement if it exists */ 241 if (subfeature->flags & SENSORS_COMPUTE_MAPPING) { 242 const sensors_feature *feature; 243 const sensors_chip *chip; 244 241 245 feature = sensors_lookup_feature_nr(name, 242 246 subfeature->mapping); 243 else 244 feature = NULL; 245 246 if (!(subfeature->flags & SENSORS_MODE_R)) 247 return -SENSORS_ERR_ACCESS_R; 248 for (chip = NULL; 249 !expr && (chip = sensors_for_all_config_chips(name, chip));) 250 for (i = 0; !expr && (i < chip->computes_count); i++) { 251 if (feature && !strcmp(feature->name, 252 chip->computes[i].name)) { 253 expr = chip->computes[i].from_proc; 247 248 chip = NULL; 249 while ((chip = sensors_for_all_config_chips(name, chip))) 250 for (i = 0; i < chip->computes_count; i++) { 251 if (!strcmp(feature->name, 252 chip->computes[i].name)) { 253 expr = chip->computes[i].from_proc; 254 break; 255 } 254 256 } 255 } 257 } 258 256 259 if (sensors_read_sysfs_attr(name, subfeat_nr, &val)) 257 260 return -SENSORS_ERR_PROC; … … 270 273 { 271 274 const sensors_subfeature *subfeature; 272 const sensors_feature *feature;273 const sensors_chip *chip;274 275 const sensors_expr *expr = NULL; 275 276 int i, res; … … 280 281 if (!(subfeature = sensors_lookup_subfeature_nr(name, subfeat_nr))) 281 282 return -SENSORS_ERR_NO_ENTRY; 282 283 if (subfeature->flags & SENSORS_COMPUTE_MAPPING) 283 if (!(subfeature->flags & SENSORS_MODE_W)) 284 return -SENSORS_ERR_ACCESS_W; 285 286 /* Apply compute statement if it exists */ 287 if (subfeature->flags & SENSORS_COMPUTE_MAPPING) { 288 const sensors_feature *feature; 289 const sensors_chip *chip; 290 284 291 feature = sensors_lookup_feature_nr(name, 285 292 subfeature->mapping); 286 else 287 feature = NULL; 288 289 if (!(subfeature->flags & SENSORS_MODE_W)) 290 return -SENSORS_ERR_ACCESS_W; 291 for (chip = NULL; 292 !expr && (chip = sensors_for_all_config_chips(name, chip));) 293 for (i = 0; !expr && (i < chip->computes_count); i++) { 294 if (feature && !strcmp(feature->name, 295 chip->computes[i].name)) { 296 expr = chip->computes[i].to_proc; 293 294 chip = NULL; 295 while ((chip = sensors_for_all_config_chips(name, chip))) 296 for (i = 0; i < chip->computes_count; i++) { 297 if (!strcmp(feature->name, 298 chip->computes[i].name)) { 299 expr = chip->computes[i].to_proc; 300 break; 301 } 297 302 } 298 }303 } 299 304 300 305 to_write = value;
