Home | History | Annotate | Download | only in asm
      1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2 #ifndef _ASM_SHMBUF_H
      3 #define _ASM_SHMBUF_H
      4 
      5 /*
      6  * The shmid64_ds structure for the MIPS architecture.
      7  * Note extra padding because this structure is passed back and forth
      8  * between kernel and user space.
      9  *
     10  * As MIPS was lacking proper padding after shm_?time, we use 48 bits
     11  * of the padding at the end to store a few additional bits of the time.
     12  * libc implementations need to take care to convert this into a proper
     13  * data structure when moving to 64-bit time_t.
     14  */
     15 
     16 #ifdef __mips64
     17 struct shmid64_ds {
     18 	struct ipc64_perm	shm_perm;	/* operation perms */
     19 	size_t			shm_segsz;	/* size of segment (bytes) */
     20 	__kernel_time_t		shm_atime;	/* last attach time */
     21 	__kernel_time_t		shm_dtime;	/* last detach time */
     22 	__kernel_time_t		shm_ctime;	/* last change time */
     23 	__kernel_pid_t		shm_cpid;	/* pid of creator */
     24 	__kernel_pid_t		shm_lpid;	/* pid of last operator */
     25 	unsigned long		shm_nattch;	/* no. of current attaches */
     26 	unsigned long		__unused1;
     27 	unsigned long		__unused2;
     28 };
     29 #else
     30 struct shmid64_ds {
     31 	struct ipc64_perm	shm_perm;	/* operation perms */
     32 	size_t			shm_segsz;	/* size of segment (bytes) */
     33 	unsigned long		shm_atime;	/* last attach time */
     34 	unsigned long		shm_dtime;	/* last detach time */
     35 	unsigned long		shm_ctime;	/* last change time */
     36 	__kernel_pid_t		shm_cpid;	/* pid of creator */
     37 	__kernel_pid_t		shm_lpid;	/* pid of last operator */
     38 	unsigned long		shm_nattch;	/* no. of current attaches */
     39 	unsigned short		shm_atime_high;
     40 	unsigned short		shm_dtime_high;
     41 	unsigned short		shm_ctime_high;
     42 	unsigned short		__unused1;
     43 };
     44 #endif
     45 
     46 struct shminfo64 {
     47 	unsigned long	shmmax;
     48 	unsigned long	shmmin;
     49 	unsigned long	shmmni;
     50 	unsigned long	shmseg;
     51 	unsigned long	shmall;
     52 	unsigned long	__unused1;
     53 	unsigned long	__unused2;
     54 	unsigned long	__unused3;
     55 	unsigned long	__unused4;
     56 };
     57 
     58 #endif /* _ASM_SHMBUF_H */
     59