[BACK]Return to svr4_ipc.h CVS log [TXT][DIR] Up to [local] / sys / compat / svr4

Annotation of sys/compat/svr4/svr4_ipc.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: svr4_ipc.h,v 1.2 1996/08/02 20:35:40 niklas Exp $     */
                      2: /*     $NetBSD: svr4_ipc.h,v 1.1 1995/10/14 20:24:32 christos Exp $    */
                      3:
                      4: /*
                      5:  * Copyright (c) 1995 Christos Zoulas.  All rights reserved.
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
                     15:  * 3. All advertising materials mentioning features or use of this software
                     16:  *    must display the following acknowledgement:
                     17:  *     This product includes software developed by Christos Zoulas.
                     18:  * 4. The name of the author may not be used to endorse or promote products
                     19:  *    derived from this software without specific prior written permission.
                     20:  *
                     21:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     22:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     23:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     24:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     25:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     26:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     27:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     28:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     29:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     30:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     31:  */
                     32:
                     33: #ifndef _SVR4_IPC_H_
                     34: #define _SVR4_IPC_H_
                     35:
                     36: /*
                     37:  * General IPC
                     38:  */
                     39: #define        SVR4_IPC_RMID           10
                     40: #define        SVR4_IPC_SET            11
                     41: #define        SVR4_IPC_STAT           12
                     42:
                     43: struct svr4_ipc_perm {
                     44:        svr4_uid_t      uid;
                     45:        svr4_gid_t      gid;
                     46:        svr4_uid_t      cuid;
                     47:        svr4_gid_t      cgid;
                     48:        svr4_mode_t     mode;
                     49:        u_long          seq;
                     50:        svr4_key_t      key;
                     51:        long            pad[4];
                     52: };
                     53:
                     54: /*
                     55:  * Message queues
                     56:  */
                     57: #define SVR4_msgget    0
                     58: #define SVR4_msgctl    1
                     59: #define SVR4_msgrcv    2
                     60: #define SVR4_msgsnd    3
                     61:
                     62: struct svr4_msg {
                     63:        struct svr4_msg *msg_next;
                     64:        long            msg_type;
                     65:        u_short         msg_ts;
                     66:        short           msg_spot;
                     67: };
                     68:
                     69: struct svr4_msqid_ds {
                     70:        struct svr4_ipc_perm msg_perm;
                     71:        struct svr4_msg *msg_first;
                     72:        struct svr4_msg *msg_last;
                     73:        u_long          msg_cbytes;
                     74:        u_long          msg_qnum;
                     75:        u_long          msg_qbytes;
                     76:        svr4_pid_t      msg_lspid;
                     77:        svr4_pid_t      msg_lrpid;
                     78:        svr4_time_t     msg_stime;
                     79:        long            msg_pad1;
                     80:        svr4_time_t     msg_rtime;
                     81:        long            msg_pad2;
                     82:        svr4_time_t     msg_ctime;
                     83:        long            msg_pad3;
                     84:        short           msg_cv;
                     85:        short           msg_qnum_cv;
                     86:        long            msg_pad4[3];
                     87: };
                     88:
                     89: struct svr4_msgbuf {
                     90:        long    mtype;          /* message type */
                     91:        char    mtext[1];       /* message text */
                     92: };
                     93:
                     94: struct svr4_msginfo {
                     95:        int     msgmap;
                     96:        int     msgmax;
                     97:        int     msgmnb;
                     98:        int     msgmni;
                     99:        int     msgssz;
                    100:        int     msgtql;
                    101:        u_short msgseg;
                    102: };
                    103:
                    104: /*
                    105:  * Shared memory
                    106:  */
                    107: #define SVR4_shmat     0
                    108: #define SVR4_shmctl    1
                    109: #define SVR4_shmdt     2
                    110: #define SVR4_shmget    3
                    111:
                    112: /* shmctl() operations */
                    113: #define        SVR4_SHM_LOCK            3
                    114: #define        SVR4_SHM_UNLOCK          4
                    115:
                    116: struct svr4_shmid_ds {
                    117:        struct svr4_ipc_perm    shm_perm;
                    118:        int             shm_segsz;
                    119:        void            *shm_amp;
                    120:        u_short         shm_lkcnt;
                    121:        svr4_pid_t      shm_lpid;
                    122:        svr4_pid_t      shm_cpid;
                    123:        u_long          shm_nattch;
                    124:        u_long          shm_cnattch;
                    125:        svr4_time_t     shm_atime;
                    126:        long            shm_pad1;
                    127:        svr4_time_t     shm_dtime;
                    128:        long            shm_pad2;
                    129:        svr4_time_t     shm_ctime;
                    130:        long            shm_pad3;
                    131:        long            shm_pad4[4];
                    132: };
                    133:
                    134: /*
                    135:  * Semaphores
                    136:  */
                    137: #define SVR4_semctl    0
                    138: #define SVR4_semget    1
                    139: #define SVR4_semop     2
                    140:
                    141: /* semctl() operations */
                    142: #define        SVR4_SEM_GETNCNT         3
                    143: #define        SVR4_SEM_GETPID          4
                    144: #define        SVR4_SEM_GETVAL          5
                    145: #define        SVR4_SEM_GETALL          6
                    146: #define        SVR4_SEM_GETZCNT         7
                    147: #define        SVR4_SEM_SETVAL          8
                    148: #define        SVR4_SEM_SETALL          9
                    149:
                    150: struct svr4_sem {
                    151:        u_short         semval;
                    152:        svr4_pid_t      sempid;
                    153:        u_short         semncnt;
                    154:        u_short         semzcnt;
                    155:        u_short         semncnt_cv;
                    156:        u_short         semzcnt_cv;
                    157: };
                    158:
                    159: struct svr4_semid_ds {
                    160:        struct svr4_ipc_perm sem_perm;
                    161:        struct svr4_sem *sem_base;
                    162:        u_short         sem_nsems;
                    163:        svr4_time_t     sem_otime;
                    164:        long            sem_pad1;
                    165:        svr4_time_t     sem_ctime;
                    166:        long            sem_pad2;
                    167:        long            sem_pad3[4];
                    168: };
                    169:
                    170: struct svr4_sembuf {
                    171:        u_short         sem_num;
                    172:        short           sem_op;
                    173:        short           sem_flg;
                    174: };
                    175:
                    176: #endif /* _SVR4_IPC_H */

CVSweb