4 * @author Sebastian Hack
14 #include "bestatevent.h"
23 static ev_env_t envs[STACK_SIZE];
24 static unsigned sp = 0;
26 void be_stat_ev_push(const char **tags, int n_tags, FILE *f)
31 assert(sp < STACK_SIZE && "stat event stack full");
35 for(i = 0; i < n_tags; ++i) {
36 strncat(env->tag, tags[i], sizeof(env->tag));
37 strncat(env->tag, ";", sizeof(env->tag));
39 env->tag[sizeof(env->tag) - 1] = '\0';
43 void be_stat_ev_pop(void)
51 void be_stat_ev(const char *ev, int value)
62 fprintf(env->f, "%s%s;%d\n", env->tag, ev, value);
65 void be_stat_ev_l(const char *ev, long value)
76 fprintf(env->f, "%s%s;%ld\n", env->tag, ev, value);
79 void be_stat_ev_dbl(const char *ev, double value)
90 fprintf(env->f, "%s%s;%f\n", env->tag, ev, value);
93 void be_stat_ev_ull(const char *ev, ulong64 value)
104 fprintf(env->f, "%s%s;%" ULL_FMT "\n", env->tag, ev, value);
107 int be_stat_ev_is_active(void)
109 return sp > 0 && envs[sp - 1].f != NULL;