On Sun, Jul 09, 2017 at 11:02:17PM +0200, Eric Auger wrote: > From: Pranavkumar Sawargaonkar <pranavku...@linaro.org> > > To implement INTx to gsi routing we need to pass the gpex host > bridge the gsi associated to each INTx index. Let's introduce > irq_num array and gpex_set_irq_num setter function. > > Signed-off-by: Pranavkumar Sawargaonkar <pranavku...@linaro.org> > Signed-off-by: Tushar Jagad <tushar.ja...@linaro.org> > Signed-off-by: Eric Auger <eric.au...@redhat.com> > --- > hw/pci-host/gpex.c | 10 ++++++++++ > include/hw/pci-host/gpex.h | 3 +++ > 2 files changed, 13 insertions(+) > > diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c > index 83084b9..0d42ac2 100644 > --- a/hw/pci-host/gpex.c > +++ b/hw/pci-host/gpex.c > @@ -43,6 +43,16 @@ static void gpex_set_irq(void *opaque, int irq_num, int > level) > qemu_set_irq(s->irq[irq_num], level); > } > > +int gpex_set_irq_num(GPEXHost *s, int index, uint32_t gsi) > +{ > + if (index >= GPEX_NUM_IRQS) { ^extra space > + return -EINVAL; > + } > + > + s->irq_num[index] = gsi; > + return 0; > +} > + > static void gpex_host_realize(DeviceState *dev, Error **errp) > { > PCIHostState *pci = PCI_HOST_BRIDGE(dev); > diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h > index 68c9348..db26b3e 100644 > --- a/include/hw/pci-host/gpex.h > +++ b/include/hw/pci-host/gpex.h > @@ -51,6 +51,9 @@ typedef struct GPEXHost { > MemoryRegion io_ioport; > MemoryRegion io_mmio; > qemu_irq irq[GPEX_NUM_IRQS]; > + uint32_t irq_num[GPEX_NUM_IRQS];
This is an int when calling gpex_set_irq_num() and then used as an int later, requiring a cast. Why not just make it an int here and in the API? > } GPEXHost; > > +int gpex_set_irq_num(GPEXHost *s, int index, uint32_t gsi); > + > #endif /* HW_GPEX_H */ > -- > 2.5.5 > >