- pic_init1(0x20, 0x4d0, &pics[0]);
- pic_init1(0xa0, 0x4d1, &pics[1]);
- pics[0].elcr_mask = 0xf8;
- pics[1].elcr_mask = 0xde;
+ PicState2 *s;
+
+ s = qemu_mallocz(sizeof(PicState2));
+ if (!s)
+ return NULL;
+ pic_init1(0x20, 0x4d0, &s->pics[0]);
+ pic_init1(0xa0, 0x4d1, &s->pics[1]);
+ s->pics[0].elcr_mask = 0xf8;
+ s->pics[1].elcr_mask = 0xde;
+ s->parent_irq = parent_irq;
+ s->pics[0].pics_state = s;
+ s->pics[1].pics_state = s;
+ isa_pic = s;
+ return qemu_allocate_irqs(i8259_set_irq, s, 16);