user: Introduce user/signal.h

gdbstub needs target_to_host_signal(), so move its declaration to a
public header.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20250117001542.8290-4-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20250207153112.3939799-13-alex.bennee@linaro.org>
This commit is contained in:
Ilya Leoshkevich 2025-02-07 15:31:07 +00:00 committed by Alex Bennée
parent fccb744f41
commit 08916fd4b6
6 changed files with 26 additions and 2 deletions

View File

@ -42,7 +42,6 @@ void process_pending_signals(CPUArchState *env);
void queue_signal(CPUArchState *env, int sig, int si_type,
target_siginfo_t *info);
void signal_init(void);
int target_to_host_signal(int sig);
void target_to_host_sigset(sigset_t *d, const target_sigset_t *s);
/*

View File

@ -24,6 +24,7 @@
#include "user/cpu_loop.h"
#include "exec/page-protection.h"
#include "user/page-protection.h"
#include "user/signal.h"
#include "user/tswap-target.h"
#include "gdbstub/user.h"
#include "signal-common.h"

23
include/user/signal.h Normal file
View File

@ -0,0 +1,23 @@
/*
* Signal-related declarations.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef USER_SIGNAL_H
#define USER_SIGNAL_H
#ifndef CONFIG_USER_ONLY
#error Cannot include this header from system emulation
#endif
/**
* target_to_host_signal:
* @sig: target signal.
*
* On success, return the host signal between 0 (inclusive) and NSIG
* (exclusive) corresponding to the target signal @sig. Return any other value
* on failure.
*/
int target_to_host_signal(int sig);
#endif

View File

@ -61,7 +61,6 @@ void queue_signal(CPUArchState *env, int sig, int si_type,
target_siginfo_t *info);
void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo);
int target_to_host_signal(int sig);
int host_to_target_signal(int sig);
long do_sigreturn(CPUArchState *env);
long do_rt_sigreturn(CPUArchState *env);

View File

@ -36,6 +36,7 @@
#include "user/cpu_loop.h"
#include "user/page-protection.h"
#include "user/safe-syscall.h"
#include "user/signal.h"
#include "tcg/tcg.h"
/* target_siginfo_t must fit in gdbstub's siginfo save area. */

View File

@ -138,6 +138,7 @@
#include "user-mmap.h"
#include "user/page-protection.h"
#include "user/safe-syscall.h"
#include "user/signal.h"
#include "qemu/guest-random.h"
#include "qemu/selfmap.h"
#include "user/syscall-trace.h"