Lines Matching defs:tq
140 * tasklet_queue_init(tq, prio)
142 * Initialize the tasklet queue tq for running tasklets at softint
146 tasklet_queue_init(struct tasklet_queue *tq, unsigned prio)
151 tq->tq_percpu = percpu_create(sizeof(struct tasklet_cpu),
153 KASSERT(tq->tq_percpu != NULL);
156 tq->tq_sih = softint_establish(prio|SOFTINT_MPSAFE, &tasklet_softintr,
157 tq);
158 if (tq->tq_sih == NULL) {
167 softint_disestablish(tq->tq_sih);
168 tq->tq_sih = NULL;
169 fail1: percpu_free(tq->tq_percpu, sizeof(struct tasklet_cpu));
170 tq->tq_percpu = NULL;
177 * tasklet_queue_fini(tq)
179 * Finalize the tasklet queue tq: free all resources associated
183 tasklet_queue_fini(struct tasklet_queue *tq)
186 softint_disestablish(tq->tq_sih);
187 tq->tq_sih = NULL;
188 percpu_free(tq->tq_percpu, sizeof(struct tasklet_cpu));
189 tq->tq_percpu = NULL;
201 struct tasklet_queue *const tq = cookie;
212 tcp = percpu_getref(tq->tq_percpu);
217 percpu_putref(tq->tq_percpu);
241 tasklet_queue_enqueue(tq, tasklet);
256 tasklet_queue_enqueue(tq, tasklet);
273 * tasklet_queue_schedule(tq, tasklet)
275 * Schedule tasklet to run on tq. If it was already scheduled and
279 tasklet_queue_schedule(struct tasklet_queue *tq,
297 tasklet_queue_enqueue(tq, tasklet);
301 * tasklet_queue_enqueue(tq, tasklet)
303 * Put tasklet on the queue tq and ensure it will run. tasklet
307 tasklet_queue_enqueue(struct tasklet_queue *tq, struct tasklet_struct *tasklet)
319 tcp = percpu_getref(tq->tq_percpu);
324 softint_schedule(tq->tq_sih);
325 percpu_putref(tq->tq_percpu);