aboutsummaryrefslogtreecommitdiff
path: root/bsd-user
diff options
context:
space:
mode:
authorStacey Son <sson@FreeBSD.org>2023-09-25 21:24:00 +0300
committerWarner Losh <imp@bsdimp.com>2023-10-03 17:14:06 -0600
commit3f254cf203e7bebc3758058802f834d9ba6ca3dc (patch)
tree14432c66892269899da04dffd7a93e57802cd1e4 /bsd-user
parentd314ae93f1724fa2f5e9636aa6483acf9fa7505f (diff)
downloadqemu-3f254cf203e7bebc3758058802f834d9ba6ca3dc.zip
qemu-3f254cf203e7bebc3758058802f834d9ba6ca3dc.tar.gz
qemu-3f254cf203e7bebc3758058802f834d9ba6ca3dc.tar.bz2
bsd-user: Implement host_to_target_siginfo.
Used in wait6 system call Signed-off-by: Stacey Son <sson@FreeBSD.org> Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Warner Losh <imp@bsdimp.com> Message-Id: <20230925182425.3163-4-kariem.taha2.7@gmail.com>
Diffstat (limited to 'bsd-user')
-rw-r--r--bsd-user/signal-common.h1
-rw-r--r--bsd-user/signal.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/bsd-user/signal-common.h b/bsd-user/signal-common.h
index c044e81..77d7c7a 100644
--- a/bsd-user/signal-common.h
+++ b/bsd-user/signal-common.h
@@ -35,6 +35,7 @@ int do_sigaction(int sig, const struct target_sigaction *act,
abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong sp);
long do_sigreturn(CPUArchState *env, abi_ulong addr);
void force_sig_fault(int sig, int code, abi_ulong addr);
+void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
int host_to_target_signal(int sig);
void host_to_target_sigset(target_sigset_t *d, const sigset_t *s);
void process_pending_signals(CPUArchState *env);
diff --git a/bsd-user/signal.c b/bsd-user/signal.c
index b6beab6..ea82241 100644
--- a/bsd-user/signal.c
+++ b/bsd-user/signal.c
@@ -311,6 +311,12 @@ static void tswap_siginfo(target_siginfo_t *tinfo, const target_siginfo_t *info)
}
}
+void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info)
+{
+ host_to_target_siginfo_noswap(tinfo, info);
+ tswap_siginfo(tinfo, tinfo);
+}
+
int block_signals(void)
{
TaskState *ts = (TaskState *)thread_cpu->opaque;