1 |
1275 |
phoenix |
/*
|
2 |
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
3 |
|
|
* License. See the file "COPYING" in the main directory of this archive
|
4 |
|
|
* for more details.
|
5 |
|
|
*
|
6 |
|
|
* Copyright (C) 1995, 1999 by Ralf Baechle
|
7 |
|
|
*/
|
8 |
|
|
#ifndef _ASM_MMAN_H
|
9 |
|
|
#define _ASM_MMAN_H
|
10 |
|
|
|
11 |
|
|
/*
|
12 |
|
|
* Protections are chosen from these bits, OR'd together. The
|
13 |
|
|
* implementation does not necessarily support PROT_EXEC or PROT_WRITE
|
14 |
|
|
* without PROT_READ. The only guarantees are that no writing will be
|
15 |
|
|
* allowed without PROT_WRITE and no access will be allowed for PROT_NONE.
|
16 |
|
|
*/
|
17 |
|
|
#define PROT_NONE 0x0 /* page can not be accessed */
|
18 |
|
|
#define PROT_READ 0x1 /* page can be read */
|
19 |
|
|
#define PROT_WRITE 0x2 /* page can be written */
|
20 |
|
|
#define PROT_EXEC 0x4 /* page can be executed */
|
21 |
|
|
|
22 |
|
|
/*
|
23 |
|
|
* Flags for mmap
|
24 |
|
|
*/
|
25 |
|
|
#define MAP_SHARED 0x001 /* Share changes */
|
26 |
|
|
#define MAP_PRIVATE 0x002 /* Changes are private */
|
27 |
|
|
#define MAP_TYPE 0x00f /* Mask for type of mapping */
|
28 |
|
|
#define MAP_FIXED 0x010 /* Interpret addr exactly */
|
29 |
|
|
|
30 |
|
|
/* not used by linux, but here to make sure we don't clash with ABI defines */
|
31 |
|
|
#define MAP_RENAME 0x020 /* Assign page to file */
|
32 |
|
|
#define MAP_AUTOGROW 0x040 /* File may grow by writing */
|
33 |
|
|
#define MAP_LOCAL 0x080 /* Copy on fork/sproc */
|
34 |
|
|
#define MAP_AUTORSRV 0x100 /* Logical swap reserved on demand */
|
35 |
|
|
|
36 |
|
|
/* These are linux-specific */
|
37 |
|
|
#define MAP_NORESERVE 0x0400 /* don't check for reservations */
|
38 |
|
|
#define MAP_ANONYMOUS 0x0800 /* don't use a file */
|
39 |
|
|
#define MAP_GROWSDOWN 0x1000 /* stack-like segment */
|
40 |
|
|
#define MAP_DENYWRITE 0x2000 /* ETXTBSY */
|
41 |
|
|
#define MAP_EXECUTABLE 0x4000 /* mark it as an executable */
|
42 |
|
|
#define MAP_LOCKED 0x8000 /* pages are locked */
|
43 |
|
|
|
44 |
|
|
/*
|
45 |
|
|
* Flags for msync
|
46 |
|
|
*/
|
47 |
|
|
#define MS_ASYNC 0x0001 /* sync memory asynchronously */
|
48 |
|
|
#define MS_INVALIDATE 0x0002 /* invalidate mappings & caches */
|
49 |
|
|
#define MS_SYNC 0x0004 /* synchronous memory sync */
|
50 |
|
|
|
51 |
|
|
/*
|
52 |
|
|
* Flags for mlockall
|
53 |
|
|
*/
|
54 |
|
|
#define MCL_CURRENT 1 /* lock all current mappings */
|
55 |
|
|
#define MCL_FUTURE 2 /* lock all future mappings */
|
56 |
|
|
|
57 |
|
|
#define MADV_NORMAL 0x0 /* default page-in behavior */
|
58 |
|
|
#define MADV_RANDOM 0x1 /* page-in minimum required */
|
59 |
|
|
#define MADV_SEQUENTIAL 0x2 /* read-ahead aggressively */
|
60 |
|
|
#define MADV_WILLNEED 0x3 /* pre-fault pages */
|
61 |
|
|
#define MADV_DONTNEED 0x4 /* discard these pages */
|
62 |
|
|
|
63 |
|
|
/* compatibility flags */
|
64 |
|
|
#define MAP_ANON MAP_ANONYMOUS
|
65 |
|
|
#define MAP_FILE 0
|
66 |
|
|
|
67 |
|
|
#endif /* _ASM_MMAN_H */
|