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
|
||||
static int64_t irq_time[16];
|
||||
#endif
|
||||
DeviceState *isa_pic;
|
||||
PICCommonState *isa_pic;
|
||||
static PICCommonState *slave_pic;
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
int pic_read_irq(DeviceState *d)
|
||||
int pic_read_irq(PICCommonState *s)
|
||||
{
|
||||
PICCommonState *s = PIC_COMMON(d);
|
||||
int irq, intno;
|
||||
|
||||
irq = pic_get_irq(s);
|
||||
@ -354,10 +353,8 @@ static uint64_t pic_ioport_read(void *opaque, hwaddr addr,
|
||||
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);
|
||||
}
|
||||
|
||||
@ -426,7 +423,7 @@ qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq)
|
||||
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);
|
||||
dev = DEVICE(isadev);
|
||||
|
@ -3,10 +3,10 @@
|
||||
|
||||
/* i8259.c */
|
||||
|
||||
extern DeviceState *isa_pic;
|
||||
extern PICCommonState *isa_pic;
|
||||
qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
|
||||
qemu_irq *kvm_i8259_init(ISABus *bus);
|
||||
int pic_get_output(DeviceState *d);
|
||||
int pic_read_irq(DeviceState *d);
|
||||
int pic_get_output(PICCommonState *s);
|
||||
int pic_read_irq(PICCommonState *s);
|
||||
|
||||
#endif
|
||||
|
@ -99,6 +99,7 @@ typedef struct PCIExpressDevice PCIExpressDevice;
|
||||
typedef struct PCIExpressHost PCIExpressHost;
|
||||
typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
|
||||
typedef struct PCIHostState PCIHostState;
|
||||
typedef struct PICCommonState PICCommonState;
|
||||
typedef struct PostcopyDiscardState PostcopyDiscardState;
|
||||
typedef struct Property Property;
|
||||
typedef struct PropertyInfo PropertyInfo;
|
||||
|
Loading…
Reference in New Issue
Block a user