This source file includes following definitions.
- in_syscall
- forget_syscall
- regs_return_value
1
2
3
4 #ifndef __ASM_NDS32_PTRACE_H
5 #define __ASM_NDS32_PTRACE_H
6
7 #include <uapi/asm/ptrace.h>
8
9
10
11
12
13
14
15
16
17 #define NO_SYSCALL (-1)
18 #ifndef __ASSEMBLY__
19 #include <linux/types.h>
20
21 struct pt_regs {
22 union {
23 struct user_pt_regs user_regs;
24 struct {
25 long uregs[26];
26 long fp;
27 long gp;
28 long lp;
29 long sp;
30 long ipc;
31 #if defined(CONFIG_HWZOL)
32 long lb;
33 long le;
34 long lc;
35 #else
36 long dummy[3];
37 #endif
38 long syscallno;
39 };
40 };
41 long orig_r0;
42 long ir0;
43 long ipsw;
44 long pipsw;
45 long pipc;
46 long pp0;
47 long pp1;
48 long fucop_ctl;
49 long osp;
50 };
51
52 static inline bool in_syscall(struct pt_regs const *regs)
53 {
54 return regs->syscallno != NO_SYSCALL;
55 }
56
57 static inline void forget_syscall(struct pt_regs *regs)
58 {
59 regs->syscallno = NO_SYSCALL;
60 }
61 static inline unsigned long regs_return_value(struct pt_regs *regs)
62 {
63 return regs->uregs[0];
64 }
65 extern void show_regs(struct pt_regs *);
66
67 struct task_struct;
68
69 #define arch_has_single_step() (1)
70 #define user_mode(regs) (((regs)->ipsw & PSW_mskPOM) == 0)
71 #define interrupts_enabled(regs) (!!((regs)->ipsw & PSW_mskGIE))
72 #define user_stack_pointer(regs) ((regs)->sp)
73 #define instruction_pointer(regs) ((regs)->ipc)
74 #define profile_pc(regs) instruction_pointer(regs)
75
76 #endif
77 #endif