From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1Poa-0002aA-N0 for qemu-devel@nongnu.org; Mon, 22 Jul 2013 19:46:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1PoY-0003po-57 for qemu-devel@nongnu.org; Mon, 22 Jul 2013 19:46:52 -0400 Received: from cantor2.suse.de ([195.135.220.15]:45761 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1PoX-0003pP-Mk for qemu-devel@nongnu.org; Mon, 22 Jul 2013 19:46:49 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Tue, 23 Jul 2013 01:45:51 +0200 Message-Id: <1374536796-13983-11-git-send-email-afaerber@suse.de> In-Reply-To: <1374536796-13983-1-git-send-email-afaerber@suse.de> References: <1374536796-13983-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 10/55] scsi/lsi53c895a: QOM parent field cleanup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Paul Brook Replace direct uses of LSIState::dev with QOM casts and rename it to parent_obj. Acked-by: Peter Crosthwaite Signed-off-by: Andreas F=C3=A4rber --- hw/scsi/lsi53c895a.c | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index dae467c..e11224f 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -184,7 +184,10 @@ typedef struct lsi_request { } lsi_request; =20 typedef struct { - PCIDevice dev; + /*< private >*/ + PCIDevice parent_obj; + /*< public >*/ + MemoryRegion mmio_io; MemoryRegion ram_io; MemoryRegion io_io; @@ -387,7 +390,7 @@ static inline uint32_t read_dword(LSIState *s, uint32= _t addr) { uint32_t buf; =20 - pci_dma_read(&s->dev, addr, &buf, 4); + pci_dma_read(PCI_DEVICE(s), addr, &buf, 4); return cpu_to_le32(buf); } =20 @@ -398,6 +401,7 @@ static void lsi_stop_script(LSIState *s) =20 static void lsi_update_irq(LSIState *s) { + PCIDevice *d =3D PCI_DEVICE(s); int level; static int last_level; lsi_request *p; @@ -429,7 +433,7 @@ static void lsi_update_irq(LSIState *s) level, s->dstat, s->sist1, s->sist0); last_level =3D level; } - qemu_set_irq(s->dev.irq[0], level); + qemu_set_irq(d->irq[0], level); =20 if (!level && lsi_irq_on_rsl(s) && !(s->scntl1 & LSI_SCNTL1_CON)) { DPRINTF("Handled IRQs & disconnected, looking for pending " @@ -525,6 +529,7 @@ static void lsi_bad_selection(LSIState *s, uint32_t i= d) /* Initiate a SCSI layer data transfer. */ static void lsi_do_dma(LSIState *s, int out) { + PCIDevice *pci_dev; uint32_t count; dma_addr_t addr; SCSIDevice *dev; @@ -536,6 +541,7 @@ static void lsi_do_dma(LSIState *s, int out) return; } =20 + pci_dev =3D PCI_DEVICE(s); dev =3D s->current->req->dev; assert(dev); =20 @@ -561,9 +567,9 @@ static void lsi_do_dma(LSIState *s, int out) } /* ??? Set SFBR to first data byte. */ if (out) { - pci_dma_read(&s->dev, addr, s->current->dma_buf, count); + pci_dma_read(pci_dev, addr, s->current->dma_buf, count); } else { - pci_dma_write(&s->dev, addr, s->current->dma_buf, count); + pci_dma_write(pci_dev, addr, s->current->dma_buf, count); } s->current->dma_len -=3D count; if (s->current->dma_len =3D=3D 0) { @@ -758,7 +764,7 @@ static void lsi_do_command(LSIState *s) DPRINTF("Send command len=3D%d\n", s->dbc); if (s->dbc > 16) s->dbc =3D 16; - pci_dma_read(&s->dev, s->dnad, buf, s->dbc); + pci_dma_read(PCI_DEVICE(s), s->dnad, buf, s->dbc); s->sfbr =3D buf[0]; s->command_complete =3D 0; =20 @@ -809,7 +815,7 @@ static void lsi_do_status(LSIState *s) s->dbc =3D 1; status =3D s->status; s->sfbr =3D status; - pci_dma_write(&s->dev, s->dnad, &status, 1); + pci_dma_write(PCI_DEVICE(s), s->dnad, &status, 1); lsi_set_phase(s, PHASE_MI); s->msg_action =3D 1; lsi_add_msg_byte(s, 0); /* COMMAND COMPLETE */ @@ -823,7 +829,7 @@ static void lsi_do_msgin(LSIState *s) len =3D s->msg_len; if (len > s->dbc) len =3D s->dbc; - pci_dma_write(&s->dev, s->dnad, s->msg, len); + pci_dma_write(PCI_DEVICE(s), s->dnad, s->msg, len); /* Linux drivers rely on the last byte being in the SIDL. */ s->sidl =3D s->msg[len - 1]; s->msg_len -=3D len; @@ -855,7 +861,7 @@ static void lsi_do_msgin(LSIState *s) static uint8_t lsi_get_msgbyte(LSIState *s) { uint8_t data; - pci_dma_read(&s->dev, s->dnad, &data, 1); + pci_dma_read(PCI_DEVICE(s), s->dnad, &data, 1); s->dnad++; s->dbc--; return data; @@ -1001,14 +1007,15 @@ static inline int32_t sxt24(int32_t n) #define LSI_BUF_SIZE 4096 static void lsi_memcpy(LSIState *s, uint32_t dest, uint32_t src, int cou= nt) { + PCIDevice *d =3D PCI_DEVICE(s); int n; uint8_t buf[LSI_BUF_SIZE]; =20 DPRINTF("memcpy dest 0x%08x src 0x%08x count %d\n", dest, src, count= ); while (count) { n =3D (count > LSI_BUF_SIZE) ? LSI_BUF_SIZE : count; - pci_dma_read(&s->dev, src, buf, n); - pci_dma_write(&s->dev, dest, buf, n); + pci_dma_read(d, src, buf, n); + pci_dma_write(d, dest, buf, n); src +=3D n; dest +=3D n; count -=3D n; @@ -1034,6 +1041,7 @@ static void lsi_wait_reselect(LSIState *s) =20 static void lsi_execute_script(LSIState *s) { + PCIDevice *pci_dev =3D PCI_DEVICE(s); uint32_t insn; uint32_t addr, addr_high; int opcode; @@ -1076,7 +1084,7 @@ again: =20 /* 32-bit Table indirect */ offset =3D sxt24(addr); - pci_dma_read(&s->dev, s->dsa + offset, buf, 8); + pci_dma_read(pci_dev, s->dsa + offset, buf, 8); /* byte count is stored in bits 0:23 only */ s->dbc =3D cpu_to_le32(buf[0]) & 0xffffff; s->rbc =3D s->dbc; @@ -1435,7 +1443,7 @@ again: n =3D (insn & 7); reg =3D (insn >> 16) & 0xff; if (insn & (1 << 24)) { - pci_dma_read(&s->dev, addr, data, n); + pci_dma_read(pci_dev, addr, data, n); DPRINTF("Load reg 0x%x size %d addr 0x%08x =3D %08x\n", = reg, n, addr, *(int *)data); for (i =3D 0; i < n; i++) { @@ -1446,7 +1454,7 @@ again: for (i =3D 0; i < n; i++) { data[i] =3D lsi_reg_readb(s, reg + i); } - pci_dma_write(&s->dev, addr, data, n); + pci_dma_write(pci_dev, addr, data, n); } } } @@ -1988,7 +1996,7 @@ static const VMStateDescription vmstate_lsi_scsi =3D= { .minimum_version_id_old =3D 0, .pre_save =3D lsi_pre_save, .fields =3D (VMStateField []) { - VMSTATE_PCI_DEVICE(dev, LSIState), + VMSTATE_PCI_DEVICE(parent_obj, LSIState), =20 VMSTATE_INT32(carry, LSIState), VMSTATE_INT32(status, LSIState), @@ -2089,7 +2097,7 @@ static int lsi_scsi_init(PCIDevice *dev) DeviceState *d =3D DEVICE(dev); uint8_t *pci_conf; =20 - pci_conf =3D s->dev.config; + pci_conf =3D dev->config; =20 /* PCI latency timer =3D 255 */ pci_conf[PCI_LATENCY_TIMER] =3D 0xff; @@ -2103,9 +2111,9 @@ static int lsi_scsi_init(PCIDevice *dev) memory_region_init_io(&s->io_io, OBJECT(s), &lsi_io_ops, s, "lsi-io", 256); =20 - pci_register_bar(&s->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io_io); - pci_register_bar(&s->dev, 1, 0, &s->mmio_io); - pci_register_bar(&s->dev, 2, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->ram_= io); + pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io_io); + pci_register_bar(dev, 1, 0, &s->mmio_io); + pci_register_bar(dev, 2, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->ram_io); QTAILQ_INIT(&s->queue); =20 scsi_bus_new(&s->bus, d, &lsi_scsi_info, NULL); --=20 1.8.1.4