diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/signals.h | 20 | ||||
| -rw-r--r-- | src/libtools/signals.c | 4 |
2 files changed, 10 insertions, 14 deletions
diff --git a/src/include/signals.h b/src/include/signals.h index a068ffbf..1a2a9b39 100644 --- a/src/include/signals.h +++ b/src/include/signals.h @@ -14,27 +14,27 @@ typedef struct x64_sigaction_s { void (*sa_restorer)(void); } x64_sigaction_t; -#ifdef ANDROID -typedef struct android_sigaction_s { - int sa_flags; +typedef struct x64_sigaction_restorer_s { union { sighandler_t _sa_handler; void (*_sa_sigaction)(int, siginfo_t *, void *); } _u; - sigset_t sa_mask; + uint32_t sa_flags; void (*sa_restorer)(void); -} android_sigaction_t; -#endif + sigset_t sa_mask; +} x64_sigaction_restorer_t; -typedef struct x64_sigaction_restorer_s { +#ifdef ANDROID +typedef struct android_sigaction_s { + int sa_flags; union { sighandler_t _sa_handler; void (*_sa_sigaction)(int, siginfo_t *, void *); } _u; - uint32_t sa_flags; - void (*sa_restorer)(void); sigset_t sa_mask; -} x64_sigaction_restorer_t; + void (*sa_restorer)(void); +} android_sigaction_t; +#endif #ifdef BOX32 typedef struct __attribute__((packed)) i386_sigaction_s { diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 81250766..127f187e 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -2129,11 +2129,7 @@ int EXPORT my___sigaction(x64emu_t* emu, int signum, const x64_sigaction_t *act, #endif __attribute__((alias("my_sigaction"))); -#ifdef ANDROID -int EXPORT my_syscall_rt_sigaction(x64emu_t* emu, int signum, const android_sigaction_restorer_t *act, android_sigaction_restorer_t *oldact, int sigsetsize) -#else int EXPORT my_syscall_rt_sigaction(x64emu_t* emu, int signum, const x64_sigaction_restorer_t *act, x64_sigaction_restorer_t *oldact, int sigsetsize) -#endif { printf_log(LOG_DEBUG, "Syscall/Sigaction(signum=%d, act=%p, old=%p, size=%d)\n", signum, act, oldact, sigsetsize); if(signum<0 || signum>MAX_SIGNAL) { |