Revision d537cf6c hw/piix_pci.c
b/hw/piix_pci.c | ||
---|---|---|
40 | 40 |
return s->config_reg; |
41 | 41 |
} |
42 | 42 |
|
43 |
static void piix3_set_irq(void *pic, int irq_num, int level);
|
|
43 |
static void piix3_set_irq(qemu_irq *pic, int irq_num, int level);
|
|
44 | 44 |
|
45 | 45 |
/* return the global irq number corresponding to a given device irq |
46 | 46 |
pin. We could also use the bus number to have a more precise |
... | ... | |
155 | 155 |
return 0; |
156 | 156 |
} |
157 | 157 |
|
158 |
PCIBus *i440fx_init(PCIDevice **pi440fx_state) |
|
158 |
PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic)
|
|
159 | 159 |
{ |
160 | 160 |
PCIBus *b; |
161 | 161 |
PCIDevice *d; |
162 | 162 |
I440FXState *s; |
163 | 163 |
|
164 | 164 |
s = qemu_mallocz(sizeof(I440FXState)); |
165 |
b = pci_register_bus(piix3_set_irq, pci_slot_get_pirq, NULL, 0, 4);
|
|
165 |
b = pci_register_bus(piix3_set_irq, pci_slot_get_pirq, pic, 0, 4);
|
|
166 | 166 |
s->bus = b; |
167 | 167 |
|
168 | 168 |
register_ioport_write(0xcf8, 4, 4, i440fx_addr_writel, s); |
... | ... | |
204 | 204 |
|
205 | 205 |
static int pci_irq_levels[4]; |
206 | 206 |
|
207 |
static void piix3_set_irq(void *pic, int irq_num, int level)
|
|
207 |
static void piix3_set_irq(qemu_irq *pic, int irq_num, int level)
|
|
208 | 208 |
{ |
209 | 209 |
int i, pic_irq, pic_level; |
210 | 210 |
|
... | ... | |
221 | 221 |
if (pic_irq == piix3_dev->config[0x60 + i]) |
222 | 222 |
pic_level |= pci_irq_levels[i]; |
223 | 223 |
} |
224 |
pic_set_irq(pic_irq, pic_level);
|
|
224 |
qemu_set_irq(pic[pic_irq], pic_level);
|
|
225 | 225 |
} |
226 | 226 |
} |
227 | 227 |
|
Also available in: Unified diff