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