X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_rpncalc.h;h=a4e7c65cd7c116100f8dcba97be1df95b9dc6193;hb=f036173fecfbe93f8f8c9296c791f5dcdaa391ba;hp=67e54c1b9ba66a5ab7c6f61a5927911f238b1309;hpb=a278779cdf2ded56b89fc404d6914bff7ad7dcbd;p=rrdtool.git diff --git a/src/rrd_rpncalc.h b/src/rrd_rpncalc.h index 67e54c1..a4e7c65 100644 --- a/src/rrd_rpncalc.h +++ b/src/rrd_rpncalc.h @@ -3,6 +3,8 @@ **************************************************************************** * rrd_rpncalc.h RPN calculator functions ****************************************************************************/ +#ifndef _RRD_RPNCALC_H +#define _RRD_RPNCALC_H /* WARNING: if new operators are added, they MUST be added after OP_END. * This is because COMPUTE (CDEF) DS store OP nodes by number (name is not @@ -13,7 +15,7 @@ enum op_en {OP_NUMBER=0,OP_VARIABLE,OP_INF,OP_PREV,OP_NEGINF, OP_DIV,OP_SIN, OP_DUP, OP_EXC, OP_POP, 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_UN,OP_END,OP_LTIME,OP_NE,OP_ISINF,OP_PREV_OTHER}; typedef struct rpnp_t { enum op_en op; @@ -26,17 +28,17 @@ typedef struct rpnp_t { /* a compact representation of rpnp_t for computed data sources */ typedef struct rpn_cdefds_t { - char op; /* rpn operator type */ - short val; /* used by OP_NUMBER and OP_VARIABLE */ + char op; /* rpn operator type */ + short val; /* used by OP_NUMBER and OP_VARIABLE */ } rpn_cdefds_t; /* limit imposed by sizeof(rpn_cdefs_t) and rrd.ds_def.par */ #define DS_CDEF_MAX_RPN_NODES 26 typedef struct rpnstack_t { - double *s; - long dc_stacksize; - long dc_stackblock; + double *s; + long dc_stacksize; + long dc_stackblock; } rpnstack_t; void rpnstack_init(rpnstack_t *rpnstack); @@ -50,3 +52,5 @@ rpnp_t * rpn_expand(rpn_cdefds_t *rpnc); void rpn_compact2str(rpn_cdefds_t *rpnc,ds_def_t *ds_def,char **str); rpnp_t * rpn_parse(void *key_hash,char *expr, long (*lookup)(void *,char *)); short rpn_calc(rpnp_t *rpnp, rpnstack_t *rpnstack, long data_idx, rrd_value_t *output, int output_idx); + +#endif