Deleted Added
full compact
linux_futex.h (161304) linux_futex.h (166969)
1/* $NetBSD: linux_futex.h,v 1.2 2005/12/11 12:20:19 christos Exp $ */
2
3/*-
4 * Copyright (c) 2005 Emmanuel Dreyfus, 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 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed by Emmanuel Dreyfus
1/* $NetBSD: linux_futex.h,v 1.2 2005/12/11 12:20:19 christos Exp $ */
2
3/*-
4 * Copyright (c) 2005 Emmanuel Dreyfus, 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 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed by Emmanuel Dreyfus
17 * 4. The name of the author may not be used to endorse or promote
18 * products derived from this software without specific prior written
17 * 4. The name of the author may not be used to endorse or promote
18 * products derived from this software without specific prior written
19 * permission.
20 *
19 * permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE THE AUTHOR AND CONTRIBUTORS ``AS IS''
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 * THIS SOFTWARE IS PROVIDED BY THE THE AUTHOR AND CONTRIBUTORS ``AS IS''
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 * $FreeBSD: head/sys/compat/linux/linux_futex.h 161304 2006-08-15 12:20:59Z netchild $
33 * $FreeBSD: head/sys/compat/linux/linux_futex.h 166969 2007-02-25 12:40:35Z netchild $
34 */
35
36#ifndef _LINUX_FUTEX_H
37#define _LINUX_FUTEX_H
38
34 */
35
36#ifndef _LINUX_FUTEX_H
37#define _LINUX_FUTEX_H
38
39#define LINUX_FUTEX_WAIT 0
39#define LINUX_FUTEX_WAIT 0
40#define LINUX_FUTEX_WAKE 1
41#define LINUX_FUTEX_FD 2
42#define LINUX_FUTEX_REQUEUE 3
43#define LINUX_FUTEX_CMP_REQUEUE 4
44#define LINUX_FUTEX_WAKE_OP 5
45
40#define LINUX_FUTEX_WAKE 1
41#define LINUX_FUTEX_FD 2
42#define LINUX_FUTEX_REQUEUE 3
43#define LINUX_FUTEX_CMP_REQUEUE 4
44#define LINUX_FUTEX_WAKE_OP 5
45
46#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
47#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
48#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
49#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
50#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
46#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
47#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
48#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
49#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
50#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
51
51
52#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
52#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
53
53
54#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
55#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
56#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
57#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
58#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
59#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
54#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
55#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
56#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
57#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
58#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
59#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
60
60
61#endif /* !_LINUX_FUTEX_H */
61#endif /* !_LINUX_FUTEX_H */