1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef _LINUX_SEM_H 31da177e4SLinus Torvalds #define _LINUX_SEM_H 41da177e4SLinus Torvalds 5607ca46eSDavid Howells #include <uapi/linux/sem.h> 61da177e4SLinus Torvalds 78c65b4a6STim Schmielau struct task_struct; 81a5c1349SEric W. Biederman struct sem_undo_list; 91da177e4SLinus Torvalds 10f567a185SManfred Spraul #ifdef CONFIG_SYSVIPC 11f567a185SManfred Spraul 121da177e4SLinus Torvalds struct sysv_sem { 131da177e4SLinus Torvalds struct sem_undo_list *undo_list; 141da177e4SLinus Torvalds }; 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); 171da177e4SLinus Torvalds extern void exit_sem(struct task_struct *tsk); 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds #else 20f567a185SManfred Spraul 21f567a185SManfred Spraul struct sysv_sem { 22f567a185SManfred Spraul /* empty */ 23f567a185SManfred Spraul }; 24f567a185SManfred Spraul copy_semundo(unsigned long clone_flags,struct task_struct * tsk)251da177e4SLinus Torvaldsstatic inline int copy_semundo(unsigned long clone_flags, struct task_struct *tsk) 261da177e4SLinus Torvalds { 271da177e4SLinus Torvalds return 0; 281da177e4SLinus Torvalds } 291da177e4SLinus Torvalds exit_sem(struct task_struct * tsk)301da177e4SLinus Torvaldsstatic inline void exit_sem(struct task_struct *tsk) 311da177e4SLinus Torvalds { 321da177e4SLinus Torvalds return; 331da177e4SLinus Torvalds } 341da177e4SLinus Torvalds #endif 351da177e4SLinus Torvalds 361da177e4SLinus Torvalds #endif /* _LINUX_SEM_H */ 37