1 |
/* $MidnightBSD$ */ |
2 |
/*- |
3 |
* Copyright (c) 2002 Maxim Sobolev <sobomax@FreeBSD.org> |
4 |
* All rights reserved. |
5 |
* |
6 |
* Redistribution and use in source and binary forms, with or without |
7 |
* modification, are permitted provided that the following conditions |
8 |
* are met: |
9 |
* 1. Redistributions of source code must retain the above copyright |
10 |
* notice, this list of conditions and the following disclaimer |
11 |
* in this position and unchanged. |
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. The name of the author may not be used to endorse or promote products |
16 |
* derived from this software without specific prior written permission |
17 |
* |
18 |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
19 |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
20 |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
21 |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
22 |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
23 |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
24 |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
25 |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
27 |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 |
* |
29 |
* $FreeBSD: stable/10/sys/i386/linux/linux_ipc64.h 104893 2002-10-11 11:43:09Z sobomax $ |
30 |
*/ |
31 |
|
32 |
#ifndef _I386_LINUX_LINUX_IPC64_H_ |
33 |
#define _I386_LINUX_LINUX_IPC64_H_ |
34 |
|
35 |
/* |
36 |
* The ipc64_perm structure for i386 architecture. |
37 |
* Note extra padding because this structure is passed back and forth |
38 |
* between kernel and user space. |
39 |
* |
40 |
* Pad space is left for: |
41 |
* - 32-bit mode_t and seq |
42 |
* - 2 miscellaneous 32-bit values |
43 |
*/ |
44 |
|
45 |
struct l_ipc64_perm |
46 |
{ |
47 |
l_key_t key; |
48 |
l_uid_t uid; |
49 |
l_gid_t gid; |
50 |
l_uid_t cuid; |
51 |
l_gid_t cgid; |
52 |
l_mode_t mode; |
53 |
l_ushort __pad1; |
54 |
l_ushort seq; |
55 |
l_ushort __pad2; |
56 |
l_ulong __unused1; |
57 |
l_ulong __unused2; |
58 |
}; |
59 |
|
60 |
/* |
61 |
* The msqid64_ds structure for i386 architecture. |
62 |
* Note extra padding because this structure is passed back and forth |
63 |
* between kernel and user space. |
64 |
* |
65 |
* Pad space is left for: |
66 |
* - 64-bit time_t to solve y2038 problem |
67 |
* - 2 miscellaneous 32-bit values |
68 |
*/ |
69 |
|
70 |
struct l_msqid64_ds { |
71 |
struct l_ipc64_perm msg_perm; |
72 |
l_time_t msg_stime; /* last msgsnd time */ |
73 |
l_ulong __unused1; |
74 |
l_time_t msg_rtime; /* last msgrcv time */ |
75 |
l_ulong __unused2; |
76 |
l_time_t msg_ctime; /* last change time */ |
77 |
l_ulong __unused3; |
78 |
l_ulong msg_cbytes; /* current number of bytes on queue */ |
79 |
l_ulong msg_qnum; /* number of messages in queue */ |
80 |
l_ulong msg_qbytes; /* max number of bytes on queue */ |
81 |
l_pid_t msg_lspid; /* pid of last msgsnd */ |
82 |
l_pid_t msg_lrpid; /* last receive pid */ |
83 |
l_ulong __unused4; |
84 |
l_ulong __unused5; |
85 |
}; |
86 |
|
87 |
/* |
88 |
* The semid64_ds structure for i386 architecture. |
89 |
* Note extra padding because this structure is passed back and forth |
90 |
* between kernel and user space. |
91 |
* |
92 |
* Pad space is left for: |
93 |
* - 64-bit time_t to solve y2038 problem |
94 |
* - 2 miscellaneous 32-bit values |
95 |
*/ |
96 |
|
97 |
struct l_semid64_ds { |
98 |
struct l_ipc64_perm sem_perm; /* permissions */ |
99 |
l_time_t sem_otime; /* last semop time */ |
100 |
l_ulong __unused1; |
101 |
l_time_t sem_ctime; /* last change time */ |
102 |
l_ulong __unused2; |
103 |
l_ulong sem_nsems; /* no. of semaphores in array */ |
104 |
l_ulong __unused3; |
105 |
l_ulong __unused4; |
106 |
}; |
107 |
|
108 |
/* |
109 |
* The shmid64_ds structure for i386 architecture. |
110 |
* Note extra padding because this structure is passed back and forth |
111 |
* between kernel and user space. |
112 |
* |
113 |
* Pad space is left for: |
114 |
* - 64-bit time_t to solve y2038 problem |
115 |
* - 2 miscellaneous 32-bit values |
116 |
*/ |
117 |
|
118 |
struct l_shmid64_ds { |
119 |
struct l_ipc64_perm shm_perm; /* operation perms */ |
120 |
l_size_t shm_segsz; /* size of segment (bytes) */ |
121 |
l_time_t shm_atime; /* last attach time */ |
122 |
l_ulong __unused1; |
123 |
l_time_t shm_dtime; /* last detach time */ |
124 |
l_ulong __unused2; |
125 |
l_time_t shm_ctime; /* last change time */ |
126 |
l_ulong __unused3; |
127 |
l_pid_t shm_cpid; /* pid of creator */ |
128 |
l_pid_t shm_lpid; /* pid of last operator */ |
129 |
l_ulong shm_nattch; /* no. of current attaches */ |
130 |
l_ulong __unused4; |
131 |
l_ulong __unused5; |
132 |
}; |
133 |
|
134 |
struct l_shminfo64 { |
135 |
l_ulong shmmax; |
136 |
l_ulong shmmin; |
137 |
l_ulong shmmni; |
138 |
l_ulong shmseg; |
139 |
l_ulong shmall; |
140 |
l_ulong __unused1; |
141 |
l_ulong __unused2; |
142 |
l_ulong __unused3; |
143 |
l_ulong __unused4; |
144 |
}; |
145 |
|
146 |
#endif /* !_I386_LINUX_LINUX_IPC64_H_ */ |