+#define LTTNG_UST_EVENT_PADDING1 8
+#define LTTNG_UST_EVENT_PADDING2 (LTTNG_UST_SYM_NAME_LEN + 32)
+struct lttng_ust_event {
+ enum lttng_ust_instrumentation instrumentation;
+ char name[LTTNG_UST_SYM_NAME_LEN]; /* event name */
+
+ enum lttng_ust_loglevel_type loglevel_type;
+ int loglevel; /* value, -1: all */
+ uint64_t token; /* User-provided token */
+ char padding[LTTNG_UST_EVENT_PADDING1];
+
+ /* Per instrumentation type configuration */
+ union {
+ char padding[LTTNG_UST_EVENT_PADDING2];
+ } u;
+} LTTNG_PACKED;
+
+#define LTTNG_UST_EVENT_NOTIFIER_PADDING 32
+struct lttng_ust_event_notifier {
+ struct lttng_ust_event event;
+ uint64_t error_counter_index;
+
+ char padding[LTTNG_UST_EVENT_NOTIFIER_PADDING];
+} LTTNG_PACKED;
+
+#define LTTNG_UST_EVENT_NOTIFIER_NOTIFICATION_PADDING 32
+struct lttng_ust_event_notifier_notification {
+ uint64_t token;
+ uint16_t capture_buf_size;
+ char padding[LTTNG_UST_EVENT_NOTIFIER_NOTIFICATION_PADDING];
+} LTTNG_PACKED;
+
+enum lttng_ust_key_token_type {
+ LTTNG_UST_KEY_TOKEN_STRING = 0, /* arg: strtab_offset. */
+ LTTNG_UST_KEY_TOKEN_EVENT_NAME = 1, /* no arg. */
+ LTTNG_UST_KEY_TOKEN_PROVIDER_NAME = 2, /* no arg. */
+};
+
+#define LTTNG_UST_KEY_ARG_PADDING1 256
+#define LTTNG_UST_KEY_TOKEN_STRING_LEN_MAX 256
+struct lttng_ust_key_token {
+ uint32_t type; /* enum lttng_ust_key_token_type */
+ union {
+ char string[LTTNG_UST_KEY_TOKEN_STRING_LEN_MAX];
+ char padding[LTTNG_UST_KEY_ARG_PADDING1];
+ } arg;
+} LTTNG_PACKED;
+
+#define LTTNG_UST_NR_KEY_TOKEN 4
+struct lttng_ust_counter_key_dimension {
+ uint32_t nr_key_tokens;
+ struct lttng_ust_key_token key_tokens[LTTNG_UST_NR_KEY_TOKEN];
+} LTTNG_PACKED;
+
+#define LTTNG_UST_COUNTER_DIMENSION_MAX 4
+struct lttng_ust_counter_key {
+ uint32_t nr_dimensions;
+ struct lttng_ust_counter_key_dimension key_dimensions[LTTNG_UST_COUNTER_DIMENSION_MAX];
+} LTTNG_PACKED;
+
+#define LTTNG_UST_COUNTER_EVENT_PADDING1 16
+struct lttng_ust_counter_event {
+ struct lttng_ust_event event;
+ struct lttng_ust_counter_key key;
+ char padding[LTTNG_UST_COUNTER_EVENT_PADDING1];
+} LTTNG_PACKED;