146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef SANDBOX_LINUX_SERVICES_ANDROID_FUTEX_H_
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define SANDBOX_LINUX_SERVICES_ANDROID_FUTEX_H_
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAIT)
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAIT 0
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAKE)
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAKE 1
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_FD)
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_FD 2
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_REQUEUE)
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_REQUEUE 3
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_CMP_REQUEUE)
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_CMP_REQUEUE 4
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAKE_OP)
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAKE_OP 5
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_LOCK_PI)
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_LOCK_PI 6
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_UNLOCK_PI)
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_UNLOCK_PI 7
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_TRYLOCK_PI)
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_TRYLOCK_PI 8
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAIT_BITSET)
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAIT_BITSET 9
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAKE_BITSET)
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAKE_BITSET 10
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_WAIT_REQUEUE_PI)
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_WAIT_REQUEUE_PI 11
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_CMP_REQUEUE_PI)
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_CMP_REQUEUE_PI 12
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(FUTEX_PRIVATE_FLAG)
6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define FUTEX_PRIVATE_FLAG 128
6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif
6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined FUTEX_CLOCK_REALTIME
6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define FUTEX_CLOCK_REALTIME 256
6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif
6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_CMD_MASK)
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif
7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(FUTEX_CMP_REQUEUE_PI_PRIVATE)
7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif
7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if !defined(FUTEX_UNLOCK_PI_PRIVATE)
771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif
7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif  // SANDBOX_LINUX_SERVICES_ANDROID_FUTEX_H_
81