Revision b881fbe9 hw/pc.c
b/hw/pc.c | ||
---|---|---|
88 | 88 |
static struct e820_table e820_table; |
89 | 89 |
struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX}; |
90 | 90 |
|
91 |
void isa_irq_handler(void *opaque, int n, int level)
|
|
91 |
void gsi_handler(void *opaque, int n, int level)
|
|
92 | 92 |
{ |
93 |
IsaIrqState *isa = (IsaIrqState *)opaque;
|
|
93 |
GSIState *s = opaque;
|
|
94 | 94 |
|
95 |
DPRINTF("isa_irqs: %s irq %d\n", level? "raise" : "lower", n);
|
|
96 |
if (n < 16) {
|
|
97 |
qemu_set_irq(isa->i8259[n], level);
|
|
95 |
DPRINTF("pc: %s GSI %d\n", level ? "raising" : "lowering", n);
|
|
96 |
if (n < ISA_NUM_IRQS) {
|
|
97 |
qemu_set_irq(s->i8259_irq[n], level);
|
|
98 | 98 |
} |
99 |
qemu_set_irq(isa->ioapic[n], level);
|
|
99 |
qemu_set_irq(s->ioapic_irq[n], level);
|
|
100 | 100 |
} |
101 | 101 |
|
102 | 102 |
static void ioport80_write(void *opaque, uint32_t addr, uint32_t data) |
... | ... | |
1125 | 1125 |
} |
1126 | 1126 |
} |
1127 | 1127 |
|
1128 |
void pc_basic_device_init(qemu_irq *isa_irq,
|
|
1128 |
void pc_basic_device_init(qemu_irq *gsi,
|
|
1129 | 1129 |
ISADevice **rtc_state, |
1130 | 1130 |
bool no_vmport) |
1131 | 1131 |
{ |
... | ... | |
1144 | 1144 |
DeviceState *hpet = sysbus_try_create_simple("hpet", HPET_BASE, NULL); |
1145 | 1145 |
|
1146 | 1146 |
if (hpet) { |
1147 |
for (i = 0; i < 24; i++) {
|
|
1148 |
sysbus_connect_irq(sysbus_from_qdev(hpet), i, isa_irq[i]);
|
|
1147 |
for (i = 0; i < GSI_NUM_PINS; i++) {
|
|
1148 |
sysbus_connect_irq(sysbus_from_qdev(hpet), i, gsi[i]);
|
|
1149 | 1149 |
} |
1150 | 1150 |
rtc_irq = qdev_get_gpio_in(hpet, 0); |
1151 | 1151 |
} |
Also available in: Unified diff