X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-context.c;h=ecee23445787bce42397e96c200537b1385017ef;hb=a0a3bef9e447a220a36fb7cb4c3f60e4eafdec4d;hp=fc2ab4f570b8182ef69f44a8e3375e5adcde1630;hpb=77aa5901fd3f09001fb7e78f3533cf58c6d345e5;p=lttng-ust.git diff --git a/liblttng-ust/lttng-context.c b/liblttng-ust/lttng-context.c index fc2ab4f5..ecee2344 100644 --- a/liblttng-ust/lttng-context.c +++ b/liblttng-ust/lttng-context.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -32,6 +33,11 @@ * same context performed by the same thread return the same result. */ +/* + * Static array of contexts, for $ctx filters. + */ +struct lttng_ctx *lttng_static_ctx; + int lttng_find_context(struct lttng_ctx *ctx, const char *name) { unsigned int i; @@ -120,3 +126,31 @@ void lttng_destroy_context(struct lttng_ctx *ctx) free(ctx->fields); free(ctx); } + +void lttng_context_init(void) +{ + int ret; + + ret = lttng_add_pthread_id_to_ctx(<tng_static_ctx); + if (ret) { + WARN("Cannot add context lttng_add_pthread_id_to_ctx"); + } + ret = lttng_add_vtid_to_ctx(<tng_static_ctx); + if (ret) { + WARN("Cannot add context lttng_add_vtid_to_ctx"); + } + ret = lttng_add_vpid_to_ctx(<tng_static_ctx); + if (ret) { + WARN("Cannot add context lttng_add_vpid_to_ctx"); + } + ret = lttng_add_procname_to_ctx(<tng_static_ctx); + if (ret) { + WARN("Cannot add context lttng_add_procname_to_ctx"); + } +} + +void lttng_context_exit(void) +{ + lttng_destroy_context(lttng_static_ctx); + lttng_static_ctx = NULL; +}