On Sat, Aug 29, 2020 at 7:29 AM Waldemar Kozaczuk <[email protected]> wrote:
> 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. > I'm afraid that nobody will remember what's the point of this extra "__mman.h". I have a different proposal, I wonder what you think of it. In libc/mman.cc, the only place in our code that uses MAP_UNINITIALIZED, we could add the following lines: // MAP_UNINITIALIZED is available in Linux's header files, but not defined in Musl's header file #ifndef MAP_UNINITIALIZED #define MAP_UNINITIALIZED 0x4000000 #endif If one day, Musl does add MAP_UNINITIALIZED, we won't need to change anything. > > 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 > . > -- 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/CANEVyjtNL_j6MGHsi5uymUx75YwV8Wh%3DkwABWb%3DHFws9-ESjFA%40mail.gmail.com.
