Changeset 4553

Show
Ignore:
Timestamp:
07/05/07 17:03:22 (7 years ago)
Author:
khali
Message:

Move sensors_proc_read and sensors_proc_write to sysfs.c, and rename them
to something more in line with what they do.

Location:
lm-sensors/branches/lm-sensors-3.0.0/lib
Files:
2 removed
4 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/lib/Module.mk

    r4545 r4553  
    4747 
    4848LIBCSOURCES := $(MODULE_DIR)/data.c $(MODULE_DIR)/general.c \ 
    49                $(MODULE_DIR)/error.c \ 
    50                $(MODULE_DIR)/proc.c $(MODULE_DIR)/access.c \ 
     49               $(MODULE_DIR)/error.c $(MODULE_DIR)/access.c \ 
    5150               $(MODULE_DIR)/init.c $(MODULE_DIR)/sysfs.c 
    5251 
  • lm-sensors/branches/lm-sensors-3.0.0/lib/access.c

    r4550 r4553  
    2525#include "data.h" 
    2626#include "error.h" 
    27 #include "proc.h" 
     27#include "sysfs.h" 
    2828#include "general.h" 
    2929 
     
    259259                        } 
    260260                } 
    261         if (sensors_read_proc(name, feature, &val)) 
     261        if (sensors_read_sysfs_attr(name, feature, &val)) 
    262262                return -SENSORS_ERR_PROC; 
    263263        if (!expr) 
     
    307307                if ((res = sensors_eval_expr(name, expr, value, &to_write))) 
    308308                        return res; 
    309         if (sensors_write_proc(name, feature, to_write)) 
     309        if (sensors_write_sysfs_attr(name, feature, to_write)) 
    310310                return -SENSORS_ERR_PROC; 
    311311        return 0; 
  • lm-sensors/branches/lm-sensors-3.0.0/lib/sysfs.c

    r4545 r4553  
    394394} 
    395395 
     396int sensors_read_sysfs_attr(sensors_chip_name name, int feature, double *value) 
     397{ 
     398        const sensors_chip_feature *the_feature; 
     399        int mag; 
     400        char n[NAME_MAX]; 
     401        FILE *f; 
     402        int dummy; 
     403        char check; 
     404        const char *suffix = ""; 
     405 
     406        if (!(the_feature = sensors_lookup_feature_nr(&name, feature))) 
     407                return -SENSORS_ERR_NO_ENTRY; 
     408 
     409        /* REVISIT: this is a ugly hack */ 
     410        if (sscanf(the_feature->data.name, "in%d%c", &dummy, &check) == 1 
     411         || sscanf(the_feature->data.name, "fan%d%c", &dummy, &check) == 1 
     412         || sscanf(the_feature->data.name, "temp%d%c", &dummy, &check) == 1) 
     413                suffix = "_input"; 
     414 
     415        snprintf(n, NAME_MAX, "%s/%s%s", name.busname, the_feature->data.name, 
     416                 suffix); 
     417        if ((f = fopen(n, "r"))) { 
     418                int res = fscanf(f, "%lf", value); 
     419                fclose(f); 
     420                if (res != 1) 
     421                        return -SENSORS_ERR_PROC; 
     422                for (mag = the_feature->scaling; mag > 0; mag --) 
     423                        *value /= 10.0; 
     424        } else 
     425                return -SENSORS_ERR_PROC; 
     426 
     427        return 0; 
     428} 
     429   
     430int sensors_write_sysfs_attr(sensors_chip_name name, int feature, double value) 
     431{ 
     432        const sensors_chip_feature *the_feature; 
     433        int mag; 
     434        char n[NAME_MAX]; 
     435        FILE *f; 
     436        int dummy; 
     437        char check; 
     438        const char *suffix = ""; 
     439  
     440        if (!(the_feature = sensors_lookup_feature_nr(&name, feature))) 
     441                return -SENSORS_ERR_NO_ENTRY; 
     442 
     443        /* REVISIT: this is a ugly hack */ 
     444        if (sscanf(the_feature->data.name, "in%d%c", &dummy, &check) == 1 
     445         || sscanf(the_feature->data.name, "fan%d%c", &dummy, &check) == 1 
     446         || sscanf(the_feature->data.name, "temp%d%c", &dummy, &check) == 1) 
     447                suffix = "_input"; 
     448 
     449        snprintf(n, NAME_MAX, "%s/%s%s", name.busname, the_feature->data.name, 
     450                 suffix); 
     451        if ((f = fopen(n, "w"))) { 
     452                for (mag = the_feature->scaling; mag > 0; mag --) 
     453                        value *= 10.0; 
     454                fprintf(f, "%d", (int) value); 
     455                fclose(f); 
     456        } else 
     457                return -SENSORS_ERR_PROC; 
     458 
     459        return 0; 
     460} 
  • lm-sensors/branches/lm-sensors-3.0.0/lib/sysfs.h

    r4462 r4553  
    2929extern int sensors_read_sysfs_bus(void); 
    3030 
     31/* Read a value out of a sysfs attribute file */ 
     32int sensors_read_sysfs_attr(sensors_chip_name name, int feature, double *value); 
     33 
     34/* Write a value to a sysfs attribute file */ 
     35int sensors_write_sysfs_attr(sensors_chip_name name, int feature, double value); 
     36 
    3137#endif /* !SENSORS_LIB_SYSFS_H */