1
2
3
4
5
6 #ifndef __ASM_UPROBES_H
7 #define __ASM_UPROBES_H
8
9 #include <linux/notifier.h>
10 #include <linux/types.h>
11
12 #include <asm/break.h>
13 #include <asm/inst.h>
14
15
16
17
18
19 typedef u32 uprobe_opcode_t;
20
21
22
23
24
25
26 #define MAX_UINSN_BYTES 8
27 #define UPROBE_XOL_SLOT_BYTES 128
28
29 #define UPROBE_BRK_UPROBE 0x000d000d
30 #define UPROBE_BRK_UPROBE_XOL 0x000e000d
31
32 #define UPROBE_SWBP_INSN UPROBE_BRK_UPROBE
33 #define UPROBE_SWBP_INSN_SIZE 4
34
35 struct arch_uprobe {
36 unsigned long resume_epc;
37 u32 insn[2];
38 u32 ixol[2];
39 };
40
41 struct arch_uprobe_task {
42 unsigned long saved_trap_nr;
43 };
44
45 #endif