| 573 | static void pic2_set_irq(void *opaque, int irq, int level); |
| 574 | |
| 575 | PIC2State *pic2_init(PhysMemoryMap *port_map, uint32_t addr0, uint32_t addr1, |
| 576 | uint32_t elcr_addr0, uint32_t elcr_addr1, |
| 577 | void (*cpu_set_irq)(void *opaque, int level), |
| 578 | void *opaque, IRQSignal *irqs) |
| 579 | { |
| 580 | PIC2State *s; |
| 581 | int i; |
| 582 | |
| 583 | s = mallocz(sizeof(*s)); |
| 584 | |
| 585 | for(i = 0; i < 16; i++) { |
| 586 | irq_init(&irqs[i], pic2_set_irq, s, i); |
| 587 | } |
| 588 | s->cpu_set_irq = cpu_set_irq; |
| 589 | s->opaque = opaque; |
| 590 | s->pics[0] = pic_init(port_map, addr0, elcr_addr0, 0xf8, pic2_update_irq, s); |
| 591 | s->pics[1] = pic_init(port_map, addr1, elcr_addr1, 0xde, pic2_update_irq, s); |
| 592 | s->irq_requested = 0; |
| 593 | return s; |
| 594 | } |
| 595 | |
| 596 | void pic2_set_elcr(PIC2State *s, const uint8_t *elcr) |
| 597 | { |
no test coverage detected