gdbstub: Change gdbserver_fork() to accept cpu instead of env
All callsites to this function navigate the cpu->env_ptr only for the function to take the env ptr back to the original cpu ptr. Change the function to just pass in the CPU pointer instead. Removes a core code usage of ENV_GET_CPU() (in gdbstub.c). Cc: Riku Voipio <riku.voipio@iki.fi> Reviewed-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
bbd77c180d
commit
f7ec7f7b26
|
@ -92,7 +92,7 @@ void fork_start(void)
|
||||||
void fork_end(int child)
|
void fork_end(int child)
|
||||||
{
|
{
|
||||||
if (child) {
|
if (child) {
|
||||||
gdbserver_fork((CPUArchState *)thread_cpu->env_ptr);
|
gdbserver_fork(thread_cpu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1629,9 +1629,8 @@ int gdbserver_start(int port)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Disable gdb stub for child processes. */
|
/* Disable gdb stub for child processes. */
|
||||||
void gdbserver_fork(CPUArchState *env)
|
void gdbserver_fork(CPUState *cpu)
|
||||||
{
|
{
|
||||||
CPUState *cpu = ENV_GET_CPU(env);
|
|
||||||
GDBState *s = gdbserver_state;
|
GDBState *s = gdbserver_state;
|
||||||
|
|
||||||
if (gdbserver_fd < 0 || s->fd < 0) {
|
if (gdbserver_fd < 0 || s->fd < 0) {
|
||||||
|
|
|
@ -22,7 +22,7 @@ void gdb_exit(CPUArchState *, int);
|
||||||
int gdb_queuesig (void);
|
int gdb_queuesig (void);
|
||||||
int gdb_handlesig(CPUState *, int);
|
int gdb_handlesig(CPUState *, int);
|
||||||
void gdb_signalled(CPUArchState *, int);
|
void gdb_signalled(CPUArchState *, int);
|
||||||
void gdbserver_fork(CPUArchState *);
|
void gdbserver_fork(CPUState *);
|
||||||
#endif
|
#endif
|
||||||
/* Get or set a register. Returns the size of the register. */
|
/* Get or set a register. Returns the size of the register. */
|
||||||
typedef int (*gdb_reg_cb)(CPUArchState *env, uint8_t *buf, int reg);
|
typedef int (*gdb_reg_cb)(CPUArchState *env, uint8_t *buf, int reg);
|
||||||
|
|
|
@ -130,7 +130,7 @@ void fork_end(int child)
|
||||||
pthread_cond_init(&exclusive_cond, NULL);
|
pthread_cond_init(&exclusive_cond, NULL);
|
||||||
pthread_cond_init(&exclusive_resume, NULL);
|
pthread_cond_init(&exclusive_resume, NULL);
|
||||||
pthread_mutex_init(&tcg_ctx.tb_ctx.tb_lock, NULL);
|
pthread_mutex_init(&tcg_ctx.tb_ctx.tb_lock, NULL);
|
||||||
gdbserver_fork((CPUArchState *)thread_cpu->env_ptr);
|
gdbserver_fork(thread_cpu);
|
||||||
} else {
|
} else {
|
||||||
pthread_mutex_unlock(&exclusive_lock);
|
pthread_mutex_unlock(&exclusive_lock);
|
||||||
pthread_mutex_unlock(&tcg_ctx.tb_ctx.tb_lock);
|
pthread_mutex_unlock(&tcg_ctx.tb_ctx.tb_lock);
|
||||||
|
|
Loading…
Reference in New Issue