X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-context.c;h=fc2ab4f570b8182ef69f44a8e3375e5adcde1630;hb=77aa5901fd3f09001fb7e78f3533cf58c6d345e5;hp=16894ec1032b722407ce578d43f47051a62bbc60;hpb=5cf8141d2003c0e72279867015cb0afc50c82a77;p=lttng-ust.git diff --git a/liblttng-ust/lttng-context.c b/liblttng-ust/lttng-context.c index 16894ec1..fc2ab4f5 100644 --- a/liblttng-ust/lttng-context.c +++ b/liblttng-ust/lttng-context.c @@ -27,6 +27,11 @@ #include #include +/* + * The filter implementation requires that two consecutive "get" for the + * same context performed by the same thread return the same result. + */ + int lttng_find_context(struct lttng_ctx *ctx, const char *name) { unsigned int i; @@ -41,6 +46,22 @@ int lttng_find_context(struct lttng_ctx *ctx, const char *name) return 0; } +int lttng_get_context_index(struct lttng_ctx *ctx, const char *name) +{ + unsigned int i; + + if (!ctx) + return -1; + for (i = 0; i < ctx->nr_fields; i++) { + /* Skip allocated (but non-initialized) contexts */ + if (!ctx->fields[i].event_field.name) + continue; + if (!strcmp(ctx->fields[i].event_field.name, name)) + return i; + } + return -1; +} + /* * Note: as we append context information, the pointer location may change. */