ibcs2_ipc.h revision 330897
1/*-
2 * SPDX-License-Identifier: BSD-4-Clause
3 *
4 * Copyright (c) 1995 Steven Wallace
5 * 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 Steven Wallace.
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 * $FreeBSD: stable/11/sys/i386/ibcs2/ibcs2_ipc.h 330897 2018-03-14 03:19:51Z eadler $
33 */
34
35
36struct ibcs2_ipc_perm {
37	u_short	uid;	/* user id */
38	u_short	gid;	/* group id */
39	u_short	cuid;	/* creator user id */
40	u_short	cgid;	/* creator group id */
41	u_short	mode;	/* r/w permission */
42	u_short	seq;	/* sequence # (to generate unique msg/sem/shm id) */
43	ibcs2_key_t key; /* user specified msg/sem/shm key */
44};
45
46struct ibcs2_msqid_ds {
47	struct ibcs2_ipc_perm msg_perm;
48	struct msg *msg_first;
49	struct msg *msg_last;
50	u_short msg_cbytes;
51	u_short msg_qnum;
52	u_short msg_qbytes;
53	u_short msg_lspid;
54	u_short msg_lrpid;
55	ibcs2_time_t msg_stime;
56	ibcs2_time_t msg_rtime;
57	ibcs2_time_t msg_ctime;
58};
59
60struct ibcs2_semid_ds {
61        struct ibcs2_ipc_perm sem_perm;
62	struct ibcs2_sem *sem_base;
63	u_short sem_nsems;
64	ibcs2_time_t sem_otime;
65	ibcs2_time_t sem_ctime;
66};
67
68struct ibcs2_sem {
69        u_short semval;
70	ibcs2_pid_t sempid;
71	u_short semncnt;
72	u_short semzcnt;
73};
74
75struct ibcs2_shmid_ds {
76        struct ibcs2_ipc_perm shm_perm;
77	int shm_segsz;
78	int pad1;
79	char pad2[4];
80	u_short shm_lpid;
81	u_short shm_cpid;
82	u_short shm_nattch;
83	u_short shm_cnattch;
84	ibcs2_time_t shm_atime;
85	ibcs2_time_t shm_dtime;
86	ibcs2_time_t shm_ctime;
87};
88