aboutsummaryrefslogtreecommitdiffstats
path: root/osdep.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2011-05-11 17:37:44 +0200
committerDavid 'Digit' Turner <digit@android.com>2011-06-01 17:08:19 +0200
commit280afa072a7b829e581d884c2b3276530a6014b7 (patch)
tree6f1f213d66db8a5f89994bdfda7c9cd24140ffeb /osdep.c
parentae3098a3bce898cf958a6c3334f3d62282b12d2a (diff)
downloadexternal_qemu-280afa072a7b829e581d884c2b3276530a6014b7.zip
external_qemu-280afa072a7b829e581d884c2b3276530a6014b7.tar.gz
external_qemu-280afa072a7b829e581d884c2b3276530a6014b7.tar.bz2
ramblocks: integrate upstream implementation (sophisticated)
Change-Id: I49e96e2d5ae571849b0b6fef0a30b41ecdee8d23
Diffstat (limited to 'osdep.c')
-rw-r--r--osdep.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/osdep.c b/osdep.c
index 5879eed..6c402d9 100644
--- a/osdep.c
+++ b/osdep.c
@@ -32,9 +32,16 @@
/* Needed early for CONFIG_BSD etc. */
#include "config-host.h"
+#if defined(CONFIG_MADVISE) || defined(CONFIG_POSIX_MADVISE)
+#include <sys/mman.h>
+#endif
+
#ifdef CONFIG_SOLARIS
#include <sys/types.h>
#include <sys/statvfs.h>
+/* See MySQL bug #7156 (http://bugs.mysql.com/bug.php?id=7156) for
+ discussion about Solaris header problems */
+extern int madvise(caddr_t, size_t, int);
#endif
#ifdef _WIN32
@@ -59,6 +66,21 @@ typedef int32_t socklen_t;
#include "sysemu.h"
#include "qemu_socket.h"
+int qemu_madvise(void *addr, size_t len, int advice)
+{
+ if (advice == QEMU_MADV_INVALID) {
+ errno = EINVAL;
+ return -1;
+ }
+#if defined(CONFIG_MADVISE)
+ return madvise(addr, len, advice);
+#elif defined(CONFIG_POSIX_MADVISE)
+ return posix_madvise(addr, len, advice);
+#else
+ errno = EINVAL;
+ return -1;
+#endif
+}
/*