X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fswap.c;h=8ffa4536feb695e97ced36fbe0b543cda9c3b8f2;hb=1807733e9bdeab1c086b066453f0acd557b12f82;hp=c3e399d83fd5e3d13d0fb3f072cc974eb48f3e24;hpb=7fa270a1fb517c7fbed55d9f5f70bb28516b6229;p=collectd.git diff --git a/src/swap.c b/src/swap.c index c3e399d8..8ffa4536 100644 --- a/src/swap.c +++ b/src/swap.c @@ -20,18 +20,22 @@ * Florian octo Forster **/ -#include "swap.h" +#include "collectd.h" +#include "common.h" +#include "plugin.h" -#if COLLECT_SWAP #define MODULE_NAME "swap" +#if defined(KERNEL_LINUX) || defined(KERNEL_SOLARIS) || defined(HAVE_LIBSTATGRAB) +# define SWAP_HAVE_READ 1 +#else +# define SWAP_HAVE_READ 0 +#endif + #ifdef KERNEL_SOLARIS #include #endif /* KERNEL_SOLARIS */ -#include "plugin.h" -#include "common.h" - #undef MAX #define MAX(x,y) ((x) > (y) ? (x) : (y)) @@ -53,7 +57,7 @@ static int pagesize; static kstat_t *ksp; #endif /* KERNEL_SOLARIS */ -void module_init (void) +static void swap_init (void) { #ifdef KERNEL_SOLARIS /* getpagesize(3C) tells me this does not fail.. */ @@ -65,12 +69,13 @@ void module_init (void) return; } -void module_write (char *host, char *inst, char *val) +static void swap_write (char *host, char *inst, char *val) { rrd_update_file (host, swap_file, val, ds_def, ds_num); } -void module_submit (unsigned long long swap_used, +#if SWAP_HAVE_READ +static void swap_submit (unsigned long long swap_used, unsigned long long swap_free, unsigned long long swap_cached, unsigned long long swap_resv) @@ -84,7 +89,7 @@ void module_submit (unsigned long long swap_used, plugin_submit (MODULE_NAME, "-", buffer); } -void module_read (void) +static void swap_read (void) { #ifdef KERNEL_LINUX FILE *fh; @@ -133,7 +138,7 @@ void module_read (void) swap_used = swap_total - (swap_free + swap_cached); - module_submit (swap_used, swap_free, swap_cached, -1LL); + swap_submit (swap_used, swap_free, swap_cached, -1LL); /* #endif defined(KERNEL_LINUX) */ #elif defined(KERNEL_SOLARIS) @@ -176,21 +181,23 @@ void module_read (void) swap_avail = pagesize * (MAX(ai.ani_max - ai.ani_resv, 0) + (availrmem - swapfs_minfree)); /* swap_free = pagesize * (ai.ani_free + (availrmem - swapfs_minfree)); */ - module_submit (swap_alloc, swap_avail, -1LL, swap_resv - swap_alloc); + swap_submit (swap_alloc, swap_avail, -1LL, swap_resv - swap_alloc); /* #endif defined(KERNEL_SOLARIS) */ #elif defined(HAVE_LIBSTATGRAB) sg_swap_stats *swap; if ((swap = sg_get_swap_stats ()) != NULL) - module_submit (swap->used, swap->free, -1LL, -1LL); + swap_submit (swap->used, swap->free, -1LL, -1LL); #endif /* HAVE_LIBSTATGRAB */ } +#else +# define swap_read NULL +#endif /* SWAP_HAVE_READ */ void module_register (void) { - plugin_register (MODULE_NAME, module_init, module_read, module_write); + plugin_register (MODULE_NAME, swap_init, swap_read, swap_write); } #undef MODULE_NAME -#endif /* COLLECT_SWAP */