Changeset 8d2760f in mainline for kernel/genarch/src/kbd/ns16550.c


Ignore:
Timestamp:
2008-11-29T20:24:47Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
57e76cb
Parents:
dfd77382
Message:

Add additional members to the irq_t structure so that an interrupt-driven driver
does not need to know how to clear the level interrupt. The z8530 was modified
in this way and is much more generic. The ns16550 driver has also been modified,
but awaits testing. The sparc64 interrupt mapping and dispatch code is now using
the new info and calls the clear-interrupt-routine itself.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/kbd/ns16550.c

    rdfd77382 r8d2760f  
    108108/** Initialize ns16550.
    109109 *
    110  * @param devno Device number.
    111  * @param inr Interrupt number.
    112  * @param vaddr Virtual address of device's registers.
    113  */
    114 void ns16550_init(devno_t devno, inr_t inr, ioport_t port)
     110 * @param devno         Device number.
     111 * @param port          Virtual/IO address of device's registers.
     112 * @param inr           Interrupt number.
     113 * @param cir           Clear interrupt function.
     114 * @param cir_arg       First argument to cir.
     115 */
     116void
     117ns16550_init(devno_t devno, ioport_t port, inr_t inr, cir_t cir, void *cir_arg)
    115118{
    116119        chardev_initialize("ns16550_kbd", &kbrd, &ops);
     
    125128        ns16550_irq.claim = ns16550_claim;
    126129        ns16550_irq.handler = ns16550_irq_handler;
     130        ns16550_irq.cir = cir;
     131        ns16550_irq.cir_arg = cir_arg;
    127132        irq_register(&ns16550_irq);
    128133       
Note: See TracChangeset for help on using the changeset viewer.