|
|
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.