• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/usr/include/bits/
1/* Definitions for POSIX memory map interface.  Linux/generic version.
2   Copyright (C) 1997,2000,2003,2005,2006,2009 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, write to the Free
17   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   02111-1307 USA.  */
19
20#ifndef _SYS_MMAN_H
21# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
22#endif
23
24/* The following definitions basically come from the kernel headers.
25   But the kernel header is not namespace clean.  */
26
27
28/* Protections are chosen from these bits, OR'd together.  The
29   implementation does not necessarily support PROT_EXEC or PROT_WRITE
30   without PROT_READ.  The only guarantees are that no writing will be
31   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
32
33#define PROT_READ	0x1		/* Page can be read.  */
34#define PROT_WRITE	0x2		/* Page can be written.  */
35#define PROT_EXEC	0x4		/* Page can be executed.  */
36#define PROT_NONE	0x0		/* Page can not be accessed.  */
37#define PROT_GROWSDOWN	0x01000000	/* Extend change to start of
38					   growsdown vma (mprotect only).  */
39#define PROT_GROWSUP	0x02000000	/* Extend change to start of
40					   growsup vma (mprotect only).  */
41
42/* Sharing types (must choose one and only one of these).  */
43#define MAP_SHARED	0x01		/* Share changes.  */
44#define MAP_PRIVATE	0x02		/* Changes are private.  */
45#ifdef __USE_MISC
46# define MAP_TYPE	0x0f		/* Mask for type of mapping.  */
47#endif
48
49/* Other flags.  */
50#define MAP_FIXED	0x10		/* Interpret addr exactly.  */
51#ifdef __USE_MISC
52# define MAP_FILE	0
53# define MAP_ANONYMOUS	0x20		/* Don't use a file.  */
54# define MAP_ANON	MAP_ANONYMOUS
55#endif
56
57/* These are Linux-specific.  */
58#ifdef __USE_MISC
59# define MAP_GROWSDOWN	0x00100		/* Stack-like segment.  */
60# define MAP_DENYWRITE	0x00800		/* ETXTBSY */
61# define MAP_EXECUTABLE	0x01000		/* Mark it as an executable.  */
62# define MAP_LOCKED	0x02000		/* Lock the mapping.  */
63# define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */
64# define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */
65# define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
66# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
67# define MAP_UNINITIALIZE 0x4000000     /* For anonymous mmap, memory could
68					   be uninitialized. */
69#endif
70
71/* Flags to `msync'.  */
72#define MS_ASYNC	1		/* Sync memory asynchronously.  */
73#define MS_SYNC		4		/* Synchronous memory sync.  */
74#define MS_INVALIDATE	2		/* Invalidate the caches.  */
75
76/* Flags for `mlockall'.  */
77#define MCL_CURRENT	1		/* Lock all currently mapped pages.  */
78#define MCL_FUTURE	2		/* Lock all additions to address
79					   space.  */
80
81/* Flags for `mremap'.  */
82#ifdef __USE_GNU
83# define MREMAP_MAYMOVE	1
84# define MREMAP_FIXED	2
85#endif
86
87/* Advice to `madvise'.  */
88#ifdef __USE_BSD
89# define MADV_NORMAL	  0	/* No further special treatment.  */
90# define MADV_RANDOM	  1	/* Expect random page references.  */
91# define MADV_SEQUENTIAL  2	/* Expect sequential page references.  */
92# define MADV_WILLNEED	  3	/* Will need these pages.  */
93# define MADV_DONTNEED	  4	/* Don't need these pages.  */
94# define MADV_REMOVE	  9	/* Remove these pages and resources.  */
95# define MADV_DONTFORK	  10	/* Do not inherit across fork.  */
96# define MADV_DOFORK	  11	/* Do inherit across fork.  */
97# define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
98# define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
99# define MADV_HWPOISON	  100	/* Poison a page for testing.  */
100#endif
101
102/* The POSIX people had to invent similar names for the same things.  */
103#ifdef __USE_XOPEN2K
104# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */
105# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */
106# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */
107# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */
108# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */
109#endif
110