Changeset 2b017ba in mainline for kernel/generic/src/ipc/sysipc.c
- Timestamp:
- 2006-10-16T20:51:55Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5f9b4d9a
- Parents:
- e3890b3f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/sysipc.c
re3890b3f r2b017ba 566 566 } 567 567 568 /** Connect irq handler to task */ 569 unative_t sys_ipc_register_irq(int irq, irq_code_t *ucode) 568 /** Connect irq handler to task. 569 * 570 * @param inr IRQ number. 571 * @param devno Device number. 572 * @param method Method to be associated with the notification. 573 * @param ucode Uspace pointer to the top-half pseudocode. 574 * 575 * @return EPERM or a return code returned by ipc_irq_register(). 576 */ 577 unative_t sys_ipc_register_irq(inr_t inr, devno_t devno, unative_t method, irq_code_t *ucode) 570 578 { 571 579 if (!(cap_get(TASK) & CAP_IRQ_REG)) 572 580 return EPERM; 573 581 574 if (irq >= IRQ_COUNT || irq <= -IPC_IRQ_RESERVED_VIRTUAL) 575 return (unative_t) ELIMIT; 576 577 irq_ipc_bind_arch(irq); 578 579 return ipc_irq_register(&TASK->answerbox, irq, ucode); 580 } 581 582 /* Disconnect irq handler from task */ 583 unative_t sys_ipc_unregister_irq(int irq) 582 return ipc_irq_register(&TASK->answerbox, inr, devno, method, ucode); 583 } 584 585 /** Disconnect irq handler from task. 586 * 587 * @param inr IRQ number. 588 * @param devno Device number. 589 */ 590 unative_t sys_ipc_unregister_irq(inr_t inr, devno_t devno) 584 591 { 585 592 if (!(cap_get(TASK) & CAP_IRQ_REG)) 586 593 return EPERM; 587 594 588 if (irq >= IRQ_COUNT || irq <= -IPC_IRQ_RESERVED_VIRTUAL) 589 return (unative_t) ELIMIT; 590 591 ipc_irq_unregister(&TASK->answerbox, irq); 595 ipc_irq_unregister(&TASK->answerbox, inr, devno); 592 596 593 597 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.