Message ID | 20241024200031.80327-4-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | gdbstub: Allow late attachment | expand |
On 10/24/24 20:59, Ilya Leoshkevich wrote: > gdbstub needs target_to_host_signal(), so move its declaration to a > public header. > > Signed-off-by: Ilya Leoshkevich<iii@linux.ibm.com> > --- > bsd-user/signal-common.h | 1 - > bsd-user/signal.c | 1 + > include/user/signal.h | 23 +++++++++++++++++++++++ > linux-user/signal-common.h | 1 - > linux-user/signal.c | 1 + > linux-user/syscall.c | 1 + > 6 files changed, 26 insertions(+), 2 deletions(-) > create mode 100644 include/user/signal.h Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On Thu, Oct 24, 2024 at 2:00 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote: > gdbstub needs target_to_host_signal(), so move its declaration to a > public header. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > bsd-user/signal-common.h | 1 - > bsd-user/signal.c | 1 + > include/user/signal.h | 23 +++++++++++++++++++++++ > linux-user/signal-common.h | 1 - > linux-user/signal.c | 1 + > linux-user/syscall.c | 1 + > 6 files changed, 26 insertions(+), 2 deletions(-) > create mode 100644 include/user/signal.h > Reviewed-by: Warner Losh <imp@bsdimp.com> > diff --git a/bsd-user/signal-common.h b/bsd-user/signal-common.h > index 77d7c7a78b7..4e634e04a30 100644 > --- a/bsd-user/signal-common.h > +++ b/bsd-user/signal-common.h > @@ -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); > > /* > diff --git a/bsd-user/signal.c b/bsd-user/signal.c > index da49b9bffc1..a2b11a97131 100644 > --- a/bsd-user/signal.c > +++ b/bsd-user/signal.c > @@ -22,6 +22,7 @@ > #include "qemu/log.h" > #include "qemu.h" > #include "exec/page-protection.h" > +#include "user/signal.h" > #include "user/tswap-target.h" > #include "gdbstub/user.h" > #include "signal-common.h" > diff --git a/include/user/signal.h b/include/user/signal.h > new file mode 100644 > index 00000000000..19b6b9e5ddc > --- /dev/null > +++ b/include/user/signal.h > @@ -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 > diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h > index f4cbe6185e1..f82185ec0f5 100644 > --- a/linux-user/signal-common.h > +++ b/linux-user/signal-common.h > @@ -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); > diff --git a/linux-user/signal.c b/linux-user/signal.c > index 63ac2df53b7..84bb8a34808 100644 > --- a/linux-user/signal.c > +++ b/linux-user/signal.c > @@ -33,6 +33,7 @@ > #include "signal-common.h" > #include "host-signal.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. */ > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index d1b0f7c5bbc..0a3c4d5a946 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -136,6 +136,7 @@ > #include "loader.h" > #include "user-mmap.h" > #include "user/safe-syscall.h" > +#include "user/signal.h" > #include "qemu/guest-random.h" > #include "qemu/selfmap.h" > #include "user/syscall-trace.h" > -- > 2.47.0 > >
diff --git a/bsd-user/signal-common.h b/bsd-user/signal-common.h index 77d7c7a78b7..4e634e04a30 100644 --- a/bsd-user/signal-common.h +++ b/bsd-user/signal-common.h @@ -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); /* diff --git a/bsd-user/signal.c b/bsd-user/signal.c index da49b9bffc1..a2b11a97131 100644 --- a/bsd-user/signal.c +++ b/bsd-user/signal.c @@ -22,6 +22,7 @@ #include "qemu/log.h" #include "qemu.h" #include "exec/page-protection.h" +#include "user/signal.h" #include "user/tswap-target.h" #include "gdbstub/user.h" #include "signal-common.h" diff --git a/include/user/signal.h b/include/user/signal.h new file mode 100644 index 00000000000..19b6b9e5ddc --- /dev/null +++ b/include/user/signal.h @@ -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 diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index f4cbe6185e1..f82185ec0f5 100644 --- a/linux-user/signal-common.h +++ b/linux-user/signal-common.h @@ -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); diff --git a/linux-user/signal.c b/linux-user/signal.c index 63ac2df53b7..84bb8a34808 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -33,6 +33,7 @@ #include "signal-common.h" #include "host-signal.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. */ diff --git a/linux-user/syscall.c b/linux-user/syscall.c index d1b0f7c5bbc..0a3c4d5a946 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -136,6 +136,7 @@ #include "loader.h" #include "user-mmap.h" #include "user/safe-syscall.h" +#include "user/signal.h" #include "qemu/guest-random.h" #include "qemu/selfmap.h" #include "user/syscall-trace.h"
gdbstub needs target_to_host_signal(), so move its declaration to a public header. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- bsd-user/signal-common.h | 1 - bsd-user/signal.c | 1 + include/user/signal.h | 23 +++++++++++++++++++++++ linux-user/signal-common.h | 1 - linux-user/signal.c | 1 + linux-user/syscall.c | 1 + 6 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 include/user/signal.h