1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_FUTEX_H_ 6 #define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_FUTEX_H_ 7 8 #if !defined(__native_client_nonsfi__) 9 #include <linux/futex.h> 10 #endif // !defined(__native_client_nonsfi__) 11 12 #if !defined(FUTEX_WAIT) 13 #define FUTEX_WAIT 0 14 #endif 15 16 #if !defined(FUTEX_WAKE) 17 #define FUTEX_WAKE 1 18 #endif 19 20 #if !defined(FUTEX_FD) 21 #define FUTEX_FD 2 22 #endif 23 24 #if !defined(FUTEX_REQUEUE) 25 #define FUTEX_REQUEUE 3 26 #endif 27 28 #if !defined(FUTEX_CMP_REQUEUE) 29 #define FUTEX_CMP_REQUEUE 4 30 #endif 31 32 #if !defined(FUTEX_WAKE_OP) 33 #define FUTEX_WAKE_OP 5 34 #endif 35 36 #if !defined(FUTEX_LOCK_PI) 37 #define FUTEX_LOCK_PI 6 38 #endif 39 40 #if !defined(FUTEX_UNLOCK_PI) 41 #define FUTEX_UNLOCK_PI 7 42 #endif 43 44 #if !defined(FUTEX_TRYLOCK_PI) 45 #define FUTEX_TRYLOCK_PI 8 46 #endif 47 48 #if !defined(FUTEX_WAIT_BITSET) 49 #define FUTEX_WAIT_BITSET 9 50 #endif 51 52 #if !defined(FUTEX_WAKE_BITSET) 53 #define FUTEX_WAKE_BITSET 10 54 #endif 55 56 #if !defined(FUTEX_WAIT_REQUEUE_PI) 57 #define FUTEX_WAIT_REQUEUE_PI 11 58 #endif 59 60 #if !defined(FUTEX_CMP_REQUEUE_PI) 61 #define FUTEX_CMP_REQUEUE_PI 12 62 #endif 63 64 #if !defined(FUTEX_PRIVATE_FLAG) 65 #define FUTEX_PRIVATE_FLAG 128 66 #endif 67 68 #if !defined FUTEX_CLOCK_REALTIME 69 #define FUTEX_CLOCK_REALTIME 256 70 #endif 71 72 #if !defined(FUTEX_CMD_MASK) 73 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME) 74 #endif 75 76 #if !defined(FUTEX_CMP_REQUEUE_PI_PRIVATE) 77 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG) 78 #endif 79 80 #if !defined(FUTEX_UNLOCK_PI_PRIVATE) 81 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) 82 #endif 83 84 #endif // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_FUTEX_H_ 85