The `ping' plugin now reports which error occured. The string is not neccessarily...
[collectd.git] / src / cpufreq.c
index 92f1cc5..b26c35e 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * collectd - src/cpufreq.c
- * Copyright (C) 2005  Peter Holik
+ * Copyright (C) 2005,2006  Peter Holik
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
 
 #define MODULE_NAME "cpufreq"
 
+#if defined(KERNEL_LINUX)
+# define CPUFREQ_HAVE_READ 1
+#else
+# define CPUFREQ_HAVE_READ 0
+#endif
+
 static char *cpufreq_file = "cpufreq-%s.rrd";
 
 static char *ds_def[] =
 {
-       "DS:value:GAUGE:25:0:U",
+       "DS:value:GAUGE:"COLLECTD_HEARTBEAT":0:U",
        NULL
 };
 static int ds_num = 1;
@@ -51,7 +57,7 @@ static void cpufreq_init (void)
 
        while (1)
        {
-               status = snprintf (filename, BUFSIZE, "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_cur_freq", num_cpu);
+               status = snprintf (filename, BUFSIZE, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", num_cpu);
                if (status < 1 || status >= BUFSIZE)
                        break;
 
@@ -79,6 +85,7 @@ static void cpufreq_write (char *host, char *inst, char *val)
        rrd_update_file (host, file, val, ds_def, ds_num);
 }
 
+#if CPUFREQ_HAVE_READ
 static void cpufreq_submit (int cpu_num, unsigned long long val)
 {
        char buf[BUFSIZE];
@@ -103,7 +110,7 @@ static void cpufreq_read (void)
 
        for (i = 0; i < num_cpu; i++)
        {
-               status = snprintf (filename, BUFSIZE, "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_cur_freq", i);
+               status = snprintf (filename, BUFSIZE, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", i);
                if (status < 1 || status >= BUFSIZE)
                        return;
 
@@ -131,6 +138,9 @@ static void cpufreq_read (void)
 
        return;
 }
+#else
+#define cpufreq_read NULL
+#endif
 #undef BUFSIZE
 
 void module_register (void)