aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m68k/signal.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-m68k/signal.h')
-rw-r--r--include/asm-m68k/signal.h21
1 files changed, 14 insertions, 7 deletions
diff --git a/include/asm-m68k/signal.h b/include/asm-m68k/signal.h
index b7b7ea20caa..de1ba6ead3b 100644
--- a/include/asm-m68k/signal.h
+++ b/include/asm-m68k/signal.h
@@ -74,7 +74,6 @@ typedef unsigned long sigset_t;
74 * SA_FLAGS values: 74 * SA_FLAGS values:
75 * 75 *
76 * SA_ONSTACK indicates that a registered stack_t will be used. 76 * SA_ONSTACK indicates that a registered stack_t will be used.
77 * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
78 * SA_RESTART flag to get restarting signals (which were the default long ago) 77 * SA_RESTART flag to get restarting signals (which were the default long ago)
79 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 78 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
80 * SA_RESETHAND clears the handler when the signal is delivered. 79 * SA_RESETHAND clears the handler when the signal is delivered.
@@ -94,7 +93,6 @@ typedef unsigned long sigset_t;
94 93
95#define SA_NOMASK SA_NODEFER 94#define SA_NOMASK SA_NODEFER
96#define SA_ONESHOT SA_RESETHAND 95#define SA_ONESHOT SA_RESETHAND
97#define SA_INTERRUPT 0x20000000 /* dummy -- ignored */
98 96
99/* 97/*
100 * sigaltstack controls 98 * sigaltstack controls
@@ -156,13 +154,17 @@ typedef struct sigaltstack {
156 154
157static inline void sigaddset(sigset_t *set, int _sig) 155static inline void sigaddset(sigset_t *set, int _sig)
158{ 156{
159 __asm__("bfset %0{%1,#1}" : "=m" (*set) : "id" ((_sig - 1) ^ 31) 157 asm ("bfset %0{%1,#1}"
158 : "+od" (*set)
159 : "id" ((_sig - 1) ^ 31)
160 : "cc"); 160 : "cc");
161} 161}
162 162
163static inline void sigdelset(sigset_t *set, int _sig) 163static inline void sigdelset(sigset_t *set, int _sig)
164{ 164{
165 __asm__("bfclr %0{%1,#1}" : "=m"(*set) : "id"((_sig - 1) ^ 31) 165 asm ("bfclr %0{%1,#1}"
166 : "+od" (*set)
167 : "id" ((_sig - 1) ^ 31)
166 : "cc"); 168 : "cc");
167} 169}
168 170
@@ -175,8 +177,10 @@ static inline int __const_sigismember(sigset_t *set, int _sig)
175static inline int __gen_sigismember(sigset_t *set, int _sig) 177static inline int __gen_sigismember(sigset_t *set, int _sig)
176{ 178{
177 int ret; 179 int ret;
178 __asm__("bfextu %1{%2,#1},%0" 180 asm ("bfextu %1{%2,#1},%0"
179 : "=d"(ret) : "m"(*set), "id"((_sig-1) ^ 31)); 181 : "=d" (ret)
182 : "od" (*set), "id" ((_sig-1) ^ 31)
183 : "cc");
180 return ret; 184 return ret;
181} 185}
182 186
@@ -187,7 +191,10 @@ static inline int __gen_sigismember(sigset_t *set, int _sig)
187 191
188static inline int sigfindinword(unsigned long word) 192static inline int sigfindinword(unsigned long word)
189{ 193{
190 __asm__("bfffo %1{#0,#0},%0" : "=d"(word) : "d"(word & -word) : "cc"); 194 asm ("bfffo %1{#0,#0},%0"
195 : "=d" (word)
196 : "d" (word & -word)
197 : "cc");
191 return word ^ 31; 198 return word ^ 31;
192} 199}
193 200