[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/9] Break up user and system cpu_interrupt implemen
From: |
Marcelo Tosatti |
Subject: |
[Qemu-devel] [PATCH 5/9] Break up user and system cpu_interrupt implementations |
Date: |
Mon, 2 May 2011 15:32:41 -0300 |
From: Jan Kiszka <address@hidden>
Both have only two lines in common, and we will convert the system
service into a callback which is of no use for user mode operation.
Signed-off-by: Jan Kiszka <address@hidden>
CC: Riku Voipio <address@hidden>
Signed-off-by: Marcelo Tosatti <address@hidden>
---
exec.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/exec.c b/exec.c
index c3dc68a..d6d8a89 100644
--- a/exec.c
+++ b/exec.c
@@ -1629,6 +1629,7 @@ static void cpu_unlink_tb(CPUState *env)
spin_unlock(&interrupt_lock);
}
+#ifndef CONFIG_USER_ONLY
/* mask must never be zero, except for A20 change call */
void cpu_interrupt(CPUState *env, int mask)
{
@@ -1637,7 +1638,6 @@ 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.
@@ -1646,21 +1646,27 @@ void cpu_interrupt(CPUState *env, int mask)
qemu_cpu_kick(env);
return;
}
-#endif
if (use_icount) {
env->icount_decr.u16.high = 0xffff;
-#ifndef CONFIG_USER_ONLY
if (!can_do_io(env)
&& (mask & ~old_mask) != 0) {
cpu_abort(env, "Raised interrupt while not in I/O function");
}
-#endif
} else {
cpu_unlink_tb(env);
}
}
+#else /* CONFIG_USER_ONLY */
+
+void cpu_interrupt(CPUState *env, int mask)
+{
+ env->interrupt_request |= mask;
+ cpu_unlink_tb(env);
+}
+#endif /* CONFIG_USER_ONLY */
+
void cpu_reset_interrupt(CPUState *env, int mask)
{
env->interrupt_request &= ~mask;
--
1.7.4.4
- [Qemu-devel] [PATCH 0/9] [PULL] qemu-kvm.git uq/master queue, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 9/9] kvm: use qemu_free consistently, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 1/9] kvm: use kernel-provided para_features instead of statically coming up with new capabilities, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 3/9] kvm: add kvmclock to its second bit, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 7/9] kvm: Install specialized interrupt handler, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 8/9] fix crash in migration, 32-bit userspace on 64-bit host, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 2/9] x86: Allow multiple cpu feature matches of lookup_feature, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 6/9] Redirect cpu_interrupt to callback handler, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 4/9] kvm: create kvmclock when one of the flags are present, Marcelo Tosatti, 2011/05/02
- [Qemu-devel] [PATCH 5/9] Break up user and system cpu_interrupt implementations,
Marcelo Tosatti <=
- Re: [Qemu-devel] [PATCH 0/9] [PULL] qemu-kvm.git uq/master queue, Anthony Liguori, 2011/05/02