summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-08-17 11:08:26 +0300
committerAvi Kivity <avi@qumranet.com>2008-08-17 11:08:26 +0300
commit9f1d74bd298f1b4ea533596edbc957bf39d3aacb (patch)
tree3cd31b01e6515c74c221f82adb9e6873b63d5cfc /osdep.c
parentkvm: external module: generate asm-offsets.h for ia64 (diff)
parentFix g364fb video emulation (diff)
downloadqemu-kvm-9f1d74bd298f1b4ea533596edbc957bf39d3aacb.tar.gz
qemu-kvm-9f1d74bd298f1b4ea533596edbc957bf39d3aacb.tar.bz2
qemu-kvm-9f1d74bd298f1b4ea533596edbc957bf39d3aacb.zip
Merge branch 'qemu-cvs'
Conflicts: qemu/configure Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'osdep.c')
-rw-r--r--osdep.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/osdep.c b/osdep.c
index 30e03be44..367248610 100644
--- a/osdep.c
+++ b/osdep.c
@@ -68,7 +68,14 @@ void qemu_vfree(void *ptr)
#if defined(USE_KQEMU)
+#ifdef __OpenBSD__
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+#else
#include <sys/vfs.h>
+#endif
+
#include <sys/mman.h>
#include <fcntl.h>
@@ -76,9 +83,14 @@ static void *kqemu_vmalloc(size_t size)
{
static int phys_ram_fd = -1;
static int phys_ram_size = 0;
+ void *ptr;
+
+#ifdef __OpenBSD__ /* no need (?) for a dummy file on OpenBSD */
+ int map_anon = MAP_ANON;
+#else
+ int map_anon = 0;
const char *tmpdir;
char phys_ram_file[1024];
- void *ptr;
#ifdef HOST_SOLARIS
struct statvfs stfs;
#else
@@ -140,9 +152,10 @@ static void *kqemu_vmalloc(size_t size)
}
size = (size + 4095) & ~4095;
ftruncate(phys_ram_fd, phys_ram_size + size);
+#endif /* !__OpenBSD__ */
ptr = mmap(NULL,
size,
- PROT_WRITE | PROT_READ, MAP_SHARED,
+ PROT_WRITE | PROT_READ, map_anon | MAP_SHARED,
phys_ram_fd, phys_ram_size);
if (ptr == MAP_FAILED) {
fprintf(stderr, "Could not map physical memory\n");