123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- From 04b33e21866412689f18b7ad6daf0a54d8f959a7 Mon Sep 17 00:00:00 2001
- From: Khem Raj <raj.khem@gmail.com>
- Date: Wed, 28 Jun 2017 13:44:52 -0700
- Subject: [PATCH] Replace 'struct ucontext' with 'ucontext_t' type
- glibc used to have:
- typedef struct ucontext { ... } ucontext_t;
- glibc now has:
- typedef struct ucontext_t { ... } ucontext_t;
- (See https://sourceware.org/bugzilla/show_bug.cgi?id=21457
- for detail and rationale for the glibc change)
- However, QEMU used "struct ucontext" in declarations. This is a
- private name and compatibility cannot be guaranteed. Switch to
- only using the standardized type name.
- Signed-off-by: Khem Raj <raj.khem@gmail.com>
- Message-id: 20170628204452.41230-1-raj.khem@gmail.com
- Cc: Kamil Rytarowski <kamil@netbsd.org>
- Cc: Riku Voipio <riku.voipio@iki.fi>
- Cc: Laurent Vivier <laurent@vivier.eu>
- Cc: Paolo Bonzini <pbonzini@redhat.com>
- Reviewed-by: Eric Blake <eblake@redhat.com>
- [PMM: Rewrote commit message, based mostly on the one from
- Nathaniel McCallum]
- Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
- ---
- linux-user/host/aarch64/hostdep.h | 2 +-
- linux-user/host/arm/hostdep.h | 2 +-
- linux-user/host/i386/hostdep.h | 2 +-
- linux-user/host/ppc64/hostdep.h | 2 +-
- linux-user/host/s390x/hostdep.h | 2 +-
- linux-user/host/x86_64/hostdep.h | 2 +-
- linux-user/signal.c | 10 +++++-----
- tests/tcg/test-i386.c | 4 ++--
- user-exec.c | 18 +++++++++---------
- 9 files changed, 22 insertions(+), 22 deletions(-)
- diff --git a/linux-user/host/aarch64/hostdep.h b/linux-user/host/aarch64/hostdep.h
- index 64f75cef49..a8d41a21ad 100644
- --- a/linux-user/host/aarch64/hostdep.h
- +++ b/linux-user/host/aarch64/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- __u64 *pcreg = &uc->uc_mcontext.pc;
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/host/arm/hostdep.h b/linux-user/host/arm/hostdep.h
- index 5c1ae60120..9276fe6ceb 100644
- --- a/linux-user/host/arm/hostdep.h
- +++ b/linux-user/host/arm/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- unsigned long *pcreg = &uc->uc_mcontext.arm_pc;
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/host/i386/hostdep.h b/linux-user/host/i386/hostdep.h
- index d834bd80ea..073be74d87 100644
- --- a/linux-user/host/i386/hostdep.h
- +++ b/linux-user/host/i386/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- greg_t *pcreg = &uc->uc_mcontext.gregs[REG_EIP];
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/host/ppc64/hostdep.h b/linux-user/host/ppc64/hostdep.h
- index 0b0f5f7821..98979ad917 100644
- --- a/linux-user/host/ppc64/hostdep.h
- +++ b/linux-user/host/ppc64/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- unsigned long *pcreg = &uc->uc_mcontext.gp_regs[PT_NIP];
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/host/s390x/hostdep.h b/linux-user/host/s390x/hostdep.h
- index 6f9da9c608..4f0171f36f 100644
- --- a/linux-user/host/s390x/hostdep.h
- +++ b/linux-user/host/s390x/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- unsigned long *pcreg = &uc->uc_mcontext.psw.addr;
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/host/x86_64/hostdep.h b/linux-user/host/x86_64/hostdep.h
- index 3b4259633e..a4fefb5114 100644
- --- a/linux-user/host/x86_64/hostdep.h
- +++ b/linux-user/host/x86_64/hostdep.h
- @@ -24,7 +24,7 @@ extern char safe_syscall_end[];
- /* Adjust the signal context to rewind out of safe-syscall if we're in it */
- static inline void rewind_if_in_safe_syscall(void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- greg_t *pcreg = &uc->uc_mcontext.gregs[REG_RIP];
-
- if (*pcreg > (uintptr_t)safe_syscall_start
- diff --git a/linux-user/signal.c b/linux-user/signal.c
- index d68bd26013..cc0c3fcee9 100644
- --- a/linux-user/signal.c
- +++ b/linux-user/signal.c
- @@ -3346,7 +3346,7 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka,
- *
- * a0 = signal number
- * a1 = pointer to siginfo_t
- - * a2 = pointer to struct ucontext
- + * a2 = pointer to ucontext_t
- *
- * $25 and PC point to the signal handler, $29 points to the
- * struct sigframe.
- @@ -3764,7 +3764,7 @@ struct target_signal_frame {
-
- struct rt_signal_frame {
- siginfo_t info;
- - struct ucontext uc;
- + ucontext_t uc;
- uint32_t tramp[2];
- };
-
- @@ -3980,7 +3980,7 @@ struct rt_signal_frame {
- siginfo_t *pinfo;
- void *puc;
- siginfo_t info;
- - struct ucontext uc;
- + ucontext_t uc;
- uint16_t retcode[4]; /* Trampoline code. */
- };
-
- @@ -4515,7 +4515,7 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka,
- tswap_siginfo(&frame->info, info);
- }
-
- - /*err |= __clear_user(&frame->uc, offsetof(struct ucontext, uc_mcontext));*/
- + /*err |= __clear_user(&frame->uc, offsetof(ucontext_t, uc_mcontext));*/
- __put_user(0, &frame->uc.tuc_flags);
- __put_user(0, &frame->uc.tuc_link);
- __put_user(target_sigaltstack_used.ss_sp,
- @@ -5007,7 +5007,7 @@ enum {
-
- struct target_ucontext {
- target_ulong tuc_flags;
- - target_ulong tuc_link; /* struct ucontext __user * */
- + target_ulong tuc_link; /* ucontext_t __user * */
- struct target_sigaltstack tuc_stack;
- #if !defined(TARGET_PPC64)
- int32_t tuc_pad[7];
- diff --git a/tests/tcg/test-i386.c b/tests/tcg/test-i386.c
- index 0f7b943b0c..9599204895 100644
- --- a/tests/tcg/test-i386.c
- +++ b/tests/tcg/test-i386.c
- @@ -1720,7 +1720,7 @@ int tab[2];
-
- void sig_handler(int sig, siginfo_t *info, void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
-
- printf("si_signo=%d si_errno=%d si_code=%d",
- info->si_signo, info->si_errno, info->si_code);
- @@ -1912,7 +1912,7 @@ void test_exceptions(void)
- /* specific precise single step test */
- void sig_trap_handler(int sig, siginfo_t *info, void *puc)
- {
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- printf("EIP=" FMTLX "\n", (long)uc->uc_mcontext.gregs[REG_EIP]);
- }
-
- diff --git a/user-exec.c b/user-exec.c
- index a8f95fa1e1..2a975eaf69 100644
- --- a/user-exec.c
- +++ b/user-exec.c
- @@ -167,7 +167,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- #elif defined(__OpenBSD__)
- struct sigcontext *uc = puc;
- #else
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- #endif
- unsigned long pc;
- int trapno;
- @@ -222,7 +222,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- #elif defined(__OpenBSD__)
- struct sigcontext *uc = puc;
- #else
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- #endif
-
- pc = PC_sig(uc);
- @@ -289,7 +289,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
- ucontext_t *uc = puc;
- #else
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- #endif
- unsigned long pc;
- int is_write;
- @@ -316,7 +316,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- void *puc)
- {
- siginfo_t *info = pinfo;
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- uint32_t *pc = uc->uc_mcontext.sc_pc;
- uint32_t insn = *pc;
- int is_write = 0;
- @@ -414,7 +414,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- #if defined(__NetBSD__)
- ucontext_t *uc = puc;
- #else
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- #endif
- unsigned long pc;
- int is_write;
- @@ -441,7 +441,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- int cpu_signal_handler(int host_signum, void *pinfo, void *puc)
- {
- siginfo_t *info = pinfo;
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- uintptr_t pc = uc->uc_mcontext.pc;
- uint32_t insn = *(uint32_t *)pc;
- bool is_write;
- @@ -474,7 +474,7 @@ int cpu_signal_handler(int host_signum, void *pinfo, void *puc)
- int cpu_signal_handler(int host_signum, void *pinfo, void *puc)
- {
- siginfo_t *info = pinfo;
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- unsigned long ip;
- int is_write = 0;
-
- @@ -505,7 +505,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- void *puc)
- {
- siginfo_t *info = pinfo;
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- unsigned long pc;
- uint16_t *pinsn;
- int is_write = 0;
- @@ -558,7 +558,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
- void *puc)
- {
- siginfo_t *info = pinfo;
- - struct ucontext *uc = puc;
- + ucontext_t *uc = puc;
- greg_t pc = uc->uc_mcontext.pc;
- int is_write;
-
- --
- 2.14.2
|