#include "collectd.h"
-#include "common.h"
#include "plugin.h"
+#include "utils/common/common.h"
#if HAVE_SYS_SWAP_H
#include <sys/swap.h>
#if KERNEL_LINUX
#define SWAP_HAVE_REPORT_BY_DEVICE 1
static derive_t pagesize;
-static _Bool report_bytes = 0;
-static _Bool report_by_device = 0;
+static bool report_bytes;
+static bool report_by_device;
/* #endif KERNEL_LINUX */
#elif HAVE_SWAPCTL && HAVE_SWAPCTL_TWO_ARGS
#define SWAP_HAVE_REPORT_BY_DEVICE 1
static derive_t pagesize;
-static _Bool report_by_device = 0;
+static bool report_by_device;
/* #endif HAVE_SWAPCTL && HAVE_SWAPCTL_TWO_ARGS */
#elif HAVE_SWAPCTL && HAVE_SWAPCTL_THREE_ARGS
/* #endif defined(VM_SWAPUSAGE) */
#elif HAVE_LIBKVM_GETSWAPINFO
-static kvm_t *kvm_obj = NULL;
+static kvm_t *kvm_obj;
int kvm_pagesize;
/* #endif HAVE_LIBKVM_GETSWAPINFO */
#error "No applicable input method."
#endif /* HAVE_LIBSTATGRAB */
-static _Bool values_absolute = 1;
-static _Bool values_percentage = 0;
-static _Bool report_io = 1;
+static bool values_absolute = true;
+static bool values_percentage;
+static bool report_io = true;
static int swap_config(oconfig_item_t *ci) /* {{{ */
{
{
#if KERNEL_LINUX
pagesize = (derive_t)sysconf(_SC_PAGESIZE);
-/* #endif KERNEL_LINUX */
+ /* #endif KERNEL_LINUX */
#elif HAVE_SWAPCTL && HAVE_SWAPCTL_TWO_ARGS
/* getpagesize(3C) tells me this does not fail.. */
pagesize = (derive_t)getpagesize();
-/* #endif HAVE_SWAPCTL */
+ /* #endif HAVE_SWAPCTL */
#elif defined(VM_SWAPUSAGE)
/* No init stuff */
ERROR("swap plugin: kvm_openfiles failed, %s", errbuf);
return -1;
}
-/* #endif HAVE_LIBKVM_GETSWAPINFO */
+ /* #endif HAVE_LIBKVM_GETSWAPINFO */
#elif HAVE_LIBSTATGRAB
/* No init stuff */
sstrncpy(vl.type, "swap", sizeof(vl.type));
if (values_absolute)
- plugin_dispatch_multivalue(&vl, 0, DS_TYPE_GAUGE, "used", used, "free",
+ plugin_dispatch_multivalue(&vl, false, DS_TYPE_GAUGE, "used", used, "free",
free, other_name, other_value, NULL);
if (values_percentage)
- plugin_dispatch_multivalue(&vl, 1, DS_TYPE_GAUGE, "used", used, "free",
+ plugin_dispatch_multivalue(&vl, true, DS_TYPE_GAUGE, "used", used, "free",
free, other_name, other_value, NULL);
} /* }}} void swap_submit_usage */
static int swap_read_io(void) /* {{{ */
{
- FILE *fh;
char buffer[1024];
- _Bool old_kernel = 0;
-
uint8_t have_data = 0;
derive_t swap_in = 0;
derive_t swap_out = 0;
- fh = fopen("/proc/vmstat", "r");
+ FILE *fh = fopen("/proc/vmstat", "r");
if (fh == NULL) {
- /* /proc/vmstat does not exist in kernels <2.6 */
- fh = fopen("/proc/stat", "r");
- if (fh == NULL) {
- WARNING("swap: fopen: %s", STRERRNO);
- return -1;
- } else
- old_kernel = 1;
+ WARNING("swap: fopen(/proc/vmstat): %s", STRERRNO);
+ return -1;
}
while (fgets(buffer, sizeof(buffer), fh) != NULL) {
char *fields[8];
- int numfields;
+ int numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE(fields));
- numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE(fields));
+ if (numfields != 2)
+ continue;
- if (!old_kernel) {
- if (numfields != 2)
- continue;
-
- if (strcasecmp("pswpin", fields[0]) == 0) {
- strtoderive(fields[1], &swap_in);
- have_data |= 0x01;
- } else if (strcasecmp("pswpout", fields[0]) == 0) {
- strtoderive(fields[1], &swap_out);
- have_data |= 0x02;
- }
- } else /* if (old_kernel) */
- {
- if (numfields != 3)
- continue;
-
- if (strcasecmp("page", fields[0]) == 0) {
- strtoderive(fields[1], &swap_in);
- strtoderive(fields[2], &swap_out);
- }
+ if (strcasecmp("pswpin", fields[0]) == 0) {
+ strtoderive(fields[1], &swap_in);
+ have_data |= 0x01;
+ } else if (strcasecmp("pswpout", fields[0]) == 0) {
+ strtoderive(fields[1], &swap_out);
+ have_data |= 0x02;
}
} /* while (fgets) */
return -1;
}
- /* If the "separate" option was specified (report_by_device == 1), all
+ /* If the "separate" option was specified (report_by_device == true) all
* values have already been dispatched from within the loop. */
if (!report_by_device)
swap_submit_usage(NULL, total - avail, avail, NULL, NAN);