2 * QEMU madvise wrapper functions
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
5 * See the COPYING file in the top-level directory.
11 #define QEMU_MADV_INVALID -1
13 #if defined(CONFIG_MADVISE)
15 #define QEMU_MADV_WILLNEED MADV_WILLNEED
16 #define QEMU_MADV_DONTNEED MADV_DONTNEED
18 #define QEMU_MADV_DONTFORK MADV_DONTFORK
20 #define QEMU_MADV_DONTFORK QEMU_MADV_INVALID
23 #define QEMU_MADV_MERGEABLE MADV_MERGEABLE
25 #define QEMU_MADV_MERGEABLE QEMU_MADV_INVALID
27 #ifdef MADV_UNMERGEABLE
28 #define QEMU_MADV_UNMERGEABLE MADV_UNMERGEABLE
30 #define QEMU_MADV_UNMERGEABLE QEMU_MADV_INVALID
33 #define QEMU_MADV_DODUMP MADV_DODUMP
35 #define QEMU_MADV_DODUMP QEMU_MADV_INVALID
38 #define QEMU_MADV_DONTDUMP MADV_DONTDUMP
40 #define QEMU_MADV_DONTDUMP QEMU_MADV_INVALID
43 #define QEMU_MADV_HUGEPAGE MADV_HUGEPAGE
45 #define QEMU_MADV_HUGEPAGE QEMU_MADV_INVALID
47 #ifdef MADV_NOHUGEPAGE
48 #define QEMU_MADV_NOHUGEPAGE MADV_NOHUGEPAGE
50 #define QEMU_MADV_NOHUGEPAGE QEMU_MADV_INVALID
53 #define QEMU_MADV_REMOVE MADV_REMOVE
55 #define QEMU_MADV_REMOVE QEMU_MADV_DONTNEED
57 #ifdef MADV_POPULATE_WRITE
58 #define QEMU_MADV_POPULATE_WRITE MADV_POPULATE_WRITE
60 #define QEMU_MADV_POPULATE_WRITE QEMU_MADV_INVALID
63 #elif defined(CONFIG_POSIX_MADVISE)
65 #define QEMU_MADV_WILLNEED POSIX_MADV_WILLNEED
66 #define QEMU_MADV_DONTNEED POSIX_MADV_DONTNEED
67 #define QEMU_MADV_DONTFORK QEMU_MADV_INVALID
68 #define QEMU_MADV_MERGEABLE QEMU_MADV_INVALID
69 #define QEMU_MADV_UNMERGEABLE QEMU_MADV_INVALID
70 #define QEMU_MADV_DODUMP QEMU_MADV_INVALID
71 #define QEMU_MADV_DONTDUMP QEMU_MADV_INVALID
72 #define QEMU_MADV_HUGEPAGE QEMU_MADV_INVALID
73 #define QEMU_MADV_NOHUGEPAGE QEMU_MADV_INVALID
74 #define QEMU_MADV_REMOVE QEMU_MADV_DONTNEED
75 #define QEMU_MADV_POPULATE_WRITE QEMU_MADV_INVALID
79 #define QEMU_MADV_WILLNEED QEMU_MADV_INVALID
80 #define QEMU_MADV_DONTNEED QEMU_MADV_INVALID
81 #define QEMU_MADV_DONTFORK QEMU_MADV_INVALID
82 #define QEMU_MADV_MERGEABLE QEMU_MADV_INVALID
83 #define QEMU_MADV_UNMERGEABLE QEMU_MADV_INVALID
84 #define QEMU_MADV_DODUMP QEMU_MADV_INVALID
85 #define QEMU_MADV_DONTDUMP QEMU_MADV_INVALID
86 #define QEMU_MADV_HUGEPAGE QEMU_MADV_INVALID
87 #define QEMU_MADV_NOHUGEPAGE QEMU_MADV_INVALID
88 #define QEMU_MADV_REMOVE QEMU_MADV_INVALID
89 #define QEMU_MADV_POPULATE_WRITE QEMU_MADV_INVALID
93 int qemu_madvise(void *addr
, size_t len
, int advice
);