Signed-off-by: Michael Jeanson <mjean...@efficios.com> --- include/lttng/event.h | 12 +++++++++ src/bin/lttng-sessiond/context.c | 36 +++++++++++++++++++++++++ src/bin/lttng-sessiond/save.c | 36 +++++++++++++++++++++++++ src/bin/lttng/commands/add_context.c | 24 +++++++++++++++++ src/common/config/config-session-abi.h | 12 +++++++++ src/common/config/session-config.c | 48 ++++++++++++++++++++++++++++++++++ src/common/lttng-kernel.h | 12 +++++++++ 7 files changed, 180 insertions(+)
diff --git a/include/lttng/event.h b/include/lttng/event.h index 44edd52..b19d5f9 100644 --- a/include/lttng/event.h +++ b/include/lttng/event.h @@ -149,6 +149,18 @@ enum lttng_event_context_type { LTTNG_EVENT_CONTEXT_PID_NS = 24, LTTNG_EVENT_CONTEXT_USER_NS = 25, LTTNG_EVENT_CONTEXT_UTS_NS = 26, + LTTNG_EVENT_CONTEXT_UID = 27, + LTTNG_EVENT_CONTEXT_EUID = 28, + LTTNG_EVENT_CONTEXT_SUID = 29, + LTTNG_EVENT_CONTEXT_GID = 30, + LTTNG_EVENT_CONTEXT_EGID = 31, + LTTNG_EVENT_CONTEXT_SGID = 32, + LTTNG_EVENT_CONTEXT_VUID = 33, + LTTNG_EVENT_CONTEXT_VEUID = 34, + LTTNG_EVENT_CONTEXT_VSUID = 35, + LTTNG_EVENT_CONTEXT_VGID = 36, + LTTNG_EVENT_CONTEXT_VEGID = 37, + LTTNG_EVENT_CONTEXT_VSGID = 38, }; enum lttng_event_field_type { diff --git a/src/bin/lttng-sessiond/context.c b/src/bin/lttng-sessiond/context.c index 14f2180..5121134 100644 --- a/src/bin/lttng-sessiond/context.c +++ b/src/bin/lttng-sessiond/context.c @@ -280,6 +280,42 @@ int context_kernel_add(struct ltt_kernel_session *ksession, case LTTNG_EVENT_CONTEXT_UTS_NS: kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_UTS_NS; break; + case LTTNG_EVENT_CONTEXT_UID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_UID; + break; + case LTTNG_EVENT_CONTEXT_EUID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_EUID; + break; + case LTTNG_EVENT_CONTEXT_SUID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_SUID; + break; + case LTTNG_EVENT_CONTEXT_GID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_GID; + break; + case LTTNG_EVENT_CONTEXT_EGID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_EGID; + break; + case LTTNG_EVENT_CONTEXT_SGID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_SGID; + break; + case LTTNG_EVENT_CONTEXT_VUID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VUID; + break; + case LTTNG_EVENT_CONTEXT_VEUID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VEUID; + break; + case LTTNG_EVENT_CONTEXT_VSUID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VSUID; + break; + case LTTNG_EVENT_CONTEXT_VGID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VGID; + break; + case LTTNG_EVENT_CONTEXT_VEGID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VEGID; + break; + case LTTNG_EVENT_CONTEXT_VSGID: + kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_VSGID; + break; default: ret = LTTNG_ERR_KERN_CONTEXT_FAIL; goto error; diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index cf8c830..9550774 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -306,6 +306,42 @@ const char *get_kernel_context_type_string( case LTTNG_KERNEL_CONTEXT_UTS_NS: context_type_string = config_event_context_uts_ns; break; + case LTTNG_KERNEL_CONTEXT_UID: + context_type_string = config_event_context_uid; + break; + case LTTNG_KERNEL_CONTEXT_EUID: + context_type_string = config_event_context_euid; + break; + case LTTNG_KERNEL_CONTEXT_SUID: + context_type_string = config_event_context_suid; + break; + case LTTNG_KERNEL_CONTEXT_GID: + context_type_string = config_event_context_gid; + break; + case LTTNG_KERNEL_CONTEXT_EGID: + context_type_string = config_event_context_egid; + break; + case LTTNG_KERNEL_CONTEXT_SGID: + context_type_string = config_event_context_sgid; + break; + case LTTNG_KERNEL_CONTEXT_VUID: + context_type_string = config_event_context_vuid; + break; + case LTTNG_KERNEL_CONTEXT_VEUID: + context_type_string = config_event_context_veuid; + break; + case LTTNG_KERNEL_CONTEXT_VSUID: + context_type_string = config_event_context_vsuid; + break; + case LTTNG_KERNEL_CONTEXT_VGID: + context_type_string = config_event_context_vgid; + break; + case LTTNG_KERNEL_CONTEXT_VEGID: + context_type_string = config_event_context_vegid; + break; + case LTTNG_KERNEL_CONTEXT_VSGID: + context_type_string = config_event_context_vsgid; + break; default: context_type_string = NULL; } diff --git a/src/bin/lttng/commands/add_context.c b/src/bin/lttng/commands/add_context.c index 1e9977f..c1a4c3e 100644 --- a/src/bin/lttng/commands/add_context.c +++ b/src/bin/lttng/commands/add_context.c @@ -91,6 +91,18 @@ enum context_type { CONTEXT_PID_NS = 24, CONTEXT_USER_NS = 25, CONTEXT_UTS_NS = 26, + CONTEXT_UID = 27, + CONTEXT_EUID = 28, + CONTEXT_SUID = 29, + CONTEXT_GID = 30, + CONTEXT_EGID = 31, + CONTEXT_SGID = 32, + CONTEXT_VUID = 33, + CONTEXT_VEUID = 34, + CONTEXT_VSUID = 35, + CONTEXT_VGID = 36, + CONTEXT_VEGID = 37, + CONTEXT_VSGID = 38, }; /* @@ -254,6 +266,18 @@ const struct ctx_opts { { "pid_ns", CONTEXT_PID_NS }, { "user_ns", CONTEXT_USER_NS }, { "uts_ns", CONTEXT_UTS_NS }, + { "uid", CONTEXT_UID }, + { "euid", CONTEXT_EUID }, + { "suid", CONTEXT_SUID }, + { "gid", CONTEXT_GID }, + { "egid", CONTEXT_EGID }, + { "sgid", CONTEXT_SGID }, + { "vuid", CONTEXT_VUID }, + { "veuid", CONTEXT_VEUID }, + { "vsuid", CONTEXT_VSUID }, + { "vgid", CONTEXT_VGID }, + { "vegid", CONTEXT_VEGID }, + { "vsgid", CONTEXT_VSGID }, /* Perf options */ diff --git a/src/common/config/config-session-abi.h b/src/common/config/config-session-abi.h index d1c51c0c..5ca27ac 100644 --- a/src/common/config/config-session-abi.h +++ b/src/common/config/config-session-abi.h @@ -136,5 +136,17 @@ extern const char * const config_event_context_net_ns; extern const char * const config_event_context_pid_ns; extern const char * const config_event_context_user_ns; extern const char * const config_event_context_uts_ns; +extern const char * const config_event_context_uid; +extern const char * const config_event_context_euid; +extern const char * const config_event_context_suid; +extern const char * const config_event_context_gid; +extern const char * const config_event_context_egid; +extern const char * const config_event_context_sgid; +extern const char * const config_event_context_vuid; +extern const char * const config_event_context_veuid; +extern const char * const config_event_context_vsuid; +extern const char * const config_event_context_vgid; +extern const char * const config_event_context_vegid; +extern const char * const config_event_context_vsgid; #endif /* CONFIG_SESSION_INTERNAL_H */ diff --git a/src/common/config/session-config.c b/src/common/config/session-config.c index 130a095..dcbb32c 100644 --- a/src/common/config/session-config.c +++ b/src/common/config/session-config.c @@ -186,6 +186,18 @@ LTTNG_HIDDEN const char * const config_event_context_net_ns = "NET_NS"; LTTNG_HIDDEN const char * const config_event_context_pid_ns = "PID_NS"; LTTNG_HIDDEN const char * const config_event_context_user_ns = "USER_NS"; LTTNG_HIDDEN const char * const config_event_context_uts_ns = "UTS_NS"; +LTTNG_HIDDEN const char * const config_event_context_uid = "UID"; +LTTNG_HIDDEN const char * const config_event_context_euid = "EUID"; +LTTNG_HIDDEN const char * const config_event_context_suid = "SUID"; +LTTNG_HIDDEN const char * const config_event_context_gid = "GID"; +LTTNG_HIDDEN const char * const config_event_context_egid = "EGID"; +LTTNG_HIDDEN const char * const config_event_context_sgid = "SGID"; +LTTNG_HIDDEN const char * const config_event_context_vuid = "VUID"; +LTTNG_HIDDEN const char * const config_event_context_veuid = "VEUID"; +LTTNG_HIDDEN const char * const config_event_context_vsuid = "VSUID"; +LTTNG_HIDDEN const char * const config_event_context_vgid = "VGID"; +LTTNG_HIDDEN const char * const config_event_context_vegid = "VEGID"; +LTTNG_HIDDEN const char * const config_event_context_vsgid = "VSGID"; /* Deprecated symbols */ const char * const config_element_perf; @@ -1041,6 +1053,42 @@ int get_context_type(xmlChar *context_type) } else if (!strcmp((char *) context_type, config_event_context_uts_ns)) { ret = LTTNG_EVENT_CONTEXT_UTS_NS; + } else if (!strcmp((char *) context_type, + config_event_context_uid)) { + ret = LTTNG_EVENT_CONTEXT_UID; + } else if (!strcmp((char *) context_type, + config_event_context_euid)) { + ret = LTTNG_EVENT_CONTEXT_EUID; + } else if (!strcmp((char *) context_type, + config_event_context_suid)) { + ret = LTTNG_EVENT_CONTEXT_SUID; + } else if (!strcmp((char *) context_type, + config_event_context_gid)) { + ret = LTTNG_EVENT_CONTEXT_GID; + } else if (!strcmp((char *) context_type, + config_event_context_egid)) { + ret = LTTNG_EVENT_CONTEXT_EGID; + } else if (!strcmp((char *) context_type, + config_event_context_sgid)) { + ret = LTTNG_EVENT_CONTEXT_SGID; + } else if (!strcmp((char *) context_type, + config_event_context_vuid)) { + ret = LTTNG_EVENT_CONTEXT_VUID; + } else if (!strcmp((char *) context_type, + config_event_context_veuid)) { + ret = LTTNG_EVENT_CONTEXT_VEUID; + } else if (!strcmp((char *) context_type, + config_event_context_vsuid)) { + ret = LTTNG_EVENT_CONTEXT_VSUID; + } else if (!strcmp((char *) context_type, + config_event_context_vgid)) { + ret = LTTNG_EVENT_CONTEXT_VGID; + } else if (!strcmp((char *) context_type, + config_event_context_vegid)) { + ret = LTTNG_EVENT_CONTEXT_VEGID; + } else if (!strcmp((char *) context_type, + config_event_context_vsgid)) { + ret = LTTNG_EVENT_CONTEXT_VSGID; } else { goto error; } diff --git a/src/common/lttng-kernel.h b/src/common/lttng-kernel.h index a55baee..2a548da 100644 --- a/src/common/lttng-kernel.h +++ b/src/common/lttng-kernel.h @@ -65,6 +65,18 @@ enum lttng_kernel_context_type { LTTNG_KERNEL_CONTEXT_PID_NS = 20, LTTNG_KERNEL_CONTEXT_USER_NS = 21, LTTNG_KERNEL_CONTEXT_UTS_NS = 22, + LTTNG_KERNEL_CONTEXT_UID = 23, + LTTNG_KERNEL_CONTEXT_EUID = 24, + LTTNG_KERNEL_CONTEXT_SUID = 25, + LTTNG_KERNEL_CONTEXT_GID = 26, + LTTNG_KERNEL_CONTEXT_EGID = 27, + LTTNG_KERNEL_CONTEXT_SGID = 28, + LTTNG_KERNEL_CONTEXT_VUID = 29, + LTTNG_KERNEL_CONTEXT_VEUID = 30, + LTTNG_KERNEL_CONTEXT_VSUID = 31, + LTTNG_KERNEL_CONTEXT_VGID = 32, + LTTNG_KERNEL_CONTEXT_VEGID = 33, + LTTNG_KERNEL_CONTEXT_VSGID = 34, }; /* Perf counter attributes */ -- 2.7.4 _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev