hw/intc/i8259: Make using the isa_pic singleton more type-safe
This even spares some casts in hot code paths along the way. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230109172347.1830-10-shentey@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
f0712099a2
commit
2aaf0ec7ff
@ -55,7 +55,7 @@ struct PICClass {
|
|||||||
#ifdef DEBUG_IRQ_LATENCY
|
#ifdef DEBUG_IRQ_LATENCY
|
||||||
static int64_t irq_time[16];
|
static int64_t irq_time[16];
|
||||||
#endif
|
#endif
|
||||||
DeviceState *isa_pic;
|
PICCommonState *isa_pic;
|
||||||
static PICCommonState *slave_pic;
|
static PICCommonState *slave_pic;
|
||||||
|
|
||||||
/* return the highest priority found in mask (highest = smallest
|
/* return the highest priority found in mask (highest = smallest
|
||||||
@ -173,9 +173,8 @@ static void pic_intack(PICCommonState *s, int irq)
|
|||||||
pic_update_irq(s);
|
pic_update_irq(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pic_read_irq(DeviceState *d)
|
int pic_read_irq(PICCommonState *s)
|
||||||
{
|
{
|
||||||
PICCommonState *s = PIC_COMMON(d);
|
|
||||||
int irq, intno;
|
int irq, intno;
|
||||||
|
|
||||||
irq = pic_get_irq(s);
|
irq = pic_get_irq(s);
|
||||||
@ -354,10 +353,8 @@ static uint64_t pic_ioport_read(void *opaque, hwaddr addr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pic_get_output(DeviceState *d)
|
int pic_get_output(PICCommonState *s)
|
||||||
{
|
{
|
||||||
PICCommonState *s = PIC_COMMON(d);
|
|
||||||
|
|
||||||
return (pic_get_irq(s) >= 0);
|
return (pic_get_irq(s) >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,7 +423,7 @@ qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq)
|
|||||||
irq_set[i] = qdev_get_gpio_in(dev, i);
|
irq_set[i] = qdev_get_gpio_in(dev, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
isa_pic = dev;
|
isa_pic = PIC_COMMON(dev);
|
||||||
|
|
||||||
isadev = i8259_init_chip(TYPE_I8259, bus, false);
|
isadev = i8259_init_chip(TYPE_I8259, bus, false);
|
||||||
dev = DEVICE(isadev);
|
dev = DEVICE(isadev);
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
/* i8259.c */
|
/* i8259.c */
|
||||||
|
|
||||||
extern DeviceState *isa_pic;
|
extern PICCommonState *isa_pic;
|
||||||
qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
|
qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
|
||||||
qemu_irq *kvm_i8259_init(ISABus *bus);
|
qemu_irq *kvm_i8259_init(ISABus *bus);
|
||||||
int pic_get_output(DeviceState *d);
|
int pic_get_output(PICCommonState *s);
|
||||||
int pic_read_irq(DeviceState *d);
|
int pic_read_irq(PICCommonState *s);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -99,6 +99,7 @@ typedef struct PCIExpressDevice PCIExpressDevice;
|
|||||||
typedef struct PCIExpressHost PCIExpressHost;
|
typedef struct PCIExpressHost PCIExpressHost;
|
||||||
typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
|
typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
|
||||||
typedef struct PCIHostState PCIHostState;
|
typedef struct PCIHostState PCIHostState;
|
||||||
|
typedef struct PICCommonState PICCommonState;
|
||||||
typedef struct PostcopyDiscardState PostcopyDiscardState;
|
typedef struct PostcopyDiscardState PostcopyDiscardState;
|
||||||
typedef struct Property Property;
|
typedef struct Property Property;
|
||||||
typedef struct PropertyInfo PropertyInfo;
|
typedef struct PropertyInfo PropertyInfo;
|
||||||
|
Loading…
Reference in New Issue
Block a user