diff options
| author | Warner Losh <imp@bsdimp.com> | 2024-06-23 15:29:42 -0600 |
|---|---|---|
| committer | Warner Losh <imp@bsdimp.com> | 2024-07-23 10:56:30 -0600 |
| commit | 5fa2a10ba6822fc1e500e921dcae344db46e1649 (patch) | |
| tree | 53a8955280e815b90aee881addd0b245ad0c339e /bsd-user/signal.c | |
| parent | 5b6828d194fba3c170a5f717cc1fc3d35645aadd (diff) | |
| download | focaccia-qemu-5fa2a10ba6822fc1e500e921dcae344db46e1649.tar.gz focaccia-qemu-5fa2a10ba6822fc1e500e921dcae344db46e1649.zip | |
bsd-user: Define TARGET_SIGSTACK_ALIGN and use it to round stack
Most (all?) targets require stacks to be properly aligned. Rather than a series of ifdefs in bsd-user/signal.h, instead use a manditory #define for all architectures. Signed-off-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'bsd-user/signal.c')
| -rw-r--r-- | bsd-user/signal.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/bsd-user/signal.c b/bsd-user/signal.c index 8b6654b91d..da49b9bffc 100644 --- a/bsd-user/signal.c +++ b/bsd-user/signal.c @@ -728,14 +728,7 @@ static inline abi_ulong get_sigframe(struct target_sigaction *ka, sp = ts->sigaltstack_used.ss_sp + ts->sigaltstack_used.ss_size; } -/* TODO: make this a target_arch function / define */ -#if defined(TARGET_ARM) - return (sp - frame_size) & ~7; -#elif defined(TARGET_AARCH64) - return (sp - frame_size) & ~15; -#else - return sp - frame_size; -#endif + return ROUND_DOWN(sp - frame_size, TARGET_SIGSTACK_ALIGN); } /* compare to $M/$M/exec_machdep.c sendsig and sys/kern/kern_sig.c sigexit */ |