+ if (bytes_read == 0 || bytes_read == sizeof(buf)) {
+ warn("Failed to read from /proc/meminfo");
+ return smprintf(UNKNOWN_STR);
+ }
+
+ match = strstr(buf, "SwapTotal");
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if (total == 0) {
+ return smprintf(UNKNOWN_STR);
+ }
+
+ match = strstr(buf, "SwapCached");
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
+
+ match = strstr(buf, "SwapFree");
+ sscanf(match, "SwapFree: %ld kB\n", &free);