diff options
author | David 'Digit' Turner <digit@android.com> | 2011-05-11 17:37:44 +0200 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2011-06-01 17:08:19 +0200 |
commit | 280afa072a7b829e581d884c2b3276530a6014b7 (patch) | |
tree | 6f1f213d66db8a5f89994bdfda7c9cd24140ffeb /osdep.c | |
parent | ae3098a3bce898cf958a6c3334f3d62282b12d2a (diff) | |
download | external_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.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -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 +} /* |