OLD | NEW |
1 #ifndef _NACL_FUTEX_EMULATION_H | 1 #ifndef _NACL_FUTEX_EMULATION_H |
2 #define _NACL_FUTEX_EMULATION_H | 2 #define _NACL_FUTEX_EMULATION_H |
3 | 3 |
4 | 4 |
5 #include <stdbool.h> | 5 #include <stdbool.h> |
6 #include <time.h> | 6 #include <time.h> |
7 #include <list.h> | 7 #include <list.h> |
8 | 8 |
9 struct thread_wait_list_node | 9 struct thread_wait_list_node |
10 { | 10 { |
11 list_t list; | 11 list_t list; |
12 volatile int *addr; | 12 volatile int *addr; |
13 unsigned int bitset; | 13 unsigned int bitset; |
14 int condvar_desc; | 14 int condvar_desc; |
15 bool desc_is_initialized; | 15 bool desc_is_initialized; |
16 }; | 16 }; |
17 | 17 |
| 18 #include <irt_syscalls.h> |
| 19 |
18 #define __FUTEX_BITSET_MATCH_ANY 0xFFFFFFFF | 20 #define __FUTEX_BITSET_MATCH_ANY 0xFFFFFFFF |
19 | 21 |
20 void __nacl_futex_init (void); | 22 void __nacl_futex_init (void); |
21 void __nacl_futex_fini (void); | 23 void __nacl_futex_fini (void); |
22 | 24 |
23 int __nacl_futex_wait (volatile int *addr, int val, unsigned int bitset, | 25 int __nacl_futex_wait (volatile int *addr, int val, unsigned int bitset, |
24 const struct timespec *timeout); | 26 const struct timespec *timeout); |
25 int __nacl_futex_wake (volatile int *addr, int nwake, unsigned int bitset); | 27 int __nacl_futex_wake (volatile int *addr, int nwake, unsigned int bitset, |
| 28 » » int *count); |
26 int __nacl_futex_wake_op (volatile int *addr1, volatile int *addr2, int nwake1, | 29 int __nacl_futex_wake_op (volatile int *addr1, volatile int *addr2, int nwake1, |
27 » » » int nwake2, int op); | 30 » » » int nwake2, int op, int *count); |
28 int __nacl_futex_cmp_requeue (volatile int *addr1, volatile int *addr2, int nwak
e, | 31 int __nacl_futex_cmp_requeue (volatile int *addr1, volatile int *addr2, int nwak
e, |
29 » » » int nrequeue, int val); | 32 » » » int nrequeue, int val, int *count); |
30 | 33 |
31 #endif | 34 #endif |
OLD | NEW |