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 (1<<0)
164 #define RRD_READWRITE (1<<1)
165 #define RRD_CREAT (1<<2)
166 #define RRD_READAHEAD (1<<3)
167 #define RRD_COPY (1<<4)
171 enum dst_en dst_conv(
180 /* rrd_strerror is thread safe, but still it uses a global buffer
181 (but one per thread), thus subsequent calls within a single
182 thread overwrite the same buffer */
183 const char *rrd_strerror(