diff options
author | Juan Quintela <quintela@redhat.com> | 2009-09-29 22:49:05 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-10-05 09:32:42 -0500 |
commit | 216c07c3a8c782198de830901b6b85d8eaf98adc (patch) | |
tree | 77de736b0a3fd8d45feacfae9a613ffacbb9c025 /target-i386/machine.c | |
parent | fc3b0aa23ead267d85c08be5c0015b16be835b1e (diff) |
x86: factor out cpu_get/put_mttr_var()
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'target-i386/machine.c')
-rw-r--r-- | target-i386/machine.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c index c68dc118f2..a08785736f 100644 --- a/target-i386/machine.c +++ b/target-i386/machine.c @@ -53,6 +53,28 @@ static void cpu_get_xmm_reg(QEMUFile *f, XMMReg *xmm_reg) vmstate_load_state(f, &vmstate_xmm_reg, xmm_reg, vmstate_xmm_reg.version_id); } +static const VMStateDescription vmstate_mtrr_var = { + .name = "mtrr_var", + .version_id = 1, + .minimum_version_id = 1, + .minimum_version_id_old = 1, + .fields = (VMStateField []) { + VMSTATE_UINT64(base, MTRRVar), + VMSTATE_UINT64(mask, MTRRVar), + VMSTATE_END_OF_LIST() + } +}; + +static void cpu_put_mtrr_var(QEMUFile *f, MTRRVar *mtrr_var) +{ + vmstate_save_state(f, &vmstate_mtrr_var, mtrr_var); +} + +static void cpu_get_mtrr_var(QEMUFile *f, MTRRVar *mtrr_var) +{ + vmstate_load_state(f, &vmstate_mtrr_var, mtrr_var, vmstate_mtrr_var.version_id); +} + static void cpu_pre_save(void *opaque) { CPUState *env = opaque; @@ -182,8 +204,7 @@ void cpu_save(QEMUFile *f, void *opaque) qemu_put_be64s(f, &env->mtrr_fixed[i]); qemu_put_be64s(f, &env->mtrr_deftype); for(i = 0; i < 8; i++) { - qemu_put_be64s(f, &env->mtrr_var[i].base); - qemu_put_be64s(f, &env->mtrr_var[i].mask); + cpu_put_mtrr_var(f, &env->mtrr_var[i]); } /* KVM-related states */ @@ -394,8 +415,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) qemu_get_be64s(f, &env->mtrr_fixed[i]); qemu_get_be64s(f, &env->mtrr_deftype); for(i = 0; i < 8; i++) { - qemu_get_be64s(f, &env->mtrr_var[i].base); - qemu_get_be64s(f, &env->mtrr_var[i].mask); + cpu_get_mtrr_var(f, &env->mtrr_var[i]); } } |