Home | History | Annotate | Download | only in sdmmc

Lines Matching refs:task

253 		aprint_error_dev(dev, "couldn't create task thread\n");
258 sdmmc_add_task(struct sdmmc_softc *sc, struct sdmmc_task *task)
262 if (task->sc == sc) {
263 KASSERT(task->onqueue);
266 KASSERT(task->sc == NULL);
267 KASSERT(!task->onqueue);
268 task->onqueue = 1;
269 task->sc = sc;
270 TAILQ_INSERT_TAIL(&sc->sc_tskq, task, next);
276 sdmmc_del_task1(struct sdmmc_softc *sc, struct sdmmc_task *task)
281 TAILQ_REMOVE(&sc->sc_tskq, task, next);
282 task->sc = NULL;
283 task->onqueue = 0;
287 sdmmc_del_task(struct sdmmc_softc *sc, struct sdmmc_task *task,
295 if (task->sc == sc) {
296 KASSERT(task->onqueue);
297 KASSERT(sc->sc_curtask != task);
298 sdmmc_del_task1(sc, task);
301 KASSERT(task->sc == NULL);
302 KASSERT(!task->onqueue);
305 while (sc->sc_curtask == task) {
328 struct sdmmc_task *task;
335 task = TAILQ_FIRST(&sc->sc_tskq);
336 if (task != NULL) {
337 sdmmc_del_task1(sc, task);
338 sc->sc_curtask = task;
340 (*task->func)(task->arg);