1/* $NetBSD: svr4_32_ipc.h,v 1.5 2007/03/04 07:54:09 christos Exp $ */ 2 3/*- 4 * Copyright (c) 1995 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Christos Zoulas. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32#ifndef _SVR4_32_IPC_H_ 33#define _SVR4_32_IPC_H_ 34 35#include <compat/svr4/svr4_ipc.h> 36/* 37 * General IPC 38 */ 39struct svr4_32_ipc_perm { 40 svr4_32_uid_t uid; 41 svr4_32_gid_t gid; 42 svr4_32_uid_t cuid; 43 svr4_32_gid_t cgid; 44 svr4_32_mode_t mode; 45 netbsd32_u_long seq; 46 svr4_32_key_t key; 47 netbsd32_long pad[4]; 48}; 49typedef netbsd32_caddr_t svr4_32_ipc_permp; 50/* 51 * Message queues 52 */ 53typedef netbsd32_caddr_t svr4_32_msgp; 54struct svr4_32_msg { 55 svr4_32_msgp msg_next; 56 netbsd32_long msg_type; 57 u_short msg_ts; 58 short msg_spot; 59}; 60 61struct svr4_32_msqid_ds { 62 struct svr4_32_ipc_perm msg_perm; 63 svr4_32_msgp msg_first; 64 svr4_32_msgp msg_last; 65 netbsd32_u_long msg_cbytes; 66 netbsd32_u_long msg_qnum; 67 netbsd32_u_long msg_qbytes; 68 svr4_32_pid_t msg_lspid; 69 svr4_32_pid_t msg_lrpid; 70 svr4_32_time_t msg_stime; 71 netbsd32_long msg_pad1; 72 svr4_32_time_t msg_rtime; 73 netbsd32_long msg_pad2; 74 svr4_32_time_t msg_ctime; 75 netbsd32_long msg_pad3; 76 short msg_cv; 77 short msg_qnum_cv; 78 netbsd32_long msg_pad4[3]; 79}; 80typedef netbsd32_caddr_t svr4_32_msqid_dsp; 81 82struct svr4_32_msgbuf { 83 netbsd32_long mtype; /* message type */ 84 char mtext[1]; /* message text */ 85}; 86typedef netbsd32_caddr_t svr4_32_msgbufp; 87 88typedef netbsd32_caddr_t svr4_32_msginfop; 89 90/* 91 * Shared memory 92 */ 93 94struct svr4_32_shmid_ds { 95 struct svr4_32_ipc_perm shm_perm; 96 int shm_segsz; 97 netbsd32_caddr_t shm_amp; 98 u_short shm_lkcnt; 99 svr4_32_pid_t shm_lpid; 100 svr4_32_pid_t shm_cpid; 101 netbsd32_u_long shm_nattch; 102 netbsd32_u_long shm_cnattch; 103 svr4_32_time_t shm_atime; 104 netbsd32_long shm_pad1; 105 svr4_32_time_t shm_dtime; 106 netbsd32_long shm_pad2; 107 svr4_32_time_t shm_ctime; 108 netbsd32_long shm_pad3; 109 netbsd32_long shm_pad4[4]; 110}; 111typedef netbsd32_caddr_t svr4_32_shmid_dsp; 112 113/* 114 * Semaphores 115 */ 116 117typedef netbsd32_caddr_t svr4_32_semp; 118 119struct svr4_32_semid_ds { 120 struct svr4_32_ipc_perm sem_perm; 121 svr4_32_semp sem_base; 122 u_short sem_nsems; 123 svr4_32_time_t sem_otime; 124 netbsd32_long sem_pad1; 125 svr4_32_time_t sem_ctime; 126 netbsd32_long sem_pad2; 127 netbsd32_long sem_pad3[4]; 128}; 129typedef netbsd32_caddr_t svr4_32_semid_dsp; 130typedef netbsd32_caddr_t svr4_32_sembufp; 131 132#endif /* _SVR4_32_IPC_H */ 133