X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Flttng-ust-abi.h;h=687eb0b231991b6c559b933720fa3f3af20ed004;hp=df61cde57c5c0005bb6e72c7d2ccdcbea4d19c2d;hb=9c9d917cfe2e6a9f35ef82cb64e442451210716f;hpb=7972aab22f74b18faa168c0482216a3dd711a075 diff --git a/src/bin/lttng-sessiond/lttng-ust-abi.h b/src/bin/lttng-sessiond/lttng-ust-abi.h index df61cde57..687eb0b23 100644 --- a/src/bin/lttng-sessiond/lttng-ust-abi.h +++ b/src/bin/lttng-sessiond/lttng-ust-abi.h @@ -28,7 +28,9 @@ */ #include -#include + +#define lttng_ust_notrace __attribute__((no_instrument_function)) +#define LTTNG_PACKED __attribute__((__packed__)) #ifndef __ust_stringify #define __ust_stringify1(x) #x @@ -42,8 +44,10 @@ #define LTTNG_UST_COMM_MAGIC 0xC57C57C5 /* Version for ABI between liblttng-ust, sessiond, consumerd */ -#define LTTNG_UST_ABI_MAJOR_VERSION 4 -#define LTTNG_UST_ABI_MINOR_VERSION 0 +#define LTTNG_UST_ABI_MAJOR_VERSION 7 +#define LTTNG_UST_ABI_MINOR_VERSION 2 + +struct lttng_ust_calibrate; enum lttng_ust_instrumentation { LTTNG_UST_TRACEPOINT = 0, @@ -137,8 +141,18 @@ enum lttng_ust_context_type { LTTNG_UST_CONTEXT_VPID = 1, LTTNG_UST_CONTEXT_PTHREAD_ID = 2, LTTNG_UST_CONTEXT_PROCNAME = 3, + LTTNG_UST_CONTEXT_IP = 4, + LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER = 5, + LTTNG_UST_CONTEXT_CPU_ID = 6, + LTTNG_UST_CONTEXT_APP_CONTEXT = 7, }; +struct lttng_ust_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_UST_SYM_NAME_LEN]; +} LTTNG_PACKED; + #define LTTNG_UST_CONTEXT_PADDING1 16 #define LTTNG_UST_CONTEXT_PADDING2 (LTTNG_UST_SYM_NAME_LEN + 32) struct lttng_ust_context { @@ -146,6 +160,12 @@ struct lttng_ust_context { char padding[LTTNG_UST_CONTEXT_PADDING1]; union { + struct lttng_ust_perf_counter_ctx perf_counter; + struct { + /* Includes trailing '\0'. */ + uint32_t provider_name_len; + uint32_t ctx_name_len; + } app_ctx; char padding[LTTNG_UST_CONTEXT_PADDING2]; } u; } LTTNG_PACKED; @@ -155,13 +175,18 @@ struct lttng_ust_context { */ #define LTTNG_UST_CHANNEL_ATTR_PADDING (LTTNG_UST_SYM_NAME_LEN + 32) struct lttng_ust_channel_attr { - uint64_t subbuf_size; /* bytes */ + uint64_t subbuf_size; /* bytes, power of 2 */ uint64_t num_subbuf; /* power of 2 */ int overwrite; /* 1: overwrite, 0: discard */ unsigned int switch_timer_interval; /* usec */ unsigned int read_timer_interval; /* usec */ enum lttng_ust_output output; /* splice, mmap */ - char padding[LTTNG_UST_CHANNEL_ATTR_PADDING]; + union { + struct { + int64_t blocking_timeout; /* Retry timeout (usec) */ + } s; + char padding[LTTNG_UST_CHANNEL_ATTR_PADDING]; + } u; } LTTNG_PACKED; #define LTTNG_UST_TRACEPOINT_ITER_PADDING 16 @@ -202,21 +227,6 @@ struct lttng_ust_object_data { } u; } LTTNG_PACKED; -enum lttng_ust_calibrate_type { - LTTNG_UST_CALIBRATE_TRACEPOINT, -}; - -#define LTTNG_UST_CALIBRATE_PADDING1 16 -#define LTTNG_UST_CALIBRATE_PADDING2 (LTTNG_UST_SYM_NAME_LEN + 32) -struct lttng_ust_calibrate { - enum lttng_ust_calibrate_type type; /* type (input) */ - char padding[LTTNG_UST_CALIBRATE_PADDING1]; - - union { - char padding[LTTNG_UST_CALIBRATE_PADDING2]; - } u; -} LTTNG_PACKED; - #define FILTER_BYTECODE_MAX_LEN 65536 #define LTTNG_UST_FILTER_PADDING 32 struct lttng_ust_filter_bytecode { @@ -227,6 +237,13 @@ struct lttng_ust_filter_bytecode { char data[0]; } LTTNG_PACKED; +#define LTTNG_UST_EXCLUSION_PADDING 32 +struct lttng_ust_event_exclusion { + uint32_t count; + char padding[LTTNG_UST_EXCLUSION_PADDING]; + char names[LTTNG_UST_SYM_NAME_LEN][0]; +} LTTNG_PACKED; + #define _UST_CMD(minor) (minor) #define _UST_CMDR(minor, type) (minor) #define _UST_CMDW(minor, type) (minor) @@ -250,6 +267,7 @@ struct lttng_ust_filter_bytecode { _UST_CMDW(0x51, struct lttng_ust_channel) #define LTTNG_UST_SESSION_START _UST_CMD(0x52) #define LTTNG_UST_SESSION_STOP _UST_CMD(0x53) +#define LTTNG_UST_SESSION_STATEDUMP _UST_CMD(0x54) /* Channel FD commands */ #define LTTNG_UST_STREAM _UST_CMD(0x60)