/****************************************************************************
- * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.3rc6 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_rpncalc.h RPN calculator functions
****************************************************************************/
OP_COS, OP_LOG, OP_EXP, OP_LT, OP_LE, OP_GT, OP_GE, OP_EQ, OP_IF,
OP_MIN, OP_MAX, OP_LIMIT, OP_FLOOR, OP_CEIL,
OP_UN, OP_END, OP_LTIME, OP_NE, OP_ISINF, OP_PREV_OTHER, OP_COUNT,
- OP_ATAN, OP_SQRT, OP_SORT, OP_REV, OP_TREND,
+ OP_ATAN, OP_SQRT, OP_SORT, OP_REV, OP_TREND, OP_TRENDNAN,
OP_ATAN2, OP_RAD2DEG, OP_DEG2RAD,
- OP_AVG, OP_ABS
+ OP_AVG, OP_ABS, OP_ADDNAN
};
typedef struct rpnp_t {
short val; /* used by OP_NUMBER and OP_VARIABLE */
} rpn_cdefds_t;
+#define MAX_VNAME_LEN 255
+#define DEF_NAM_FMT "%255[-_A-Za-z0-9]"
+
/* limit imposed by sizeof(rpn_cdefs_t) and rrd.ds_def.par */
#define DS_CDEF_MAX_RPN_NODES 26
} rpnstack_t;
void rpnstack_init(
- rpnstack_t * rpnstack);
+ rpnstack_t *rpnstack);
void rpnstack_free(
- rpnstack_t * rpnstack);
+ rpnstack_t *rpnstack);
void parseCDEF_DS(
const char *def,
char *ds_name);
short rpn_compact(
- rpnp_t * rpnp,
- rpn_cdefds_t ** rpnc,
+ rpnp_t *rpnp,
+ rpn_cdefds_t **rpnc,
short *count);
rpnp_t *rpn_expand(
- rpn_cdefds_t * rpnc);
+ rpn_cdefds_t *rpnc);
void rpn_compact2str(
- rpn_cdefds_t * rpnc,
- ds_def_t * ds_def,
+ rpn_cdefds_t *rpnc,
+ ds_def_t *ds_def,
char **str);
rpnp_t *rpn_parse(
void *key_hash,
long (*lookup) (void *,
char *));
short rpn_calc(
- rpnp_t * rpnp,
- rpnstack_t * rpnstack,
+ rpnp_t *rpnp,
+ rpnstack_t *rpnstack,
long data_idx,
- rrd_value_t * output,
+ rrd_value_t *output,
int output_idx);
#endif