1 /*****************************************************************************
2 * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007
3 *****************************************************************************
4 * rrd_tool.h Common Header File
5 *****************************************************************************/
14 #include "../rrd_config.h"
15 #elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
16 #include "../win32/config.h"
21 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
23 /* Win32 only includes */
25 #include <float.h> /* for _isnan */
26 #include <io.h> /* for chdir */
28 struct tm *localtime_r(
44 /* unix-only includes */
45 #if !defined isnan && !defined HAVE_ISNAN
52 /* local include files -- need to be after the system ones */
53 #include "rrd_getopt.h"
54 #include "rrd_format.h"
57 #define max(a,b) ((a) > (b) ? (a) : (b))
61 #define min(a,b) ((a) < (b) ? (a) : (b))
64 #define DIM(x) (sizeof(x)/sizeof(x[0]))
66 /* rrd info interface */
67 enum info_type { RD_I_VAL = 0,
73 typedef union infoval {
80 typedef struct info_t {
94 unsigned long *ds_cnt,
109 /* HELPER FUNCTIONS */
117 const char *file_name,
120 const char *filename,
125 unsigned long *ds_cnt,
136 rrd_file_t *rrd_open(
137 const char *const file_name,
141 rrd_file_t *rrd_file);
143 rrd_file_t *rrd_file,
147 rrd_file_t *rrd_file,
151 rrd_file_t *rrd_file);
153 rrd_file_t *rrd_file,
157 rrd_file_t *rrd_file);
163 #define RRD_READONLY 0
164 #define RRD_READWRITE 1
169 enum dst_en dst_conv(
178 /* rrd_strerror is thread safe, but still it uses a global buffer
179 (but one per thread), thus subsequent calls within a single
180 thread overwrite the same buffer */
181 const char *rrd_strerror(