linux-headers (unknown)

(root)/
include/
asm-generic/
shmbuf.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef __ASM_GENERIC_SHMBUF_H
       3  #define __ASM_GENERIC_SHMBUF_H
       4  
       5  #include <asm/bitsperlong.h>
       6  #include <asm/ipcbuf.h>
       7  #include <asm/posix_types.h>
       8  
       9  /*
      10   * The shmid64_ds structure for x86 architecture.
      11   * Note extra padding because this structure is passed back and forth
      12   * between kernel and user space.
      13   *
      14   * shmid64_ds was originally meant to be architecture specific, but
      15   * everyone just ended up making identical copies without specific
      16   * optimizations, so we may just as well all use the same one.
      17   *
      18   * 64 bit architectures use a 64-bit long time field here, while
      19   * 32 bit architectures have a pair of unsigned long values.
      20   * On big-endian systems, the lower half is in the wrong place.
      21   *
      22   *
      23   * Pad space is left for:
      24   * - 2 miscellaneous 32-bit values
      25   */
      26  
      27  struct shmid64_ds {
      28  	struct ipc64_perm	shm_perm;	/* operation perms */
      29  	__kernel_size_t		shm_segsz;	/* size of segment (bytes) */
      30  #if __BITS_PER_LONG == 64
      31  	long			shm_atime;	/* last attach time */
      32  	long			shm_dtime;	/* last detach time */
      33  	long			shm_ctime;	/* last change time */
      34  #else
      35  	unsigned long		shm_atime;	/* last attach time */
      36  	unsigned long		shm_atime_high;
      37  	unsigned long		shm_dtime;	/* last detach time */
      38  	unsigned long		shm_dtime_high;
      39  	unsigned long		shm_ctime;	/* last change time */
      40  	unsigned long		shm_ctime_high;
      41  #endif
      42  	__kernel_pid_t		shm_cpid;	/* pid of creator */
      43  	__kernel_pid_t		shm_lpid;	/* pid of last operator */
      44  	unsigned long		shm_nattch;	/* no. of current attaches */
      45  	unsigned long		__unused4;
      46  	unsigned long		__unused5;
      47  };
      48  
      49  struct shminfo64 {
      50  	unsigned long		shmmax;
      51  	unsigned long		shmmin;
      52  	unsigned long		shmmni;
      53  	unsigned long		shmseg;
      54  	unsigned long		shmall;
      55  	unsigned long		__unused1;
      56  	unsigned long		__unused2;
      57  	unsigned long		__unused3;
      58  	unsigned long		__unused4;
      59  };
      60  
      61  #endif /* __ASM_GENERIC_SHMBUF_H */