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)
56 ev_env_t *env = &envs[sp - 1];
60 fprintf(env->f, "%s%s;%d\n", env->tag, ev, value);
63 void be_stat_ev_l(const char *ev, long value)
68 ev_env_t *env = &envs[sp - 1];
72 fprintf(env->f, "%s%s;%ld\n", env->tag, ev, value);
75 void be_stat_ev_dbl(const char *ev, double value)
80 ev_env_t *env = &envs[sp - 1];
84 fprintf(env->f, "%s%s;%f\n", env->tag, ev, value);
87 void be_stat_ev_ull(const char *ev, ulong64 value)
92 ev_env_t *env = &envs[sp - 1];
96 fprintf(env->f, "%s%s;%" ULL_FMT "\n", env->tag, ev, value);
99 int be_stat_ev_is_active(void)
101 return sp > 0 && envs[sp - 1].f != NULL;