root/include/uapi/asm-generic/shmbuf.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
   7 /*
   8  * The shmid64_ds structure for x86 architecture.
   9  * Note extra padding because this structure is passed back and forth
  10  * between kernel and user space.
  11  *
  12  * shmid64_ds was originally meant to be architecture specific, but
  13  * everyone just ended up making identical copies without specific
  14  * optimizations, so we may just as well all use the same one.
  15  *
  16  * 64 bit architectures typically define a 64 bit __kernel_time_t,
  17  * so they do not need the first two padding words.
  18  * On big-endian systems, the padding is in the wrong place.
  19  *
  20  *
  21  * Pad space is left for:
  22  * - 2 miscellaneous 32-bit values
  23  */
  24 
  25 struct shmid64_ds {
  26         struct ipc64_perm       shm_perm;       /* operation perms */
  27         size_t                  shm_segsz;      /* size of segment (bytes) */
  28 #if __BITS_PER_LONG == 64
  29         __kernel_time_t         shm_atime;      /* last attach time */
  30         __kernel_time_t         shm_dtime;      /* last detach time */
  31         __kernel_time_t         shm_ctime;      /* last change time */
  32 #else
  33         unsigned long           shm_atime;      /* last attach time */
  34         unsigned long           shm_atime_high;
  35         unsigned long           shm_dtime;      /* last detach time */
  36         unsigned long           shm_dtime_high;
  37         unsigned long           shm_ctime;      /* last change time */
  38         unsigned long           shm_ctime_high;
  39 #endif
  40         __kernel_pid_t          shm_cpid;       /* pid of creator */
  41         __kernel_pid_t          shm_lpid;       /* pid of last operator */
  42         unsigned long           shm_nattch;     /* no. of current attaches */
  43         unsigned long           __unused4;
  44         unsigned long           __unused5;
  45 };
  46 
  47 struct shminfo64 {
  48         unsigned long           shmmax;
  49         unsigned long           shmmin;
  50         unsigned long           shmmni;
  51         unsigned long           shmseg;
  52         unsigned long           shmall;
  53         unsigned long           __unused1;
  54         unsigned long           __unused2;
  55         unsigned long           __unused3;
  56         unsigned long           __unused4;
  57 };
  58 
  59 #endif /* __ASM_GENERIC_SHMBUF_H */

/* [<][>][^][v][top][bottom][index][help] */