projects
/
qemu
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'gnu/master' into test
[qemu]
/
osdep.c
diff --git
a/osdep.c
b/osdep.c
index
d4db1e0
..
b300ba1
100644
(file)
--- a/
osdep.c
+++ b/
osdep.c
@@
-33,18
+33,22
@@
#include <sys/statvfs.h>
#endif
#include <sys/statvfs.h>
#endif
-#include "qemu-common.h"
-#include "sysemu.h"
+/* FIXME: This file should be target independent. However it has kqemu
+ hacks, so must be built for every target. */
+
+/* Needed early for HOST_BSD etc. */
+#include "config-host.h"
#ifdef _WIN32
#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windows.h>
-#elif defined(_BSD)
+#elif defined(HOST_BSD)
#include <stdlib.h>
#else
#include <malloc.h>
#endif
#include <stdlib.h>
#else
#include <malloc.h>
#endif
+#include "qemu-common.h"
+#include "sysemu.h"
#include "qemu_socket.h"
#if defined(_WIN32)
#include "qemu_socket.h"
#if defined(_WIN32)
@@
-68,15
+72,17
@@
void qemu_vfree(void *ptr)
#else
#else
-#if defined(USE_KQEMU)
+#if defined(CONFIG_KQEMU)
#ifdef __OpenBSD__
#include <sys/param.h>
#include <sys/types.h>
#include <sys/mount.h>
#else
#ifdef __OpenBSD__
#include <sys/param.h>
#include <sys/types.h>
#include <sys/mount.h>
#else
+#ifndef __FreeBSD__
#include <sys/vfs.h>
#endif
#include <sys/vfs.h>
#endif
+#endif
#include <sys/mman.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <fcntl.h>
@@
-87,7
+93,8
@@
static void *kqemu_vmalloc(size_t size)
static int phys_ram_size = 0;
void *ptr;
static int phys_ram_size = 0;
void *ptr;
-#ifdef __OpenBSD__ /* no need (?) for a dummy file on OpenBSD */
+/* no need (?) for a dummy file on OpenBSD/FreeBSD */
+#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
int map_anon = MAP_ANON;
#else
int map_anon = 0;
int map_anon = MAP_ANON;
#else
int map_anon = 0;
@@
-154,7
+161,7
@@
static void *kqemu_vmalloc(size_t size)
}
size = (size + 4095) & ~4095;
ftruncate(phys_ram_fd, phys_ram_size + size);
}
size = (size + 4095) & ~4095;
ftruncate(phys_ram_fd, phys_ram_size + size);
-#endif /* !__OpenBSD__ */
+#endif /* !(__OpenBSD__ || __FreeBSD__ || __DragonFly__) */
ptr = mmap(NULL,
size,
PROT_WRITE | PROT_READ, map_anon | MAP_SHARED,
ptr = mmap(NULL,
size,
PROT_WRITE | PROT_READ, map_anon | MAP_SHARED,
@@
-183,7
+190,7
@@
void *qemu_memalign(size_t alignment, size_t size)
if (ret != 0)
return NULL;
return ptr;
if (ret != 0)
return NULL;
return ptr;
-#elif defined(_BSD)
+#elif defined(HOST_BSD)
return valloc(size);
#else
return memalign(alignment, size);
return valloc(size);
#else
return memalign(alignment, size);
@@
-193,20
+200,16
@@
void *qemu_memalign(size_t alignment, size_t size)
/* alloc shared memory pages */
void *qemu_vmalloc(size_t size)
{
/* alloc shared memory pages */
void *qemu_vmalloc(size_t size)
{
-#if defined(USE_KQEMU)
+#if defined(CONFIG_KQEMU)
if (kqemu_allowed)
return kqemu_vmalloc(size);
#endif
if (kqemu_allowed)
return kqemu_vmalloc(size);
#endif
-#ifdef _BSD
- return valloc(size);
-#else
- return memalign(getpagesize(), size);
-#endif
+ return qemu_memalign(getpagesize(), size);
}
void qemu_vfree(void *ptr)
{
}
void qemu_vfree(void *ptr)
{
-#if defined(USE_KQEMU)
+#if defined(CONFIG_KQEMU)
if (kqemu_allowed)
kqemu_vfree(ptr);
#endif
if (kqemu_allowed)
kqemu_vfree(ptr);
#endif