xref: /netbsd-src/sys/compat/linux32/common/linux32_sem.h (revision 84db622836c38300eddeeb949426022e9fdf8701)
1*84db6228Snjoly /* $NetBSD: linux32_sem.h,v 1.1 2008/05/20 17:31:56 njoly Exp $ */
2*84db6228Snjoly 
3*84db6228Snjoly /*
4*84db6228Snjoly  * Copyright (c) 2008 Nicolas Joly
5*84db6228Snjoly  * All rights reserved.
6*84db6228Snjoly  *
7*84db6228Snjoly  * Redistribution and use in source and binary forms, with or without
8*84db6228Snjoly  * modification, are permitted provided that the following conditions
9*84db6228Snjoly  * are met:
10*84db6228Snjoly  * 1. Redistributions of source code must retain the above copyright
11*84db6228Snjoly  *    notice, this list of conditions and the following disclaimer.
12*84db6228Snjoly  * 2. Redistributions in binary form must reproduce the above copyright
13*84db6228Snjoly  *    notice, this list of conditions and the following disclaimer in the
14*84db6228Snjoly  *    documentation and/or other materials provided with the distribution.
15*84db6228Snjoly  *
16*84db6228Snjoly  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS
17*84db6228Snjoly  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18*84db6228Snjoly  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19*84db6228Snjoly  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20*84db6228Snjoly  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21*84db6228Snjoly  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22*84db6228Snjoly  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23*84db6228Snjoly  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24*84db6228Snjoly  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25*84db6228Snjoly  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26*84db6228Snjoly  * POSSIBILITY OF SUCH DAMAGE.
27*84db6228Snjoly  */
28*84db6228Snjoly 
29*84db6228Snjoly #ifndef _LINUX32_SEM_H
30*84db6228Snjoly #define _LINUX32_SEM_H
31*84db6228Snjoly 
32*84db6228Snjoly struct linux32_semid_ds {
33*84db6228Snjoly 	struct linux32_ipc_perm	l_sem_perm;
34*84db6228Snjoly 	linux32_time_t		l_sem_otime;
35*84db6228Snjoly 	linux32_time_t		l_sem_ctime;
36*84db6228Snjoly 	netbsd32_voidp		l_sem_base;
37*84db6228Snjoly 	netbsd32_voidp		l_eventn;
38*84db6228Snjoly 	netbsd32_voidp		l_eventz;
39*84db6228Snjoly 	netbsd32_voidp		l_undo;
40*84db6228Snjoly 	ushort			l_sem_nsems;
41*84db6228Snjoly };
42*84db6228Snjoly 
43*84db6228Snjoly struct linux32_semid64_ds {
44*84db6228Snjoly 	struct linux32_ipc64_perm l_sem_perm;
45*84db6228Snjoly 	linux32_time_t		l_sem_otime;
46*84db6228Snjoly 	netbsd32_u_long		l___unused1;
47*84db6228Snjoly 	linux32_time_t		l_sem_ctime;
48*84db6228Snjoly 	netbsd32_u_long		l___unused2;
49*84db6228Snjoly 	netbsd32_u_long		l_sem_nsems;
50*84db6228Snjoly 	netbsd32_u_long		l___unused3;
51*84db6228Snjoly 	netbsd32_u_long		l___unused4;
52*84db6228Snjoly };
53*84db6228Snjoly 
54*84db6228Snjoly typedef netbsd32_pointer_t linux32_semid_dsp;
55*84db6228Snjoly 
56*84db6228Snjoly union linux32_semun {
57*84db6228Snjoly 	int			l_val;
58*84db6228Snjoly 	linux32_semid_dsp	l_buf;
59*84db6228Snjoly 	netbsd32_u_shortp	l_array;
60*84db6228Snjoly 	netbsd32_voidp		l___buf;
61*84db6228Snjoly 	netbsd32_voidp		l___pad;
62*84db6228Snjoly };
63*84db6228Snjoly 
64*84db6228Snjoly #define LINUX32_GETPID	11
65*84db6228Snjoly #define LINUX32_GETVAL	12
66*84db6228Snjoly #define LINUX32_GETALL	13
67*84db6228Snjoly #define LINUX32_GETNCNT	14
68*84db6228Snjoly #define LINUX32_GETZCNT	15
69*84db6228Snjoly #define LINUX32_SETVAL	16
70*84db6228Snjoly #define LINUX32_SETALL	17
71*84db6228Snjoly 
72*84db6228Snjoly #endif /* _LINUX32_SEM_H */
73