Blame view

kernel/linux-imx6_3.14.28/include/linux/sem.h 1.25 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  #ifndef _LINUX_SEM_H
  #define _LINUX_SEM_H
  
  #include <linux/atomic.h>
  #include <linux/rcupdate.h>
  #include <linux/cache.h>
  #include <uapi/linux/sem.h>
  
  struct task_struct;
  
  /* One sem_array data structure for each set of semaphores in the system. */
  struct sem_array {
  	struct kern_ipc_perm	____cacheline_aligned_in_smp
  				sem_perm;	/* permissions .. see ipc.h */
  	time_t			sem_ctime;	/* last change time */
  	struct sem		*sem_base;	/* ptr to first semaphore in array */
  	struct list_head	pending_alter;	/* pending operations */
  						/* that alter the array */
  	struct list_head	pending_const;	/* pending complex operations */
  						/* that do not alter semvals */
  	struct list_head	list_id;	/* undo requests on this array */
  	int			sem_nsems;	/* no. of semaphores in array */
  	int			complex_count;	/* pending complex operations */
  };
  
  #ifdef CONFIG_SYSVIPC
  
  struct sysv_sem {
  	struct sem_undo_list *undo_list;
  };
  
  extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk);
  extern void exit_sem(struct task_struct *tsk);
  
  #else
  
  struct sysv_sem {
  	/* empty */
  };
  
  static inline int copy_semundo(unsigned long clone_flags, struct task_struct *tsk)
  {
  	return 0;
  }
  
  static inline void exit_sem(struct task_struct *tsk)
  {
  	return;
  }
  #endif
  
  #endif /* _LINUX_SEM_H */