Ignore:
Timestamp:
2008-11-29T20:24:47Z (17 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/arch/sparc64/src/drivers/pci.c

    rdfd77382 r8d2760f  
    5555#define OBIO_CIR(ino)   (OBIO_CIR_BASE + ((ino) & INO_MASK))
    5656
    57 static void obio_enable_interrupt(pci_t *pci, int inr);
    58 static void obio_clear_interrupt(pci_t *pci, int inr);
    59 
    60 static pci_t *pci_sabre_init(ofw_tree_node_t *node);
    61 static pci_t *pci_psycho_init(ofw_tree_node_t *node);
     57static void obio_enable_interrupt(pci_t *, int);
     58static void obio_clear_interrupt(pci_t *, int);
     59
     60static pci_t *pci_sabre_init(ofw_tree_node_t *);
     61static pci_t *pci_psycho_init(ofw_tree_node_t *);
    6262
    6363/** PCI operations for Sabre model. */
     
    209209}
    210210
    211 void pci_clear_interrupt(pci_t *pci, int inr)
    212 {
     211void pci_clear_interrupt(void *pcip, int inr)
     212{
     213        pci_t *pci = (pci_t *)pcip;
     214
    213215        ASSERT(pci->op && pci->op->clear_interrupt);
    214216        pci->op->clear_interrupt(pci, inr);
Note: See TracChangeset for help on using the changeset viewer.