diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2009-11-06 19:39:24 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-11-17 08:49:37 -0600 |
commit | 0e607a80d323ba9f46dee71cd07380c4eb5c2b0a (patch) | |
tree | 6426919c8428631c5aa96e51e63bf06e6120f89d /target-i386/machine.c | |
parent | caa5af0ff364a23a2783fed0d597cad120455da8 (diff) |
kvm: x86: Refactor use of interrupt_bitmap
Drop interrupt_bitmap from the cpustate and solely rely on the integer
interupt_injected. This prepares us for the new injected-interrupt
interface, which will deprecate the bitmap, while preserving
compatibility.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'target-i386/machine.c')
-rw-r--r-- | target-i386/machine.c | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c index 869c681f4d..c09b049d90 100644 --- a/target-i386/machine.c +++ b/target-i386/machine.c @@ -2,7 +2,6 @@ #include "hw/boards.h" #include "hw/pc.h" #include "hw/isa.h" -#include "host-utils.h" #include "exec-all.h" #include "kvm.h" @@ -320,7 +319,7 @@ static const VMStateInfo vmstate_hack_uint64_as_uint32 = { static void cpu_pre_save(void *opaque) { CPUState *env = opaque; - int i, bit; + int i; cpu_synchronize_state(env); @@ -336,17 +335,6 @@ static void cpu_pre_save(void *opaque) #else env->fpregs_format_vmstate = 1; #endif - - /* There can only be one pending IRQ set in the bitmap at a time, so try - to find it and save its number instead (-1 for none). */ - env->pending_irq_vmstate = -1; - for (i = 0; i < ARRAY_SIZE(env->interrupt_bitmap); i++) { - if (env->interrupt_bitmap[i]) { - bit = ctz64(env->interrupt_bitmap[i]); - env->pending_irq_vmstate = i * 64 + bit; - break; - } - } } static int cpu_pre_load(void *opaque) @@ -375,14 +363,6 @@ static int cpu_post_load(void *opaque, int version_id) for (i = 0; i < 4; i++) hw_breakpoint_insert(env, i); - if (version_id >= 9) { - memset(&env->interrupt_bitmap, 0, sizeof(env->interrupt_bitmap)); - if (env->pending_irq_vmstate >= 0) { - env->interrupt_bitmap[env->pending_irq_vmstate / 64] |= - (uint64_t)1 << (env->pending_irq_vmstate % 64); - } - } - tlb_flush(env, 1); return 0; } @@ -465,7 +445,7 @@ static const VMStateDescription vmstate_cpu = { VMSTATE_UINT64_V(mtrr_deftype, CPUState, 8), VMSTATE_MTRR_VARS(mtrr_var, CPUState, 8, 8), /* KVM-related states */ - VMSTATE_INT32_V(pending_irq_vmstate, CPUState, 9), + VMSTATE_INT32_V(interrupt_injected, CPUState, 9), VMSTATE_UINT32_V(mp_state, CPUState, 9), VMSTATE_UINT64_V(tsc, CPUState, 9), /* MCE */ |