mirror of https://github.com/xemu-project/xemu.git
qemu: introduce qemu_cpu_kick (Marcelo Tosatti)
To notify cpu of pending interrupt. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7243 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
0bf46a40a1
commit
8edac960a7
11
exec.c
11
exec.c
|
@ -1542,6 +1542,17 @@ void cpu_interrupt(CPUState *env, int mask)
|
||||||
old_mask = env->interrupt_request;
|
old_mask = env->interrupt_request;
|
||||||
env->interrupt_request |= mask;
|
env->interrupt_request |= mask;
|
||||||
|
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
/*
|
||||||
|
* If called from iothread context, wake the target cpu in
|
||||||
|
* case its halted.
|
||||||
|
*/
|
||||||
|
if (!qemu_cpu_self(env)) {
|
||||||
|
qemu_cpu_kick(env);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (use_icount) {
|
if (use_icount) {
|
||||||
env->icount_decr.u16.high = 0xffff;
|
env->icount_decr.u16.high = 0xffff;
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
|
@ -189,6 +189,10 @@ void qemu_service_io(void);
|
||||||
/* Force QEMU to process pending events */
|
/* Force QEMU to process pending events */
|
||||||
void qemu_notify_event(void);
|
void qemu_notify_event(void);
|
||||||
|
|
||||||
|
/* Unblock cpu */
|
||||||
|
void qemu_cpu_kick(void *env);
|
||||||
|
int qemu_cpu_self(void *env);
|
||||||
|
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
#define qemu_init_vcpu(env) do { } while (0)
|
#define qemu_init_vcpu(env) do { } while (0)
|
||||||
#else
|
#else
|
||||||
|
|
10
vl.c
10
vl.c
|
@ -3740,6 +3740,16 @@ void qemu_init_vcpu(void *_env)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int qemu_cpu_self(void *env)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void qemu_cpu_kick(void *env)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static void host_main_loop_wait(int *timeout)
|
static void host_main_loop_wait(int *timeout)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue