X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttng-abi.h;h=e6d5ffd703449b27f7ba8627fd8d7c85fc4b3aa7;hb=refs%2Fheads%2Fstable-2.12;hp=9d345f4a7c841fe683e5872ee2eb6eeb958a176d;hpb=436f640717bab63240d9a624846d947e150a2cee;p=lttng-modules.git diff --git a/lttng-abi.h b/lttng-abi.h index 9d345f4a..e6d5ffd7 100644 --- a/lttng-abi.h +++ b/lttng-abi.h @@ -17,10 +17,17 @@ * should be increased when an incompatible ABI change is done. */ #define LTTNG_MODULES_ABI_MAJOR_VERSION 2 -#define LTTNG_MODULES_ABI_MINOR_VERSION 4 +#define LTTNG_MODULES_ABI_MINOR_VERSION 5 #define LTTNG_KERNEL_SYM_NAME_LEN 256 #define LTTNG_KERNEL_SESSION_NAME_LEN 256 + +/* + * The expected iso8601 time formats are either: + * + * - YYYYmmddTHHMMSS+HHMM (20 characters + \0) + * - YYYY-mm-ddTHH:MM:SS+HH:MM (25 characters + \0) + */ #define LTTNG_KERNEL_SESSION_CREATION_TIME_ISO8601_LEN 26 enum lttng_kernel_instrumentation { @@ -90,6 +97,31 @@ struct lttng_kernel_event_callsite { } 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". */ @@ -106,6 +138,7 @@ struct lttng_kernel_event { 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)); @@ -205,9 +238,25 @@ struct lttng_kernel_filter_bytecode { uint32_t len; uint32_t reloc_offset; uint64_t seqnum; - char data[0]; + char data[]; } __attribute__((packed)); +enum lttng_kernel_tracker_type { + LTTNG_KERNEL_TRACKER_UNKNOWN = -1, + + LTTNG_KERNEL_TRACKER_PID = 0, + LTTNG_KERNEL_TRACKER_VPID = 1, + LTTNG_KERNEL_TRACKER_UID = 2, + LTTNG_KERNEL_TRACKER_VUID = 3, + LTTNG_KERNEL_TRACKER_GID = 4, + LTTNG_KERNEL_TRACKER_VGID = 5, +}; + +struct lttng_kernel_tracker_args { + enum lttng_kernel_tracker_type type; + int32_t id; +}; + /* LTTng file descriptor ioctl */ /* lttng-abi-old.h reserve 0x40, 0x41, 0x42, 0x43, and 0x44. */ #define LTTNG_KERNEL_SESSION _IO(0xF6, 0x45) @@ -233,6 +282,7 @@ struct lttng_kernel_filter_bytecode { _IOR(0xF6, 0x58, int32_t) #define LTTNG_KERNEL_SESSION_UNTRACK_PID \ _IOR(0xF6, 0x59, int32_t) + /* * ioctl 0x58 and 0x59 are duplicated here. It works, since _IOR vs _IO * are generating two different ioctl numbers, but this was not done on @@ -270,6 +320,14 @@ struct lttng_kernel_filter_bytecode { #define LTTNG_KERNEL_FILTER _IO(0xF6, 0x90) #define LTTNG_KERNEL_ADD_CALLSITE _IO(0xF6, 0x91) +/* Session FD ioctl (continued) */ +#define LTTNG_KERNEL_SESSION_LIST_TRACKER_IDS \ + _IOR(0xF6, 0xA0, struct lttng_kernel_tracker_args) +#define LTTNG_KERNEL_SESSION_TRACK_ID \ + _IOR(0xF6, 0xA1, struct lttng_kernel_tracker_args) +#define LTTNG_KERNEL_SESSION_UNTRACK_ID \ + _IOR(0xF6, 0xA2, struct lttng_kernel_tracker_args) + /* * LTTng-specific ioctls for the lib ringbuffer. *