Patchwork [RFC,04/14,v9] Add API to check whether paging mode is enabled

login
register
mail settings
Submitter Wen Congyang
Date March 14, 2012, 2:07 a.m.
Message ID <4F5FFD4F.2070406@cn.fujitsu.com>
Download mbox | patch
Permalink /patch/146522/
State New
Headers show

Comments

Wen Congyang - March 14, 2012, 2:07 a.m.
This API will be used in the following patch.

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
 cpu-all.h                         |    6 ++++++
 target-i386/arch_memory_mapping.c |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

Patch

diff --git a/cpu-all.h b/cpu-all.h
index 786dbea..4fe7174 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -519,11 +519,17 @@  int cpu_memory_rw_debug(CPUState *env, target_ulong addr,
 
 #if defined(CONFIG_HAVE_GET_MEMORY_MAPPING)
 int cpu_get_memory_mapping(MemoryMappingList *list, CPUState *env);
+bool cpu_paging_enabled(CPUState *env);
 #else
 static inline int cpu_get_memory_mapping(MemoryMappingList *list, CPUState *env)
 {
     return -1;
 }
+
+static inline bool cpu_paging_enabled(CPUState *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 10d9b2c..824f293 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, CPUState *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, CPUState *env)
 
     return 0;
 }
+
+bool cpu_paging_enabled(CPUState *env)
+{
+    return env->cr[0] & CR0_PG_MASK;
+}