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/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: 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 #include +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: 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 #include - -#include "assym.s" +#include /* 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 -__FBSDID("$FreeBSD$"); - #include #include #include #include #include #include -#include +#include +#include +#include #include #include -#include +#include #include -#include -#include +#include +#include +#include +#include -#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; - cpu_core[curcpu].cpuc_dtrace_illval = 0; + cpu_core[cpuid].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR; + cpu_core[cpuid].cpuc_dtrace_illval = 0; /* * Offset the instruction pointer to the instruction @@ -185,3 +242,9 @@ dtrace_probe_error(dtrace_state_t *state (uint
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 #include #include -#include -#include #include -#include #include -#include -#include -#include - #include -#include #include -#include #include #include -#include #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: 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/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: 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)