#ifndef _LINUX_SHM_H_ #define _LINUX_SHM_H_ #include <linux/list.h> #include <asm/page.h> #include <uapi/linux/shm.h> #include <asm/shmparam.h> struct shmid_kernel /* private to the kernel */ { struct kern_ipc_perm shm_perm; struct file *shm_file; unsigned long shm_nattch; unsigned long shm_segsz; time_t shm_atim; time_t shm_dtim; time_t shm_ctim; pid_t shm_cprid; pid_t shm_lprid; struct user_struct *mlock_user; /* The task created the shm object. NULL if the task is dead. */ struct task_struct *shm_creator; struct list_head shm_clist; /* list by creator */ }; /* shm_mode upper byte flags */ #define SHM_DEST 01000 /* segment will be destroyed on last detach */ #define SHM_LOCKED 02000 /* segment will not be swapped */ #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ #define SHM_NORESERVE 010000 /* don't check for reservations */ /* Bits [26:31] are reserved */ /* * When SHM_HUGETLB is set bits [26:31] encode the log2 of the huge page size. * This gives us 6 bits, which is enough until someone invents 128 bit address * spaces. * * Assume these are all power of twos. * When 0 use the default page size. */ #define SHM_HUGE_SHIFT 26 #define SHM_HUGE_MASK 0x3f #define SHM_HUGE_2MB (21 << SHM_HUGE_SHIFT) #define SHM_HUGE_1GB (30 << SHM_HUGE_SHIFT) #ifdef CONFIG_SYSVIPC struct sysv_shm { struct list_head shm_clist; }; long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr, unsigned long shmlba); bool is_file_shm_hugepages(struct file *file); void exit_shm(struct task_struct *task); #define shm_init_task(task) INIT_LIST_HEAD(&(task)->sysvshm.shm_clist) #else struct sysv_shm { /* empty */ };
static inline long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr, unsigned long shmlba) { return -ENOSYS; }Contributors
Person | Tokens | Prop | Commits | CommitProp | |
manfred spraul | manfred spraul | 26 | 83.87% | 1 | 33.33% |
will deacon | will deacon | 4 | 12.90% | 1 | 33.33% |
andrew morton | andrew morton | 1 | 3.23% | 1 | 33.33% |
Total | 31 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
adam litke | adam litke | 13 | 86.67% | 1 | 50.00% |
yaowei bai | yaowei bai | 2 | 13.33% | 1 | 50.00% |
Total | 15 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
vasiliy kulikov | vasiliy kulikov | 11 | 100.00% | 1 | 100.00% |
Total | 11 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
jack miller | jack miller | 11 | 100.00% | 1 | 100.00% |
Total | 11 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
pre-git | pre-git | 44 | 17.39% | 6 | 27.27% |
jack miller | jack miller | 41 | 16.21% | 1 | 4.55% |
greg kroah-hartman | greg kroah-hartman | 38 | 15.02% | 1 | 4.55% |
manfred spraul | manfred spraul | 34 | 13.44% | 1 | 4.55% |
vasiliy kulikov | vasiliy kulikov | 26 | 10.28% | 2 | 9.09% |
adam litke | adam litke | 21 | 8.30% | 1 | 4.55% |
andi kleen | andi kleen | 18 | 7.11% | 1 | 4.55% |
will deacon | will deacon | 8 | 3.16% | 1 | 4.55% |
andrew morton | andrew morton | 6 | 2.37% | 2 | 9.09% |
rik van riel | rik van riel | 5 | 1.98% | 1 | 4.55% |
badari pulavarty | badari pulavarty | 5 | 1.98% | 1 | 4.55% |
yaowei bai | yaowei bai | 3 | 1.19% | 1 | 4.55% |
kirill a. shutemov | kirill a. shutemov | 2 | 0.79% | 1 | 4.55% |
david howells | david howells | 1 | 0.40% | 1 | 4.55% |
linus torvalds | linus torvalds | 1 | 0.40% | 1 | 4.55% |
Total | 253 | 100.00% | 22 | 100.00% |