Lines Matching refs:tb
55 static inline void task_barrier_init(struct task_barrier *tb)
57 tb->n = 0;
58 atomic_set(&tb->count, 0);
59 sema_init(&tb->enter_turnstile, 0);
60 sema_init(&tb->exit_turnstile, 0);
63 static inline void task_barrier_add_task(struct task_barrier *tb)
65 tb->n++;
68 static inline void task_barrier_rem_task(struct task_barrier *tb)
70 tb->n--;
78 static inline void task_barrier_enter(struct task_barrier *tb)
80 if (atomic_inc_return(&tb->count) == tb->n)
81 task_barrier_signal_turnstile(&tb->enter_turnstile, tb->n);
83 down(&tb->enter_turnstile);
92 static inline void task_barrier_exit(struct task_barrier *tb)
94 if (atomic_dec_return(&tb->count) == 0)
95 task_barrier_signal_turnstile(&tb->exit_turnstile, tb->n);
97 down(&tb->exit_turnstile);
101 static inline void task_barrier_full(struct task_barrier *tb)
103 task_barrier_enter(tb);
104 task_barrier_exit(tb);