#define LTTNG_UST_COMM_MAGIC 0xC57C57C5
/* Version for ABI between liblttng-ust, sessiond, consumerd */
-#define LTTNG_UST_ABI_MAJOR_VERSION 8
-#define LTTNG_UST_ABI_MINOR_VERSION 1
+#define LTTNG_UST_ABI_MAJOR_VERSION 9
+#define LTTNG_UST_ABI_MAJOR_VERSION_OLDEST_COMPATIBLE 8
+#define LTTNG_UST_ABI_MINOR_VERSION 0
enum lttng_ust_instrumentation {
LTTNG_UST_TRACEPOINT = 0,
*/
} LTTNG_PACKED;
-#define LTTNG_UST_EVENT_PADDING1 16
+#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;
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 */
} u;
} LTTNG_PACKED;
+#define LTTNG_UST_EVENT_NOTIFIER_PADDING1 16
+struct lttng_ust_event_notifier {
+ struct lttng_ust_event event;
+ char padding[LTTNG_UST_EVENT_NOTIFIER_PADDING1];
+} LTTNG_PACKED;
+
+#define LTTNG_EVENT_NOTIFIER_NOTIFICATION_PADDING 32
+struct lttng_ust_event_notifier_notification {
+ uint64_t token;
+ char padding[LTTNG_EVENT_NOTIFIER_NOTIFICATION_PADDING];
+} LTTNG_PACKED;
+
enum lttng_ust_field_type {
LTTNG_UST_FIELD_OTHER = 0,
LTTNG_UST_FIELD_INTEGER = 1,
LTTNG_UST_CONTEXT_VGID = 18,
LTTNG_UST_CONTEXT_VEGID = 19,
LTTNG_UST_CONTEXT_VSGID = 20,
+ LTTNG_UST_CONTEXT_TIME_NS = 21,
};
struct lttng_ust_perf_counter_ctx {
LTTNG_UST_OBJECT_TYPE_STREAM = 1,
LTTNG_UST_OBJECT_TYPE_EVENT = 2,
LTTNG_UST_OBJECT_TYPE_CONTEXT = 3,
+ LTTNG_UST_OBJECT_TYPE_EVENT_NOTIFIER_GROUP = 4,
+ LTTNG_UST_OBJECT_TYPE_EVENT_NOTIFIER = 5,
};
#define LTTNG_UST_OBJECT_DATA_PADDING1 32
#define LTTNG_UST_WAIT_QUIESCENT _UST_CMD(0x43)
#define LTTNG_UST_REGISTER_DONE _UST_CMD(0x44)
#define LTTNG_UST_TRACEPOINT_FIELD_LIST _UST_CMD(0x45)
+#define LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE _UST_CMD(0x46)
/* Session FD commands */
#define LTTNG_UST_CHANNEL \
#define LTTNG_UST_FILTER _UST_CMD(0xA0)
#define LTTNG_UST_EXCLUSION _UST_CMD(0xA1)
+/* Event notifier group commands */
+#define LTTNG_UST_EVENT_NOTIFIER_CREATE \
+ _UST_CMDW(0xB0, struct lttng_ust_event_notifier)
+
#define LTTNG_UST_ROOT_HANDLE 0
struct lttng_ust_obj;
struct {
char *ctxname;
} app_context;
+ struct {
+ int event_notifier_notif_fd;
+ } event_notifier_handle;
};
struct lttng_ust_objd_ops {