提交 8edac960 编写于 作者: A aliguori

qemu: introduce qemu_cpu_kick (Marcelo Tosatti)

To notify cpu of pending interrupt.
Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7243 c046a42c-6fe2-441c-8c8c-71466251a162
上级 0bf46a40
......@@ -1542,6 +1542,17 @@ void cpu_interrupt(CPUState *env, int mask)
old_mask = env->interrupt_request;
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) {
env->icount_decr.u16.high = 0xffff;
#ifndef CONFIG_USER_ONLY
......
......@@ -189,6 +189,10 @@ void qemu_service_io(void);
/* Force QEMU to process pending events */
void qemu_notify_event(void);
/* Unblock cpu */
void qemu_cpu_kick(void *env);
int qemu_cpu_self(void *env);
#ifdef CONFIG_USER_ONLY
#define qemu_init_vcpu(env) do { } while (0)
#else
......
......@@ -3740,6 +3740,16 @@ void qemu_init_vcpu(void *_env)
return;
}
int qemu_cpu_self(void *env)
{
return 1;
}
void qemu_cpu_kick(void *env)
{
return;
}
#ifdef _WIN32
static void host_main_loop_wait(int *timeout)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册