freebsd_network: Implement taskqueue_drain_all.
Required by FreeBSD 12's iprowifi4965.
This commit is contained in:
@@ -32,6 +32,7 @@ void taskqueue_free(struct taskqueue *tq);
|
||||
void taskqueue_drain(struct taskqueue *tq, struct task *task);
|
||||
void taskqueue_drain_timeout(struct taskqueue *queue,
|
||||
struct timeout_task *timeout_task);
|
||||
void taskqueue_drain_all(struct taskqueue *tq);
|
||||
void taskqueue_block(struct taskqueue *queue);
|
||||
void taskqueue_unblock(struct taskqueue *queue);
|
||||
int taskqueue_enqueue(struct taskqueue *tq, struct task *task);
|
||||
|
||||
@@ -293,6 +293,28 @@ taskqueue_drain_timeout(struct taskqueue *queue,
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
taskqueue_task_nop_fn(void* context, int pending)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
taskqueue_drain_all(struct taskqueue *taskQueue)
|
||||
{
|
||||
struct task t_barrier;
|
||||
|
||||
if (taskQueue == NULL) {
|
||||
printf("taskqueue_drain_all called with NULL taskqueue\n");
|
||||
return;
|
||||
}
|
||||
|
||||
TASK_INIT(&t_barrier, USHRT_MAX, taskqueue_task_nop_fn, &t_barrier);
|
||||
taskqueue_enqueue(taskQueue, &t_barrier);
|
||||
taskqueue_drain(taskQueue, &t_barrier);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
taskqueue_enqueue_locked(struct taskqueue *taskQueue, struct task *task,
|
||||
cpu_status status)
|
||||
|
||||
Reference in New Issue
Block a user