0001
0002
0003
0004
0005
0006 #ifndef __ASM_UPROBES_H
0007 #define __ASM_UPROBES_H
0008
0009 #include <linux/notifier.h>
0010 #include <linux/types.h>
0011
0012 #include <asm/break.h>
0013 #include <asm/inst.h>
0014
0015
0016
0017
0018
0019 typedef u32 uprobe_opcode_t;
0020
0021
0022
0023
0024
0025
0026 #define MAX_UINSN_BYTES 8
0027 #define UPROBE_XOL_SLOT_BYTES 128
0028
0029 #define UPROBE_BRK_UPROBE 0x000d000d
0030 #define UPROBE_BRK_UPROBE_XOL 0x000e000d
0031
0032 #define UPROBE_SWBP_INSN UPROBE_BRK_UPROBE
0033 #define UPROBE_SWBP_INSN_SIZE 4
0034
0035 struct arch_uprobe {
0036 unsigned long resume_epc;
0037 u32 insn[2];
0038 u32 ixol[2];
0039 };
0040
0041 struct arch_uprobe_task {
0042 unsigned long saved_trap_nr;
0043 };
0044
0045 #endif