2017-11-01 15:07:57 +01:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
2005-04-16 15:20:36 -07:00
|
|
|
#ifndef _LINUX_SHM_H_
|
|
|
|
|
#define _LINUX_SHM_H_
|
|
|
|
|
|
2014-08-08 14:23:19 -07:00
|
|
|
#include <linux/list.h>
|
2005-04-16 15:20:36 -07:00
|
|
|
#include <asm/page.h>
|
2012-10-13 10:46:48 +01:00
|
|
|
#include <uapi/linux/shm.h>
|
2005-04-16 15:20:36 -07:00
|
|
|
#include <asm/shmparam.h>
|
2014-06-06 14:37:42 -07:00
|
|
|
|
2018-03-28 18:41:25 +11:00
|
|
|
struct file;
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
#ifdef CONFIG_SYSVIPC
|
2014-08-08 14:23:19 -07:00
|
|
|
struct sysv_shm {
|
|
|
|
|
struct list_head shm_clist;
|
|
|
|
|
};
|
|
|
|
|
|
2012-07-30 14:42:38 -07:00
|
|
|
long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr,
|
|
|
|
|
unsigned long shmlba);
|
2016-01-20 15:01:11 -08:00
|
|
|
bool is_file_shm_hugepages(struct file *file);
|
2014-08-08 14:23:19 -07:00
|
|
|
void exit_shm(struct task_struct *task);
|
|
|
|
|
#define shm_init_task(task) INIT_LIST_HEAD(&(task)->sysvshm.shm_clist)
|
2005-04-16 15:20:36 -07:00
|
|
|
#else
|
2014-08-08 14:23:19 -07:00
|
|
|
struct sysv_shm {
|
|
|
|
|
/* empty */
|
|
|
|
|
};
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
static inline long do_shmat(int shmid, char __user *shmaddr,
|
2012-07-30 14:42:38 -07:00
|
|
|
int shmflg, unsigned long *addr,
|
|
|
|
|
unsigned long shmlba)
|
2005-04-16 15:20:36 -07:00
|
|
|
{
|
|
|
|
|
return -ENOSYS;
|
|
|
|
|
}
|
2016-01-20 15:01:11 -08:00
|
|
|
static inline bool is_file_shm_hugepages(struct file *file)
|
2007-03-01 15:46:08 -08:00
|
|
|
{
|
2016-01-20 15:01:11 -08:00
|
|
|
return false;
|
2007-03-01 15:46:08 -08:00
|
|
|
}
|
2011-07-26 16:08:48 -07:00
|
|
|
static inline void exit_shm(struct task_struct *task)
|
|
|
|
|
{
|
|
|
|
|
}
|
2014-08-08 14:23:19 -07:00
|
|
|
static inline void shm_init_task(struct task_struct *task)
|
|
|
|
|
{
|
|
|
|
|
}
|
2005-04-16 15:20:36 -07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif /* _LINUX_SHM_H_ */
|