Rev 1934 | Rev 2071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1934 | Rev 1944 | ||
---|---|---|---|
Line 271... | Line 271... | ||
271 | 271 | ||
272 | 272 | ||
273 | /** Initialize keyboard and service interrupts using kernel routine */ |
273 | /** Initialize keyboard and service interrupts using kernel routine */ |
274 | void cuda_grab(void) |
274 | void cuda_grab(void) |
275 | { |
275 | { |
- | 276 | ipl_t ipl = interrupts_disable(); |
|
- | 277 | spinlock_lock(&cuda_irq.lock); |
|
276 | cuda_irq.notif_cfg.notify = false; |
278 | cuda_irq.notif_cfg.notify = false; |
- | 279 | spinlock_unlock(&cuda_irq.lock); |
|
- | 280 | interrupts_restore(ipl); |
|
277 | } |
281 | } |
278 | 282 | ||
279 | 283 | ||
280 | /** Resume the former interrupt vector */ |
284 | /** Resume the former interrupt vector */ |
281 | void cuda_release(void) |
285 | void cuda_release(void) |
282 | { |
286 | { |
- | 287 | ipl_t ipl = interrupts_disable(); |
|
- | 288 | spinlock_lock(&cuda_irq.lock); |
|
283 | if (cuda_irq.notif_cfg.answerbox) |
289 | if (cuda_irq.notif_cfg.answerbox) |
284 | cuda_irq.notif_cfg.notify = true; |
290 | cuda_irq.notif_cfg.notify = true; |
- | 291 | spinlock_unlock(&cuda_irq.unlock); |
|
- | 292 | interrupts_restore(ipl); |
|
285 | } |
293 | } |
286 | 294 | ||
287 | 295 | ||
288 | void cuda_init(devno_t devno, uintptr_t base, size_t size) |
296 | void cuda_init(devno_t devno, uintptr_t base, size_t size) |
289 | { |
297 | { |