ivshmem: Clean up register callbacks

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <1458066895-20632-19-git-send-email-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2016-03-15 19:34:33 +01:00
parent d855e27565
commit 434ad76db5
1 changed files with 2 additions and 9 deletions

View File

@ -121,12 +121,10 @@ static inline uint32_t ivshmem_has_feature(IVShmemState *ivs,
return (ivs->features & (1 << feature)); return (ivs->features & (1 << feature));
} }
/* accessing registers - based on rtl8139 */
static void ivshmem_update_irq(IVShmemState *s) static void ivshmem_update_irq(IVShmemState *s)
{ {
PCIDevice *d = PCI_DEVICE(s); PCIDevice *d = PCI_DEVICE(s);
int isr; uint32_t isr = s->intrstatus & s->intrmask;
isr = (s->intrstatus & s->intrmask) & 0xffffffff;
/* don't print ISR resets */ /* don't print ISR resets */
if (isr) { if (isr) {
@ -134,7 +132,7 @@ static void ivshmem_update_irq(IVShmemState *s)
isr ? 1 : 0, s->intrstatus, s->intrmask); isr ? 1 : 0, s->intrstatus, s->intrmask);
} }
pci_set_irq(d, (isr != 0)); pci_set_irq(d, isr != 0);
} }
static void ivshmem_IntrMask_write(IVShmemState *s, uint32_t val) static void ivshmem_IntrMask_write(IVShmemState *s, uint32_t val)
@ -142,7 +140,6 @@ static void ivshmem_IntrMask_write(IVShmemState *s, uint32_t val)
IVSHMEM_DPRINTF("IntrMask write(w) val = 0x%04x\n", val); IVSHMEM_DPRINTF("IntrMask write(w) val = 0x%04x\n", val);
s->intrmask = val; s->intrmask = val;
ivshmem_update_irq(s); ivshmem_update_irq(s);
} }
@ -151,7 +148,6 @@ static uint32_t ivshmem_IntrMask_read(IVShmemState *s)
uint32_t ret = s->intrmask; uint32_t ret = s->intrmask;
IVSHMEM_DPRINTF("intrmask read(w) val = 0x%04x\n", ret); IVSHMEM_DPRINTF("intrmask read(w) val = 0x%04x\n", ret);
return ret; return ret;
} }
@ -160,7 +156,6 @@ static void ivshmem_IntrStatus_write(IVShmemState *s, uint32_t val)
IVSHMEM_DPRINTF("IntrStatus write(w) val = 0x%04x\n", val); IVSHMEM_DPRINTF("IntrStatus write(w) val = 0x%04x\n", val);
s->intrstatus = val; s->intrstatus = val;
ivshmem_update_irq(s); ivshmem_update_irq(s);
} }
@ -170,9 +165,7 @@ static uint32_t ivshmem_IntrStatus_read(IVShmemState *s)
/* reading ISR clears all interrupts */ /* reading ISR clears all interrupts */
s->intrstatus = 0; s->intrstatus = 0;
ivshmem_update_irq(s); ivshmem_update_irq(s);
return ret; return ret;
} }