summary refs log tree commit diff stats
path: root/exec.c
diff options
context:
space:
mode:
authorYang Zhong <yang.zhong@intel.com>2017-07-03 18:12:13 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2017-07-04 16:00:12 +0200
commita0be0c585f5dcc4d50a37f6a20d3d625c5ef3a2c (patch)
treed08821dba1ae0bae9ca999d47709b9213383ad0d /exec.c
parente7b161d5738bd5721e05174b25145f33dbc9d184 (diff)
downloadfocaccia-qemu-a0be0c585f5dcc4d50a37f6a20d3d625c5ef3a2c.tar.gz
focaccia-qemu-a0be0c585f5dcc4d50a37f6a20d3d625c5ef3a2c.zip
tcg: move page_size_init() function
translate-all.c will be disabled if tcg is disabled in the build,
so page_size_init() function and related variables will be moved
to exec.c file.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/exec.c b/exec.c
index 42ad1eaedd..ee619159f4 100644
--- a/exec.c
+++ b/exec.c
@@ -118,6 +118,11 @@ __thread CPUState *current_cpu;
    2 = Adaptive rate instruction counting.  */
 int use_icount;
 
+uintptr_t qemu_host_page_size;
+intptr_t qemu_host_page_mask;
+uintptr_t qemu_real_host_page_size;
+intptr_t qemu_real_host_page_mask;
+
 bool set_preferred_target_page_bits(int bits)
 {
     /* The target page size is the lowest common denominator for all
@@ -3590,3 +3595,18 @@ err:
 }
 
 #endif
+
+void page_size_init(void)
+{
+    /* NOTE: we can always suppose that qemu_host_page_size >=
+       TARGET_PAGE_SIZE */
+    qemu_real_host_page_size = getpagesize();
+    qemu_real_host_page_mask = -(intptr_t)qemu_real_host_page_size;
+    if (qemu_host_page_size == 0) {
+        qemu_host_page_size = qemu_real_host_page_size;
+    }
+    if (qemu_host_page_size < TARGET_PAGE_SIZE) {
+        qemu_host_page_size = TARGET_PAGE_SIZE;
+    }
+    qemu_host_page_mask = -(intptr_t)qemu_host_page_size;
+}