+/* #endif HAVE_LIBSTATGRAB */
+
+#elif defined(HAVE_PERFSTAT)
+ perfstat_id_t id;
+ int i, cpus;
+
+ numcpu = perfstat_cpu(NULL, NULL, sizeof(perfstat_cpu_t), 0);
+ if(numcpu == -1)
+ {
+ char errbuf[1024];
+ WARNING ("cpu plugin: perfstat_cpu: %s",
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ return (-1);
+ }
+
+ if (pnumcpu != numcpu || perfcpu == NULL)
+ {
+ if (perfcpu != NULL)
+ free(perfcpu);
+ perfcpu = malloc(numcpu * sizeof(perfstat_cpu_t));
+ }
+ pnumcpu = numcpu;
+
+ id.name[0] = '\0';
+ if ((cpus = perfstat_cpu(&id, perfcpu, sizeof(perfstat_cpu_t), numcpu)) < 0)
+ {
+ char errbuf[1024];
+ WARNING ("cpu plugin: perfstat_cpu: %s",
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ return (-1);
+ }
+
+ for (i = 0; i < cpus; i++)
+ {
+ submit (i, "idle", (counter_t) perfcpu[i].idle);
+ submit (i, "system", (counter_t) perfcpu[i].sys);
+ submit (i, "user", (counter_t) perfcpu[i].user);
+ submit (i, "wait", (counter_t) perfcpu[i].wait);
+ }
+#endif /* HAVE_PERFSTAT */