Xinqi Bao's Git

Fix CPU frequency on OpenBSD
[slstatus.git] / components / entropy.c
index 0d3564e..2a485de 100644 (file)
@@ -1,13 +1,27 @@
 /* See LICENSE file for copyright and license details. */
-#include <stdio.h>
+#if defined(__linux__)
+       #include <stdint.h>
+       #include <stdio.h>
 
-#include "../util.h"
+       #include "../util.h"
 
-const char *
-entropy(void)
-{
-       int num;
+       const char *
+       entropy(void)
+       {
+               uintmax_t num;
 
-       return (pscanf("/proc/sys/kernel/random/entropy_avail", "%d", &num) == 1) ?
-                      bprintf("%d", num) : NULL;
-}
+               if (pscanf("/proc/sys/kernel/random/entropy_avail", "%ju", &num)
+                   != 1) {
+                       return NULL;
+               }
+
+               return bprintf("%ju", num);
+       }
+#elif defined(__OpenBSD__) | defined(__FreeBSD__)
+       const char *
+       entropy(void)
+       {
+               /* Unicode Character 'INFINITY' (U+221E) */
+               return "\xe2\x88\x9e";
+       }
+#endif