X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd.h;h=8dd0f4263b55a1921ab5e105c354f37948226b20;hb=adee81fe60077d03345c94e3780752a8c2c712cf;hp=9951d8a91013d929bc831a4e40ad49b9bce08893;hpb=682dfca77df320c3b6d014074ab230009abf9098;p=collectd.git diff --git a/src/collectd.h b/src/collectd.h index 9951d8a9..8dd0f426 100644 --- a/src/collectd.h +++ b/src/collectd.h @@ -120,8 +120,67 @@ # ifndef isnan # define isnan(f) ((f) != (f)) # endif /* !defined(isnan) */ +# ifndef isfinite +# define isfinite(f) (((f) - (f)) == 0.0) +# endif +# ifndef isinf +# define isinf(f) (!isfinite(f) && !isnan(f)) +# endif #endif /* NAN_ZERO_ZERO */ +/* Try really, really hard to determine endianess. Under NexentaStor 1.0.2 this + * information is in , possibly some other Solaris versions do + * this too.. */ +#if HAVE_ENDIAN_H +# include +#elif HAVE_SYS_ISA_DEFS_H +# include +#endif + +#ifndef BYTE_ORDER +# if defined(_BYTE_ORDER) +# define BYTE_ORDER _BYTE_ORDER +# elif defined(__BYTE_ORDER) +# define BYTE_ORDER __BYTE_ORDER +# elif defined(__DARWIN_BYTE_ORDER) +# define BYTE_ORDER __DARWIN_BYTE_ORDER +# endif +#endif +#ifndef BIG_ENDIAN +# if defined(_BIG_ENDIAN) +# define BIG_ENDIAN _BIG_ENDIAN +# elif defined(__BIG_ENDIAN) +# define BIG_ENDIAN __BIG_ENDIAN +# elif defined(__DARWIN_BIG_ENDIAN) +# define BIG_ENDIAN __DARWIN_BIG_ENDIAN +# endif +#endif +#ifndef LITTLE_ENDIAN +# if defined(_LITTLE_ENDIAN) +# define LITTLE_ENDIAN _LITTLE_ENDIAN +# elif defined(__LITTLE_ENDIAN) +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# elif defined(__DARWIN_LITTLE_ENDIAN) +# define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN +# endif +#endif +#ifndef BYTE_ORDER +# if defined(BIG_ENDIAN) && !defined(LITTLE_ENDIAN) +# undef BIG_ENDIAN +# define BIG_ENDIAN 4321 +# define LITTLE_ENDIAN 1234 +# define BYTE_ORDER BIG_ENDIAN +# elif !defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN) +# undef LITTLE_ENDIAN +# define BIG_ENDIAN 4321 +# define LITTLE_ENDIAN 1234 +# define BYTE_ORDER LITTLE_ENDIAN +# endif +#endif +#if !defined(BYTE_ORDER) || !defined(BIG_ENDIAN) +# error "Cannot determine byte order" +#endif + #if HAVE_DIRENT_H # include # define NAMLEN(dirent) strlen((dirent)->d_name) @@ -153,16 +212,6 @@ # include #endif -#if HAVE_PTH_H -# include -#endif -#if HAVE_STATGRAB_H -# include -#endif -#if HAVE_SENSORS_SENSORS_H -# include -#endif - #ifndef PACKAGE_NAME #define PACKAGE_NAME "collectd" #endif @@ -195,13 +244,46 @@ #define PLUGINDIR PREFIX "/lib/" PACKAGE_NAME #endif +#ifndef PKGDATADIR +#define PKGDATADIR PREFIX "/share/" PACKAGE_NAME +#endif + #ifndef COLLECTD_GRP_NAME # define COLLECTD_GRP_NAME "collectd" #endif #define STATIC_ARRAY_LEN(array) (sizeof (array) / sizeof ((array)[0])) -extern char hostname_g[]; -extern int interval_g; +/* Remove GNU specific __attribute__ settings when using another compiler */ +#if !__GNUC__ +# define __attribute__(x) /**/ +#endif + +#if defined(COLLECT_DEBUG) && COLLECT_DEBUG && defined(__GNUC__) && __GNUC__ +# undef strcpy +# undef strcat +# undef strtok +# pragma GCC poison strcpy strcat strtok +#endif + +/* + * Special hack for the perl plugin: Because the later included perl.h defines + * a macro which is never used, but contains `sprintf', we cannot poison that + * identifies just yet. The parl plugin will do that itself once perl.h is + * included. + */ +#ifndef DONT_POISON_SPRINTF_YET +# if defined(COLLECT_DEBUG) && COLLECT_DEBUG && defined(__GNUC__) && __GNUC__ +# undef sprintf +# pragma GCC poison sprintf +# endif +#endif + +/* Type for time as used by "utils_time.h" */ +typedef uint64_t cdtime_t; + +extern char hostname_g[]; +extern cdtime_t interval_g; +extern int timeout_g; #endif /* COLLECTD_H */