URI:
       tcpu.c - spoon - [fork] customized build of spoon, the dwm status utility
  HTML git clone git://src.adamsgaard.dk/spoon
   DIR Log
   DIR Files
   DIR Refs
   DIR LICENSE
       ---
       tcpu.c (649B)
       ---
            1 #include <err.h>
            2 #include <stdio.h>
            3 
            4 #ifdef __OpenBSD__
            5 #include <sys/sysctl.h>
            6 
            7 int
            8 cpuread(void *arg, char *buf, size_t len)
            9 {
           10         int mib[2], cpuspeed;
           11         size_t sz;
           12 
           13         mib[0] = CTL_HW;
           14         mib[1] = HW_CPUSPEED;
           15         sz = sizeof(cpuspeed);
           16         if (sysctl(mib, 2, &cpuspeed, &sz, NULL, 0) < 0)
           17                 return -1;
           18         snprintf(buf, len, "%4dMHz", cpuspeed);
           19         return 0;
           20 }
           21 #elif __linux__
           22 int
           23 cpuread(void *arg, char *buf, size_t len)
           24 {
           25         char *path = arg;
           26         FILE *fp;
           27         int freq;
           28 
           29         fp = fopen(path, "r");
           30         if (fp == NULL) {
           31                 warn("fopen %s", path);
           32                 return -1;
           33         }
           34         fscanf(fp, "%d", &freq);
           35         fclose(fp);
           36         freq /= 1000;
           37         snprintf(buf, len, "%4dMHz", freq);
           38         return 0;
           39 }
           40 #endif