[Cpufreqd-devel] sources TODO,1.16,1.17 libsys_acpi.c,1.16,1.17 main.c,1.33,1.34 sensors.c,1.1,1.2
Brought to you by:
mattia-san
From: Mattia D. <mat...@us...> - 2004-07-15 23:40:40
|
Update of /cvsroot/cpufreqd/sources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21809 Modified Files: TODO libsys_acpi.c main.c sensors.c Log Message: modified sensors code to read at least all of my sensors (169) - DONT USE Index: TODO =================================================================== RCS file: /cvsroot/cpufreqd/sources/TODO,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** TODO 1 May 2004 12:12:52 -0000 1.16 --- TODO 15 Jul 2004 23:40:30 -0000 1.17 *************** *** 1,2 **** --- 1,4 ---- + - report better logs when scanning acpi dirs (libsys_init in libsys_acpi.c) + - add checks for empty config file provide useful defaults for the general section Index: sensors.c =================================================================== RCS file: /cvsroot/cpufreqd/sources/sensors.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sensors.c 2 May 2004 21:04:27 -0000 1.1 --- sensors.c 15 Jul 2004 23:40:30 -0000 1.2 *************** *** 25,30 **** "/usr/lib", "/usr/local/lib", ".", 0 }; ! int sensors[32][2]; ! char *sensor_names[32]; --- 25,30 ---- "/usr/lib", "/usr/local/lib", ".", 0 }; ! int sensors[256][2]; ! char *sensor_names[256]; *************** *** 94,127 **** { /* get all sensors from first chip */ ! sensors_chip_name *chip; ! sensors_feature_data *feat; int i, nr=0, nr1=0, nr2=0; double res; - chip = sensors_get_detected_chips(&nr); - i = 0; ! while(1) { ! feat = sensors_get_all_features(*chip, &nr1, &nr2); ! /* end of features? */ ! if(!feat) ! break; ! /* sensor? */ ! if(feat->mapping != -1) ! continue; ! sensors_get_feature(*chip, feat->number, &res); ! sensors[i][0] = feat->number; ! sensors[i][1] = (int)res; ! sensor_names[i] = feat->name; ! i++; ! /* at max sensors limit? */ ! if(i == 31) ! break; } sensors[i][0] = sensors[i][1] = -1; sensor_names[i] = ""; --- 94,133 ---- { /* get all sensors from first chip */ ! const sensors_chip_name *chip; ! const sensors_feature_data *feat; int i, nr=0, nr1=0, nr2=0; double res; i = 0; ! cp_log(LOG_DEBUG, "get_sensors(): getting sensors names\n"); ! while ( (chip = sensors_get_detected_chips(&nr)) != NULL && i<256) { ! nr1 = nr2 =0; ! cp_log(LOG_DEBUG, "get_sensors(): chip#%d - prefix=%s, bus=%d, addr=%d, busname=%s\n", ! nr, chip->prefix, chip->bus, chip->addr, chip->busname); ! /* until our buffer is full */ ! while(i<256) { ! feat = sensors_get_all_features(*chip, &nr1, &nr2); ! ! /* end of features? */ ! if(!feat) { ! cp_log(LOG_DEBUG, "get_sensors(): chip#%d read (%d)\n", nr, i); ! break; ! } ! /* sensor? */ ! if(feat->mapping != -1) ! continue; ! sensors_get_feature(*chip, feat->number, &res); ! sensors[i][0] = feat->number; ! sensors[i][1] = (int)res; ! sensor_names[i] = feat->name; ! i++; ! } } + cp_log(LOG_DEBUG, "get_sensors(): read %d entries\n", i); sensors[i][0] = sensors[i][1] = -1; sensor_names[i] = ""; *************** *** 146,153 **** } else { int i; ! printf(" nr | value | name\n"); ! printf("-----+-------+--------\n"); for(i=0; sensors[i][0] != -1; i++) { ! printf("%4i | %5i | %s\n", sensors[i][0], sensors[i][1], sensor_names[i]); } } --- 152,159 ---- } else { int i; ! printf(" nr | value | name\n"); ! printf(" -----+-------+--------\n"); for(i=0; sensors[i][0] != -1; i++) { ! printf("%3d %4i | %5i | %s\n", i+1, sensors[i][0], sensors[i][1], sensor_names[i]); } } Index: main.c =================================================================== RCS file: /cvsroot/cpufreqd/sources/main.c,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** main.c 2 May 2004 21:04:27 -0000 1.33 --- main.c 15 Jul 2004 23:40:30 -0000 1.34 *************** *** 78,86 **** configuration->log_level = DEFAULT_VERBOSITY; /* LOG_WARNING */ - /* we need to load the sensors before parsing the commandline because - * maybe we need to ouput them - */ - load_sensors(configuration); - /* parse command line (done later than parse_config in order to * be able to overwrite common parameters) --- 78,81 ---- *************** *** 100,103 **** --- 95,103 ---- return(-1); } + + /* we need to load the sensors before parsing the commandline because + * maybe we need to ouput them + */ + load_sensors(configuration); /* read configuration */ *************** *** 823,827 **** int ch,option_index = 0; ! while ((ch = getopt_long(argc, argv, "hsvf:DV:", long_options, &option_index)) != -1) { switch (ch) { case '?': --- 823,827 ---- int ch,option_index = 0; ! while ((ch = getopt_long(argc, argv, "hvf:DV:s", long_options, &option_index)) != -1) { switch (ch) { case '?': *************** *** 851,854 **** --- 851,855 ---- break; case 's': + load_sensors(configuration); print_sensors(configuration); return -1; Index: libsys_acpi.c =================================================================== RCS file: /cvsroot/cpufreqd/sources/libsys_acpi.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** libsys_acpi.c 4 Jan 2004 21:33:24 -0000 1.16 --- libsys_acpi.c 15 Jul 2004 23:40:30 -0000 1.17 *************** *** 81,88 **** --- 81,91 ---- /* get AC path */ n = scandir(ACPI_AC_DIR, &namelist, no_dots, alphasort); + /* if (n < 0) { cp_log(LOG_ERR, "libsys_init() - scandir: %s\n", strerror(errno)); err++; } else { + */ + if (n > 0) { while (n--) { snprintf(ac_file, 255, "%s%s/state", ACPI_AC_DIR, namelist[n]->d_name); *************** *** 91,94 **** --- 94,99 ---- } free(namelist); + } else { + cp_log(LOG_DEBUG, "libsys_init(): no ac adapters found, not a laptop?\n"); } *************** *** 167,171 **** /* check battery state if there is at least 1 battery */ - /*if (s->has_battery) {*/ if (read_batteries > 0) { /** /proc/acpi/battery/.../state **/ --- 172,175 ---- *************** *** 201,223 **** } /* end bat_path loop */ ! s->battery_percent = 100 * (bat_total_capacity / (double)bat_full_capacity) / read_batteries; ! /* Read AC adapter state */ ! fp = fopen(ac_file, "r"); ! if (!fp) { ! cp_log(LOG_ERR, "scan_system_info(): %s: %s\n", ac_file, strerror(errno)); ! return(-1); ! } ! while (fgets(buf, 100, fp)) { ! memset(line, 0, 2*101); ! sscanf(buf, "%s %s\n", line[0], line[1]); ! /* state: on-line */ ! if (strcmp(line[0], "state:")==0) { ! s->ac = strcmp(line[1], "on-line")==0 ? 1 : 0; ! break; } } - fclose(fp); cp_log(LOG_INFO, "scan_system_info(): battery %s - %d - %s\n", --- 205,235 ---- } /* end bat_path loop */ ! if (read_batteries > 0) ! s->battery_percent = 100 * (bat_total_capacity / (double)bat_full_capacity) / read_batteries; ! /* Read AC adapter state if it exists */ ! if (ac_file[0] != 0) { ! fp = fopen(ac_file, "r"); ! if (!fp) { ! cp_log(LOG_ERR, "scan_system_info(): %s: %s\n", ac_file, strerror(errno)); ! return(-1); ! } ! while (fgets(buf, 100, fp)) { ! memset(line, 0, 2*101); ! sscanf(buf, "%s %s\n", line[0], line[1]); ! /* state: on-line */ ! if (strcmp(line[0], "state:")==0) { ! s->ac = strcmp(line[1], "on-line")==0 ? 1 : 0; ! break; ! } } + fclose(fp); + } else { + /* uh! no AC dir? + * consider it online, maybe it's a desktop + */ + s->ac = 1; } cp_log(LOG_INFO, "scan_system_info(): battery %s - %d - %s\n", |