xref: /linux/arch/x86/include/uapi/asm/sembuf.h (revision e9f0878c4b2004ac19581274c1ae4c61ae3ca70e)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _ASM_X86_SEMBUF_H
3 #define _ASM_X86_SEMBUF_H
4 
5 /*
6  * The semid64_ds structure for x86 architecture.
7  * Note extra padding because this structure is passed back and forth
8  * between kernel and user space.
9  *
10  * Pad space is left for:
11  * - 2 miscellaneous 32-bit values
12  *
13  * x86_64 and x32 incorrectly added padding here, so the structures
14  * are still incompatible with the padding on x86.
15  */
16 struct semid64_ds {
17 	struct ipc64_perm sem_perm;	/* permissions .. see ipc.h */
18 #ifdef __i386__
19 	unsigned long	sem_otime;	/* last semop time */
20 	unsigned long	sem_otime_high;
21 	unsigned long	sem_ctime;	/* last change time */
22 	unsigned long	sem_ctime_high;
23 #else
24 	__kernel_time_t	sem_otime;	/* last semop time */
25 	__kernel_ulong_t __unused1;
26 	__kernel_time_t	sem_ctime;	/* last change time */
27 	__kernel_ulong_t __unused2;
28 #endif
29 	__kernel_ulong_t sem_nsems;	/* no. of semaphores in array */
30 	__kernel_ulong_t __unused3;
31 	__kernel_ulong_t __unused4;
32 };
33 
34 #endif /* _ASM_X86_SEMBUF_H */
35