X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Flttng.h;h=18dec2a8acfbf4da2eb07a63bb3174107f4a5509;hp=8f55a889ee408a98bdec10feacd4b059c6e81d0a;hb=b2064f542c84041bf0b991d7d83f9e85db8adc19;hpb=d74df4226a1b4461c896d51a221afe38e07809a7 diff --git a/include/lttng/lttng.h b/include/lttng/lttng.h index 8f55a889e..18dec2a8a 100644 --- a/include/lttng/lttng.h +++ b/include/lttng/lttng.h @@ -47,18 +47,9 @@ extern "C" { * Domain types: the different possible tracers. */ enum lttng_domain_type { - LTTNG_DOMAIN_KERNEL = 1, - LTTNG_DOMAIN_UST = 2, - - /* - * For now, the domains below are not implemented. However, we keep them - * here in order to retain their enum values for future development. Note - * that it is on the roadmap to implement them. - * - LTTNG_DOMAIN_UST_EXEC_NAME = 3, - LTTNG_DOMAIN_UST_PID = 4, - LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN = 5, - */ + LTTNG_DOMAIN_KERNEL = 1, /* Linux Kernel tracer. */ + LTTNG_DOMAIN_UST = 2, /* Global Userspace tracer. */ + LTTNG_DOMAIN_JUL = 3, /* Java Util Logging. */ }; /* @@ -104,6 +95,22 @@ enum lttng_loglevel { LTTNG_LOGLEVEL_DEBUG = 14, }; +/* + * Available loglevels for the JUL domain. Those are an exact map from the + * class java.util.logging.Level. + */ +enum lttng_loglevel_jul { + LTTNG_LOGLEVEL_JUL_OFF = INT32_MAX, + LTTNG_LOGLEVEL_JUL_SEVERE = 1000, + LTTNG_LOGLEVEL_JUL_WARNING = 900, + LTTNG_LOGLEVEL_JUL_INFO = 800, + LTTNG_LOGLEVEL_JUL_CONFIG = 700, + LTTNG_LOGLEVEL_JUL_FINE = 500, + LTTNG_LOGLEVEL_JUL_FINER = 400, + LTTNG_LOGLEVEL_JUL_FINEST = 300, + LTTNG_LOGLEVEL_JUL_ALL = INT32_MIN, +}; + /* * LTTng consumer mode */ @@ -235,7 +242,7 @@ struct lttng_event_function_attr { * * The structures should be initialized to zero before use. */ -#define LTTNG_EVENT_PADDING1 15 +#define LTTNG_EVENT_PADDING1 14 #define LTTNG_EVENT_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32 struct lttng_event { enum lttng_event_type type; @@ -247,6 +254,7 @@ struct lttng_event { int32_t enabled; /* Does not apply: -1 */ pid_t pid; unsigned char filter; /* filter enabled ? */ + unsigned char exclusion; /* exclusions added ? */ char padding[LTTNG_EVENT_PADDING1]; @@ -581,6 +589,23 @@ extern int lttng_enable_event_with_filter(struct lttng_handle *handle, struct lttng_event *event, const char *channel_name, const char *filter_expression); +/* + * Create or enable an event with a filter and/or exclusions. + * + * If the event you are trying to enable does not exist, it will be created, + * else it is enabled. + * If ev is NULL, all events are enabled with the filter and exclusion options. + * If channel_name is NULL, the default channel is used (channel0) and created + * if not found. + * If filter_expression is NULL, an event without associated filter is + * created. + * If exclusion count is zero, the event will be created without exclusions. + */ +extern int lttng_enable_event_with_exclusions(struct lttng_handle *handle, + struct lttng_event *event, const char *channel_name, + const char *filter_expression, + int exclusion_count, char **exclusion_names); + /* * Create or enable a channel. *