]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4re-core/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/hppa/bits/mman.h
Update
[l4.git] / l4 / pkg / l4re-core / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / hppa / bits / mman.h
1 /* Definitions for POSIX memory map interface.  Linux/HPPA version.
2    Copyright (C) 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <http://www.gnu.org/licenses/>.  */
18
19 #ifndef _SYS_MMAN_H
20 # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
21 #endif
22
23 /* these are basically taken from the kernel definitions */
24
25 #define PROT_READ       0x1             /* page can be read */
26 #define PROT_WRITE      0x2             /* page can be written */
27 #define PROT_EXEC       0x4             /* page can be executed */
28 #define PROT_NONE       0x0             /* page can not be accessed */
29 #define PROT_GROWSDOWN  0x01000000      /* Extend change to start of
30                                            growsdown vma (mprotect only).  */
31 #define PROT_GROWSUP    0x02000000      /* Extend change to start of
32                                            growsup vma (mprotect only).  */
33
34 #define MAP_SHARED      0x01            /* Share changes */
35 #define MAP_PRIVATE     0x02            /* Changes are private */
36 #define MAP_TYPE        0x03            /* Mask for type of mapping */
37 #define MAP_FIXED       0x04            /* Interpret addr exactly */
38 #define MAP_ANONYMOUS   0x10            /* don't use a file */
39
40 #define MAP_DENYWRITE   0x0800          /* ETXTBSY */
41 #define MAP_EXECUTABLE  0x1000          /* mark it as an executable */
42 #define MAP_LOCKED      0x2000          /* pages are locked */
43 #define MAP_NORESERVE   0x4000          /* don't check for reservations */
44 #define MAP_GROWSDOWN   0x8000          /* stack-like segment */
45 #define MAP_POPULATE    0x10000         /* populate (prefault) pagetables */
46 #define MAP_NONBLOCK    0x20000         /* do not block on IO */
47 #define MAP_UNINITIALIZED 0x4000000     /* For anonymous mmap, memory could
48                                           be uninitialized. */
49
50 #define MS_SYNC         1               /* synchronous memory sync */
51 #define MS_ASYNC        2               /* sync memory asynchronously */
52 #define MS_INVALIDATE   4               /* invalidate the caches */
53
54 #define MCL_CURRENT     1               /* lock all current mappings */
55 #define MCL_FUTURE      2               /* lock all future mappings */
56
57 /* Advice to "madvise" */
58 #ifdef __USE_BSD
59 # define MADV_NORMAL      0     /* no further special treatment */
60 # define MADV_RANDOM      1     /* expect random page references */
61 # define MADV_SEQUENTIAL  2     /* expect sequential page references */
62 # define MADV_WILLNEED    3     /* will need these pages */
63 # define MADV_DONTNEED    4     /* dont need these pages */
64 # define MADV_SPACEAVAIL  5     /* insure that resources are reserved */
65 # define MADV_VPS_PURGE   6     /* Purge pages from VM page cache */
66 # define MADV_VPS_INHERIT 7     /* Inherit parents page size */
67 # define MADV_REMOVE      9     /* Remove these pages and resources.  */
68 # define MADV_DONTFORK   10     /* Do not inherit across fork.  */
69 # define MADV_DOFORK     11     /* Do inherit across fork.  */
70 #endif
71
72 /* The range 12-64 is reserved for page size specification. */
73 #define MADV_4K_PAGES   12              /* Use 4K pages  */
74 #define MADV_16K_PAGES  14              /* Use 16K pages */
75 #define MADV_64K_PAGES  16              /* Use 64K pages */
76 #define MADV_256K_PAGES 18              /* Use 256K pages */
77 #define MADV_1M_PAGES   20              /* Use 1 Megabyte pages */
78 #define MADV_4M_PAGES   22              /* Use 4 Megabyte pages */
79 #define MADV_16M_PAGES  24              /* Use 16 Megabyte pages */
80 #define MADV_64M_PAGES  26              /* Use 64 Megabyte pages */
81
82 /* compatibility flags */
83 #define MAP_ANON        MAP_ANONYMOUS
84 #define MAP_FILE        0
85 #define MAP_VARIABLE    0
86
87 /* Flags for `mremap'.  */
88 #ifdef __USE_GNU
89 # define MREMAP_MAYMOVE 1
90 # define MREMAP_FIXED   2
91 #endif
92
93