Extract synchronize tracer notifier functions
[lttng-tools.git] / src / common / lttng-kernel.h
index fc2a1e25944f26cd8273353d5dd6ce49dce92e9e..e8647f439fcdd0dc7c638899504b8978179a750f 100644 (file)
@@ -129,28 +129,76 @@ struct lttng_kernel_event_callsite {
        } u;
 } LTTNG_PACKED;
 
+enum lttng_kernel_syscall_entryexit {
+       LTTNG_KERNEL_SYSCALL_ENTRYEXIT  = 0,
+       LTTNG_KERNEL_SYSCALL_ENTRY      = 1,
+       LTTNG_KERNEL_SYSCALL_EXIT       = 2,
+};
+
+enum lttng_kernel_syscall_abi {
+       LTTNG_KERNEL_SYSCALL_ABI_ALL    = 0,
+       LTTNG_KERNEL_SYSCALL_ABI_NATIVE = 1,
+       LTTNG_KERNEL_SYSCALL_ABI_COMPAT = 2,
+};
+
+enum lttng_kernel_syscall_match {
+       LTTNG_KERNEL_SYSCALL_MATCH_NAME = 0,
+       LTTNG_KERNEL_SYSCALL_MATCH_NR   = 1,
+};
+
+struct lttng_kernel_syscall {
+       uint8_t entryexit;      /* enum lttng_kernel_syscall_entryexit */
+       uint8_t abi;            /* enum lttng_kernel_syscall_abi */
+       uint8_t match;          /* enum lttng_kernel_syscall_match */
+       uint8_t padding;
+       uint32_t nr;            /* For LTTNG_SYSCALL_MATCH_NR */
+} LTTNG_PACKED;
+
 /* Function tracer */
 struct lttng_kernel_function {
        char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN];
 } LTTNG_PACKED;
 
-#define LTTNG_KERNEL_EVENT_PADDING1    16
+#define LTTNG_KERNEL_EVENT_PADDING1    8
 #define LTTNG_KERNEL_EVENT_PADDING2    LTTNG_KERNEL_SYM_NAME_LEN + 32
 struct lttng_kernel_event {
        char name[LTTNG_KERNEL_SYM_NAME_LEN];
        enum lttng_kernel_instrumentation instrumentation;
+       uint64_t token;
        char padding[LTTNG_KERNEL_EVENT_PADDING1];
 
        /* Per instrumentation type configuration */
        union {
                struct lttng_kernel_kretprobe kretprobe;
                struct lttng_kernel_kprobe kprobe;
-               struct lttng_kernel_uprobe uprobe;
                struct lttng_kernel_function ftrace;
+               struct lttng_kernel_uprobe uprobe;
+               struct lttng_kernel_syscall syscall;
                char padding[LTTNG_KERNEL_EVENT_PADDING2];
        } u;
 } LTTNG_PACKED;
 
+#define LTTNG_KERNEL_EVENT_NOTIFIER_PADDING    40
+struct lttng_kernel_event_notifier {
+       struct lttng_kernel_event event;
+       char padding[LTTNG_KERNEL_EVENT_NOTIFIER_PADDING];
+} LTTNG_PACKED;
+
+#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];
+} LTTNG_PACKED;
+
+#define LTTNG_KERNEL_CAPTURE_BYTECODE_MAX_LEN          65536
+struct lttng_kernel_capture_bytecode {
+       uint32_t len;
+       uint32_t reloc_offset;
+       uint64_t seqnum;
+       char data[0];
+} LTTNG_PACKED;
+
 struct lttng_kernel_tracer_version {
        uint32_t major;
        uint32_t minor;
This page took 0.025446 seconds and 4 git commands to generate.