Home | History | Annotate | Download | only in bionic

Lines Matching refs:sem

72 // Convert a value into the corresponding sem->count bit pattern.
75 // Convert a sem->count bit pattern into the corresponding signed value.
80 // The value +1 as a sem->count bit-pattern.
83 // The value -1 as a sem->count bit-pattern.
89 static inline atomic_uint* SEM_TO_ATOMIC_POINTER(sem_t* sem) {
90 static_assert(sizeof(atomic_uint) == sizeof(sem->count),
91 "sem->count should actually be atomic_uint in implementation.");
93 // We prefer casting to atomic_uint instead of declaring sem->count to be atomic_uint directly.
95 return reinterpret_cast<atomic_uint*>(&sem->count);
104 int sem_init(sem_t* sem, int pshared, unsigned int value) {
116 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
215 int sem_wait(sem_t* sem) {
216 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
234 static int __sem_timedwait(sem_t* sem, const timespec* abs_timeout, bool use_realtime_clock) {
235 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
271 int sem_timedwait(sem_t* sem, const timespec* abs_timeout) {
272 return __sem_timedwait(sem, abs_timeout, true);
275 int sem_timedwait_monotonic_np(sem_t* sem, const timespec* abs_timeout) {
276 return __sem_timedwait(sem, abs_timeout, false);
279 int sem_post(sem_t* sem) {
280 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
296 int sem_trywait(sem_t* sem) {
297 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
306 int sem_getvalue(sem_t* sem, int* sval) {
307 atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);