|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 3.0 ! 3: * Copyright (c) 1982, 1990 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: #ifndef __SYS_MSG_H__ ! 7: #define __SYS_MSG_H__ ! 8: /* ! 9: ** IPC Message Facility. ! 10: */ ! 11: #include <sys/ipc.h> ! 12: #include <sys/_time.h> ! 13: ! 14: /* ! 15: ** Permission Definitions. ! 16: */ ! 17: ! 18: #define MSG_R 0400 /* read permission */ ! 19: #define MSG_W 0200 /* write permission */ ! 20: ! 21: /* ! 22: ** ipc_perm Mode Definitions. ! 23: */ ! 24: ! 25: #define MSG_RWAIT 01000 /* a reader is waiting for a message */ ! 26: #define MSG_WWAIT 02000 /* a writer is waiting to send */ ! 27: ! 28: /* ! 29: ** Message Operation Flags. ! 30: */ ! 31: ! 32: #define MSG_NOERROR 010000 /* no error if big message */ ! 33: ! 34: /* ! 35: ** Structure Definitions. ! 36: */ ! 37: ! 38: /* ! 39: ** There is one msg structure for each message that may be in the system. ! 40: */ ! 41: ! 42: struct msg { ! 43: ! 44: struct msg *msg_next; /* pointer to next message on q */ ! 45: long msg_type; /* message type */ ! 46: short msg_ts; /* message text size */ ! 47: short msg_spot; /* message text map address */ ! 48: }; ! 49: ! 50: /* ! 51: ** There is one msg queue id data structure for each q in the system. ! 52: */ ! 53: ! 54: struct msqid_ds { ! 55: ! 56: struct ipc_perm msg_perm; /* operation permission struct */ ! 57: struct msg *msg_first; /* ptr to first message on q */ ! 58: struct msg *msg_last; /* ptr to last message on q */ ! 59: unsigned short msg_cbytes; /* current # bytes on q */ ! 60: unsigned short msg_qnum; /* # of messages on q */ ! 61: unsigned short msg_qbytes; /* max # of bytes on q */ ! 62: unsigned short msg_lspid; /* pid of last msgsnd */ ! 63: unsigned short msg_lrpid; /* pid of last msgrcv */ ! 64: time_t msg_stime; /* last msgsnd time */ ! 65: time_t msg_rtime; /* last msgrcv time */ ! 66: time_t msg_ctime; /* last change time */ ! 67: }; ! 68: ! 69: /* ! 70: ** User message buffer template for msgsnd and msgrcv system calls. ! 71: */ ! 72: ! 73: struct msgbuf { ! 74: ! 75: long mtype; /* message type */ ! 76: char mtext[]; /* message text */ ! 77: }; ! 78: ! 79: /* ! 80: ** Ioctl commands issued to Message device driver (Coherent specific). ! 81: */ ! 82: ! 83: #define MSGIOC ('M'<<8) ! 84: #define MSGCTL (MSGIOC|0) ! 85: #define MSGGET (MSGIOC|1) ! 86: #define MSGSND (MSGIOC|2) ! 87: #define MSGRCV (MSGIOC|3) ! 88: ! 89: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.