1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _PARISC_SHMBUF_H 3 #define _PARISC_SHMBUF_H 4 5 #include <asm/bitsperlong.h> 6 7 /* 8 * The shmid64_ds structure for parisc architecture. 9 * Note extra padding because this structure is passed back and forth 10 * between kernel and user space. 11 * 12 * Pad space is left for: 13 * - 64-bit time_t to solve y2038 problem 14 * - 2 miscellaneous 32-bit values 15 */ 16 17 struct shmid64_ds { 18 struct ipc64_perm shm_perm; /* operation perms */ 19 #if __BITS_PER_LONG != 64 20 unsigned int __pad1; 21 #endif 22 __kernel_time_t shm_atime; /* last attach time */ 23 #if __BITS_PER_LONG != 64 24 unsigned int __pad2; 25 #endif 26 __kernel_time_t shm_dtime; /* last detach time */ 27 #if __BITS_PER_LONG != 64 28 unsigned int __pad3; 29 #endif 30 __kernel_time_t shm_ctime; /* last change time */ 31 #if __BITS_PER_LONG != 64 32 unsigned int __pad4; 33 #endif 34 __kernel_size_t shm_segsz; /* size of segment (bytes) */ 35 __kernel_pid_t shm_cpid; /* pid of creator */ 36 __kernel_pid_t shm_lpid; /* pid of last operator */ 37 unsigned long shm_nattch; /* no. of current attaches */ 38 unsigned long __unused1; 39 unsigned long __unused2; 40 }; 41 42 struct shminfo64 { 43 unsigned long shmmax; 44 unsigned long shmmin; 45 unsigned long shmmni; 46 unsigned long shmseg; 47 unsigned long shmall; 48 unsigned long __unused1; 49 unsigned long __unused2; 50 unsigned long __unused3; 51 unsigned long __unused4; 52 }; 53 54 #endif /* _PARISC_SHMBUF_H */ 55