1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _LINUX_SHM_H_ 3 #define _LINUX_SHM_H_ 4 5 #include <linux/types.h> 6 #include <asm/page.h> 7 #include <asm/shmparam.h> 8 9 struct file; 10 struct task_struct; 11 12 #ifdef CONFIG_SYSVIPC 13 struct sysv_shm { 14 struct list_head shm_clist; 15 }; 16 17 long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr, 18 unsigned long shmlba); 19 void exit_shm(struct task_struct *task); 20 #define shm_init_task(task) INIT_LIST_HEAD(&(task)->sysvshm.shm_clist) 21 #else 22 struct sysv_shm { 23 /* empty */ 24 }; 25 26 static inline long do_shmat(int shmid, char __user *shmaddr, 27 int shmflg, unsigned long *addr, 28 unsigned long shmlba) 29 { 30 return -ENOSYS; 31 } 32 static inline void exit_shm(struct task_struct *task) 33 { 34 } 35 static inline void shm_init_task(struct task_struct *task) 36 { 37 } 38 #endif 39 40 #endif /* _LINUX_SHM_H_ */ 41