Changeset 2b017ba in mainline for kernel/generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2006-10-16T20:51:55Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5f9b4d9a
Parents:
e3890b3f
Message:

Replace the old IRQ dispatcher and IPC notifier with new implementation.
Note that all architectures except for sparc64 are now broken
and don't even compile.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/sysipc.c

    re3890b3f r2b017ba  
    566566}
    567567
    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 */
     577unative_t sys_ipc_register_irq(inr_t inr, devno_t devno, unative_t method, irq_code_t *ucode)
    570578{
    571579        if (!(cap_get(TASK) & CAP_IRQ_REG))
    572580                return EPERM;
    573581
    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 */
     590unative_t sys_ipc_unregister_irq(inr_t inr, devno_t devno)
    584591{
    585592        if (!(cap_get(TASK) & CAP_IRQ_REG))
    586593                return EPERM;
    587594
    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);
    592596
    593597        return 0;
Note: See TracChangeset for help on using the changeset viewer.