Home | History | Annotate | Download | only in thread

Lines Matching refs:sem

4 void sem_init(struct semaphore *sem, int count)
6 if (!!sem) {
7 sem->list.next = sem->list.prev = &sem->list;
8 sem->count = count;
12 mstime_t __sem_down_slow(struct semaphore *sem, mstime_t timeout)
19 if (!sem_is_valid(sem)) {
21 } else if (sem->count >= 0) {
26 sem->count++;
36 block.semaphore = sem;
44 block.list.prev = sem->list.prev;
45 block.list.next = &sem->list;
46 sem->list.prev = &block.list;
58 void __sem_up_slow(struct semaphore *sem)
71 if (!!sem) {
72 l = sem->list.next;
73 if (l != &sem->list) {
77 sem->list.next = block->list.next;
78 block->list.next->prev = &sem->list;