From ba1032ee3f400ae7210fca0b21d96c593d99286d Mon Sep 17 00:00:00 2001 From: Zebity Spring Date: Sat, 9 Nov 2019 00:04:07 +1100 Subject: [PATCH] Avoid using sysctl on linux --- src/cpu.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/cpu.c b/src/cpu.c index 09d60fe4..92ebfd80 100644 --- a/src/cpu.c +++ b/src/cpu.c @@ -58,15 +58,14 @@ #include #endif /* HAVE_LIBKSTAT */ -#if (defined(HAVE_SYSCTL) && HAVE_SYSCTL) || \ - (defined(HAVE_SYSCTLBYNAME) && HAVE_SYSCTLBYNAME) -#ifdef HAVE_SYS_SYSCTL_H +#if defined(HAVE_SYSCTL) && defined(HAVE_SYSCTLBYNAME) +/* Implies BSD variant */ #include #endif #ifdef HAVE_SYS_DKSTAT_H +/* implies BSD variant */ #include -#endif #if !defined(CP_USER) || !defined(CP_NICE) || !defined(CP_SYS) || \ !defined(CP_INTR) || !defined(CP_IDLE) || !defined(CPUSTATES) @@ -77,18 +76,16 @@ #define CP_IDLE 4 #define CPUSTATES 5 #endif -#endif /* HAVE_SYSCTL || HAVE_SYSCTLBYNAME */ +#endif /* HAVE_SYS_DKSTAT_H */ -#if HAVE_SYSCTL +#define CAN_USE_SYSCTL 0 +#if defined(HAVE_SYSCTL) && defined(HAVE_SYSCTLBYNAME) +/* Implies BSD variant */ #if defined(CTL_HW) && defined(HW_NCPU) && defined(CTL_KERN) && \ defined(KERN_CPTIME) && defined(CPUSTATES) #define CAN_USE_SYSCTL 1 -#else -#define CAN_USE_SYSCTL 0 -#endif -#else -#define CAN_USE_SYSCTL 0 #endif +#endif /* HAVE_SYSCTL_H && HAVE_SYSCTLBYNAME */ #define COLLECTD_CPU_STATE_USER 0 #define COLLECTD_CPU_STATE_SYSTEM 1 @@ -146,10 +143,12 @@ static int numcpu; /* #endif HAVE_LIBKSTAT */ #elif CAN_USE_SYSCTL +/* Only possible for BSD variant */ static int numcpu; /* #endif CAN_USE_SYSCTL */ #elif defined(HAVE_SYSCTLBYNAME) +/* Implies BSD variant */ static int numcpu; #ifdef HAVE_SYSCTL_KERN_CP_TIMES static int maxcpu; @@ -270,6 +269,7 @@ static int init(void) { /* #endif HAVE_LIBKSTAT */ #elif CAN_USE_SYSCTL + /* Only on BSD variant */ size_t numcpu_size; int mib[2] = {CTL_HW, HW_NCPU}; int status; @@ -285,6 +285,7 @@ static int init(void) { /* #endif CAN_USE_SYSCTL */ #elif defined(HAVE_SYSCTLBYNAME) + /* Only on BSD varient */ size_t numcpu_size; numcpu_size = sizeof(numcpu); @@ -732,6 +733,7 @@ static int cpu_read(void) { /* }}} #endif defined(HAVE_LIBKSTAT) */ #elif CAN_USE_SYSCTL /* {{{ */ + /* Only on BSD variant */ uint64_t cpuinfo[numcpu][CPUSTATES]; size_t cpuinfo_size; int status; @@ -790,6 +792,7 @@ static int cpu_read(void) { #elif defined(HAVE_SYSCTLBYNAME) && defined(HAVE_SYSCTL_KERN_CP_TIMES) /* {{{ \ */ + /* Only on BSD variant */ long cpuinfo[maxcpu][CPUSTATES]; size_t cpuinfo_size; @@ -812,6 +815,7 @@ static int cpu_read(void) { /* }}} #endif HAVE_SYSCTL_KERN_CP_TIMES */ #elif defined(HAVE_SYSCTLBYNAME) /* {{{ */ + /* Only on BSD variant */ long cpuinfo[CPUSTATES]; size_t cpuinfo_size; -- 2.11.0