linux/include/uapi/asm-generic/msgbuf.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef __ASM_GENERIC_MSGBUF_H
   3#define __ASM_GENERIC_MSGBUF_H
   4
   5#include <asm/bitsperlong.h>
   6#include <asm/ipcbuf.h>
   7
   8/*
   9 * generic msqid64_ds structure.
  10 *
  11 * Note extra padding because this structure is passed back and forth
  12 * between kernel and user space.
  13 *
  14 * msqid64_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 * Pad space is left for:
  23 * - 2 miscellaneous 32-bit values
  24 */
  25
  26struct msqid64_ds {
  27        struct ipc64_perm msg_perm;
  28#if __BITS_PER_LONG == 64
  29        long             msg_stime;     /* last msgsnd time */
  30        long             msg_rtime;     /* last msgrcv time */
  31        long             msg_ctime;     /* last change time */
  32#else
  33        unsigned long   msg_stime;      /* last msgsnd time */
  34        unsigned long   msg_stime_high;
  35        unsigned long   msg_rtime;      /* last msgrcv time */
  36        unsigned long   msg_rtime_high;
  37        unsigned long   msg_ctime;      /* last change time */
  38        unsigned long   msg_ctime_high;
  39#endif
  40        unsigned long   msg_cbytes;     /* current number of bytes on queue */
  41        unsigned long   msg_qnum;       /* number of messages in queue */
  42        unsigned long    msg_qbytes;    /* max number of bytes on queue */
  43        __kernel_pid_t msg_lspid;       /* pid of last msgsnd */
  44        __kernel_pid_t msg_lrpid;       /* last receive pid */
  45        unsigned long    __unused4;
  46        unsigned long    __unused5;
  47};
  48
  49#endif /* __ASM_GENERIC_MSGBUF_H */
  50