/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1#ifndef __ASM_GENERIC_MSGBUF_H2#define __ASM_GENERIC_MSGBUF_H34#include <asm/bitsperlong.h>5#include <asm/ipcbuf.h>67/*8* generic msqid64_ds structure.9*10* Note extra padding because this structure is passed back and forth11* between kernel and user space.12*13* msqid64_ds was originally meant to be architecture specific, but14* everyone just ended up making identical copies without specific15* optimizations, so we may just as well all use the same one.16*17* 64 bit architectures use a 64-bit long time field here, while18* 32 bit architectures have a pair of unsigned long values.19* On big-endian systems, the lower half is in the wrong place.20*21* Pad space is left for:22* - 2 miscellaneous 32-bit values23*/2425struct msqid64_ds {26struct ipc64_perm msg_perm;27#if __BITS_PER_LONG == 6428long msg_stime; /* last msgsnd time */29long msg_rtime; /* last msgrcv time */30long msg_ctime; /* last change time */31#else32unsigned long msg_stime; /* last msgsnd time */33unsigned long msg_stime_high;34unsigned long msg_rtime; /* last msgrcv time */35unsigned long msg_rtime_high;36unsigned long msg_ctime; /* last change time */37unsigned long msg_ctime_high;38#endif39unsigned long msg_cbytes; /* current number of bytes on queue */40unsigned long msg_qnum; /* number of messages in queue */41unsigned long msg_qbytes; /* max number of bytes on queue */42__kernel_pid_t msg_lspid; /* pid of last msgsnd */43__kernel_pid_t msg_lrpid; /* last receive pid */44unsigned long __unused4;45unsigned long __unused5;46};4748#endif /* __ASM_GENERIC_MSGBUF_H */495051