#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/slab.h>
-#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */
-#include "lttng-events.h"
-#include "lttng-tracer.h"
+#include <wrapper/vmalloc.h> /* for wrapper_vmalloc_sync_all() */
+#include <lttng-events.h>
+#include <lttng-tracer.h>
/*
* The filter implementation requires that two consecutive "get" for the
int lttng_get_context_index(struct lttng_ctx *ctx, const char *name)
{
unsigned int i;
+ const char *subname;
if (!ctx)
return -1;
+ if (strncmp(name, "$ctx.", strlen("$ctx.")) == 0) {
+ subname = name + strlen("$ctx.");
+ } else {
+ subname = name;
+ }
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))
+ if (!strcmp(ctx->fields[i].event_field.name, subname))
return i;
}
return -1;
case atype_array:
case atype_sequence:
+ case atype_struct:
+ case atype_array_compound:
+ case atype_sequence_compound:
+ case atype_variant:
default:
WARN_ON_ONCE(1);
break;
case atype_string:
case atype_array:
case atype_sequence:
+ case atype_struct:
+ case atype_array_compound:
+ case atype_sequence_compound:
+ case atype_variant:
default:
WARN_ON_ONCE(1);
break;
case atype_array:
case atype_sequence:
+ case atype_struct:
+ case atype_array_compound:
+ case atype_sequence_compound:
+ case atype_variant:
default:
WARN_ON_ONCE(1);
break;
case atype_string:
break;
+ case atype_struct:
+ case atype_array_compound:
+ case atype_sequence_compound:
+ case atype_variant:
+ break;
+
case atype_enum:
default:
WARN_ON_ONCE(1);
{
int ret;
- ret = lttng_add_vpid_to_ctx(<tng_static_ctx);
+ ret = lttng_add_hostname_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_hostname_to_ctx");
+ }
+ ret = lttng_add_nice_to_ctx(<tng_static_ctx);
+ if (ret) {
+ printk(KERN_WARNING "Cannot add context lttng_add_nice_to_ctx");
}
-#if 0 //TODO
ret = lttng_add_pid_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_pthread_id_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_pid_to_ctx");
}
- ret = lttng_add_procname_to_ctx(<tng_static_ctx);
+ ret = lttng_add_ppid_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_ppid_to_ctx");
}
ret = lttng_add_prio_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_vpid_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_prio_to_ctx");
}
- ret = lttng_add_nice_to_ctx(<tng_static_ctx);
+ ret = lttng_add_procname_to_ctx(<tng_static_ctx);
if (ret) {
printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
}
ret = lttng_add_tid_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_tid_to_ctx");
+ }
+ ret = lttng_add_vppid_to_ctx(<tng_static_ctx);
+ if (ret) {
+ printk(KERN_WARNING "Cannot add context lttng_add_vppid_to_ctx");
}
ret = lttng_add_vtid_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx");
}
- ret = lttng_add_ppid_to_ctx(<tng_static_ctx);
+ ret = lttng_add_vpid_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_vpid_to_ctx");
}
- ret = lttng_add_vppid_to_ctx(<tng_static_ctx);
+ ret = lttng_add_cpu_id_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_cpu_id_to_ctx");
}
- ret = lttng_add_hostname_to_ctx(<tng_static_ctx);
+ ret = lttng_add_interruptible_to_ctx(<tng_static_ctx);
if (ret) {
- printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+ printk(KERN_WARNING "Cannot add context lttng_add_interruptible_to_ctx");
+ }
+ ret = lttng_add_need_reschedule_to_ctx(<tng_static_ctx);
+ if (ret) {
+ printk(KERN_WARNING "Cannot add context lttng_add_need_reschedule_to_ctx");
+ }
+ ret = lttng_add_preemptible_to_ctx(<tng_static_ctx);
+ if (ret && ret != -ENOSYS) {
+ printk(KERN_WARNING "Cannot add context lttng_add_preemptible_to_ctx");
+ }
+ ret = lttng_add_migratable_to_ctx(<tng_static_ctx);
+ if (ret && ret != -ENOSYS) {
+ printk(KERN_WARNING "Cannot add context lttng_add_migratable_to_ctx");
}
-#endif
+ /* TODO: perf counters for filtering */
return 0;
}