|
2 | 2 | #ifndef _LINUX_SEM_H
|
3 | 3 | #define _LINUX_SEM_H
|
4 | 4 |
|
5 |
| -#include <linux/atomic.h> |
6 |
| -#include <linux/rcupdate.h> |
7 |
| -#include <linux/cache.h> |
8 |
| -#include <linux/time64.h> |
9 | 5 | #include <uapi/linux/sem.h>
|
10 | 6 |
|
11 | 7 | struct task_struct;
|
12 |
| - |
13 |
| -/* One semaphore structure for each semaphore in the system. */ |
14 |
| -struct sem { |
15 |
| - int semval; /* current value */ |
16 |
| - /* |
17 |
| - * PID of the process that last modified the semaphore. For |
18 |
| - * Linux, specifically these are: |
19 |
| - * - semop |
20 |
| - * - semctl, via SETVAL and SETALL. |
21 |
| - * - at task exit when performing undo adjustments (see exit_sem). |
22 |
| - */ |
23 |
| - int sempid; |
24 |
| - spinlock_t lock; /* spinlock for fine-grained semtimedop */ |
25 |
| - struct list_head pending_alter; /* pending single-sop operations */ |
26 |
| - /* that alter the semaphore */ |
27 |
| - struct list_head pending_const; /* pending single-sop operations */ |
28 |
| - /* that do not alter the semaphore*/ |
29 |
| - time_t sem_otime; /* candidate for sem_otime */ |
30 |
| -} ____cacheline_aligned_in_smp; |
31 |
| - |
32 |
| -/* One sem_array data structure for each set of semaphores in the system. */ |
33 |
| -struct sem_array { |
34 |
| - struct kern_ipc_perm sem_perm; /* permissions .. see ipc.h */ |
35 |
| - time64_t sem_ctime; /* create/last semctl() time */ |
36 |
| - struct list_head pending_alter; /* pending operations */ |
37 |
| - /* that alter the array */ |
38 |
| - struct list_head pending_const; /* pending complex operations */ |
39 |
| - /* that do not alter semvals */ |
40 |
| - struct list_head list_id; /* undo requests on this array */ |
41 |
| - int sem_nsems; /* no. of semaphores in array */ |
42 |
| - int complex_count; /* pending complex operations */ |
43 |
| - unsigned int use_global_lock;/* >0: global lock required */ |
44 |
| - |
45 |
| - struct sem sems[]; |
46 |
| -} __randomize_layout; |
| 8 | +struct sem_undo_list; |
47 | 9 |
|
48 | 10 | #ifdef CONFIG_SYSVIPC
|
49 | 11 |
|
|
0 commit comments