June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 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 | 1 | 2 | 3 | 4 | 5 | 6 |
01: #ifndef __ASM_GENERIC_SEMBUF_H 02: #define __ASM_GENERIC_SEMBUF_H 03: 04: #include <asm/bitsperlong.h> 05: 06: /* 07: * The semid64_ds structure for x86 architecture. 08: * Note extra padding because this structure is passed back and forth 09: * between kernel and user space. 10: * 11: * semid64_ds was originally meant to be architecture specific, but 12: * everyone just ended up making identical copies without specific 13: * optimizations, so we may just as well all use the same one. 14: * 15: * 64 bit architectures typically define a 64 bit __kernel_time_t, 16: * so they do not need the first two padding words. 17: * On big-endian systems, the padding is in the wrong place. 18: * 19: * Pad space is left for: 20: * - 64-bit time_t to solve y2038 problem 21: * - 2 miscellaneous 32-bit values 22: */ 23: struct semid64_ds { 24: struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ 25: __kernel_time_t sem_otime; /* last semop time */ 26: #if __BITS_PER_LONG != 64 27: unsigned long __unused1; 28: #endif 29: __kernel_time_t sem_ctime; /* last change time */ 30: #if __BITS_PER_LONG != 64 31: unsigned long __unused2; 32: #endif 33: unsigned long sem_nsems; /* no. of semaphores in array */ 34: unsigned long __unused3; 35: unsigned long __unused4; 36: }; 37: 38: #endif /* __ASM_GENERIC_SEMBUF_H */ 39: