X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd.h;h=282e632520ce08cb1a755588c251a10f53aa4e24;hb=37905c5a2370c8e6edae5011978773eeaa589d09;hp=57b709c515ba377606d02958e2a1c91b717c8160;hpb=12f8e74dd7affea712575592d24e860c23b465a7;p=collectd.git diff --git a/src/collectd.h b/src/collectd.h index 57b709c5..3d8998fd 100644 --- a/src/collectd.h +++ b/src/collectd.h @@ -1,3 +1,24 @@ +/** + * collectd - src/collectd.h + * Copyright (C) 2005,2006 Florian octo Forster + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; only version 2 of the License is applicable. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: + * Florian octo Forster + **/ + #ifndef COLLECTD_H #define COLLECTD_H @@ -13,8 +34,8 @@ # include #endif #if STDC_HEADERS -#include -#include +# include +# include #else # if HAVE_STDLIB_H # include @@ -35,66 +56,243 @@ #if HAVE_STDINT_H # include #endif +#if HAVE_STDBOOL_H +# include +#else +# ifndef HAVE__BOOL +# ifdef __cplusplus +typedef bool _Bool; +# else +# define _Bool signed char +# endif +# endif +# define bool _Bool +# define false 0 +# define true 1 +# define __bool_true_false_are_defined 1 +#endif #if HAVE_UNISTD_H # include #endif -#include -#include -#include -#include -#include -#include -#include +#if HAVE_SYS_WAIT_H +# include +#endif +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif +#if HAVE_SIGNAL_H +# include +#endif +#if HAVE_FCNTL_H +# include +#endif +#if HAVE_ERRNO_H +# include +#endif +#if HAVE_LIMITS_H +# include +#endif +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif -#ifndef HAVE_RRD_H -#undef HAVE_LIBRRD +#if HAVE_ASSERT_H +# include +#else +# define assert(...) /* nop */ #endif -#ifdef HAVE_LIBRRD -#include -#endif /* HAVE_LIBRRD */ +#if NAN_STATIC_DEFAULT +# include +/* #endif NAN_STATIC_DEFAULT*/ +#elif NAN_STATIC_ISOC +# ifndef __USE_ISOC99 +# define DISABLE_ISOC99 1 +# define __USE_ISOC99 1 +# endif /* !defined(__USE_ISOC99) */ +# include +# if DISABLE_ISOC99 +# undef DISABLE_ISOC99 +# undef __USE_ISOC99 +# endif /* DISABLE_ISOC99 */ +/* #endif NAN_STATIC_ISOC */ +#elif NAN_ZERO_ZERO +# include +# ifdef NAN +# undef NAN +# endif +# define NAN (0.0 / 0.0) +# ifndef isnan +# define isnan(f) ((f) != (f)) +# endif /* !defined(isnan) */ +#endif /* NAN_ZERO_ZERO */ -/* Won't work without the header file */ -#ifndef HAVE_KSTAT_H -#undef HAVE_LIBKSTAT +/* 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 -#ifdef HAVE_LIBKSTAT -#include -#include -#endif /* HAVE_LIBKSTAT */ +#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 -/* Won't work without the header file */ -#ifndef HAVE_STATGRAB_H -#undef HAVE_LIBSTATGRAB +#if HAVE_DIRENT_H +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +#else +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# if HAVE_SYS_NDIR_H +# include +# endif +# if HAVE_SYS_DIR_H +# include +# endif +# if HAVE_NDIR_H +# include +# endif +#endif + +#if HAVE_STDARG_H +# include +#endif +#if HAVE_CTYPE_H +# include +#endif +#if HAVE_SYS_PARAM_H +# include +#endif + +#if HAVE_KSTAT_H +# include #endif -#ifdef HAVE_LIBSTATGRAB -#include +#if HAVE_SENSORS_SENSORS_H +# include #endif -#ifndef DEBUG -#define DEBUG 0 +#ifndef PACKAGE_NAME +#define PACKAGE_NAME "collectd" +#endif + +#ifndef PREFIX +#define PREFIX "/opt/" PACKAGE_NAME +#endif + +#ifndef SYSCONFDIR +#define SYSCONFDIR PREFIX "/etc" +#endif + +#ifndef CONFIGFILE +#define CONFIGFILE SYSCONFDIR"/collectd.conf" #endif #ifndef LOCALSTATEDIR -#define LOCALSTATEDIR "/opt/collectd/var" +#define LOCALSTATEDIR PREFIX "/var" #endif -#ifndef DATADIR -#define DATADIR LOCALSTATEDIR"/lib/collectd" +#ifndef PKGLOCALSTATEDIR +#define PKGLOCALSTATEDIR PREFIX "/var/lib/" PACKAGE_NAME +#endif + +#ifndef PIDFILE +#define PIDFILE PREFIX "/var/run/" PACKAGE_NAME ".pid" #endif #ifndef PLUGINDIR -#define PLUGINDIR "/opt/collectd/lib/collectd" +#define PLUGINDIR PREFIX "/lib/" PACKAGE_NAME #endif -#ifndef PIDFILE -#define PIDFILE LOCALSTATEDIR"/run/collectd.pid" +#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])) + +/* 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 -#define MODE_SERVER 0x01 -#define MODE_CLIENT 0x02 -#define MODE_LOCAL 0x03 +extern char hostname_g[]; +extern int interval_g; #endif /* COLLECTD_H */