linux/include/uapi/asm-generic/sembuf.h
<<
>>
Prefs
   1#ifndef __ASM_GENERIC_SEMBUF_H
   2#define __ASM_GENERIC_SEMBUF_H
   3
   4#include <asm/bitsperlong.h>
   5
   6/*
   7 * The semid64_ds structure for x86 architecture.
   8 * Note extra padding because this structure is passed back and forth
   9 * between kernel and user space.
  10 *
  11 * semid64_ds was originally meant to be architecture specific, but
  12 * everyone just ended up making identical copies without specific
  13 * optimizations, so we may just as well all use the same one.
  14 *
  15 * 64 bit architectures typically define a 64 bit __kernel_time_t,
  16 * so they do not need the first two padding words.
  17 * On big-endian systems, the padding is in the wrong place.
  18 *
  19 * Pad space is left for:
  20 * - 64-bit time_t to solve y2038 problem
  21 * - 2 miscellaneous 32-bit values
  22 */
  23struct semid64_ds {
  24        struct ipc64_perm sem_perm;     /* permissions .. see ipc.h */
  25        __kernel_time_t sem_otime;      /* last semop time */
  26#if __BITS_PER_LONG != 64
  27        unsigned long   __unused1;
  28#endif
  29        __kernel_time_t sem_ctime;      /* last change time */
  30#if __BITS_PER_LONG != 64
  31        unsigned long   __unused2;
  32#endif
  33        unsigned long   sem_nsems;      /* no. of semaphores in array */
  34        unsigned long   __unused3;
  35        unsigned long   __unused4;
  36};
  37
  38#endif /* __ASM_GENERIC_SEMBUF_H */
  39