123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #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 file;
- #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;
- }
- static inline bool is_file_shm_hugepages(struct file *file)
- {
- return false;
- }
- static inline void exit_shm(struct task_struct *task)
- {
- }
- static inline void shm_init_task(struct task_struct *task)
- {
- }
- #endif
- #endif /* _LINUX_SHM_H_ */
|