1
2
3
4
5
6
7
8
9#ifndef __PARISC_KGDB_H__
10#define __PARISC_KGDB_H__
11
12#define BREAK_INSTR_SIZE 4
13#define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f
14#define PARISC_KGDB_BREAK_INSN 0x3ffa01f
15
16
17#define NUMREGBYTES sizeof(struct parisc_gdb_regs)
18#define BUFMAX 4096
19
20#define CACHE_FLUSH_IS_SAFE 1
21
22#ifndef __ASSEMBLY__
23
24static inline void arch_kgdb_breakpoint(void)
25{
26 asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory");
27}
28
29struct parisc_gdb_regs {
30 unsigned long gpr[32];
31 unsigned long sar;
32 unsigned long iaoq_f;
33 unsigned long iasq_f;
34 unsigned long iaoq_b;
35 unsigned long iasq_b;
36 unsigned long eiem;
37 unsigned long iir;
38 unsigned long isr;
39 unsigned long ior;
40 unsigned long ipsw;
41 unsigned long __unused0;
42 unsigned long sr4;
43 unsigned long sr0;
44 unsigned long sr1;
45 unsigned long sr2;
46 unsigned long sr3;
47 unsigned long sr5;
48 unsigned long sr6;
49 unsigned long sr7;
50 unsigned long cr0;
51 unsigned long pid1;
52 unsigned long pid2;
53 unsigned long scrccr;
54 unsigned long pid3;
55 unsigned long pid4;
56 unsigned long cr24;
57 unsigned long cr25;
58 unsigned long cr26;
59 unsigned long cr27;
60 unsigned long cr28;
61 unsigned long cr29;
62 unsigned long cr30;
63
64 u64 fr[32];
65};
66
67#endif
68#endif
69