From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43696) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1Sk1-0004zo-2U for qemu-devel@nongnu.org; Mon, 22 Jul 2013 22:54:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1Sjx-0005Ke-VT for qemu-devel@nongnu.org; Mon, 22 Jul 2013 22:54:20 -0400 Received: from cantor2.suse.de ([195.135.220.15]:49799 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1Sjx-0005KW-HL for qemu-devel@nongnu.org; Mon, 22 Jul 2013 22:54:17 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Tue, 23 Jul 2013 04:53:48 +0200 Message-Id: <1374548036-14471-17-git-send-email-afaerber@suse.de> In-Reply-To: <1374548036-14471-1-git-send-email-afaerber@suse.de> References: <1374548036-14471-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 16/24] gdbstub: Change gdb_handlesig() argument to CPUState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Blue Swirl , Riku Voipio , =?UTF-8?q?Andreas=20F=C3=A4rber?= Prepares for changing GDBState::c_cpu to CPUState. Signed-off-by: Andreas F=C3=A4rber --- bsd-user/main.c | 10 ++++++---- gdbstub.c | 6 +++--- include/exec/gdbstub.h | 2 +- linux-user/main.c | 35 +++++++++++++++++++---------------- linux-user/signal.c | 3 ++- 5 files changed, 31 insertions(+), 25 deletions(-) diff --git a/bsd-user/main.c b/bsd-user/main.c index 1e92552..f9246aa 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -643,7 +643,7 @@ void cpu_loop(CPUSPARCState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); #if 0 if (sig) { @@ -738,6 +738,7 @@ int main(int argc, char **argv) struct image_info info1, *info =3D &info1; TaskState ts1, *ts =3D &ts1; CPUArchState *env; + CPUState *cpu; int optind; const char *r; int gdbstub_port =3D 0; @@ -912,10 +913,11 @@ int main(int argc, char **argv) fprintf(stderr, "Unable to find CPU definition\n"); exit(1); } + cpu =3D ENV_GET_CPU(env); #if defined(TARGET_SPARC) || defined(TARGET_PPC) - cpu_reset(ENV_GET_CPU(env)); + cpu_reset(cpu); #endif - thread_cpu =3D ENV_GET_CPU(env); + thread_cpu =3D cpu; =20 if (getenv("QEMU_STRACE")) { do_strace =3D 1; @@ -1134,7 +1136,7 @@ int main(int argc, char **argv) =20 if (gdbstub_port) { gdbserver_start (gdbstub_port); - gdb_handlesig(env, 0); + gdb_handlesig(cpu, 0); } cpu_loop(env); /* never exits */ diff --git a/gdbstub.c b/gdbstub.c index bb44ef2..b65682f 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2636,7 +2636,7 @@ void gdb_do_syscall(gdb_syscall_complete_cb cb, con= st char *fmt, ...) va_end(va); #ifdef CONFIG_USER_ONLY put_packet(s, s->syscall_buf); - gdb_handlesig(s->c_cpu, 0); + gdb_handlesig(ENV_GET_CPU(s->c_cpu), 0); #else /* In this case wait to send the syscall packet until notification t= hat the CPU has stopped. This must be done because if the packet is = sent @@ -2765,9 +2765,9 @@ gdb_queuesig (void) } =20 int -gdb_handlesig(CPUArchState *env, int sig) +gdb_handlesig(CPUState *cpu, int sig) { - CPUState *cpu =3D ENV_GET_CPU(env); + CPUArchState *env =3D cpu->env_ptr; GDBState *s; char buf[256]; int n; diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h index de0f4fb..0f1ad9a 100644 --- a/include/exec/gdbstub.h +++ b/include/exec/gdbstub.h @@ -20,7 +20,7 @@ void gdb_set_stop_cpu(CPUState *cpu); void gdb_exit(CPUArchState *, int); #ifdef CONFIG_USER_ONLY int gdb_queuesig (void); -int gdb_handlesig (CPUArchState *, int); +int gdb_handlesig(CPUState *, int); void gdb_signalled(CPUArchState *, int); void gdbserver_fork(CPUArchState *); #endif diff --git a/linux-user/main.c b/linux-user/main.c index 99c3b3f..f6a3aad 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -312,6 +312,7 @@ static void set_idt(int n, unsigned int dpl) =20 void cpu_loop(CPUX86State *env) { + CPUState *cs =3D CPU(x86_env_get_cpu(env)); int trapnr; abi_ulong pc; target_siginfo_t info; @@ -443,7 +444,7 @@ void cpu_loop(CPUX86State *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -875,7 +876,7 @@ void cpu_loop(CPUARMState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -966,7 +967,7 @@ void cpu_loop(CPUUniCore32State *env) { int sig; =20 - sig =3D gdb_handlesig(env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; info.si_errno =3D 0; @@ -1233,7 +1234,7 @@ void cpu_loop (CPUSPARCState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -1764,7 +1765,7 @@ void cpu_loop(CPUPPCState *env) { int sig; =20 - sig =3D gdb_handlesig(env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; info.si_errno =3D 0; @@ -2315,7 +2316,7 @@ done_syscall: { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -2475,7 +2476,7 @@ void cpu_loop(CPUOpenRISCState *env) break; } if (gdbsig) { - gdb_handlesig(env, gdbsig); + gdb_handlesig(cs, gdbsig); if (gdbsig !=3D TARGET_SIGTRAP) { exit(1); } @@ -2518,7 +2519,7 @@ void cpu_loop(CPUSH4State *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -2586,7 +2587,7 @@ void cpu_loop(CPUCRISState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -2686,7 +2687,7 @@ void cpu_loop(CPUMBState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -2779,7 +2780,7 @@ void cpu_loop(CPUM68KState *env) { int sig; =20 - sig =3D gdb_handlesig (env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { info.si_signo =3D sig; @@ -3006,7 +3007,7 @@ void cpu_loop(CPUAlphaState *env) } break; case EXCP_DEBUG: - info.si_signo =3D gdb_handlesig (env, TARGET_SIGTRAP); + info.si_signo =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (info.si_signo) { env->lock_addr =3D -1; info.si_errno =3D 0; @@ -3059,7 +3060,7 @@ void cpu_loop(CPUS390XState *env) break; =20 case EXCP_DEBUG: - sig =3D gdb_handlesig(env, TARGET_SIGTRAP); + sig =3D gdb_handlesig(cs, TARGET_SIGTRAP); if (sig) { n =3D TARGET_TRAP_BRKPT; goto do_signal_pc; @@ -3541,6 +3542,7 @@ int main(int argc, char **argv, char **envp) struct linux_binprm bprm; TaskState *ts; CPUArchState *env; + CPUState *cpu; int optind; char **target_environ, **wrk; char **target_argv; @@ -3637,11 +3639,12 @@ int main(int argc, char **argv, char **envp) fprintf(stderr, "Unable to find CPU definition\n"); exit(1); } + cpu =3D ENV_GET_CPU(env); #if defined(TARGET_SPARC) || defined(TARGET_PPC) - cpu_reset(ENV_GET_CPU(env)); + cpu_reset(cpu); #endif =20 - thread_cpu =3D ENV_GET_CPU(env); + thread_cpu =3D cpu; =20 if (getenv("QEMU_STRACE")) { do_strace =3D 1; @@ -4076,7 +4079,7 @@ int main(int argc, char **argv, char **envp) gdbstub_port); exit(1); } - gdb_handlesig(env, 0); + gdb_handlesig(cpu, 0); } cpu_loop(env); /* never exits */ diff --git a/linux-user/signal.c b/linux-user/signal.c index d0727be..a5e8906 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -5386,6 +5386,7 @@ long do_rt_sigreturn(CPUArchState *env) =20 void process_pending_signals(CPUArchState *cpu_env) { + CPUState *cpu =3D ENV_GET_CPU(cpu_env); int sig; abi_ulong handler; sigset_t set, old_set; @@ -5419,7 +5420,7 @@ void process_pending_signals(CPUArchState *cpu_env) if (!k->first) k->pending =3D 0; =20 - sig =3D gdb_handlesig (cpu_env, sig); + sig =3D gdb_handlesig(cpu, sig); if (!sig) { sa =3D NULL; handler =3D TARGET_SIG_IGN; --=20 1.8.1.4