@@ -88,6 +88,10 @@ static inline int sas_ss_flags(TaskState *ts, unsigned long sp)
88
88
on_sig_stack (ts , sp ) ? SS_ONSTACK : 0 ;
89
89
}
90
90
91
+ #if defined(__linux__ )
92
+ #define HOST_SIGPWR SIGPWR
93
+ #endif
94
+
91
95
/*
92
96
* The BSD ABIs use the same signal numbers across all the CPU architectures, so
93
97
* (unlike Linux) these functions are just the identity mapping. This might not
@@ -107,6 +111,7 @@ int host_to_target_signal(int sig)
107
111
case HOST_SIGCONT : return TARGET_SIGCONT ;
108
112
case HOST_SIGCHLD : return TARGET_SIGCHLD ;
109
113
case HOST_SIGIO : return TARGET_SIGIO ;
114
+ case HOST_SIGPWR : return TARGET_SIGTHR ;
110
115
}
111
116
if (sig >= HOST_SIGRTMIN && sig <= HOST_SIGRTMAX ) {
112
117
sig += (HOST_SIGRTMIN - TARGET_SIGRTMIN );
@@ -130,14 +135,15 @@ int target_to_host_signal(int sig)
130
135
case TARGET_SIGCONT : return HOST_SIGCONT ;
131
136
case TARGET_SIGCHLD : return HOST_SIGCHLD ;
132
137
case TARGET_SIGIO : return HOST_SIGIO ;
138
+ case TARGET_SIGTHR : return HOST_SIGPWR ;
133
139
}
134
140
if (sig >= TARGET_SIGRTMIN && sig <= TARGET_SIGRTMAX ) {
135
141
sig -= (HOST_SIGRTMIN - TARGET_SIGRTMIN );
136
142
assert (sig >= HOST_SIGRTMIN );
137
143
if (sig > HOST_SIGRTMAX )
138
144
return -1 ;
139
145
}
140
- if (sig >= HOST_NSIG )
146
+ if (sig > HOST_NSIG )
141
147
return -1 ;
142
148
#endif
143
149
return sig ;
@@ -184,9 +190,9 @@ static void host_to_target_sigset_internal(target_sigset_t *d,
184
190
int i ;
185
191
186
192
target_sigemptyset (d );
187
- for (i = 1 ; i <= NSIG ; i ++ ) {
188
- if (sigismember (s , i )) {
189
- target_sigaddset (d , host_to_target_signal ( i ) );
193
+ for (i = 1 ; i <= TARGET_NSIG ; i ++ ) {
194
+ if (sigismember (s , target_to_host_signal ( i ) )) {
195
+ target_sigaddset (d , i );
190
196
}
191
197
}
192
198
}
@@ -197,7 +203,7 @@ void host_to_target_sigset(target_sigset_t *d, const sigset_t *s)
197
203
int i ;
198
204
199
205
host_to_target_sigset_internal (& d1 , s );
200
- for (i = 0 ; i < _SIG_WORDS ; i ++ ) {
206
+ for (i = 0 ; i < TARGET_NSIG_WORDS ; i ++ ) {
201
207
d -> __bits [i ] = tswap32 (d1 .__bits [i ]);
202
208
}
203
209
}
0 commit comments