linux/include/uapi/asm-generic/shmbuf.h
<<
>>
Prefs
   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
  25struct 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
  47struct 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 */
  60