-static int cpufreq_read (void)
-{
-#ifdef KERNEL_LINUX
- int status;
- unsigned long long val;
- int i = 0;
- FILE *fp;
- char filename[256];
- char buffer[16];
-
- for (i = 0; i < num_cpu; i++)
- {
- status = snprintf (filename, sizeof (filename),
- "/sys/devices/system/cpu/cpu%d/cpufreq/"
- "scaling_cur_freq", i);
- if (status < 1 || status >= sizeof (filename))
- return (-1);
-
- if ((fp = fopen (filename, "r")) == NULL)
- {
- syslog (LOG_WARNING, "cpufreq: fopen: %s", strerror (errno));
- return (-1);
- }
-
- if (fgets (buffer, 16, fp) == NULL)
- {
- syslog (LOG_WARNING, "cpufreq: fgets: %s", strerror (errno));
- fclose (fp);
- return (-1);
- }
-
- if (fclose (fp))
- syslog (LOG_WARNING, "cpufreq: fclose: %s", strerror (errno));
-
- /* You're seeing correctly: The file is reporting kHz values.. */
- val = atoll (buffer) * 1000;
-
- cpufreq_submit (i, val);
- }
-#endif /* defined(KERNEL_LINUX) */
-
- return (0);