From 50a9569b591a83071052614f2ff497ff2f2aa2ef Mon Sep 17 00:00:00 2001 From: balrog Date: Wed, 12 Dec 2007 01:16:23 +0000 Subject: Mark host pages as reserved (Magnus Damm). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3813 c046a42c-6fe2-441c-8c8c-71466251a162 --- exec.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'exec.c') diff --git a/exec.c b/exec.c index fd08ec927..07d5de04a 100644 --- a/exec.c +++ b/exec.c @@ -209,6 +209,27 @@ static void page_init(void) qemu_host_page_mask = ~(qemu_host_page_size - 1); l1_phys_map = qemu_vmalloc(L1_SIZE * sizeof(void *)); memset(l1_phys_map, 0, L1_SIZE * sizeof(void *)); + +#if !defined(_WIN32) && defined(CONFIG_USER_ONLY) + { + long long startaddr, endaddr; + FILE *f; + int n; + + f = fopen("/proc/self/maps", "r"); + if (f) { + do { + n = fscanf (f, "%llx-%llx %*[^\n]\n", &startaddr, &endaddr); + if (n == 2) { + page_set_flags(TARGET_PAGE_ALIGN(startaddr), + TARGET_PAGE_ALIGN(endaddr), + PAGE_RESERVED); + } + } while (!feof(f)); + fclose(f); + } + } +#endif } static inline PageDesc *page_find_alloc(unsigned int index) -- cgit v1.2.3