111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_MSG_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_MSG_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ipc.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSG_STAT 11
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSG_INFO 12
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSG_NOERROR 010000
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSG_EXCEPT 020000
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msqid_ds {
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct ipc_perm msg_perm;
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct msg *msg_first;
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct msg *msg_last;
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_time_t msg_stime;
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_time_t msg_rtime;
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_time_t msg_ctime;
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long msg_lcbytes;
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long msg_lqbytes;
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short msg_cbytes;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short msg_qnum;
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short msg_qbytes;
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_ipc_pid_t msg_lspid;
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_ipc_pid_t msg_lrpid;
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/msgbuf.h>
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msgbuf {
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long mtype;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char mtext[1];
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msginfo {
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgpool;
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgmap;
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgmax;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgmnb;
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgmni;
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgssz;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int msgtql;
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short msgseg;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGMNI 16
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGMAX 8192
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGMNB 16384
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGPOOL (MSGMNI*MSGMNB/1024)
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGTQL MSGMNB
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGMAP MSGMNB
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGSSZ 16
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __MSGSEG ((MSGPOOL*1024)/ MSGSSZ)
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG : 0xffff)
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
69