diff options
Diffstat (limited to 'include/linux/shm.h')
-rw-r--r-- | include/linux/shm.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/shm.h b/include/linux/shm.h index bcf8a6a3ec00..429c1995d756 100644 --- a/include/linux/shm.h +++ b/include/linux/shm.h | |||
@@ -29,6 +29,21 @@ struct shmid_kernel /* private to the kernel */ | |||
29 | #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ | 29 | #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ |
30 | #define SHM_NORESERVE 010000 /* don't check for reservations */ | 30 | #define SHM_NORESERVE 010000 /* don't check for reservations */ |
31 | 31 | ||
32 | /* Bits [26:31] are reserved */ | ||
33 | |||
34 | /* | ||
35 | * When SHM_HUGETLB is set bits [26:31] encode the log2 of the huge page size. | ||
36 | * This gives us 6 bits, which is enough until someone invents 128 bit address | ||
37 | * spaces. | ||
38 | * | ||
39 | * Assume these are all power of twos. | ||
40 | * When 0 use the default page size. | ||
41 | */ | ||
42 | #define SHM_HUGE_SHIFT 26 | ||
43 | #define SHM_HUGE_MASK 0x3f | ||
44 | #define SHM_HUGE_2MB (21 << SHM_HUGE_SHIFT) | ||
45 | #define SHM_HUGE_1GB (30 << SHM_HUGE_SHIFT) | ||
46 | |||
32 | #ifdef CONFIG_SYSVIPC | 47 | #ifdef CONFIG_SYSVIPC |
33 | long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr, | 48 | long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr, |
34 | unsigned long shmlba); | 49 | unsigned long shmlba); |