lkml.org 
[lkml]   [2006]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/3] Kprobes: Define retval helper
    From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>

    Add the KPROBE_RETVAL macro to help extract the return value on
    different architectures, while using function-return probes.
    ---
    Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Signed-off-by: Prasanna S.P <prasanna@in.ibm.com>

    ---
    include/asm-i386/kprobes.h | 2 ++
    include/asm-ia64/kprobes.h | 2 ++
    include/asm-powerpc/kprobes.h | 2 ++
    include/asm-x86_64/kprobes.h | 2 ++
    4 files changed, 8 insertions(+)
    Index: linux-2.6.18-rc3/include/asm-i386/kprobes.h
    ===================================================================
    --- linux-2.6.18-rc3.orig/include/asm-i386/kprobes.h
    +++ linux-2.6.18-rc3/include/asm-i386/kprobes.h
    @@ -46,6 +46,8 @@ typedef u8 kprobe_opcode_t;
    #define ARCH_SUPPORTS_KRETPROBES
    #define ARCH_INACTIVE_KPROBE_COUNT 0

    +#define KPROBE_RETVAL(regs) regs->eax
    +
    void arch_remove_kprobe(struct kprobe *p);
    void kretprobe_trampoline(void);

    Index: linux-2.6.18-rc3/include/asm-ia64/kprobes.h
    ===================================================================
    --- linux-2.6.18-rc3.orig/include/asm-ia64/kprobes.h
    +++ linux-2.6.18-rc3/include/asm-ia64/kprobes.h
    @@ -84,6 +84,8 @@ struct kprobe_ctlblk {
    #define ARCH_SUPPORTS_KRETPROBES
    #define ARCH_INACTIVE_KPROBE_COUNT 1

    +#define KPROBE_RETVAL(regs) regs->r8
    +
    #define SLOT0_OPCODE_SHIFT (37)
    #define SLOT1_p1_OPCODE_SHIFT (37 - (64-46))
    #define SLOT2_OPCODE_SHIFT (37)
    Index: linux-2.6.18-rc3/include/asm-powerpc/kprobes.h
    ===================================================================
    --- linux-2.6.18-rc3.orig/include/asm-powerpc/kprobes.h
    +++ linux-2.6.18-rc3/include/asm-powerpc/kprobes.h
    @@ -54,6 +54,8 @@ typedef unsigned int kprobe_opcode_t;
    #define ARCH_SUPPORTS_KRETPROBES
    #define ARCH_INACTIVE_KPROBE_COUNT 1

    +#define KPROBE_RETVAL(regs) regs->gpr[3]
    +
    void kretprobe_trampoline(void);
    extern void arch_remove_kprobe(struct kprobe *p);

    Index: linux-2.6.18-rc3/include/asm-x86_64/kprobes.h
    ===================================================================
    --- linux-2.6.18-rc3.orig/include/asm-x86_64/kprobes.h
    +++ linux-2.6.18-rc3/include/asm-x86_64/kprobes.h
    @@ -45,6 +45,8 @@ typedef u8 kprobe_opcode_t;
    #define ARCH_SUPPORTS_KRETPROBES
    #define ARCH_INACTIVE_KPROBE_COUNT 1

    +#define KPROBE_RETVAL(regs) regs->rax
    +
    void kretprobe_trampoline(void);
    extern void arch_remove_kprobe(struct kprobe *p);

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2006-08-07 14:01    [from the cache]
    ©2003-2011 Jasper Spaans