|
|
1.1 root 1: /* Copyright (c) 1987 AT&T */
2: /* All Rights Reserved */
3:
4: /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
5: /* The copyright notice above does not evidence any */
6: /* actual or intended publication of such source code. */
7:
8: #include <sccsid.h>
9: HVERSION(message, @(#)message.h 1.1.1.2 (5/12/87));
10:
11:
12: /* message queue defines */
13: #define IPC_CREAT 0001000
14: #define IPC_EXCL 0002000
15: #define IPC_NOWAIT 0004000
16: #define IPC_RMID 0
17: #define IPC_SET 1
18: #define IPC_STAT 2
19: #define IPC_PRIVATE (long)0
20: #define MSG_NOERROR 010000
21: #define MAX_QBYTES 0020000
22: #define NO_SAVE 0000010
23: #define NO_COPY 0000020
24:
25:
26:
27: typedef struct msgbuf { /* a message */
28: long mtype; /* message identifier */
29: char mtext[1]; /* text of the message */
30: } msgbuf;
31:
32: typedef struct message_list { /* make a linked list of messages */
33: msgbuf *msg; /* the message */
34: int size; /* size of the message */
35: struct message_list *next; /* link to the next message */
36: } message_list;
37:
38:
39: typedef struct msqid_ds { /* a message queue */
40: struct Proc *cid; /* process that created the queue */
41: short msg_qnum; /* number of messages in the queue */
42: short msg_qbytes; /* number of bytes used by the queue */
43: struct Proc *msg_lspid; /* process id of the last process to send to the queue */
44: struct Proc *msg_lrpid; /* process id of the last process to rcv from the queue */
45: unsigned long msg_stime;/* time of last send to the queue */
46: unsigned long msg_rtime;/* time of the last rcv from the queue */
47: unsigned long msg_ctime;/* time of the last change to this structure */
48: message_list *msg_list; /* linked list of messages in the queue */
49: short msg_curbytes; /* current number of bytes used by the queue */
50: short state; /* used to decide if to delete when the process dies */
51: long name; /* the name of the queue (key) */
52: struct msqid_ds *next; /* link to the next queue */
53: } msqid_ds;
54:
55:
56: long msgget(); /* (key,msgflg) get a message from a queue */
57: void init_msq(); /* (mp,name,msgflg) initialize a message queue */
58: int msgctl(); /* (msqid,cmd,buf) stat, set, or remove a queue */
59: int valid_msqid(); /* (msqid) is the given msqid valid? */
60: void free_msq(); /* (msqid)free the memory used by a message queue */
61: int msgsnd(); /* (msqid,msgp,msgsz,msgflg) send a message */
62: int msgrcv(); /* (msqid,msgp,msgsz,msgtyp,msgflg) receive a message */
63: message_list *rcv_message(); /* (msqid,msgtyp) get the first message of the given type */
64:
65:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.