Annotation of coherent/f/usr/include.78/sys/msg.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.