diff options
Diffstat (limited to 'arch/sparc/include/asm')
-rw-r--r-- | arch/sparc/include/asm/bitops_32.h | 1 | ||||
-rw-r--r-- | arch/sparc/include/asm/ptrace_32.h | 10 | ||||
-rw-r--r-- | arch/sparc/include/asm/ptrace_64.h | 11 | ||||
-rw-r--r-- | arch/sparc/include/asm/termbits.h | 11 | ||||
-rw-r--r-- | arch/sparc/include/asm/unistd_32.h | 3 | ||||
-rw-r--r-- | arch/sparc/include/asm/unistd_64.h | 3 |
6 files changed, 29 insertions, 10 deletions
diff --git a/arch/sparc/include/asm/bitops_32.h b/arch/sparc/include/asm/bitops_32.h index 68b98a7e6454..9cf4ae0cd7ba 100644 --- a/arch/sparc/include/asm/bitops_32.h +++ b/arch/sparc/include/asm/bitops_32.h | |||
@@ -98,6 +98,7 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr) | |||
98 | #include <asm-generic/bitops/sched.h> | 98 | #include <asm-generic/bitops/sched.h> |
99 | #include <asm-generic/bitops/ffs.h> | 99 | #include <asm-generic/bitops/ffs.h> |
100 | #include <asm-generic/bitops/fls.h> | 100 | #include <asm-generic/bitops/fls.h> |
101 | #include <asm-generic/bitops/__fls.h> | ||
101 | #include <asm-generic/bitops/fls64.h> | 102 | #include <asm-generic/bitops/fls64.h> |
102 | #include <asm-generic/bitops/hweight.h> | 103 | #include <asm-generic/bitops/hweight.h> |
103 | #include <asm-generic/bitops/lock.h> | 104 | #include <asm-generic/bitops/lock.h> |
diff --git a/arch/sparc/include/asm/ptrace_32.h b/arch/sparc/include/asm/ptrace_32.h index d409c4f21a5c..4cef450167dd 100644 --- a/arch/sparc/include/asm/ptrace_32.h +++ b/arch/sparc/include/asm/ptrace_32.h | |||
@@ -62,6 +62,8 @@ struct sparc_stackf { | |||
62 | 62 | ||
63 | #ifdef __KERNEL__ | 63 | #ifdef __KERNEL__ |
64 | 64 | ||
65 | #include <asm/system.h> | ||
66 | |||
65 | static inline bool pt_regs_is_syscall(struct pt_regs *regs) | 67 | static inline bool pt_regs_is_syscall(struct pt_regs *regs) |
66 | { | 68 | { |
67 | return (regs->psr & PSR_SYSCALL); | 69 | return (regs->psr & PSR_SYSCALL); |
@@ -72,6 +74,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) | |||
72 | return (regs->psr &= ~PSR_SYSCALL); | 74 | return (regs->psr &= ~PSR_SYSCALL); |
73 | } | 75 | } |
74 | 76 | ||
77 | #define arch_ptrace_stop_needed(exit_code, info) \ | ||
78 | ({ flush_user_windows(); \ | ||
79 | current_thread_info()->w_saved != 0; \ | ||
80 | }) | ||
81 | |||
82 | #define arch_ptrace_stop(exit_code, info) \ | ||
83 | synchronize_user_stack() | ||
84 | |||
75 | #define user_mode(regs) (!((regs)->psr & PSR_PS)) | 85 | #define user_mode(regs) (!((regs)->psr & PSR_PS)) |
76 | #define instruction_pointer(regs) ((regs)->pc) | 86 | #define instruction_pointer(regs) ((regs)->pc) |
77 | #define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) | 87 | #define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) |
diff --git a/arch/sparc/include/asm/ptrace_64.h b/arch/sparc/include/asm/ptrace_64.h index 3d3e9c161d8b..cd6fbfc20435 100644 --- a/arch/sparc/include/asm/ptrace_64.h +++ b/arch/sparc/include/asm/ptrace_64.h | |||
@@ -114,6 +114,7 @@ struct sparc_trapf { | |||
114 | #ifdef __KERNEL__ | 114 | #ifdef __KERNEL__ |
115 | 115 | ||
116 | #include <linux/threads.h> | 116 | #include <linux/threads.h> |
117 | #include <asm/system.h> | ||
117 | 118 | ||
118 | static inline int pt_regs_trap_type(struct pt_regs *regs) | 119 | static inline int pt_regs_trap_type(struct pt_regs *regs) |
119 | { | 120 | { |
@@ -130,6 +131,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) | |||
130 | return (regs->tstate &= ~TSTATE_SYSCALL); | 131 | return (regs->tstate &= ~TSTATE_SYSCALL); |
131 | } | 132 | } |
132 | 133 | ||
134 | #define arch_ptrace_stop_needed(exit_code, info) \ | ||
135 | ({ flush_user_windows(); \ | ||
136 | get_thread_wsaved() != 0; \ | ||
137 | }) | ||
138 | |||
139 | #define arch_ptrace_stop(exit_code, info) \ | ||
140 | synchronize_user_stack() | ||
141 | |||
133 | struct global_reg_snapshot { | 142 | struct global_reg_snapshot { |
134 | unsigned long tstate; | 143 | unsigned long tstate; |
135 | unsigned long tpc; | 144 | unsigned long tpc; |
@@ -142,8 +151,6 @@ struct global_reg_snapshot { | |||
142 | }; | 151 | }; |
143 | extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; | 152 | extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; |
144 | 153 | ||
145 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
146 | |||
147 | #define force_successful_syscall_return() \ | 154 | #define force_successful_syscall_return() \ |
148 | do { current_thread_info()->syscall_noerror = 1; \ | 155 | do { current_thread_info()->syscall_noerror = 1; \ |
149 | } while (0) | 156 | } while (0) |
diff --git a/arch/sparc/include/asm/termbits.h b/arch/sparc/include/asm/termbits.h index d6ca3e2754f5..d72dfed1f9d7 100644 --- a/arch/sparc/include/asm/termbits.h +++ b/arch/sparc/include/asm/termbits.h | |||
@@ -29,10 +29,11 @@ struct termios { | |||
29 | tcflag_t c_cflag; /* control mode flags */ | 29 | tcflag_t c_cflag; /* control mode flags */ |
30 | tcflag_t c_lflag; /* local mode flags */ | 30 | tcflag_t c_lflag; /* local mode flags */ |
31 | cc_t c_line; /* line discipline */ | 31 | cc_t c_line; /* line discipline */ |
32 | #ifndef __KERNEL__ | ||
32 | cc_t c_cc[NCCS]; /* control characters */ | 33 | cc_t c_cc[NCCS]; /* control characters */ |
33 | #ifdef __KERNEL__ | 34 | #else |
35 | cc_t c_cc[NCCS+2]; /* kernel needs 2 more to hold vmin/vtime */ | ||
34 | #define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t)) | 36 | #define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t)) |
35 | cc_t _x_cc[2]; /* We need them to hold vmin/vtime */ | ||
36 | #endif | 37 | #endif |
37 | }; | 38 | }; |
38 | 39 | ||
@@ -42,8 +43,7 @@ struct termios2 { | |||
42 | tcflag_t c_cflag; /* control mode flags */ | 43 | tcflag_t c_cflag; /* control mode flags */ |
43 | tcflag_t c_lflag; /* local mode flags */ | 44 | tcflag_t c_lflag; /* local mode flags */ |
44 | cc_t c_line; /* line discipline */ | 45 | cc_t c_line; /* line discipline */ |
45 | cc_t c_cc[NCCS]; /* control characters */ | 46 | cc_t c_cc[NCCS+2]; /* control characters */ |
46 | cc_t _x_cc[2]; /* padding to match ktermios */ | ||
47 | speed_t c_ispeed; /* input speed */ | 47 | speed_t c_ispeed; /* input speed */ |
48 | speed_t c_ospeed; /* output speed */ | 48 | speed_t c_ospeed; /* output speed */ |
49 | }; | 49 | }; |
@@ -54,8 +54,7 @@ struct ktermios { | |||
54 | tcflag_t c_cflag; /* control mode flags */ | 54 | tcflag_t c_cflag; /* control mode flags */ |
55 | tcflag_t c_lflag; /* local mode flags */ | 55 | tcflag_t c_lflag; /* local mode flags */ |
56 | cc_t c_line; /* line discipline */ | 56 | cc_t c_line; /* line discipline */ |
57 | cc_t c_cc[NCCS]; /* control characters */ | 57 | cc_t c_cc[NCCS+2]; /* control characters */ |
58 | cc_t _x_cc[2]; /* We need them to hold vmin/vtime */ | ||
59 | speed_t c_ispeed; /* input speed */ | 58 | speed_t c_ispeed; /* input speed */ |
60 | speed_t c_ospeed; /* output speed */ | 59 | speed_t c_ospeed; /* output speed */ |
61 | }; | 60 | }; |
diff --git a/arch/sparc/include/asm/unistd_32.h b/arch/sparc/include/asm/unistd_32.h index 648643a9f139..0d13d2a4c76f 100644 --- a/arch/sparc/include/asm/unistd_32.h +++ b/arch/sparc/include/asm/unistd_32.h | |||
@@ -338,8 +338,9 @@ | |||
338 | #define __NR_dup3 320 | 338 | #define __NR_dup3 320 |
339 | #define __NR_pipe2 321 | 339 | #define __NR_pipe2 321 |
340 | #define __NR_inotify_init1 322 | 340 | #define __NR_inotify_init1 322 |
341 | #define __NR_accept4 323 | ||
341 | 342 | ||
342 | #define NR_SYSCALLS 323 | 343 | #define NR_SYSCALLS 324 |
343 | 344 | ||
344 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, | 345 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, |
345 | * it never had the plain ones and there is no value to adding those | 346 | * it never had the plain ones and there is no value to adding those |
diff --git a/arch/sparc/include/asm/unistd_64.h b/arch/sparc/include/asm/unistd_64.h index c5cc0e052321..fa5d3c0343c7 100644 --- a/arch/sparc/include/asm/unistd_64.h +++ b/arch/sparc/include/asm/unistd_64.h | |||
@@ -340,8 +340,9 @@ | |||
340 | #define __NR_dup3 320 | 340 | #define __NR_dup3 320 |
341 | #define __NR_pipe2 321 | 341 | #define __NR_pipe2 321 |
342 | #define __NR_inotify_init1 322 | 342 | #define __NR_inotify_init1 322 |
343 | #define __NR_accept4 323 | ||
343 | 344 | ||
344 | #define NR_SYSCALLS 323 | 345 | #define NR_SYSCALLS 324 |
345 | 346 | ||
346 | #ifdef __KERNEL__ | 347 | #ifdef __KERNEL__ |
347 | #define __ARCH_WANT_IPC_PARSE_VERSION | 348 | #define __ARCH_WANT_IPC_PARSE_VERSION |