CVS commit: src/external/cddl/osnet/dev/dtrace/mips
Module Name:src Committed By: simonb Date: Wed Apr 7 01:54:32 UTC 2021 Modified Files: src/external/cddl/osnet/dev/dtrace/mips: dtrace_isa.c Log Message: Use NAL (nop-and-link) to get the current PC. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.2 --- src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1 Mon Mar 29 05:17:09 2021 +++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c Wed Apr 7 01:54:31 2021 @@ -107,9 +107,8 @@ dtrace_getpcstack(pc_t *pcstack, int pcs ra = (register_t)(intptr_t)__builtin_return_address(0); __asm __volatile( - "jal 99f\n" - "nop\n" - "99:\n" + "nal\n" + " nop\n" "move %0, $31\n" /* get ra */ "move $31, %1\n" /* restore ra */ : "=r" (pc)
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: simonb Date: Tue Apr 6 12:48:59 UTC 2021 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c src/external/cddl/osnet/dev/dtrace/arm: dtrace_subr.c src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: sizeof(*var) instead of sizeof(type) To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c cvs rdiff -u -r1.12 -r1.13 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.14 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.15 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.14 Fri Nov 8 11:06:21 2019 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Tue Apr 6 12:48:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.14 2019/11/08 11:06:21 hannken Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.15 2021/04/06 12:48:59 simonb Exp $ */ /* * CDDL HEADER START @@ -78,7 +78,7 @@ dtrace_invop_add(int (*func)(uintptr_t, { dtrace_invop_hdlr_t *hdlr; - hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP); hdlr->dtih_func = func; hdlr->dtih_next = dtrace_invop_hdlr; dtrace_invop_hdlr = hdlr; @@ -108,7 +108,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); + kmem_free(hdlr, sizeof(*hdlr)); } /*ARGSUSED*/ Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.5 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c Tue Apr 6 12:48:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.4 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:59 simonb Exp $ */ /* * CDDL HEADER START @@ -94,7 +94,7 @@ dtrace_invop_add(int (*func)(uintptr_t, { dtrace_invop_hdlr_t *hdlr; - hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP); hdlr->dtih_func = func; hdlr->dtih_next = dtrace_invop_hdlr; dtrace_invop_hdlr = hdlr; @@ -124,7 +124,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); + kmem_free(hdlr, sizeof(*hdlr)); } /*ARGSUSED*/ Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.13 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12 Wed Feb 13 08:46:40 2019 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Tue Apr 6 12:48:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.12 2019/02/13 08:46:40 rin Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.13 2021/04/06 12:48:59 simonb Exp $ */ /* * CDDL HEADER START @@ -86,7 +86,7 @@ dtrace_invop_add(int (*func)(uintptr_t, { dtrace_invop_hdlr_t *hdlr; - hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP); hdlr->dtih_func = func; hdlr->dtih_next = dtrace_invop_hdlr; dtrace_invop_hdlr = hdlr; @@ -116,7 +116,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); + kmem_free(hdlr, sizeof(*hdlr)); } void
CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64
Module Name:src Committed By: simonb Date: Tue Apr 6 12:48:36 UTC 2021 Modified Files: src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c Log Message: sizeof(*var) instead of sizeof(type) Call kmem_free() with size of data being freed. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.5 --- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4 Thu Nov 12 02:15:56 2020 +++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Tue Apr 6 12:48:36 2021 @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:36 simonb Exp $"); #include #include @@ -87,7 +87,7 @@ dtrace_invop_add(int (*func)(uintptr_t, { dtrace_invop_hdlr_t *hdlr; - hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP); hdlr->dtih_func = func; hdlr->dtih_next = dtrace_invop_hdlr; dtrace_invop_hdlr = hdlr; @@ -120,7 +120,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, 0); + kmem_free(hdlr, sizeof(*hdlr)); } /*ARGSUSED*/
CVS commit: src/external/cddl/osnet/dev/dtrace/mips
Module Name:src Committed By: christos Date: Tue Apr 6 12:10:21 UTC 2021 Modified Files: src/external/cddl/osnet/dev/dtrace/mips: dtrace_subr.c Log Message: sizeof(*var) instead of sizeof(type) To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.3 --- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2 Tue Apr 6 04:19:15 2021 +++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c Tue Apr 6 08:10:21 2021 @@ -88,7 +88,7 @@ dtrace_invop_add(int (*func)(uintptr_t, { dtrace_invop_hdlr_t *hdlr; - hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP); hdlr->dtih_func = func; hdlr->dtih_next = dtrace_invop_hdlr; dtrace_invop_hdlr = hdlr; @@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); + kmem_free(hdlr, sizeof(*hdlr)); } /*ARGSUSED*/
CVS commit: src/external/cddl/osnet/dev/dtrace/mips
Module Name:src Committed By: simonb Date: Tue Apr 6 08:19:15 UTC 2021 Modified Files: src/external/cddl/osnet/dev/dtrace/mips: dtrace_subr.c Log Message: Call kmem_free() with the size of the thing we are freeing. Fixes panic when unloading the ktrace module on MIPS. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 \ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2 --- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1 Mon Mar 29 05:17:09 2021 +++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c Tue Apr 6 08:19:15 2021 @@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, 0); + kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); } /*ARGSUSED*/
CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64
Module Name:src Committed By: rin Date: Thu Nov 12 02:15:56 UTC 2020 Modified Files: src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c Log Message: One more catch up with ``aarch64 is not mips'' change. Fix evbarm-aarch64 build. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4 --- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3 Wed Feb 12 06:05:23 2020 +++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Thu Nov 12 02:15:56 2020 @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $"); #include #include @@ -128,7 +128,7 @@ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - (*func)(0, (uintptr_t)AARCH64_KSEG_START); + (*func)(0, (uintptr_t)AARCH64_DIRECTMAP_START); (*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0); }
CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64
Module Name:src Committed By: riastradh Date: Wed Feb 12 06:05:23 UTC 2020 Modified Files: src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c Log Message: Change the address ranges that aarch64 considers toxic for dtrace. `Toxic' means dtrace forbids D scripts from even attempting to read or write at them. Previously we considered [0, VM_MIN_KERNEL_ADDRESS) toxic, but VM_MIN_KERNEL_ADDRESS is only the minimum address of the kernel map; the direct-mapped region lies below it, and with PMAP_MAP_POOLPAGE we allocate virtual pages for pool backing directly from physical pages through the direct-mapped region. Also, this did not consider I/O mappings to be toxic, which they probably should be. Instead, treat: [0, AARCH64_KSEG_START) and [VM_KERNEL_IO_ADDRESS, 0xfff...ff) as toxic. (The upper bound for 0xfff...ff ought to be inclusive, not exclusive, but I think we'll need another mechanism for expressing that to dtrace!) To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3 --- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2 Wed Feb 12 01:09:38 2020 +++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c Wed Feb 12 06:05:23 2020 @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.2 2020/02/12 01:09:38 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $"); #include #include @@ -128,7 +128,8 @@ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - (*func)(0, (uintptr_t)VM_MIN_KERNEL_ADDRESS); + (*func)(0, (uintptr_t)AARCH64_KSEG_START); + (*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0); } static void
CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64
Module Name:src Committed By: riastradh Date: Wed Feb 12 01:10:16 UTC 2020 Modified Files: src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_isa.c Log Message: Teach dtrace about el1_trap_exit frames on aarch64. Implement dtrace_getarg and dtrace_getreg while here. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 \ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.2 --- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1 Tue Dec 3 22:10:56 2019 +++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c Wed Feb 12 01:10:16 2020 @@ -89,52 +89,60 @@ void dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes, uint32_t *intrpc) { - struct unwind_state state; - int scp_offset; - register_t sp, fp; - int depth; - - depth = 0; - - if (intrpc != 0) { - pcstack[depth++] = (pc_t) intrpc; + extern const char el1_trap_exit[]; + const register_t *fp; + int i = 0; + + if (intrpc) { + if (i < pcstack_limit) + pcstack[i++] = (pc_t)intrpc; } - aframes++; - - __asm __volatile("mov %0, sp" : "=" (sp)); - - state.fp = (uint64_t)__builtin_frame_address(0); - state.sp = sp; - state.pc = (uint64_t)dtrace_getpcstack; - - while (depth < pcstack_limit) { - if (!INKERNEL(state.pc) || !INKERNEL(state.fp)) - break; - - fp = state.fp; - state.sp = fp + 0x10; - /* FP to previous frame (X29) */ - state.fp = *(register_t *)(fp); - /* LR (X30) */ - state.pc = *(register_t *)(fp + 8) - 4; - - /* - * NB: Unlike some other architectures, we don't need to - * explicitly insert cpu_dtrace_caller as it appears in the - * normal kernel stack trace rather than a special trap frame. - */ - if (aframes > 0) { + /* + * fp[0] = x29 (saved frame pointer) + * fp[1] = x30 (saved link register == return address) + */ + fp = __builtin_frame_address(0); + while (i < pcstack_limit && INKERNEL(fp[0]) && INKERNEL(fp[1])) { + /* Skip the specified number of artificial frames. */ + if (aframes > 0) aframes--; + else + pcstack[i++] = fp[1]; + + /* Check whether this frame is handling a trap. */ + if (fp[1] == (register_t)el1_trap_exit) { + /* + * Trap from kernel. The trapframe is the + * saved frame pointer of the call to the trap + * handler whose return address is + * el1_trap_exit. The frame pointer of the + * interrupted code is in x29 stashed in the + * trapframe, alongside its pc. + */ + const struct trapframe *tf = (const void *)fp[0]; + /* x29 = frame pointer */ + fp = (const void *)tf->tf_regs.r_reg[29]; + if (INKERNEL(tf->tf_pc)) { +if (i >= pcstack_limit) + break; +if (aframes > 0) + aframes--; +else + pcstack[i++] = tf->tf_pc; + } } else { - pcstack[depth++] = state.pc; + /* + * Not a trap. Keep going with fp[0] as the + * parent frame pointer. + */ + fp = (const void *)fp[0]; } - } - for (; depth < pcstack_limit; depth++) { - pcstack[depth] = 0; - } + /* Zero the rest of the return address stack. (Paranoia?) */ + while (i < pcstack_limit) + pcstack[i++] = 0; } static int @@ -282,48 +290,78 @@ dtrace_getufpstack(uint64_t *pcstack, ui uint64_t dtrace_getarg(int arg, int aframes) { + extern const char el1_trap_exit[]; + const register_t *fp; + const struct trapframe *tf = NULL; + int i = 0; - printf("IMPLEMENT ME: %s\n", __func__); + /* + * The first arguments are passed in x0,...,x7. The rest are + * on the stack, too much trouble to figure out. + * + * XXX Shouldn't we ask ctf or dwarf or something to figure + * this stuff out for us? + */ + KASSERT(arg >= 0); + if (arg >= 8) + return 0; + + fp = __builtin_frame_address(0); + while (i < 1000 && INKERNEL(fp[0]) && INKERNEL(fp[1])) { + if (aframes > 0) + aframes--; + else + i++; + if (fp[1] == (register_t)el1_trap_exit) { + tf = (const void *)fp[0]; + break; + } else { + fp = (const void *)fp[0]; + } + } - return (0); + /* If we didn't find a trap frame, give up. */ + if (tf == NULL) + return 0; + + /* Arg0, arg1, ..., arg7 are in registers x0, x1, ..., x7. */ + return tf->tf_regs.r_reg[arg]; } int dtrace_getstackdepth(int aframes) { - struct unwind_state state; - int scp_offset; - register_t sp; - int depth; - int done; - - depth = 1; - done = 0; - - __asm __volatile("mov %0, sp" : "=" (sp)); - - state.fp = (uint64_t)__builtin_frame_address(0); - state.sp = sp; - state.pc = (uint64_t)dtrace_getstackdepth; - - do { - done = unwind_frame(); - if (!INKERNEL(state.pc) || !INKERNEL(state.fp)) - break; - depth++; - } while (!done); + extern const char el1_trap_exit[]; + const register_t *fp; + int i = 0; + + fp = __builtin_frame_address(0);
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: rin Date: Wed Feb 13 08:46:40 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: Fix DIAGNOSTIC build; replace FreeBSD-specific function with ours. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11 Mon Jun 4 21:35:29 2018 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Wed Feb 13 08:46:40 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.11 2018/06/04 21:35:29 christos Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.12 2019/02/13 08:46:40 rin Exp $ */ /* * CDDL HEADER START @@ -424,7 +424,8 @@ dtrace_trap(struct trapframe *frame, u_i */ nofault = (cpu_core[cpuid].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0; if (nofault) { - KASSERTMSG((read_eflags() & PSL_I) == 0, "interrupts enabled"); + KASSERTMSG((x86_read_flags() & PSL_I) == 0, + "interrupts enabled"); /* * There are only a couple of trap types that are expected.
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: hannken Date: Sat Jan 12 10:41:31 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c Log Message: There is no such function read_rflags(), probably meant x86_read_flags(). To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11 Thu Aug 16 14:14:51 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Sat Jan 12 10:41:31 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.11 2018/08/16 14:14:51 christos Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.12 2019/01/12 10:41:31 hannken Exp $ */ /* * CDDL HEADER START @@ -412,7 +412,7 @@ dtrace_trap(struct trapframe *frame, u_i */ nofault = (cpu_core[cpuid].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0; if (nofault) { - KASSERTMSG((read_rflags() & PSL_I) == 0, "interrupts enabled"); + KASSERTMSG((x86_read_flags() & PSL_I) == 0, "interrupts enabled"); /* * There are only a couple of trap types that are expected.
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: christos Date: Thu Aug 16 14:14:52 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c dtrace_subr.c Log Message: get rid of kernelbase To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c cvs rdiff -u -r1.10 -r1.11 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.10 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9 Sun Aug 12 12:07:27 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Thu Aug 16 10:14:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_isa.c,v 1.9 2018/08/12 16:07:27 christos Exp $ */ +/* $NetBSD: dtrace_isa.c,v 1.10 2018/08/16 14:14:51 christos Exp $ */ /* * CDDL HEADER START @@ -45,12 +45,6 @@ uint16_t dtrace_fuword16_nocheck(void *) uint32_t dtrace_fuword32_nocheck(void *); uint64_t dtrace_fuword64_nocheck(void *); -#ifdef VM_MIN_KERNEL_ADDRESS_DEFAULT -__strong_alias(kernelbase, vm_min_kernel_address) -#else -uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS; -#endif - #define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */ struct amd64_frame { Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10 Tue Jun 5 08:04:19 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Thu Aug 16 10:14:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.10 2018/06/05 12:04:19 christos Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.11 2018/08/16 14:14:51 christos Exp $ */ /* * CDDL HEADER START @@ -48,8 +48,6 @@ #include #include -extern uintptr_t kernelbase; - int dtrace_invop(uintptr_t, struct trapframe *, uintptr_t); typedef struct dtrace_invop_hdlr { @@ -117,7 +115,7 @@ dtrace_invop_remove(int (*func)(uintptr_ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - (*func)(0, kernelbase); + (*func)(0, VM_MIN_KERNEL_ADDRESS); } static void
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: christos Date: Sun Aug 12 16:07:27 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c Log Message: handle variable kernel vm min address To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8 Fri Jul 27 03:32:59 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Sun Aug 12 12:07:27 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_isa.c,v 1.8 2018/07/27 07:32:59 maxv Exp $ */ +/* $NetBSD: dtrace_isa.c,v 1.9 2018/08/12 16:07:27 christos Exp $ */ /* * CDDL HEADER START @@ -45,7 +45,11 @@ uint16_t dtrace_fuword16_nocheck(void *) uint32_t dtrace_fuword32_nocheck(void *); uint64_t dtrace_fuword64_nocheck(void *); +#ifdef VM_MIN_KERNEL_ADDRESS_DEFAULT +__strong_alias(kernelbase, vm_min_kernel_address) +#else uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS; +#endif #define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: maxv Date: Fri Jul 27 07:32:59 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c Log Message: Replace KERN_BASE by VM_MIN_KERNEL_ADDRESS. Also add XXX on INKERNEL. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.7 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.7 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Fri Jul 27 07:32:59 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_isa.c,v 1.7 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_isa.c,v 1.8 2018/07/27 07:32:59 maxv Exp $ */ /* * CDDL HEADER START @@ -45,9 +45,9 @@ uint16_t dtrace_fuword16_nocheck(void *) uint32_t dtrace_fuword32_nocheck(void *); uint64_t dtrace_fuword64_nocheck(void *); -uintptr_t kernelbase = (uintptr_t)KERN_BASE; +uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS; -#define INKERNEL(va) ((intptr_t)(va) < 0) +#define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */ struct amd64_frame { struct amd64_frame *f_frame;
CVS commit: src/external/cddl/osnet/dev/dtrace/x86
Module Name:src Committed By: kamil Date: Wed Jun 6 17:16:56 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/x86: dis_tables.c Log Message: Correct compilation of osnet/dev/dtrace/x86/dis_tables.c under Clang Constify dgr_suffix. This could be done with -W flags, but they are incompatible between compilers. This is a step forward functional MKLLVM=yes HAVE_LLVM=yes build. Sponsored by To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c diff -u src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.1 src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.2 --- src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.1 Mon May 28 23:47:39 2018 +++ src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c Wed Jun 6 17:16:56 2018 @@ -2345,7 +2345,7 @@ typedef struct dis_gather_regs { uint_t dgr_arg0; /* src reg */ uint_t dgr_arg1; /* vsib reg */ uint_t dgr_arg2; /* dst reg */ - char *dgr_suffix; /* suffix to append */ + const char *dgr_suffix; /* suffix to append */ } dis_gather_regs_t; static dis_gather_regs_t dis_vgather[4][2][2] = {
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: kamil Date: Wed Jun 6 15:54:03 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_hacks.c Log Message: Correct compilation of osnet/dev/dtrace/dtrace_hacks.c under Clang Use __UNCONST() to remove const from an argument. This could be done with -W flags, but they are incompatible between compilers. This is a step forward functional MKLLVM=yes HAVE_LLVM=yes build. Sponsored by To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.6 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.7 --- src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.6 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c Wed Jun 6 15:54:03 2018 @@ -1,13 +1,15 @@ -/* $NetBSD: dtrace_hacks.c,v 1.6 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_hacks.c,v 1.7 2018/06/06 15:54:03 kamil Exp $ */ /* $FreeBSD: head/sys/cddl/dev/dtrace/dtrace_hacks.c 281916 2015-04-24 03:19:30Z markj $ */ /* XXX Hacks */ +#include + dtrace_cacheid_t dtrace_predcache_id; boolean_t priv_policy_only(const cred_t *cr, int b, boolean_t c) { - return kauth_authorize_generic(cr, KAUTH_GENERIC_ISSUSER, NULL) == 0; + return kauth_authorize_generic(__UNCONST(cr), KAUTH_GENERIC_ISSUSER, NULL) == 0; }
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: christos Date: Tue Jun 5 12:04:19 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c Log Message: remove done in the dtrace header now. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.9 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.9 Mon May 28 17:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Tue Jun 5 08:04:19 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.9 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.10 2018/06/05 12:04:19 christos Exp $ */ /* * CDDL HEADER START @@ -33,7 +33,6 @@ * Copyright (c) 2011, Joyent, Inc. All rights reserved. */ -#include #include #include #include
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: christos Date: Mon Jun 4 21:35:29 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: better to put this () in the dtrace header where the definitions are needed. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10 Mon Jun 4 16:12:45 2018 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Mon Jun 4 17:35:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.10 2018/06/04 20:12:45 kre Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.11 2018/06/04 21:35:29 christos Exp $ */ /* * CDDL HEADER START @@ -33,7 +33,6 @@ * Copyright (c) 2011, Joyent, Inc. All rights reserved. */ -#include #include #include #include
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: kre Date: Mon Jun 4 20:12:46 UTC 2018 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: The (dtrace version of) is needed for kthread_t (same as the amd64 version). This should fix (one of) the current i386 build breakages. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.9 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.9 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Mon Jun 4 20:12:45 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.9 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.10 2018/06/04 20:12:45 kre Exp $ */ /* * CDDL HEADER START @@ -33,6 +33,7 @@ * Copyright (c) 2011, Joyent, Inc. All rights reserved. */ +#include #include #include #include
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: pgoyette Date: Thu Jun 23 06:44:52 UTC 2016 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_hacks.c Log Message: One more removal of a redefined symbol while loading dtrace module. Should finish the issues with PR kern/51265 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.5 --- src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.4 Thu Jun 23 04:35:35 2016 +++ src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c Thu Jun 23 06:44:52 2016 @@ -1,12 +1,10 @@ -/* $NetBSD: dtrace_hacks.c,v 1.4 2016/06/23 04:35:35 pgoyette Exp $ */ +/* $NetBSD: dtrace_hacks.c,v 1.5 2016/06/23 06:44:52 pgoyette Exp $ */ /* $FreeBSD: src/sys/cddl/dev/dtrace/dtrace_hacks.c,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $ */ /* XXX Hacks */ dtrace_cacheid_t dtrace_predcache_id; -cpu_core_t cpu_core[MAXCPUS]; - boolean_t priv_policy_only(const cred_t *a, int b, boolean_t c) {
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: pgoyette Date: Sat Nov 28 22:41:36 UTC 2015 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_modevent.c Log Message: When loading the module, if devsw_attach() fails, call dtrace_unload() to undo the effects of dtrace_load(). And if dtrace_unload() fails, panic (since we can't get the system back to its earlier stable state). When unloading the module, call devsw_detach() first, to lock out any new access. Then call dtrace_unload(). If dgtrace_unload() fails, reattach the devsw, and if that fails, panic. Implements fixes described in PR kern/43032 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.5 --- src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.4 Thu Feb 26 09:10:52 2015 +++ src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c Sat Nov 28 22:41:36 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_modevent.c,v 1.4 2015/02/26 09:10:52 ozaki-r Exp $ */ +/* $NetBSD: dtrace_modevent.c,v 1.5 2015/11/28 22:41:36 pgoyette Exp $ */ /* * CDDL HEADER START @@ -34,13 +34,26 @@ dtrace_modcmd(modcmd_t cmd, void *data) switch (cmd) { case MODULE_CMD_INIT: dtrace_load(NULL); - return devsw_attach("dtrace", NULL, , + error = devsw_attach("dtrace", NULL, , _cdevsw, ); + if (error != 0) + if (dtrace_unload() != 0) +panic("failed to unload dtrace"); + return error; + case MODULE_CMD_FINI: - error = dtrace_unload(); + error = devsw_detach(NULL, _cdevsw); if (error != 0) return error; - return devsw_detach(NULL, _cdevsw); + + error = dtrace_unload(); + if (error != 0) { + if (devsw_attach("dtrace", NULL, , + _cdevsw, ) != 0) +panic("failed to reattach dtrace_devsw"); + } + return error; + case MODULE_CMD_AUTOUNLOAD: return EBUSY; default:
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: riz Date: Fri Oct 2 22:15:18 UTC 2015 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c Log Message: Update signature of unimplemented function to match prototype. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.5 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4 Sat Mar 15 07:43:01 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Fri Oct 2 22:15:18 2015 @@ -225,7 +225,7 @@ dtrace_getstackdepth(int aframes) } ulong_t -dtrace_getreg(struct regs *regs, uint_t reg) +dtrace_getreg(struct trapframe *rp, uint_t reg) { return (0);
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: christos Date: Wed Sep 30 20:59:13 UTC 2015 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c Log Message: recognize the proc provider as belonging to sdt To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.6 --- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5 Thu Jun 18 22:33:00 2015 +++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Wed Sep 30 16:59:13 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_ioctl.c,v 1.5 2015/06/19 02:33:00 riastradh Exp $ */ +/* $NetBSD: dtrace_ioctl.c,v 1.6 2015/09/30 20:59:13 christos Exp $ */ /* * CDDL HEADER START @@ -660,9 +660,14 @@ again: if (pvp == NULL && error == 0) { char name[NAME_MAX]; + const char *provider; + if (strcmp(pvd->dtvd_name, "proc") == 0) +provider = "sdt"; + else +provider = pvd->dtvd_name; if (snprintf(name, sizeof name, "dtrace_%s", - pvd->dtvd_name) < sizeof name) { + provider) < sizeof name) { error = module_autoload(name, MODULE_CLASS_MISC); if (error == 0)
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: riastradh Date: Fri Jun 19 02:33:00 UTC 2015 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c Log Message: Fix dtrace module autoload. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5 --- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4 Sun Mar 3 18:16:35 2013 +++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Fri Jun 19 02:33:00 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_ioctl.c,v 1.4 2013/03/03 18:16:35 christos Exp $ */ +/* $NetBSD: dtrace_ioctl.c,v 1.5 2015/06/19 02:33:00 riastradh Exp $ */ /* * CDDL HEADER START @@ -659,10 +659,15 @@ again: mutex_exit(dtrace_provider_lock); if (pvp == NULL error == 0) { - error = module_autoload(pvd-dtvd_name, - MODULE_CLASS_MISC); - if (error == 0) -goto again; + char name[NAME_MAX]; + + if (snprintf(name, sizeof name, dtrace_%s, + pvd-dtvd_name) sizeof name) { +error = module_autoload(name, +MODULE_CLASS_MISC); +if (error == 0) + goto again; + } } if (pvp == NULL)
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: christos Date: Mon May 18 14:41:41 UTC 2015 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_asm.S Log Message: don't re-define END() now that amd64 defines it To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.4 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.5 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.4 Mon Jun 11 11:18:05 2012 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S Mon May 18 10:41:41 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_asm.S,v 1.4 2012/06/11 15:18:05 chs Exp $ */ +/* $NetBSD: dtrace_asm.S,v 1.5 2015/05/18 14:41:41 christos Exp $ */ /* * CDDL HEADER START @@ -35,7 +35,6 @@ #include sys/cpuvar_defs.h #include sys/dtrace.h #include machine/asm.h -#define END(a) #define MEXITCOUNT #include assym.h
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Sat Mar 15 07:43:01 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c Log Message: Make arm/dtrace_isa.c buildable This is a band-aid for build, but it works anyway. We have to do a real fix in the future. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3 Sat Mar 8 11:46:01 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Sat Mar 15 07:43:01 2014 @@ -39,6 +39,17 @@ #include ddb/db_sym.h #include ddb/ddb.h +uintptr_t kernelbase = (uintptr_t)KERNEL_BASE; + +/* TODO: support AAPCS */ +/* XXX: copied from sys/arch/arm/arm/db_trace.c */ +#define INKERNEL(va) (((vaddr_t)(va)) = VM_MIN_KERNEL_ADDRESS) + +#define FR_SCP (0) +#define FR_RLV (-1) +#define FR_RSP (-2) +#define FR_RFP (-3) + #include regset.h /*
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Sat Mar 15 07:49:15 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S Log Message: Enable invop handler on module load It sets a fbt handler to dtrace_invop_jump_addr on module load, which is used to call the dtrace probing function from the trap handler. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.5 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4 Mon Mar 10 06:38:22 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Sat Mar 15 07:49:15 2014 @@ -202,13 +202,24 @@ END(dtrace_copystr) void dtrace_invop_init(void) */ ENTRY(dtrace_invop_init) + ldr r1, .Ldtrace_invop + ldr r2, .Ldtrace_invop_jump_addr + str r1, [r2] RET + .align 0 +.Ldtrace_invop: + .word dtrace_invop +.Ldtrace_invop_jump_addr: + .word dtrace_invop_jump_addr END(dtrace_invop_init) /* void dtrace_invop_uninit(void) */ ENTRY(dtrace_invop_uninit) + mov r0, #0 + ldr r1, .Ldtrace_invop_jump_addr + str r0, [r1] RET END(dtrace_invop_uninit)
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Mon Mar 10 06:38:22 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S Log Message: Fix header inclusions To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3 Wed Mar 5 03:09:17 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Mon Mar 10 06:38:22 2014 @@ -34,8 +34,7 @@ #include sys/dtrace.h #include machine/asm.h - -#include assym.s +#include arm/armreg.h /* void dtrace_membar_producer(void)
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Mon Mar 10 03:04:57 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_subr.c Log Message: Make arm/dtrace_subr.c buildable The change just imports the code from http://people.freebsd.org/~gonzo/arm/dtrace-arm.diff and tweaks for NetBSD. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.2 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.1 Fri Jun 21 19:16:00 2013 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c Mon Mar 10 03:04:57 2014 @@ -1,3 +1,5 @@ +/* $NetBSD: dtrace_subr.c,v 1.2 2014/03/10 03:04:57 ozaki-r Exp $ */ + /* * CDDL HEADER START * @@ -27,25 +29,25 @@ * Use is subject to license terms. */ -#include sys/cdefs.h -__FBSDID($FreeBSD$); - #include sys/param.h #include sys/systm.h #include sys/types.h #include sys/kernel.h #include sys/malloc.h #include sys/kmem.h -#include sys/smp.h +#include sys/xcall.h +#include sys/cpu.h +#include sys/cpuvar.h #include sys/dtrace_impl.h #include sys/dtrace_bsd.h -#include machine/clock.h +#include machine/cpu.h #include machine/frame.h -#include machine/trap.h -#include vm/pmap.h +#include machine/vmparam.h +#include uvm/uvm_pglist.h +#include uvm/uvm_prot.h +#include uvm/uvm_pmap.h -#define DELAYBRANCH(x) ((int)(x) 0) - +extern uintptr_t kernelbase; extern uintptr_t dtrace_in_probe_addr; extern int dtrace_in_probe; extern dtrace_id_t dtrace_probeid_error; @@ -59,6 +61,8 @@ typedef struct dtrace_invop_hdlr { dtrace_invop_hdlr_t *dtrace_invop_hdlr; +void dtrace_gethrtime_init(void *arg); + int dtrace_invop(uintptr_t addr, uintptr_t *stack, uintptr_t eax) { @@ -72,26 +76,76 @@ dtrace_invop(uintptr_t addr, uintptr_t * return (0); } +void +dtrace_invop_add(int (*func)(uintptr_t, uintptr_t *, uintptr_t)) +{ + dtrace_invop_hdlr_t *hdlr; + + hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr-dtih_func = func; + hdlr-dtih_next = dtrace_invop_hdlr; + dtrace_invop_hdlr = hdlr; +} + +void +dtrace_invop_remove(int (*func)(uintptr_t, uintptr_t *, uintptr_t)) +{ + dtrace_invop_hdlr_t *hdlr = dtrace_invop_hdlr, *prev = NULL; + + for (;;) { + if (hdlr == NULL) + panic(attempt to remove non-existent invop handler); + + if (hdlr-dtih_func == func) + break; + + prev = hdlr; + hdlr = hdlr-dtih_next; + } + + if (prev == NULL) { + ASSERT(dtrace_invop_hdlr == hdlr); + dtrace_invop_hdlr = hdlr-dtih_next; + } else { + ASSERT(dtrace_invop_hdlr != hdlr); + prev-dtih_next = hdlr-dtih_next; + } + + kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); +} -/*ARGSUSED*/ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - printf(IMPLEMENT ME: dtrace_toxic_ranges\n); + (*func)(0, kernelbase); +} + +static void +xcall_func(void *arg0, void *arg1) +{ + dtrace_xcall_t func = arg0; + + (*func)(arg1); } void dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg) { - cpuset_t cpus; + uint64_t where; - if (cpu == DTRACE_CPUALL) - cpus = all_cpus; - else - CPU_SETOF(cpu, cpus); + if (cpu == DTRACE_CPUALL) { + where = xc_broadcast(0, xcall_func, func, arg); + } else { + struct cpu_info *cinfo = cpu_lookup(cpu); - smp_rendezvous_cpus(cpus, smp_no_rendevous_barrier, func, - smp_no_rendevous_barrier, arg); + KASSERT(cinfo != NULL); + where = xc_unicast(0, xcall_func, func, arg, cinfo); + } + xc_wait(where); + + /* XXX Q. Do we really need the other cpus to wait also? + * (see solaris:xc_sync()) + */ } static void @@ -133,10 +187,12 @@ dtrace_gethrestime(void) return (curtime.tv_sec * 10UL + curtime.tv_nsec); } -/* Function to handle DTrace traps during probes. See amd64/amd64/trap.c */ +/* Function to handle DTrace traps during probes. Not used on ARM yet */ int dtrace_trap(struct trapframe *frame, u_int type) { + cpuid_t cpuid = cpu_number(); /* current cpu id */ + /* * A trap can occur while DTrace executes a probe. Before * executing the probe, DTrace blocks re-scheduling and sets @@ -147,7 +203,8 @@ dtrace_trap(struct trapframe *frame, u_i * Check if DTrace has enabled 'no-fault' mode: * */ - if ((cpu_core[curcpu].cpuc_dtrace_flags CPU_DTRACE_NOFAULT) != 0) { + + if ((cpu_core[cpuid].cpuc_dtrace_flags CPU_DTRACE_NOFAULT) != 0) { /* * There are only a couple of trap types that are expected. * All the rest will be handled in the usual way. @@ -156,8 +213,8 @@ dtrace_trap(struct trapframe *frame, u_i /* Page fault. */ case 0: /* Flag a bad address. */ - cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR; -
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Sat Mar 8 11:46:01 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c Log Message: Prepare dtrace_isa.c for build - Tidy up header file inclusions - Replace curcpu with cpu_number() - Fix argument of dtrace_getreg - Tweak for gcc 4.8 Note that the file is still not buildable. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2 Wed Mar 5 02:00:24 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Sat Mar 8 11:46:01 2014 @@ -30,24 +30,14 @@ #include sys/param.h #include sys/systm.h #include sys/kernel.h -#include sys/stack.h -#include sys/pcpu.h #include machine/frame.h -#include machine/md_var.h #include machine/reg.h -#include vm/vm.h -#include vm/vm_param.h -#include vm/pmap.h - #include machine/db_machdep.h -#include machine/md_var.h #include machine/vmparam.h -#include machine/stack.h #include ddb/db_sym.h #include ddb/ddb.h -#include sys/kdb.h #include regset.h @@ -69,9 +59,11 @@ dtrace_getpcstack(pc_t *pcstack, int pcs uint32_t *intrpc) { uint32_t *frame, *lastframe; +#if 0 int scp_offset; +#endif int depth = 0; - pc_t caller = (pc_t) solaris_cpu[curcpu].cpu_dtrace_caller; + pc_t caller = (pc_t) solaris_cpu[cpu_number()].cpu_dtrace_caller; if (intrpc != 0) pcstack[depth++] = (pc_t) intrpc; @@ -80,7 +72,9 @@ dtrace_getpcstack(pc_t *pcstack, int pcs frame = (uint32_t *)__builtin_frame_address(0);; lastframe = NULL; +#if 0 scp_offset = -(get_pc_str_offset() 2); +#endif while ((frame != NULL) (depth pcstack_limit)) { db_addr_t scp; @@ -178,27 +172,18 @@ int dtrace_getstackdepth(int aframes) { uint32_t *frame, *lastframe; - int scp_offset; int depth = 1; frame = (uint32_t *)__builtin_frame_address(0);; lastframe = NULL; - scp_offset = -(get_pc_str_offset() 2); while (frame != NULL) { - db_addr_t scp; #if 0 uint32_t savecode; int r; uint32_t *rp; #endif - /* - * In theory, the SCP isn't guaranteed to be in the function - * that generated the stack frame. We hope for the best. - */ - scp = frame[FR_SCP]; - depth++; /* @@ -229,7 +214,7 @@ dtrace_getstackdepth(int aframes) } ulong_t -dtrace_getreg(struct trapframe *rp, uint_t reg) +dtrace_getreg(struct regs *regs, uint_t reg) { return (0); @@ -241,7 +226,7 @@ dtrace_copycheck(uintptr_t uaddr, uintpt if (uaddr + size VM_MAXUSER_ADDRESS || uaddr + size uaddr) { DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); - cpu_core[curcpu].cpuc_dtrace_illval = uaddr; + cpu_core[cpu_number()].cpuc_dtrace_illval = uaddr; return (0); } @@ -285,7 +270,7 @@ dtrace_fuword8(void *uaddr) { if ((uintptr_t)uaddr VM_MAXUSER_ADDRESS) { DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); - cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr; + cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr; return (0); } return (dtrace_fuword8_nocheck(uaddr)); @@ -296,7 +281,7 @@ dtrace_fuword16(void *uaddr) { if ((uintptr_t)uaddr VM_MAXUSER_ADDRESS) { DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); - cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr; + cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr; return (0); } return (dtrace_fuword16_nocheck(uaddr)); @@ -307,7 +292,7 @@ dtrace_fuword32(void *uaddr) { if ((uintptr_t)uaddr VM_MAXUSER_ADDRESS) { DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); - cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr; + cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr; return (0); } return (dtrace_fuword32_nocheck(uaddr)); @@ -318,7 +303,7 @@ dtrace_fuword64(void *uaddr) { if ((uintptr_t)uaddr VM_MAXUSER_ADDRESS) { DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); - cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr; + cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr; return (0); } return (dtrace_fuword64_nocheck(uaddr));
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Tue Mar 4 11:07:40 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S Log Message: Add missing END for each function To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.1 Fri Jun 21 19:16:00 2013 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Tue Mar 4 11:07:40 2014 @@ -42,12 +42,14 @@ void dtrace_membar_producer(void) */ ENTRY(dtrace_membar_producer) RET +END(dtrace_membar_producer) /* void dtrace_membar_consumer(void) */ ENTRY(dtrace_membar_consumer) RET +END(dtrace_membar_consumer) /* dtrace_icookie_t dtrace_interrupt_disable(void) @@ -58,6 +60,8 @@ ENTRY(dtrace_interrupt_disable) orr r1, r1, #(I32_bit|F32_bit) msr cpsr_c, r1 RET +END(dtrace_interrupt_disable) + /* void dtrace_interrupt_enable(dtrace_icookie_t cookie) */ @@ -68,6 +72,7 @@ ENTRY(dtrace_interrupt_enable) orr r1, r1, r0 msr cpsr_c, r1 RET +END(dtrace_interrupt_enable) /* uint32_t dtrace_cas32(uint32_t *target, uint32_t cmp, uint32_t new) @@ -95,6 +100,8 @@ ENTRY(dtrace_cas32) msr cpsr_c, r3 ldmfd sp!, {r4, r5} RET +END(dtrace_cas32) +END(dtrace_casptr) /* uint8_t @@ -104,6 +111,7 @@ ENTRY(dtrace_fuword8_nocheck) ldrb r3, [r0] mov r0, r3 RET +END(dtrace_fuword8_nocheck) /* uint16_t @@ -113,6 +121,7 @@ ENTRY(dtrace_fuword16_nocheck) ldrh r3, [r0] mov r0, r3 RET +END(dtrace_fuword16_nocheck) /* uint32_t @@ -122,6 +131,7 @@ ENTRY(dtrace_fuword32_nocheck) ldr r3, [r0] mov r0, r3 RET +END(dtrace_fuword32_nocheck) /* uint64_t @@ -142,6 +152,7 @@ ENTRY(dtrace_fuword64_nocheck) mov r1, r2 #endif RET +END(dtrace_fuword64_nocheck) /* void @@ -161,6 +172,7 @@ ENTRY(dtrace_copy) 2: ldmfd sp!, {r4-r5} /* stack is 8 byte aligned */ RET +END(dtrace_copy) /* @@ -184,6 +196,7 @@ ENTRY(dtrace_copystr) 2: ldmfd sp!, {r4-r5} /* stack is 8 byte aligned */ RET +END(dtrace_copystr) /* @@ -191,12 +204,14 @@ void dtrace_invop_init(void) */ ENTRY(dtrace_invop_init) RET +END(dtrace_invop_init) /* void dtrace_invop_uninit(void) */ ENTRY(dtrace_invop_uninit) RET +END(dtrace_invop_uninit) /* void @@ -205,6 +220,7 @@ vpanic(const char *format, va_list alist ENTRY(vpanic)/* Initial stack layout: */ vpanic_common: RET +END(vpanic) /* void @@ -212,6 +228,7 @@ dtrace_vpanic(const char *format, va_lis */ ENTRY(dtrace_vpanic) /* Initial stack layout: */ RET +END(dtrace_vpanic) /* uintptr_t @@ -220,3 +237,4 @@ dtrace_caller(int aframes) ENTRY(dtrace_caller) mov r0, #-1 RET +END(dtrace_caller)
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Wed Mar 5 02:00:24 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c Log Message: Use uint32_t instead of u_int32_t To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.1 Fri Jun 21 19:16:00 2013 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c Wed Mar 5 02:00:24 2014 @@ -68,7 +68,7 @@ void dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes, uint32_t *intrpc) { - u_int32_t *frame, *lastframe; + uint32_t *frame, *lastframe; int scp_offset; int depth = 0; pc_t caller = (pc_t) solaris_cpu[curcpu].cpu_dtrace_caller; @@ -78,16 +78,16 @@ dtrace_getpcstack(pc_t *pcstack, int pcs aframes++; - frame = (u_int32_t *)__builtin_frame_address(0);; + frame = (uint32_t *)__builtin_frame_address(0);; lastframe = NULL; scp_offset = -(get_pc_str_offset() 2); while ((frame != NULL) (depth pcstack_limit)) { db_addr_t scp; #if 0 - u_int32_t savecode; + uint32_t savecode; int r; - u_int32_t *rp; + uint32_t *rp; #endif /* @@ -109,7 +109,7 @@ dtrace_getpcstack(pc_t *pcstack, int pcs } #if 0 - savecode = ((u_int32_t *)scp)[scp_offset]; + savecode = ((uint32_t *)scp)[scp_offset]; if ((savecode 0x0e10) == 0x0800) { /* Looks like an STM */ rp = frame - 4; @@ -128,7 +128,7 @@ dtrace_getpcstack(pc_t *pcstack, int pcs break; /* Top of stack */ lastframe = frame; - frame = (u_int32_t *)(frame[FR_RFP]); + frame = (uint32_t *)(frame[FR_RFP]); if (INKERNEL((int)frame)) { /* staying in kernel */ @@ -177,20 +177,20 @@ dtrace_getarg(int arg, int aframes) int dtrace_getstackdepth(int aframes) { - u_int32_t *frame, *lastframe; + uint32_t *frame, *lastframe; int scp_offset; int depth = 1; - frame = (u_int32_t *)__builtin_frame_address(0);; + frame = (uint32_t *)__builtin_frame_address(0);; lastframe = NULL; scp_offset = -(get_pc_str_offset() 2); while (frame != NULL) { db_addr_t scp; #if 0 - u_int32_t savecode; + uint32_t savecode; int r; - u_int32_t *rp; + uint32_t *rp; #endif /* @@ -208,7 +208,7 @@ dtrace_getstackdepth(int aframes) break; /* Top of stack */ lastframe = frame; - frame = (u_int32_t *)(frame[FR_RFP]); + frame = (uint32_t *)(frame[FR_RFP]); if (INKERNEL((int)frame)) { /* staying in kernel */
CVS commit: src/external/cddl/osnet/dev/dtrace/arm
Module Name:src Committed By: ozaki-r Date: Wed Mar 5 03:09:17 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S Log Message: Fix dtrace_cas32 logic - compare with cmp, not new - return old value To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3 --- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2 Tue Mar 4 11:07:40 2014 +++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S Wed Mar 5 03:09:17 2014 @@ -89,12 +89,12 @@ ENTRY(dtrace_cas32) msr cpsr_c, r4 ldr r5, [r0] - cmp r5, r2 - movne r0, #0 + cmp r5, r1 + movne r0, r5 bne 2f str r2, [r0] - mov r0, #1 + mov r0, r5 2: msr cpsr_c, r3
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: ozaki-r Date: Wed Mar 5 06:06:42 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_debug.c Log Message: Use native atomic function instead of DTrace's own one So we don't need to implement it for each architecture. This change is from FreeBSD (not as-is though). To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.8 --- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7 Tue Mar 4 03:20:49 2014 +++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Wed Mar 5 06:06:42 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_debug.c,v 1.7 2014/03/04 03:20:49 ozaki-r Exp $ */ +/* $NetBSD: dtrace_debug.c,v 1.8 2014/03/05 06:06:42 ozaki-r Exp $ */ /*- * Copyright (C) 2008 John Birrell j...@freebsd.org. @@ -36,62 +36,6 @@ static char const hex2ascii_data[] = 01 #ifdef DEBUG -#if defined(__amd64__) -static __inline int -dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src) -{ - u_char res; - - __asm __volatile( - lock ; - cmpxchgq %2,%1 ; - sete %0 ; - 1: - # dtrace_cmpset_long - : =a (res), /* 0 */ - =m (*dst) /* 1 */ - : r (src), /* 2 */ - a (exp), /* 3 */ - m (*dst) /* 4 */ - : memory); - - return (res); -} -#elif defined(__i386__) -static __inline int -dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src) -{ - u_char res; - - __asm __volatile( - lock ; - cmpxchgl %2,%1 ; - sete%0 ; - 1: - # dtrace_cmpset_long - : =a (res), /* 0 */ - =m (*dst) /* 1 */ - : r (src),/* 2 */ - a (exp),/* 3 */ - m (*dst)/* 4 */ - : memory); - - return (res); -} -#elif defined(__arm__) -static __inline int -dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src) -{ - u_char res; - if (*dst == src) { - res = *dst; - *dst = src; - return res; - } - return exp; -} -#endif - #define DTRACE_DEBUG_BUFR_SIZE (32 * 1024) struct dtrace_debug_data { @@ -108,7 +52,8 @@ static volatile u_long dtrace_debug_flag static void dtrace_debug_lock(int cpu) { - while (dtrace_cmpset_long(dtrace_debug_flag[cpu], 0, 1) == 0) + /* FIXME: use atomic_cmpset_ulong once we have it */ + while (atomic_cas_ulong(dtrace_debug_flag[cpu], 0, 1) == 0) /* Loop until the lock is obtained. */ ; }
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: ozaki-r Date: Tue Mar 4 03:20:49 UTC 2014 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_debug.c Log Message: Fix wrong conditional statement in dtrace_debug_output Reported in PR kern/48547 by ozaki-r. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7 --- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6 Sun Apr 14 16:39:59 2013 +++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Tue Mar 4 03:20:49 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_debug.c,v 1.6 2013/04/14 16:39:59 christos Exp $ */ +/* $NetBSD: dtrace_debug.c,v 1.7 2014/03/04 03:20:49 ozaki-r Exp $ */ /*- * Copyright (C) 2008 John Birrell j...@freebsd.org. @@ -167,7 +167,7 @@ dtrace_debug_output(void) for (p = d-first; p d-next; p++) *p1++ = *p; - } else if (d-next d-first) { + } else if (d-first d-next) { char *p1 = dtrace_debug_bufr; count = (uintptr_t) d-last - (uintptr_t) d-first;
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: christos Date: Sun Apr 14 16:39:59 UTC 2013 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_debug.c Log Message: add a stub for arm To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.5 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6 --- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.5 Sat Jun 16 13:31:47 2012 +++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Sun Apr 14 12:39:59 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_debug.c,v 1.5 2012/06/16 17:31:47 chs Exp $ */ +/* $NetBSD: dtrace_debug.c,v 1.6 2013/04/14 16:39:59 christos Exp $ */ /*- * Copyright (C) 2008 John Birrell j...@freebsd.org. @@ -78,6 +78,18 @@ dtrace_cmpset_long(volatile u_long *dst, return (res); } +#elif defined(__arm__) +static __inline int +dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src) +{ + u_char res; + if (*dst == src) { + res = *dst; + *dst = src; + return res; + } + return exp; +} #endif #define DTRACE_DEBUG_BUFR_SIZE (32 * 1024)
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: christos Date: Sun Mar 3 18:16:35 UTC 2013 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c Log Message: autoload tracing modules. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.3 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4 --- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.3 Wed Aug 31 17:57:16 2011 +++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c Sun Mar 3 13:16:35 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_ioctl.c,v 1.3 2011/08/31 21:57:16 christos Exp $ */ +/* $NetBSD: dtrace_ioctl.c,v 1.4 2013/03/03 18:16:35 christos Exp $ */ /* * CDDL HEADER START @@ -647,6 +647,8 @@ dtrace_ioctl(struct file *fp, u_long cmd DTRACE_IOCTL_PRINTF(%s(%d): DTRACEIOC_PROVIDER\n,__func__,__LINE__); pvd-dtvd_name[DTRACE_PROVNAMELEN - 1] = '\0'; + error = 0; +again: mutex_enter(dtrace_provider_lock); for (pvp = dtrace_provider; pvp != NULL; pvp = pvp-dtpv_next) { @@ -656,6 +658,13 @@ dtrace_ioctl(struct file *fp, u_long cmd mutex_exit(dtrace_provider_lock); + if (pvp == NULL error == 0) { + error = module_autoload(pvd-dtvd_name, + MODULE_CLASS_MISC); + if (error == 0) +goto again; + } + if (pvp == NULL) return (ESRCH); @@ -758,16 +767,15 @@ dtrace_ioctl(struct file *fp, u_long cmd return (0); } case DTRACEIOC_STOP: { - int rval; processorid_t *cpuid = (processorid_t *) addr; DTRACE_IOCTL_PRINTF(%s(%d): DTRACEIOC_STOP\n,__func__,__LINE__); mutex_enter(dtrace_lock); - rval = dtrace_state_stop(state, cpuid); + error = dtrace_state_stop(state, cpuid); mutex_exit(dtrace_lock); - return (rval); + return (error); } default: error = ENOTTY;
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: christos Date: Fri Sep 9 17:48:39 UTC 2011 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: fix a shadow variable warning. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.5 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.6 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.5 Fri Apr 23 07:39:53 2010 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Fri Sep 9 13:48:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.5 2010/04/23 11:39:53 ahoka Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.6 2011/09/09 17:48:39 christos Exp $ */ /* * CDDL HEADER START @@ -131,11 +131,11 @@ } void -dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg) +dtrace_xcall(processorid_t xcpu, dtrace_xcall_t func, void *arg) { uint64_t where; - if (cpu == DTRACE_CPUALL) { + if (xcpu == DTRACE_CPUALL) { where = xc_broadcast(0, xcall_func, func, arg); } else { struct cpu_info *cinfo = cpu_lookup(cpu);
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: yamt Date: Tue Jul 26 12:26:33 UTC 2011 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_unload.c Log Message: fix a kmem_alloc/free size mismatch To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_unload.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.5 --- src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4 Fri Apr 23 16:44:10 2010 +++ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c Tue Jul 26 12:26:33 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_unload.c,v 1.4 2010/04/23 16:44:10 ahoka Exp $ */ +/* $NetBSD: dtrace_unload.c,v 1.5 2011/07/26 12:26:33 yamt Exp $ */ /* * CDDL HEADER START @@ -92,7 +92,8 @@ vmem_destroy(dtrace_arena); if (dtrace_toxrange != NULL) { - kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *)); + kmem_free(dtrace_toxrange, + dtrace_toxranges_max * sizeof (dtrace_toxrange_t)); dtrace_toxrange = NULL; dtrace_toxranges = 0; dtrace_toxranges_max = 0;
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: tron Date: Wed Jul 20 19:51:57 UTC 2011 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dis_tables.c Log Message: Fix uninitialized variables reported by GCC 4.5. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.2 src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.3 --- src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.2 Sun Feb 21 01:46:33 2010 +++ src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c Wed Jul 20 19:51:57 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: dis_tables.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */ +/* $NetBSD: dis_tables.c,v 1.3 2011/07/20 19:51:57 tron Exp $ */ /* * CDDL HEADER START @@ -1716,9 +1716,9 @@ uint_t opcode2; /* low nibble of 1st byte */ uint_t opcode3; /* extra opcode bits usually from ModRM byte */ uint_t opcode4; /* high nibble of 2nd byte */ - uint_t opcode5; /* low nibble of 2ne byte */ + uint_t opcode5 = 0xff; /* low nibble of 2nd byte */ uint_t opcode6; /* high nibble of 3rd byte */ - uint_t opcode7; /* low nibble of 3rd byte */ + uint_t opcode7 = 0xff; /* low nibble of 3rd byte */ uint_t opcode_bytes = 1; /*
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: christos Date: Mon Jul 18 00:42:40 UTC 2011 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dis_tables.c Log Message: fix uninitialized gcc variables To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.2 src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.3 --- src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.2 Sat Feb 20 20:46:33 2010 +++ src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c Sun Jul 17 20:42:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: dis_tables.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */ +/* $NetBSD: dis_tables.c,v 1.3 2011/07/18 00:42:40 christos Exp $ */ /* * CDDL HEADER START @@ -1716,9 +1716,9 @@ uint_t opcode2; /* low nibble of 1st byte */ uint_t opcode3; /* extra opcode bits usually from ModRM byte */ uint_t opcode4; /* high nibble of 2nd byte */ - uint_t opcode5; /* low nibble of 2ne byte */ + uint_t opcode5 = 0; /* low nibble of 2ne byte */ /* XXX: gcc */ uint_t opcode6; /* high nibble of 3rd byte */ - uint_t opcode7; /* low nibble of 3rd byte */ + uint_t opcode7 = 0; /* low nibble of 3rd byte */ /* XXX: gcc */ uint_t opcode_bytes = 1; /*
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: ahoka Date: Fri Apr 23 16:44:10 UTC 2010 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_unload.c Log Message: Add a missing parentheses. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_unload.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.3 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4 --- src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.3 Fri Apr 23 11:39:52 2010 +++ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c Fri Apr 23 16:44:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_unload.c,v 1.3 2010/04/23 11:39:52 ahoka Exp $ */ +/* $NetBSD: dtrace_unload.c,v 1.4 2010/04/23 16:44:10 ahoka Exp $ */ /* * CDDL HEADER START @@ -92,7 +92,7 @@ vmem_destroy(dtrace_arena); if (dtrace_toxrange != NULL) { - kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *); + kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *)); dtrace_toxrange = NULL; dtrace_toxranges = 0; dtrace_toxranges_max = 0;
CVS commit: src/external/cddl/osnet/dev/dtrace/i386
Module Name:src Committed By: tron Date: Thu Mar 18 11:00:03 UTC 2010 Modified Files: src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c Log Message: Fix the build: 1.) ifdef-out unused functions and global variables. 2.) Include x86/include/cpu_counter.h for amd64 and i386 to get the prototype of cpu_frequency. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.3 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.2 Sun Feb 21 01:46:33 2010 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Thu Mar 18 11:00:03 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.3 2010/03/18 11:00:03 tron Exp $ */ /* * CDDL HEADER START @@ -48,6 +48,10 @@ #include uvm/uvm_prot.h #include uvm/uvm_pmap.h +#if defined(__amd64__) || defined(__i386__) +#include x86/include/cpu_counter.h +#endif + extern uintptr_t kernelbase; extern uintptr_t dtrace_in_probe_addr; extern int dtrace_in_probe; @@ -61,6 +65,8 @@ dtrace_invop_hdlr_t *dtrace_invop_hdlr; +void dtrace_gethrtime_init(void *arg); + int dtrace_invop(uintptr_t addr, uintptr_t *stack, uintptr_t eax) { @@ -372,8 +378,10 @@ } #endif +#if 0 static int64_t tgt_cpu_tsc; static int64_t hst_cpu_tsc; +#endif static int64_t tsc_skew[MAXCPUS]; static uint64_t nsec_scale; @@ -389,6 +397,7 @@ return (rv); } +#if 0 static void dtrace_gethrtime_init_sync(void *arg) { @@ -408,7 +417,9 @@ } #endif } +#endif +#if 0 static void dtrace_gethrtime_init_cpu(void *arg) { @@ -419,6 +430,7 @@ else hst_cpu_tsc = dtrace_rdtsc(); } +#endif void dtrace_gethrtime_init(void *arg)