Changeset 2a103b5 in mainline for kernel/genarch/src/drivers/i8259/i8259.c
- Timestamp:
- 2019-06-09T11:31:38Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c48de91
- Parents:
- b401b33
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/drivers/i8259/i8259.c
rb401b33 r2a103b5 43 43 #include <interrupt.h> 44 44 45 static const char *i8259_get_name(void); 46 47 pic_ops_t i8259_pic_ops = { 48 .get_name = i8259_get_name, 49 .enable_irqs = i8259_enable_irqs, 50 .disable_irqs = i8259_disable_irqs, 51 .eoi = i8259_eoi, 52 .is_spurious = i8259_is_spurious, 53 .handle_spurious = i8259_handle_spurious 54 }; 55 45 56 // XXX: need to change pic_* API to get rid of these 46 57 static i8259_t *saved_pic0; … … 76 87 pio_write_8(&pic1->port2, 1); 77 88 78 pic_disable_irqs(0xffff); /* disable all irq's */79 pic_enable_irqs(1 << PIC0_IRQ_PIC1); /* but enable PIC0_IRQ_PIC1 */89 i8259_disable_irqs(0xffff); /* disable all irq's */ 90 i8259_enable_irqs(1 << PIC0_IRQ_PIC1); /* but enable PIC0_IRQ_PIC1 */ 80 91 } 81 92 82 void pic_enable_irqs(uint16_t irqmask) 93 const char *i8259_get_name(void) 94 { 95 return "i8259"; 96 } 97 98 void i8259_enable_irqs(uint16_t irqmask) 83 99 { 84 100 uint8_t x; … … 96 112 } 97 113 98 void pic_disable_irqs(uint16_t irqmask)114 void i8259_disable_irqs(uint16_t irqmask) 99 115 { 100 116 uint8_t x; … … 112 128 } 113 129 114 void pic_eoi(unsigned int irq)130 void i8259_eoi(unsigned int irq) 115 131 { 116 132 if (irq >= PIC0_IRQ_COUNT) … … 119 135 } 120 136 121 bool pic_is_spurious(unsigned int irq)137 bool i8259_is_spurious(unsigned int irq) 122 138 { 123 139 pio_write_8(&saved_pic0->port1, PIC_OCW3 | PIC_OCW3_READ_ISR); … … 128 144 } 129 145 130 void pic_handle_spurious(unsigned int irq)146 void i8259_handle_spurious(unsigned int irq) 131 147 { 132 148 /* For spurious IRQs from pic1, we need to isssue an EOI to pic0 */
Note:
See TracChangeset
for help on using the changeset viewer.