This file and its aarch64 equivalent differs only to musl copies by
extra MAP_UNINITIALIZED macro. In order to drop this header
we create extra __mman.h headers and use them in libc/mman.cc.

Signed-off-by: Waldemar Kozaczuk <[email protected]>
---
 include/api/aarch64/bits/__mman.h | 13 +++++++
 include/api/aarch64/bits/mman.h   |  1 -
 include/api/x64/bits/__mman.h     | 13 +++++++
 include/api/x64/bits/mman.h       | 64 +------------------------------
 libc/mman.cc                      |  1 +
 5 files changed, 28 insertions(+), 64 deletions(-)
 create mode 100644 include/api/aarch64/bits/__mman.h
 create mode 100644 include/api/x64/bits/__mman.h
 mode change 100644 => 120000 include/api/x64/bits/mman.h

diff --git a/include/api/aarch64/bits/__mman.h 
b/include/api/aarch64/bits/__mman.h
new file mode 100644
index 00000000..53743e3d
--- /dev/null
+++ b/include/api/aarch64/bits/__mman.h
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2020 Waldemar Kozaczuk
+ *
+ * This work is open source software, licensed under the terms of the
+ * BSD license as described in the LICENSE file in the top-level directory.
+ */
+
+#ifndef OSV__BITS_MMAN_H_
+#define OSV__BITS_MMAN_H_
+
+#define MAP_UNINITIALIZED 0x4000000
+
+#endif /* OSV__BITS_MMAN_H_ */
diff --git a/include/api/aarch64/bits/mman.h b/include/api/aarch64/bits/mman.h
index dc07c611..dcab47a4 100644
--- a/include/api/aarch64/bits/mman.h
+++ b/include/api/aarch64/bits/mman.h
@@ -25,7 +25,6 @@
 #define MAP_NONBLOCK   0x10000
 #define MAP_STACK      0x20000
 #define MAP_HUGETLB    0x40000
-#define MAP_UNINITIALIZED 0x4000000
 
 #define POSIX_MADV_NORMAL       0
 #define POSIX_MADV_RANDOM       1
diff --git a/include/api/x64/bits/__mman.h b/include/api/x64/bits/__mman.h
new file mode 100644
index 00000000..53743e3d
--- /dev/null
+++ b/include/api/x64/bits/__mman.h
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2020 Waldemar Kozaczuk
+ *
+ * This work is open source software, licensed under the terms of the
+ * BSD license as described in the LICENSE file in the top-level directory.
+ */
+
+#ifndef OSV__BITS_MMAN_H_
+#define OSV__BITS_MMAN_H_
+
+#define MAP_UNINITIALIZED 0x4000000
+
+#endif /* OSV__BITS_MMAN_H_ */
diff --git a/include/api/x64/bits/mman.h b/include/api/x64/bits/mman.h
deleted file mode 100644
index dc07c611..00000000
--- a/include/api/x64/bits/mman.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#define MAP_FAILED ((void *) -1)
-
-#define        PROT_NONE      0
-#define        PROT_READ      1
-#define        PROT_WRITE     2
-#define        PROT_EXEC      4
-#define PROT_GROWSDOWN  0x01000000
-#define PROT_GROWSUP    0x02000000
-
-#define        MAP_SHARED     0x01
-#define        MAP_PRIVATE    0x02
-#define        MAP_FIXED      0x10
-
-#define MAP_TYPE       0x0f
-#define MAP_FILE       0x00
-#define MAP_ANON       0x20
-#define MAP_ANONYMOUS  MAP_ANON
-#define MAP_32BIT      0x40
-#define MAP_NORESERVE  0x4000
-#define MAP_GROWSDOWN  0x0100
-#define MAP_DENYWRITE  0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED     0x2000
-#define MAP_POPULATE   0x8000
-#define MAP_NONBLOCK   0x10000
-#define MAP_STACK      0x20000
-#define MAP_HUGETLB    0x40000
-#define MAP_UNINITIALIZED 0x4000000
-
-#define POSIX_MADV_NORMAL       0
-#define POSIX_MADV_RANDOM       1
-#define POSIX_MADV_SEQUENTIAL   2
-#define POSIX_MADV_WILLNEED     3
-#define POSIX_MADV_DONTNEED     0
-
-#define MS_ASYNC        1
-#define MS_INVALIDATE   2
-#define MS_SYNC         4
-
-#define MCL_CURRENT     1
-#define MCL_FUTURE      2
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define MADV_NORMAL      0
-#define MADV_RANDOM      1
-#define MADV_SEQUENTIAL  2
-#define MADV_WILLNEED    3
-#define MADV_DONTNEED    4
-#define MADV_REMOVE      9
-#define MADV_DONTFORK    10
-#define MADV_DOFORK      11
-#define MADV_MERGEABLE   12
-#define MADV_UNMERGEABLE 13
-#define MADV_HUGEPAGE    14
-#define MADV_NOHUGEPAGE  15
-#define MADV_DONTDUMP    16
-#define MADV_DODUMP      17
-#define MADV_HWPOISON    100
-#define MADV_SOFT_OFFLINE 101
-
-#define MREMAP_MAYMOVE  1
-#define MREMAP_FIXED    2
-#endif
diff --git a/include/api/x64/bits/mman.h b/include/api/x64/bits/mman.h
new file mode 120000
index 00000000..80a5261f
--- /dev/null
+++ b/include/api/x64/bits/mman.h
@@ -0,0 +1 @@
+../../../../musl/arch/x86_64/bits/mman.h
\ No newline at end of file
diff --git a/libc/mman.cc b/libc/mman.cc
index d0803ac4..f0b8bc11 100644
--- a/libc/mman.cc
+++ b/libc/mman.cc
@@ -15,6 +15,7 @@
 #include "osv/mount.h"
 #include "libc/libc.hh"
 #include <safe-ptr.hh>
+#include <bits/__mman.h>
 
 TRACEPOINT(trace_memory_mmap, "addr=%p, length=%d, prot=%d, flags=%d, fd=%d, 
offset=%d", void *, size_t, int, int, int, off_t);
 TRACEPOINT(trace_memory_mmap_err, "%d", int);
-- 
2.26.2

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/20200829042859.573695-1-jwkozaczuk%40gmail.com.

Reply via email to