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
9struct file;
10struct task_struct;
11
12#ifdef CONFIG_SYSVIPC
13struct sysv_shm {
14 struct list_head shm_clist;
15};
16
17long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr,
18 unsigned long shmlba);
19void exit_shm(struct task_struct *task);
20#define shm_init_task(task) INIT_LIST_HEAD(&(task)->sysvshm.shm_clist)
21#else
22struct sysv_shm {
23 /* empty */
24};
25
26static inline long do_shmat(int shmid, char __user *shmaddr,
27 int shmflg, unsigned long *addr,
28 unsigned long shmlba)
29{
30 return -ENOSYS;
31}
32static inline void exit_shm(struct task_struct *task)
33{
34}
35static inline void shm_init_task(struct task_struct *task)
36{
37}
38#endif
39
40#endif /* _LINUX_SHM_H_ */
41