about summary refs log tree commit diff
path: root/arch/arm/bits/mman.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-09-18 16:44:54 -0400
committerRich Felker <dalias@aerifal.cx>2011-09-18 16:44:54 -0400
commitd960d4f2cbf18ff3476c7ac03698ec253885dd8e (patch)
treec7570054ccddf4febc86c046a0b90b3021d1a457 /arch/arm/bits/mman.h
parent4f4bf0ad2e8c729de92db06318b9614ab2cdcc5c (diff)
downloadmusl-d960d4f2cbf18ff3476c7ac03698ec253885dd8e.tar.gz
musl-d960d4f2cbf18ff3476c7ac03698ec253885dd8e.tar.xz
musl-d960d4f2cbf18ff3476c7ac03698ec253885dd8e.zip
initial commit of the arm port
this port assumes eabi calling conventions, eabi linux syscall
convention, and presence of the kernel helpers at 0xffff0f?0 needed
for threads support. otherwise it makes very few assumptions, and the
code should work even on armv4 without thumb support, as well as on
systems with thumb interworking. the bits headers declare this a
little endian system, but as far as i can tell the code should work
equally well on big endian.

some small details are probably broken; so far, testing has been
limited to qemu/aboriginal linux.
Diffstat (limited to 'arch/arm/bits/mman.h')
-rw-r--r--arch/arm/bits/mman.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/bits/mman.h b/arch/arm/bits/mman.h
new file mode 100644
index 00000000..302044eb
--- /dev/null
+++ b/arch/arm/bits/mman.h
@@ -0,0 +1,50 @@
+#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 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
+
+#ifdef _GNU_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_HWPOISON    100
+
+#define MREMAP_MAYMOVE  1
+#define MREMAP_FIXED    2
+#endif