Rev 4537 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4537 | Rev 4678 | ||
|---|---|---|---|
| Line 138... | Line 138... | ||
| 138 | IPC_SET_ARG2(call->data, a2); |
138 | IPC_SET_ARG2(call->data, a2); |
| 139 | IPC_SET_ARG3(call->data, a3); |
139 | IPC_SET_ARG3(call->data, a3); |
| 140 | IPC_SET_ARG4(call->data, a4); |
140 | IPC_SET_ARG4(call->data, a4); |
| 141 | IPC_SET_ARG5(call->data, a5); |
141 | IPC_SET_ARG5(call->data, a5); |
| 142 | 142 | ||
| - | 143 | ipl_t ipl = interrupts_disable(); |
|
| 143 | spinlock_lock(&events[evno].answerbox->irq_lock); |
144 | spinlock_lock(&events[evno].answerbox->irq_lock); |
| 144 | list_append(&call->link, &events[evno].answerbox->irq_notifs); |
145 | list_append(&call->link, &events[evno].answerbox->irq_notifs); |
| 145 | spinlock_unlock(&events[evno].answerbox->irq_lock); |
146 | spinlock_unlock(&events[evno].answerbox->irq_lock); |
| - | 147 | interrupts_restore(ipl); |
|
| 146 | 148 | ||
| 147 | waitq_wakeup(&events[evno].answerbox->wq, WAKEUP_FIRST); |
149 | waitq_wakeup(&events[evno].answerbox->wq, WAKEUP_FIRST); |
| 148 | } |
150 | } |
| 149 | } |
151 | } |
| 150 | spinlock_unlock(&events[evno].lock); |
152 | spinlock_unlock(&events[evno].lock); |