123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- * Copyright (c) 2012, Chris Andrews. All rights reserved.
- */
-
- /*
- * Stub functions containing DTrace tracepoints for probes and
- * is-enabled probes. These functions are copied for each probe
- * dynamically created.
- *
- */
- .text
-
- .align 4, 0x90
- .globl usdt_tracepoint_isenabled
- .globl _usdt_tracepoint_isenabled
- .globl usdt_tracepoint_probe
- .globl _usdt_tracepoint_probe
- .globl usdt_tracepoint_end
- .globl _usdt_tracepoint_end
- .globl usdt_probe_args
- .globl _usdt_probe_args
-
- usdt_tracepoint_isenabled:
- _usdt_tracepoint_isenabled:
- pushl %ebp
- movl %esp, %ebp
- subl $8, %esp
- xorl %eax, %eax
- nop
- nop
- leave
- ret
- usdt_tracepoint_probe:
- _usdt_tracepoint_probe:
- nop
- nop
- nop
- nop
- nop
- addl $0x20,%esp
- leave
- usdt_tracepoint_end:
- _usdt_tracepoint_end:
- ret
-
- /*
- * Probe argument marshalling, i386 style
- *
- */
-
- usdt_probe_args:
- _usdt_probe_args:
- pushl %ebp
- movl %esp,%ebp
- subl $8,%esp
- subl $8,%esp
- movl 8(%ebp),%edx
- movl 0xc(%ebp),%ecx
- test %ecx,%ecx
- je fire
- args: movl %ecx,%eax
- sal $2,%eax
- subl $4,%eax
- addl 0x10(%ebp),%eax
- pushl (%eax)
- dec %ecx
- jne args
- fire: jmp *%edx
|