From cb329131c082c94d14c23456cf2873a05411dfe4 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Luiz Capitulino Date: Fri, 5 Oct 2012 17:46:19 +0200 Subject: [PATCH 07/21] Add API to check whether paging mode is enabled RH-Author: Luiz Capitulino Message-id: <1349459193-18226-6-git-send-email-lcapitulino@redhat.com> Patchwork-id: 42753 O-Subject: [RHEL6.4 qemu-kvm PATCH 05/19] Add API to check whether paging mode is enabled Bugzilla: 832458 RH-Acked-by: Marcelo Tosatti RH-Acked-by: Markus Armbruster RH-Acked-by: Paolo Bonzini From: Wen Congyang This API will be used in the following patch. Signed-off-by: Wen Congyang Signed-off-by: Luiz Capitulino (cherry picked from commit 31a2207a8e1c39bcf88e527ac62f4e12316920a4) --- cpu-all.h | 6 ++++++ target-i386/arch_memory_mapping.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) Signed-off-by: Michal Novotny --- cpu-all.h | 6 ++++++ target-i386/arch_memory_mapping.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cpu-all.h b/cpu-all.h index c413f30..8f6b8f9 100644 --- a/cpu-all.h +++ b/cpu-all.h @@ -1107,12 +1107,18 @@ void pause_all_vcpus(void); #if defined(CONFIG_HAVE_GET_MEMORY_MAPPING) int cpu_get_memory_mapping(MemoryMappingList *list, CPUArchState *env); +bool cpu_paging_enabled(CPUArchState *env); #else static inline int cpu_get_memory_mapping(MemoryMappingList *list, CPUArchState *env) { return -1; } + +static inline bool cpu_paging_enabled(CPUArchState *env) +{ + return true; +} #endif #endif /* CPU_ALL_H */ diff --git a/target-i386/arch_memory_mapping.c b/target-i386/arch_memory_mapping.c index dd64bec..bd50e11 100644 --- a/target-i386/arch_memory_mapping.c +++ b/target-i386/arch_memory_mapping.c @@ -233,7 +233,7 @@ static void walk_pml4e(MemoryMappingList *list, int cpu_get_memory_mapping(MemoryMappingList *list, CPUArchState *env) { - if (!(env->cr[0] & CR0_PG_MASK)) { + if (!cpu_paging_enabled(env)) { /* paging is disabled */ return 0; } @@ -264,3 +264,8 @@ int cpu_get_memory_mapping(MemoryMappingList *list, CPUArchState *env) return 0; } + +bool cpu_paging_enabled(CPUArchState *env) +{ + return env->cr[0] & CR0_PG_MASK; +} -- 1.7.11.4