+#define LTTNG_KERNEL_EVENT_NOTIFIER_NOTIFICATION_PADDING 32
+struct lttng_kernel_event_notifier_notification {
+ uint64_t token;
+ uint16_t capture_buf_size;
+ char padding[LTTNG_KERNEL_EVENT_NOTIFIER_NOTIFICATION_PADDING];
+} __attribute__((packed));
+
+enum lttng_kernel_key_token_type {
+ LTTNG_KERNEL_KEY_TOKEN_STRING = 0, /* arg: string_ptr. */
+ LTTNG_KERNEL_KEY_TOKEN_EVENT_NAME = 1, /* no arg. */
+ LTTNG_KERNEL_KEY_TOKEN_PROVIDER_NAME = 2, /* no arg. */
+};
+
+#define LTTNG_KERNEL_KEY_ARG_PADDING1 60
+#define LTTNG_KERNEL_KEY_TOKEN_STRING_LEN_MAX 256
+struct lttng_kernel_key_token {
+ uint32_t type; /* enum lttng_kernel_key_token_type */
+ union {
+ uint64_t string_ptr;
+ char padding[LTTNG_KERNEL_KEY_ARG_PADDING1];
+ } arg;
+} __attribute__((packed));
+
+#define LTTNG_KERNEL_NR_KEY_TOKEN 4
+struct lttng_kernel_counter_key_dimension {
+ uint32_t nr_key_tokens;
+ struct lttng_kernel_key_token key_tokens[LTTNG_KERNEL_NR_KEY_TOKEN];
+} __attribute__((packed));
+
+struct lttng_kernel_counter_key {
+ uint32_t nr_dimensions;
+ struct lttng_kernel_counter_key_dimension key_dimensions[LTTNG_KERNEL_COUNTER_DIMENSION_MAX];
+} __attribute__((packed));
+
+#define LTTNG_KERNEL_COUNTER_EVENT_PADDING1 16
+struct lttng_kernel_counter_event {
+ struct lttng_kernel_event event;
+ struct lttng_kernel_counter_key key;
+ char padding[LTTNG_KERNEL_COUNTER_EVENT_PADDING1];
+} __attribute__((packed));