From 78ac89eca9304be623d4ec6fb89bef950162a171 Mon Sep 17 00:00:00 2001 From: Eugene Loh Date: Thu, 7 Sep 2017 08:40:16 -0700 Subject: [PATCH] dtrace: implement tracemem optional third arg (dyn size) Solaris DTrace added a third, optional argument, dynamic size. Here we implement this for Linux, including introducing the new user-visible arguments DTRACE_TRACEMEM_STATIC DTRACE_TRACEMEM_DYNAMIC DTRACE_TRACEMEM_SIZE DTRACE_TRACEMEM_SSIZE as well as refactoring the dt_print_bytes() raw label, making it its own function dt_print_rawbytes(). Orabug: 26223475 Signed-off-by: Eugene Loh Reviewed-by: Tomas Jedlicka --- dtrace/dtrace_ecb.c | 1 + dtrace/dtrace_probe.c | 1 + include/uapi/linux/dtrace/actions_defines.h | 1 + 3 files changed, 3 insertions(+) diff --git a/dtrace/dtrace_ecb.c b/dtrace/dtrace_ecb.c index 68e2e54bb5ab..52b04badc3f0 100644 --- a/dtrace/dtrace_ecb.c +++ b/dtrace/dtrace_ecb.c @@ -257,6 +257,7 @@ static int dtrace_ecb_action_add(dtrace_ecb_t *ecb, dtrace_actdesc_t *desc) state, (char *)(uintptr_t)arg); } + case DTRACEACT_TRACEMEM: case DTRACEACT_LIBACT: case DTRACEACT_DIFEXPR: if (dp == NULL) diff --git a/dtrace/dtrace_probe.c b/dtrace/dtrace_probe.c index 7b97f55f0446..2a107b81542b 100644 --- a/dtrace/dtrace_probe.c +++ b/dtrace/dtrace_probe.c @@ -996,6 +996,7 @@ void dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1, case DTRACEACT_PRINTA: case DTRACEACT_SYSTEM: case DTRACEACT_FREOPEN: + case DTRACEACT_TRACEMEM: break; case DTRACEACT_SYM: diff --git a/include/uapi/linux/dtrace/actions_defines.h b/include/uapi/linux/dtrace/actions_defines.h index 57306f8f16aa..6d4dda8a1705 100644 --- a/include/uapi/linux/dtrace/actions_defines.h +++ b/include/uapi/linux/dtrace/actions_defines.h @@ -34,6 +34,7 @@ #define DTRACEACT_PRINTF 3 /* printf() action */ #define DTRACEACT_PRINTA 4 /* printa() action */ #define DTRACEACT_LIBACT 5 /* library-controlled action */ +#define DTRACEACT_TRACEMEM 6 /* tracemem() action */ #define DTRACEACT_PROC 0x0100 #define DTRACEACT_USTACK (DTRACEACT_PROC + 1) -- 2.50.1