Skip to content

Commit

Permalink
cpu: Change cpu_exit() argument to CPUState
Browse files Browse the repository at this point in the history
It no longer depends on CPUArchState, so move it to qom/cpu.c.

Prepares for changing GDBState::c_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
  • Loading branch information
afaerber committed Jun 28, 2013
1 parent cb446ec commit 60a3e17
Show file tree
Hide file tree
Showing 13 changed files with 24 additions and 20 deletions.
4 changes: 2 additions & 2 deletions cpus.c
Expand Up @@ -473,7 +473,7 @@ static void cpu_handle_guest_debug(CPUArchState *env)
static void cpu_signal(int sig)
{
if (cpu_single_env) {
cpu_exit(cpu_single_env);
cpu_exit(ENV_GET_CPU(cpu_single_env));
}
exit_request = 1;
}
Expand Down Expand Up @@ -1088,7 +1088,7 @@ void cpu_stop_current(void)
CPUState *cpu_single_cpu = ENV_GET_CPU(cpu_single_env);
cpu_single_cpu->stop = false;
cpu_single_cpu->stopped = true;
cpu_exit(cpu_single_env);
cpu_exit(cpu_single_cpu);
qemu_cond_signal(&qemu_pause_cond);
}
}
Expand Down
8 changes: 0 additions & 8 deletions exec.c
Expand Up @@ -598,14 +598,6 @@ void cpu_single_step(CPUArchState *env, int enabled)
#endif
}

void cpu_exit(CPUArchState *env)
{
CPUState *cpu = ENV_GET_CPU(env);

cpu->exit_request = 1;
cpu->tcg_exit_req = 1;
}

void cpu_abort(CPUArchState *env, const char *fmt, ...)
{
va_list ap;
Expand Down
2 changes: 1 addition & 1 deletion gdbstub.c
Expand Up @@ -2655,7 +2655,7 @@ void gdb_do_syscall(gdb_syscall_complete_cb cb, const char *fmt, ...)
is still in the running state, which can cause packets to be dropped
and state transition 'T' packets to be sent while the syscall is still
being processed. */
cpu_exit(s->c_cpu);
cpu_exit(ENV_GET_CPU(s->c_cpu));
#endif
}

Expand Down
2 changes: 1 addition & 1 deletion hw/i386/pc.c
Expand Up @@ -1109,7 +1109,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
CPUX86State *env = cpu_single_env;

if (env && level) {
cpu_exit(env);
cpu_exit(CPU(x86_env_get_cpu(env)));
}
}

Expand Down
2 changes: 1 addition & 1 deletion hw/mips/mips_fulong2e.c
Expand Up @@ -253,7 +253,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
CPUMIPSState *env = cpu_single_env;

if (env && level) {
cpu_exit(env);
cpu_exit(CPU(mips_env_get_cpu(env)));
}
}

Expand Down
2 changes: 1 addition & 1 deletion hw/mips/mips_jazz.c
Expand Up @@ -102,7 +102,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
CPUMIPSState *env = cpu_single_env;

if (env && level) {
cpu_exit(env);
cpu_exit(CPU(mips_env_get_cpu(env)));
}
}

Expand Down
2 changes: 1 addition & 1 deletion hw/mips/mips_malta.c
Expand Up @@ -773,7 +773,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
CPUMIPSState *env = cpu_single_env;

if (env && level) {
cpu_exit(env);
cpu_exit(CPU(mips_env_get_cpu(env)));
}
}

Expand Down
2 changes: 1 addition & 1 deletion hw/ppc/prep.c
Expand Up @@ -420,7 +420,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
CPUPPCState *env = cpu_single_env;

if (env && level) {
cpu_exit(env);
cpu_exit(CPU(ppc_env_get_cpu(env)));
}
}

Expand Down
2 changes: 0 additions & 2 deletions include/exec/cpu-all.h
Expand Up @@ -421,8 +421,6 @@ DECLARE_TLS(CPUArchState *,cpu_single_env);
| CPU_INTERRUPT_TGT_EXT_3 \
| CPU_INTERRUPT_TGT_EXT_4)

void cpu_exit(CPUArchState *s);

/* Breakpoint/watchpoint flags */
#define BP_MEM_READ 0x01
#define BP_MEM_WRITE 0x02
Expand Down
8 changes: 8 additions & 0 deletions include/qom/cpu.h
Expand Up @@ -370,6 +370,14 @@ void cpu_interrupt(CPUState *cpu, int mask);
*/
void cpu_reset_interrupt(CPUState *cpu, int mask);

/**
* cpu_exit:
* @cpu: The CPU to exit.
*
* Requests the CPU @cpu to exit execution.
*/
void cpu_exit(CPUState *cpu);

/**
* cpu_resume:
* @cpu: The CPU to resume.
Expand Down
2 changes: 1 addition & 1 deletion linux-user/main.c
Expand Up @@ -160,7 +160,7 @@ static inline void start_exclusive(void)
other_cpu = ENV_GET_CPU(other);
if (other_cpu->running) {
pending_cpus++;
cpu_exit(other);
cpu_exit(other_cpu);
}
}
if (pending_cpus > 1) {
Expand Down
2 changes: 1 addition & 1 deletion linux-user/signal.c
Expand Up @@ -524,7 +524,7 @@ static void host_signal_handler(int host_signum, siginfo_t *info,
host_to_target_siginfo_noswap(&tinfo, info);
if (queue_signal(thread_env, sig, &tinfo) == 1) {
/* interrupt the virtual CPU as soon as possible */
cpu_exit(thread_env);
cpu_exit(ENV_GET_CPU(thread_env));
}
}

Expand Down
6 changes: 6 additions & 0 deletions qom/cpu.c
Expand Up @@ -91,6 +91,12 @@ void cpu_reset_interrupt(CPUState *cpu, int mask)
cpu->interrupt_request &= ~mask;
}

void cpu_exit(CPUState *cpu)
{
cpu->exit_request = 1;
cpu->tcg_exit_req = 1;
}

int cpu_write_elf32_qemunote(WriteCoreDumpFunction f, CPUState *cpu,
void *opaque)
{
Expand Down

0 comments on commit 60a3e17

Please sign in to comment.