Changeset 8d2760f in mainline for kernel/arch/sparc64/src
- Timestamp:
- 2008-11-29T20:24:47Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 57e76cb
- Parents:
- dfd77382
- Location:
- kernel/arch/sparc64/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/drivers/fhc.c
rdfd77382 r8d2760f 102 102 } 103 103 104 void fhc_clear_interrupt( fhc_t *fhc, int inr)104 void fhc_clear_interrupt(void *fhcp, int inr) 105 105 { 106 fhc_t *fhc = (fhc_t *)fhcp; 106 107 ASSERT(fhc->uart_imap); 107 108 -
kernel/arch/sparc64/src/drivers/kbd.c
rdfd77382 r8d2760f 64 64 ofw_tree_property_t *prop; 65 65 const char *name; 66 cir_t cir; 67 void *cir_arg; 66 68 67 69 name = ofw_tree_node_name(node); … … 110 112 } 111 113 if (!ofw_fhc_map_interrupt(node->parent, 112 ((ofw_fhc_reg_t *) prop->value), interrupts, &inr)) { 114 ((ofw_fhc_reg_t *) prop->value), interrupts, &inr, &cir, 115 &cir_arg)) { 113 116 printf("Failed to determine keyboard interrupt.\n"); 114 117 return; … … 124 127 } 125 128 if (!ofw_ebus_map_interrupt(node->parent, 126 ((ofw_ebus_reg_t *) prop->value), interrupts, &inr)) { 129 ((ofw_ebus_reg_t *) prop->value), interrupts, &inr, &cir, 130 &cir_arg)) { 127 131 printf("Failed to determine keyboard interrupt.\n"); 128 132 return; … … 147 151 #ifdef CONFIG_Z8530 148 152 case KBD_Z8530: 149 z8530_init(devno, inr, vaddr);153 z8530_init(devno, vaddr, inr, cir, cir_arg); 150 154 break; 151 155 #endif 152 156 #ifdef CONFIG_NS16550 153 157 case KBD_NS16550: 154 ns16550_init(devno, inr, (ioport_t)vaddr);158 ns16550_init(devno, (ioport_t)vaddr, inr, cir, cir_arg); 155 159 break; 156 160 #endif -
kernel/arch/sparc64/src/drivers/pci.c
rdfd77382 r8d2760f 55 55 #define OBIO_CIR(ino) (OBIO_CIR_BASE + ((ino) & INO_MASK)) 56 56 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);57 static void obio_enable_interrupt(pci_t *, int); 58 static void obio_clear_interrupt(pci_t *, int); 59 60 static pci_t *pci_sabre_init(ofw_tree_node_t *); 61 static pci_t *pci_psycho_init(ofw_tree_node_t *); 62 62 63 63 /** PCI operations for Sabre model. */ … … 209 209 } 210 210 211 void pci_clear_interrupt(pci_t *pci, int inr) 212 { 211 void pci_clear_interrupt(void *pcip, int inr) 212 { 213 pci_t *pci = (pci_t *)pcip; 214 213 215 ASSERT(pci->op && pci->op->clear_interrupt); 214 216 pci->op->clear_interrupt(pci, inr); -
kernel/arch/sparc64/src/trap/interrupt.c
rdfd77382 r8d2760f 80 80 */ 81 81 irq->handler(irq, irq->arg); 82 /* 83 * See if there is a clear-interrupt-routine and call it. 84 */ 85 if (irq->cir) { 86 irq->cir(irq->cir_arg, irq->inr); 87 } 82 88 spinlock_unlock(&irq->lock); 83 89 } else if (data0 > config.base) { … … 99 105 #ifdef CONFIG_DEBUG 100 106 printf("cpu%u: spurious interrupt (intrcv=%#" PRIx64 101 107 ", data0=%#" PRIx64 ")\n", CPU->id, intrcv, data0); 102 108 #endif 103 109 }
Note:
See TracChangeset
for help on using the changeset viewer.