Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_intr.c
Show First 20 Lines • Show All 986 Lines • ▼ Show 20 Lines | intr_event_schedule_thread(struct intr_event *ie) | ||||
thread_lock(td); | thread_lock(td); | ||||
if (TD_AWAITING_INTR(td)) { | if (TD_AWAITING_INTR(td)) { | ||||
CTR3(KTR_INTR, "%s: schedule pid %d (%s)", __func__, td->td_proc->p_pid, | CTR3(KTR_INTR, "%s: schedule pid %d (%s)", __func__, td->td_proc->p_pid, | ||||
td->td_name); | td->td_name); | ||||
TD_CLR_IWAIT(td); | TD_CLR_IWAIT(td); | ||||
sched_add(td, SRQ_INTR); | sched_add(td, SRQ_INTR); | ||||
} else { | } else { | ||||
CTR5(KTR_INTR, "%s: pid %d (%s): it_need %d, state %d", | CTR5(KTR_INTR, "%s: pid %d (%s): it_need %d, state %d", | ||||
__func__, td->td_proc->p_pid, td->td_name, it->it_need, td->td_state); | __func__, td->td_proc->p_pid, td->td_name, it->it_need, TD_GET_STATE(td)); | ||||
thread_unlock(td); | thread_unlock(td); | ||||
} | } | ||||
return (0); | return (0); | ||||
} | } | ||||
/* | /* | ||||
* Allow interrupt event binding for software interrupt handlers -- a no-op, | * Allow interrupt event binding for software interrupt handlers -- a no-op, | ||||
▲ Show 20 Lines • Show All 666 Lines • Show Last 20 Lines |