#define LTTNG_KERNEL_SYM_NAME_LEN 256
#define LTTNG_KERNEL_SESSION_NAME_LEN 256
+#define LTTNG_KERNEL_SESSION_CREATION_TIME_ISO8601_LEN 26
enum lttng_kernel_instrumentation {
LTTNG_KERNEL_TRACEPOINT = 0,
} u;
} __attribute__((packed));
+enum lttng_kernel_syscall_entryexit {
+ LTTNG_KERNEL_SYSCALL_ENTRYEXIT = 0,
+ LTTNG_KERNEL_SYSCALL_ENTRY = 1, /* Not implemented. */
+ LTTNG_KERNEL_SYSCALL_EXIT = 2, /* Not implemented. */
+};
+
+enum lttng_kernel_syscall_abi {
+ LTTNG_KERNEL_SYSCALL_ABI_ALL = 0,
+ LTTNG_KERNEL_SYSCALL_ABI_NATIVE = 1, /* Not implemented. */
+ LTTNG_KERNEL_SYSCALL_ABI_COMPAT = 2, /* Not implemented. */
+};
+
+enum lttng_kernel_syscall_match {
+ LTTNG_SYSCALL_MATCH_NAME = 0,
+ LTTNG_SYSCALL_MATCH_NR = 1, /* Not implemented. */
+};
+
+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 */
+} __attribute__((packed));
+
/*
* For syscall tracing, name = "*" means "enable all".
*/
struct lttng_kernel_kprobe kprobe;
struct lttng_kernel_function_tracer ftrace;
struct lttng_kernel_uprobe uprobe;
+ struct lttng_kernel_syscall syscall;
char padding[LTTNG_KERNEL_EVENT_PADDING2];
} u;
} __attribute__((packed));
char name[LTTNG_KERNEL_SESSION_NAME_LEN];
} __attribute__((packed));
+struct lttng_kernel_session_creation_time {
+ char iso8601[LTTNG_KERNEL_SESSION_CREATION_TIME_ISO8601_LEN];
+} __attribute__((packed));
+
enum lttng_kernel_calibrate_type {
LTTNG_KERNEL_CALIBRATE_KRETPROBE,
};
#define LTTNG_KERNEL_SESSION_STATEDUMP _IO(0xF6, 0x5C)
#define LTTNG_KERNEL_SESSION_SET_NAME \
_IOR(0xF6, 0x5D, struct lttng_kernel_session_name)
+#define LTTNG_KERNEL_SESSION_SET_CREATION_TIME \
+ _IOR(0xF6, 0x5E, struct lttng_kernel_session_creation_time)
/* Channel FD ioctl */
#define LTTNG_KERNEL_STREAM _IO(0xF6, 0x62)