]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: implement tracemem optional third arg (dyn size)
authorEugene Loh <eugene.loh@oracle>
Thu, 7 Sep 2017 15:40:16 +0000 (08:40 -0700)
committerTomas Jedlicka <tomas.jedlicka@oracle.com>
Thu, 14 Sep 2017 09:12:13 +0000 (11:12 +0200)
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 <eugene.loh@oracle.com>
Reviewed-by: Tomas Jedlicka <tomas.jedlicka@oracle.com>
dtrace/dtrace_ecb.c
dtrace/dtrace_probe.c
include/uapi/linux/dtrace/actions_defines.h

index 68e2e54bb5abd468c844e56b7a94f9150aa13d89..52b04badc3f036afce32494a1ea14c1376fb46b1 100644 (file)
@@ -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)
index 7b97f55f04469d1ced059f071a52a870b87e82e5..2a107b81542b084f346c1d563f7b83cabb372a91 100644 (file)
@@ -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:
index 57306f8f16aaf027d5f5f5e3176bff0b891ea78d..6d4dda8a1705c8aab4395807df7490648985889e 100644 (file)
@@ -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)