| Viewing file:  uprobes.h (1.07 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/** Copyright (C) 2012 Rabin Vincent <rabin at rab.in>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
 
 #ifndef _ASM_UPROBES_H
 #define _ASM_UPROBES_H
 
 #include <asm/probes.h>
 #include <asm/opcodes.h>
 
 typedef u32 uprobe_opcode_t;
 
 #define MAX_UINSN_BYTES        4
 #define UPROBE_XOL_SLOT_BYTES    64
 
 #define UPROBE_SWBP_ARM_INSN    0xe7f001f9
 #define UPROBE_SS_ARM_INSN    0xe7f001fa
 #define UPROBE_SWBP_INSN    __opcode_to_mem_arm(UPROBE_SWBP_ARM_INSN)
 #define UPROBE_SWBP_INSN_SIZE    4
 
 struct arch_uprobe_task {
 u32 backup;
 unsigned long    saved_trap_no;
 };
 
 struct arch_uprobe {
 u8 insn[MAX_UINSN_BYTES];
 unsigned long ixol[2];
 uprobe_opcode_t bpinsn;
 bool simulate;
 u32 pcreg;
 void (*prehandler)(struct arch_uprobe *auprobe,
 struct arch_uprobe_task *autask,
 struct pt_regs *regs);
 void (*posthandler)(struct arch_uprobe *auprobe,
 struct arch_uprobe_task *autask,
 struct pt_regs *regs);
 struct arch_probes_insn asi;
 };
 
 #endif
 
 |