Merge tag 'for-f2fs-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk...
[sfrench/cifs-2.6.git] / arch / powerpc / include / uapi / asm / mman.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version
5  * 2 of the License, or (at your option) any later version.
6  */
7 #ifndef _UAPI_ASM_POWERPC_MMAN_H
8 #define _UAPI_ASM_POWERPC_MMAN_H
9
10 #include <asm-generic/mman-common.h>
11
12
13 #define PROT_SAO        0x10            /* Strong Access Ordering */
14
15 #define MAP_RENAME      MAP_ANONYMOUS   /* In SunOS terminology */
16 #define MAP_NORESERVE   0x40            /* don't reserve swap pages */
17 #define MAP_LOCKED      0x80
18
19 #define MAP_GROWSDOWN   0x0100          /* stack-like segment */
20 #define MAP_DENYWRITE   0x0800          /* ETXTBSY */
21 #define MAP_EXECUTABLE  0x1000          /* mark it as an executable */
22
23 #define MCL_CURRENT     0x2000          /* lock all currently mapped pages */
24 #define MCL_FUTURE      0x4000          /* lock all additions to address space */
25 #define MCL_ONFAULT     0x8000          /* lock all pages that are faulted in */
26
27 #define MAP_POPULATE    0x8000          /* populate (prefault) pagetables */
28 #define MAP_NONBLOCK    0x10000         /* do not block on IO */
29 #define MAP_STACK       0x20000         /* give out an address that is best suited for process/thread stacks */
30 #define MAP_HUGETLB     0x40000         /* create a huge page mapping */
31
32 /*
33  * When MAP_HUGETLB is set, bits [26:31] of the flags argument to mmap(2),
34  * encode the log2 of the huge page size. A value of zero indicates that the
35  * default huge page size should be used. To use a non-default huge page size,
36  * one of these defines can be used, or the size can be encoded by hand. Note
37  * that on most systems only a subset, or possibly none, of these sizes will be
38  * available.
39  */
40 #define MAP_HUGE_512KB  (19 << MAP_HUGE_SHIFT)  /* 512KB HugeTLB Page */
41 #define MAP_HUGE_1MB    (20 << MAP_HUGE_SHIFT)  /* 1MB   HugeTLB Page */
42 #define MAP_HUGE_2MB    (21 << MAP_HUGE_SHIFT)  /* 2MB   HugeTLB Page */
43 #define MAP_HUGE_8MB    (23 << MAP_HUGE_SHIFT)  /* 8MB   HugeTLB Page */
44 #define MAP_HUGE_16MB   (24 << MAP_HUGE_SHIFT)  /* 16MB  HugeTLB Page */
45 #define MAP_HUGE_1GB    (30 << MAP_HUGE_SHIFT)  /* 1GB   HugeTLB Page */
46 #define MAP_HUGE_16GB   (34 << MAP_HUGE_SHIFT)  /* 16GB  HugeTLB Page */
47
48 #endif /* _UAPI_ASM_POWERPC_MMAN_H */