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 <jwkozac...@gmail.com>
---
 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 osv-dev+unsubscr...@googlegroups.com.
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