X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Flttng.h;h=c04d1b4eadb7d996b752570c85d406544ac0f290;hp=a8b7ac09a37351b307dc87714693217698b3a8d3;hb=b9f1dd6997ea64db8c140c617d2a74cf90767e3b;hpb=f3ed775ef4842019b396f06095b053c3a70bc3c8 diff --git a/include/lttng/lttng.h b/include/lttng/lttng.h index a8b7ac09a..c04d1b4ea 100644 --- a/include/lttng/lttng.h +++ b/include/lttng/lttng.h @@ -44,6 +44,43 @@ enum lttng_event_type { LTTNG_EVENT_FUNCTION, }; +/* Kernel context possible type */ +enum lttng_kernel_context_type { + LTTNG_KERNEL_CONTEXT_PID = 0, + LTTNG_KERNEL_CONTEXT_PERF_COUNTER = 1, + LTTNG_KERNEL_CONTEXT_COMM = 2, + LTTNG_KERNEL_CONTEXT_PRIO = 3, + LTTNG_KERNEL_CONTEXT_NICE = 4, + LTTNG_KERNEL_CONTEXT_VPID = 5, + LTTNG_KERNEL_CONTEXT_TID = 6, + LTTNG_KERNEL_CONTEXT_VTID = 7, + LTTNG_KERNEL_CONTEXT_PPID = 8, + LTTNG_KERNEL_CONTEXT_VPPID = 9, +}; + +/* Perf counter attributes */ +struct lttng_kernel_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_SYMBOL_NAME_LEN]; +}; + +/* Event/Channel context */ +struct lttng_kernel_context { + enum lttng_kernel_context_type ctx; + union { + struct lttng_kernel_perf_counter_ctx perf_counter; + } u; +}; + +/* + * LTTng consumer mode + */ +enum lttng_kernel_output { + LTTNG_KERNEL_SPLICE = 0, + LTTNG_KERNEL_MMAP = 1, +}; + /* * Either addr is used or symbol_name and offset. */ @@ -81,6 +118,7 @@ struct lttng_channel_attr { uint64_t num_subbuf; /* power of 2 */ unsigned int switch_timer_interval; /* usec */ unsigned int read_timer_interval; /* usec */ + enum lttng_kernel_output output; /* splice, mmap */ }; /* @@ -129,6 +167,9 @@ extern int lttng_stop_tracing(char *session_name); /* * LTTng Kernel tracer control */ +extern int lttng_kernel_add_context(struct lttng_kernel_context *ctx, + char *event_name, char *channel_name); + extern int lttng_kernel_create_channel(struct lttng_channel *chan); extern int lttng_kernel_enable_event(struct lttng_event *ev, char *channel_name);