linux/include/uapi/asm-generic/msgbuf.h
<<
>>
Prefs
   1#ifndef __ASM_GENERIC_MSGBUF_H
   2#define __ASM_GENERIC_MSGBUF_H
   3
   4#include <asm/bitsperlong.h>
   5/*
   6 * generic msqid64_ds structure.
   7 *
   8 * Note extra padding because this structure is passed back and forth
   9 * between kernel and user space.
  10 *
  11 * msqid64_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 three 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 */
  23
  24struct msqid64_ds {
  25        struct ipc64_perm msg_perm;
  26        __kernel_time_t msg_stime;      /* last msgsnd time */
  27#if __BITS_PER_LONG != 64
  28        unsigned long   __unused1;
  29#endif
  30        __kernel_time_t msg_rtime;      /* last msgrcv time */
  31#if __BITS_PER_LONG != 64
  32        unsigned long   __unused2;
  33#endif
  34        __kernel_time_t msg_ctime;      /* last change time */
  35#if __BITS_PER_LONG != 64
  36        unsigned long   __unused3;
  37#endif
  38        __kernel_ulong_t msg_cbytes;    /* current number of bytes on queue */
  39        __kernel_ulong_t msg_qnum;      /* number of messages in queue */
  40        __kernel_ulong_t msg_qbytes;    /* max number of bytes on queue */
  41        __kernel_pid_t msg_lspid;       /* pid of last msgsnd */
  42        __kernel_pid_t msg_lrpid;       /* last receive pid */
  43        __kernel_ulong_t __unused4;
  44        __kernel_ulong_t __unused5;
  45};
  46
  47#endif /* __ASM_GENERIC_MSGBUF_H */
  48