diff options
author | Andreas Färber <afaerber@suse.de> | 2013-05-28 13:28:38 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-06-11 17:50:09 +0200 |
commit | 444d55907871f88276a654fc7fdc8c7db95f4b59 (patch) | |
tree | 10dde797d560c58dbd9a70405c0b38891fef5fc1 /target-i386/cpu.c | |
parent | c51a944b7505ba827adc897d5452d2b54dbf86bb (diff) | |
download | qemu-444d55907871f88276a654fc7fdc8c7db95f4b59.zip |
cpu: Turn cpu_paging_enabled() into a CPUState hook
Relocate assignment of x86 get_arch_id to have all hooks in one place.
Reviewed-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'target-i386/cpu.c')
-rw-r--r-- | target-i386/cpu.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 4b2da0d750..f6fa7fa8b6 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2505,6 +2505,13 @@ static int64_t x86_cpu_get_arch_id(CPUState *cs) return env->cpuid_apic_id; } +static bool x86_cpu_get_paging_enabled(const CPUState *cs) +{ + X86CPU *cpu = X86_CPU(cs); + + return cpu->env.cr[0] & CR0_PG_MASK; +} + static void x86_cpu_common_class_init(ObjectClass *oc, void *data) { X86CPUClass *xcc = X86_CPU_CLASS(oc); @@ -2519,6 +2526,8 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) cc->reset = x86_cpu_reset; cc->do_interrupt = x86_cpu_do_interrupt; + cc->get_arch_id = x86_cpu_get_arch_id; + cc->get_paging_enabled = x86_cpu_get_paging_enabled; #ifndef CONFIG_USER_ONLY cc->write_elf64_note = x86_cpu_write_elf64_note; cc->write_elf64_qemunote = x86_cpu_write_elf64_qemunote; @@ -2526,8 +2535,6 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) cc->write_elf32_qemunote = x86_cpu_write_elf32_qemunote; #endif cpu_class_set_vmsd(cc, &vmstate_x86_cpu); - - cc->get_arch_id = x86_cpu_get_arch_id; } static const TypeInfo x86_cpu_type_info = { |