2007-07-10 18:55:54 +02:00
|
|
|
Index: qemu/linux-user/mmap.c
|
2007-11-13 21:32:02 +01:00
|
|
|
================================================================================
|
2008-07-25 04:42:31 +02:00
|
|
|
--- qemu/linux-user/mmap.c
|
|
|
|
+++ qemu/linux-user/mmap.c
|
2007-06-20 19:21:29 +02:00
|
|
|
@@ -27,6 +27,10 @@
|
|
|
|
|
|
|
|
#include "qemu.h"
|
|
|
|
|
|
|
|
+#if !defined(MAP_32BIT)
|
|
|
|
+#define MAP_32BIT 0
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
//#define DEBUG_MMAP
|
|
|
|
|
2008-07-25 04:42:31 +02:00
|
|
|
#if defined(USE_NPTL)
|
|
|
|
@@ -211,7 +215,7 @@
|
2007-06-20 19:21:29 +02:00
|
|
|
if (prot1 == 0) {
|
|
|
|
/* no page was there, so we allocate one */
|
2007-11-13 21:32:02 +01:00
|
|
|
void *p = mmap(host_start, qemu_host_page_size, prot,
|
|
|
|
- flags | MAP_ANONYMOUS, -1, 0);
|
|
|
|
+ flags | MAP_ANONYMOUS | MAP_32BIT, -1, 0);
|
|
|
|
if (p == MAP_FAILED)
|
|
|
|
return -1;
|
2007-06-20 19:21:29 +02:00
|
|
|
prot1 = prot;
|
2008-07-25 04:42:31 +02:00
|
|
|
@@ -551,7 +555,7 @@
|
2007-06-20 19:21:29 +02:00
|
|
|
|
2008-07-25 04:42:31 +02:00
|
|
|
mmap_lock();
|
2007-06-20 19:21:29 +02:00
|
|
|
/* XXX: use 5 args syscall */
|
2007-11-13 21:32:02 +01:00
|
|
|
- host_addr = (long)mremap(g2h(old_addr), old_size, new_size, flags);
|
|
|
|
+ host_addr = (long)mremap(g2h(old_addr), old_size, new_size, flags | MAP_32BIT);
|
2008-07-25 04:42:31 +02:00
|
|
|
if (host_addr == -1) {
|
|
|
|
new_addr = -1;
|
|
|
|
} else {
|