Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/cddl/osnet/dev/dtrace/arm Enable invop handler on m...



details:   https://anonhg.NetBSD.org/src/rev/3d1d5011226d
branches:  trunk
changeset: 794448:3d1d5011226d
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Sat Mar 15 07:49:15 2014 +0000

description:
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.

diffstat:

 external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S |  11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diffs (28 lines):

diff -r e0ea0bb8e232 -r 3d1d5011226d external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S
--- a/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S   Sat Mar 15 07:43:01 2014 +0000
+++ b/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S   Sat Mar 15 07:49:15 2014 +0000
@@ -202,13 +202,24 @@
 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)
 



Home | Main Index | Thread Index | Old Index