* [Qemu-devel] [PATCH 01/26] eepro100: convert casts to DO_UPCAST()
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 02/26] eepro100: cast a void * makes no sense Juan Quintela
` (25 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/eepro100.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c
index ec31a6a..3c58ec1 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -1346,7 +1346,7 @@ typedef struct PCIEEPRO100State {
static void pci_map(PCIDevice * pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIEEPRO100State *d = (PCIEEPRO100State *) pci_dev;
+ PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
EEPRO100State *s = &d->eepro100;
logout("region %d, addr=0x%08x, size=0x%08x, type=%d\n",
@@ -1420,7 +1420,7 @@ static CPUReadMemoryFunc *pci_mmio_read[] = {
static void pci_mmio_map(PCIDevice * pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIEEPRO100State *d = (PCIEEPRO100State *) pci_dev;
+ PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
logout("region %d, addr=0x%08x, size=0x%08x, type=%d\n",
region_num, addr, size, type);
@@ -1720,7 +1720,7 @@ static void nic_cleanup(VLANClientState *vc)
static int pci_nic_uninit(PCIDevice *dev)
{
- PCIEEPRO100State *d = (PCIEEPRO100State *) dev;
+ PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, dev);
EEPRO100State *s = &d->eepro100;
cpu_unregister_io_memory(s->mmio_index);
@@ -1730,7 +1730,7 @@ static int pci_nic_uninit(PCIDevice *dev)
static void nic_init(PCIDevice *pci_dev, uint32_t device)
{
- PCIEEPRO100State *d = (PCIEEPRO100State *)pci_dev;
+ PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
EEPRO100State *s;
logout("\n");
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 02/26] eepro100: cast a void * makes no sense
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 01/26] eepro100: convert casts to DO_UPCAST() Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 03/26] eepro100: Remove unused indirection of PCIDevice Juan Quintela
` (24 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/eepro100.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 3c58ec1..1776975 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -507,7 +507,7 @@ static void nic_selective_reset(EEPRO100State * s)
static void nic_reset(void *opaque)
{
- EEPRO100State *s = (EEPRO100State *) opaque;
+ EEPRO100State *s = opaque;
logout("%p\n", s);
static int first;
if (!first) {
@@ -1544,7 +1544,7 @@ static ssize_t nic_receive(VLANClientState *vc, const uint8_t * buf, size_t size
static int nic_load(QEMUFile * f, void *opaque, int version_id)
{
- EEPRO100State *s = (EEPRO100State *) opaque;
+ EEPRO100State *s = opaque;
int i;
int ret;
@@ -1634,7 +1634,7 @@ static int nic_load(QEMUFile * f, void *opaque, int version_id)
static void nic_save(QEMUFile * f, void *opaque)
{
- EEPRO100State *s = (EEPRO100State *) opaque;
+ EEPRO100State *s = opaque;
int i;
if (s->pci_dev)
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 03/26] eepro100: Remove unused indirection of PCIDevice
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 01/26] eepro100: convert casts to DO_UPCAST() Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 02/26] eepro100: cast a void * makes no sense Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 04/26] pci: remove casts from void * Juan Quintela
` (23 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Once there, there is no way that we don't have a PCI Device at save/load time. Remove the check
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/eepro100.c | 57 +++++++++++++++++++++++----------------------------------
1 files changed, 23 insertions(+), 34 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 1776975..bdc8353 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -181,6 +181,7 @@ typedef enum {
} ru_state_t;
typedef struct {
+ PCIDevice dev;
#if 1
uint8_t cmd;
uint32_t start;
@@ -200,7 +201,6 @@ typedef struct {
uint8_t curpag;
uint8_t mult[8]; /* multicast mask array */
int mmio_index;
- PCIDevice *pci_dev;
VLANClientState *vc;
#endif
uint8_t scb_stat; /* SCB stat/ack byte */
@@ -304,7 +304,7 @@ static void disable_interrupt(EEPRO100State * s)
{
if (s->int_stat) {
logout("interrupt disabled\n");
- qemu_irq_lower(s->pci_dev->irq[0]);
+ qemu_irq_lower(s->dev.irq[0]);
s->int_stat = 0;
}
}
@@ -313,7 +313,7 @@ static void enable_interrupt(EEPRO100State * s)
{
if (!s->int_stat) {
logout("interrupt enabled\n");
- qemu_irq_raise(s->pci_dev->irq[0]);
+ qemu_irq_raise(s->dev.irq[0]);
s->int_stat = 1;
}
}
@@ -392,7 +392,7 @@ static void eepro100_fcp_interrupt(EEPRO100State * s)
static void pci_reset(EEPRO100State * s)
{
uint32_t device = s->device;
- uint8_t *pci_conf = s->pci_dev->config;
+ uint8_t *pci_conf = s->dev.config;
logout("%p\n", s);
@@ -1338,16 +1338,10 @@ static void ioport_write4(void *opaque, uint32_t addr, uint32_t val)
/***********************************************************/
/* PCI EEPRO100 definitions */
-typedef struct PCIEEPRO100State {
- PCIDevice dev;
- EEPRO100State eepro100;
-} PCIEEPRO100State;
-
static void pci_map(PCIDevice * pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
- EEPRO100State *s = &d->eepro100;
+ EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
logout("region %d, addr=0x%08x, size=0x%08x, type=%d\n",
region_num, addr, size, type);
@@ -1420,15 +1414,15 @@ static CPUReadMemoryFunc *pci_mmio_read[] = {
static void pci_mmio_map(PCIDevice * pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
+ EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
logout("region %d, addr=0x%08x, size=0x%08x, type=%d\n",
region_num, addr, size, type);
if (region_num == 0) {
/* Map control / status registers. */
- cpu_register_physical_memory(addr, size, d->eepro100.mmio_index);
- d->eepro100.region[region_num] = addr;
+ cpu_register_physical_memory(addr, size, s->mmio_index);
+ s->region[region_num] = addr;
}
}
@@ -1551,8 +1545,8 @@ static int nic_load(QEMUFile * f, void *opaque, int version_id)
if (version_id > 3)
return -EINVAL;
- if (s->pci_dev && version_id >= 3) {
- ret = pci_device_load(s->pci_dev, f);
+ if (version_id >= 3) {
+ ret = pci_device_load(&s->dev, f);
if (ret < 0)
return ret;
}
@@ -1637,8 +1631,7 @@ static void nic_save(QEMUFile * f, void *opaque)
EEPRO100State *s = opaque;
int i;
- if (s->pci_dev)
- pci_device_save(s->pci_dev, f);
+ pci_device_save(&s->dev, f);
qemu_put_8s(f, &s->rxcr);
@@ -1720,8 +1713,7 @@ static void nic_cleanup(VLANClientState *vc)
static int pci_nic_uninit(PCIDevice *dev)
{
- PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, dev);
- EEPRO100State *s = &d->eepro100;
+ EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, dev);
cpu_unregister_io_memory(s->mmio_index);
@@ -1730,16 +1722,13 @@ static int pci_nic_uninit(PCIDevice *dev)
static void nic_init(PCIDevice *pci_dev, uint32_t device)
{
- PCIEEPRO100State *d = DO_UPCAST(PCIEEPRO100State, dev, pci_dev);
- EEPRO100State *s;
+ EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
logout("\n");
- d->dev.unregister = pci_nic_uninit;
+ s->dev.unregister = pci_nic_uninit;
- s = &d->eepro100;
s->device = device;
- s->pci_dev = &d->dev;
pci_reset(s);
@@ -1748,24 +1737,24 @@ static void nic_init(PCIDevice *pci_dev, uint32_t device)
s->eeprom = eeprom93xx_new(EEPROM_SIZE);
/* Handler for memory-mapped I/O */
- d->eepro100.mmio_index =
+ s->mmio_index =
cpu_register_io_memory(pci_mmio_read, pci_mmio_write, s);
- pci_register_bar(&d->dev, 0, PCI_MEM_SIZE,
+ pci_register_bar(&s->dev, 0, PCI_MEM_SIZE,
PCI_ADDRESS_SPACE_MEM |
PCI_ADDRESS_SPACE_MEM_PREFETCH, pci_mmio_map);
- pci_register_bar(&d->dev, 1, PCI_IO_SIZE, PCI_ADDRESS_SPACE_IO,
+ pci_register_bar(&s->dev, 1, PCI_IO_SIZE, PCI_ADDRESS_SPACE_IO,
pci_map);
- pci_register_bar(&d->dev, 2, PCI_FLASH_SIZE, PCI_ADDRESS_SPACE_MEM,
+ pci_register_bar(&s->dev, 2, PCI_FLASH_SIZE, PCI_ADDRESS_SPACE_MEM,
pci_mmio_map);
- qdev_get_macaddr(&d->dev.qdev, s->macaddr);
+ qdev_get_macaddr(&s->dev.qdev, s->macaddr);
logout("macaddr: %s\n", nic_dump(&s->macaddr[0], 6));
assert(s->region[1] == 0);
nic_reset(s);
- s->vc = qdev_get_vlan_client(&d->dev.qdev,
+ s->vc = qdev_get_vlan_client(&s->dev.qdev,
nic_can_receive, nic_receive, NULL,
nic_cleanup, s);
@@ -1794,15 +1783,15 @@ static void pci_i82559er_init(PCIDevice *dev)
static PCIDeviceInfo eepro100_info[] = {
{
.qdev.name = "i82551",
- .qdev.size = sizeof(PCIEEPRO100State),
+ .qdev.size = sizeof(EEPRO100State),
.init = pci_i82551_init,
},{
.qdev.name = "i82557b",
- .qdev.size = sizeof(PCIEEPRO100State),
+ .qdev.size = sizeof(EEPRO100State),
.init = pci_i82557b_init,
},{
.qdev.name = "i82559er",
- .qdev.size = sizeof(PCIEEPRO100State),
+ .qdev.size = sizeof(EEPRO100State),
.init = pci_i82559er_init,
},{
/* end of list */
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 04/26] pci: remove casts from void *
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (2 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 03/26] eepro100: Remove unused indirection of PCIDevice Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 05/26] rtl8139: Remove unneeded double indirection of PCIRTL8139State Juan Quintela
` (22 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/pci.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/pci.c b/hw/pci.c
index 27eac04..319f2ed 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -75,7 +75,7 @@ static PCIBus *first_bus;
static void pcibus_save(QEMUFile *f, void *opaque)
{
- PCIBus *bus = (PCIBus *)opaque;
+ PCIBus *bus = opaque;
int i;
qemu_put_be32(f, bus->nirq);
@@ -85,7 +85,7 @@ static void pcibus_save(QEMUFile *f, void *opaque)
static int pcibus_load(QEMUFile *f, void *opaque, int version_id)
{
- PCIBus *bus = (PCIBus *)opaque;
+ PCIBus *bus = opaque;
int i, nirq;
if (version_id != 1)
@@ -106,7 +106,7 @@ static int pcibus_load(QEMUFile *f, void *opaque, int version_id)
static void pci_bus_reset(void *opaque)
{
- PCIBus *bus = (PCIBus *)opaque;
+ PCIBus *bus = opaque;
int i;
for (i = 0; i < bus->nirq; i++) {
@@ -624,7 +624,7 @@ uint32_t pci_data_read(void *opaque, uint32_t addr, int len)
/* 0 <= irq_num <= 3. level must be 0 or 1 */
static void pci_set_irq(void *opaque, int irq_num, int level)
{
- PCIDevice *pci_dev = (PCIDevice *)opaque;
+ PCIDevice *pci_dev = opaque;
PCIBus *bus;
int change;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 05/26] rtl8139: Remove unneeded double indirection of PCIRTL8139State
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (3 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 04/26] pci: remove casts from void * Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 06/26] rtl8139: remove pointless cast from void * Juan Quintela
` (21 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/rtl8139.c | 38 +++++++++++++-------------------------
1 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index fcd6d95..a79b066 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -423,6 +423,7 @@ static void RTL8139TallyCounters_load(QEMUFile* f, RTL8139TallyCounters *tally_c
static void RTL8139TallyCounters_save(QEMUFile* f, RTL8139TallyCounters *tally_counters);
typedef struct RTL8139State {
+ PCIDevice dev;
uint8_t phys[8]; /* mac address */
uint8_t mult[8]; /* multicast mask array */
@@ -463,7 +464,6 @@ typedef struct RTL8139State {
uint16_t CpCmd;
uint8_t TxThresh;
- PCIDevice *pci_dev;
VLANClientState *vc;
uint8_t macaddr[6];
int rtl8139_mmio_io_addr;
@@ -692,7 +692,7 @@ static void rtl8139_update_irq(RTL8139State *s)
DEBUG_PRINT(("RTL8139: Set IRQ to %d (%04x %04x)\n",
isr ? 1 : 0, s->IntrStatus, s->IntrMask));
- qemu_set_irq(s->pci_dev->irq[0], (isr != 0));
+ qemu_set_irq(s->dev.irq[0], (isr != 0));
}
#define POLYNOMIAL 0x04c11db6
@@ -3121,7 +3121,7 @@ static void rtl8139_save(QEMUFile* f,void* opaque)
RTL8139State* s=(RTL8139State*)opaque;
unsigned int i;
- pci_device_save(s->pci_dev, f);
+ pci_device_save(&s->dev, f);
qemu_put_buffer(f, s->phys, 6);
qemu_put_buffer(f, s->mult, 8);
@@ -3215,7 +3215,7 @@ static int rtl8139_load(QEMUFile* f,void* opaque,int version_id)
return -EINVAL;
if (version_id >= 3) {
- ret = pci_device_load(s->pci_dev, f);
+ ret = pci_device_load(&s->dev, f);
if (ret < 0)
return ret;
}
@@ -3323,16 +3323,10 @@ static int rtl8139_load(QEMUFile* f,void* opaque,int version_id)
/***********************************************************/
/* PCI RTL8139 definitions */
-typedef struct PCIRTL8139State {
- PCIDevice dev;
- RTL8139State rtl8139;
-} PCIRTL8139State;
-
static void rtl8139_mmio_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIRTL8139State *d = (PCIRTL8139State *)pci_dev;
- RTL8139State *s = &d->rtl8139;
+ RTL8139State *s = DO_UPCAST(RTL8139State, dev, pci_dev);
cpu_register_physical_memory(addr + 0, 0x100, s->rtl8139_mmio_io_addr);
}
@@ -3340,8 +3334,7 @@ static void rtl8139_mmio_map(PCIDevice *pci_dev, int region_num,
static void rtl8139_ioport_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIRTL8139State *d = (PCIRTL8139State *)pci_dev;
- RTL8139State *s = &d->rtl8139;
+ RTL8139State *s = DO_UPCAST(RTL8139State, dev, pci_dev);
register_ioport_write(addr, 0x100, 1, rtl8139_ioport_writeb, s);
register_ioport_read( addr, 0x100, 1, rtl8139_ioport_readb, s);
@@ -3437,8 +3430,7 @@ static void rtl8139_cleanup(VLANClientState *vc)
static int pci_rtl8139_uninit(PCIDevice *dev)
{
- PCIRTL8139State *d = (PCIRTL8139State *)dev;
- RTL8139State *s = &d->rtl8139;
+ RTL8139State *s = DO_UPCAST(RTL8139State, dev, dev);
cpu_unregister_io_memory(s->rtl8139_mmio_io_addr);
@@ -3447,13 +3439,12 @@ static int pci_rtl8139_uninit(PCIDevice *dev)
static void pci_rtl8139_init(PCIDevice *dev)
{
- PCIRTL8139State *d = (PCIRTL8139State *)dev;
- RTL8139State *s;
+ RTL8139State * s = DO_UPCAST(RTL8139State, dev, dev);
uint8_t *pci_conf;
- d->dev.unregister = pci_rtl8139_uninit;
+ s->dev.unregister = pci_rtl8139_uninit;
- pci_conf = d->dev.config;
+ pci_conf = s->dev.config;
pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_REALTEK);
pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_REALTEK_8139);
pci_conf[0x04] = 0x05; /* command = I/O space, Bus Master */
@@ -3463,19 +3454,16 @@ static void pci_rtl8139_init(PCIDevice *dev)
pci_conf[0x3d] = 1; /* interrupt pin 0 */
pci_conf[0x34] = 0xdc;
- s = &d->rtl8139;
-
/* I/O handler for memory-mapped I/O */
s->rtl8139_mmio_io_addr =
cpu_register_io_memory(rtl8139_mmio_read, rtl8139_mmio_write, s);
- pci_register_bar(&d->dev, 0, 0x100,
+ pci_register_bar(&s->dev, 0, 0x100,
PCI_ADDRESS_SPACE_IO, rtl8139_ioport_map);
- pci_register_bar(&d->dev, 1, 0x100,
+ pci_register_bar(&s->dev, 1, 0x100,
PCI_ADDRESS_SPACE_MEM, rtl8139_mmio_map);
- s->pci_dev = (PCIDevice *)d;
qdev_get_macaddr(&dev->qdev, s->macaddr);
qemu_register_reset(rtl8139_reset, s);
rtl8139_reset(s);
@@ -3501,7 +3489,7 @@ static void pci_rtl8139_init(PCIDevice *dev)
static PCIDeviceInfo rtl8139_info = {
.qdev.name = "rtl8139",
- .qdev.size = sizeof(PCIRTL8139State),
+ .qdev.size = sizeof(RTL8139State),
.init = pci_rtl8139_init,
};
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 06/26] rtl8139: remove pointless cast from void *
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (4 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 05/26] rtl8139: Remove unneeded double indirection of PCIRTL8139State Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 07/26] lsi53c895a: " Juan Quintela
` (20 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/rtl8139.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index a79b066..830ab88 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -3118,7 +3118,7 @@ static uint32_t rtl8139_mmio_readl(void *opaque, target_phys_addr_t addr)
static void rtl8139_save(QEMUFile* f,void* opaque)
{
- RTL8139State* s=(RTL8139State*)opaque;
+ RTL8139State* s = opaque;
unsigned int i;
pci_device_save(&s->dev, f);
@@ -3206,7 +3206,7 @@ static void rtl8139_save(QEMUFile* f,void* opaque)
static int rtl8139_load(QEMUFile* f,void* opaque,int version_id)
{
- RTL8139State* s=(RTL8139State*)opaque;
+ RTL8139State* s = opaque;
unsigned int i;
int ret;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 07/26] lsi53c895a: remove pointless cast from void *
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (5 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 06/26] rtl8139: remove pointless cast from void * Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 08/26] lsi53c895a: use DO_UPCAST to cast from PCIDevice Juan Quintela
` (19 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/lsi53c895a.c | 38 +++++++++++++++++++-------------------
1 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index f749a45..f8501d4 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -635,7 +635,7 @@ static int lsi_queue_tag(LSIState *s, uint32_t tag, uint32_t arg)
static void lsi_command_complete(void *opaque, int reason, uint32_t tag,
uint32_t arg)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
int out;
out = (s->sstat1 & PHASE_MASK) == PHASE_DO;
@@ -1724,14 +1724,14 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val)
static void lsi_mmio_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
lsi_reg_writeb(s, addr & 0xff, val);
}
static void lsi_mmio_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0xff;
lsi_reg_writeb(s, addr, val & 0xff);
@@ -1740,7 +1740,7 @@ static void lsi_mmio_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
static void lsi_mmio_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0xff;
lsi_reg_writeb(s, addr, val & 0xff);
@@ -1751,14 +1751,14 @@ static void lsi_mmio_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
static uint32_t lsi_mmio_readb(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
return lsi_reg_readb(s, addr & 0xff);
}
static uint32_t lsi_mmio_readw(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0xff;
@@ -1769,7 +1769,7 @@ static uint32_t lsi_mmio_readw(void *opaque, target_phys_addr_t addr)
static uint32_t lsi_mmio_readl(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0xff;
val = lsi_reg_readb(s, addr);
@@ -1793,7 +1793,7 @@ static CPUWriteMemoryFunc *lsi_mmio_writefn[3] = {
static void lsi_ram_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t newval;
int shift;
@@ -1807,7 +1807,7 @@ static void lsi_ram_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
static void lsi_ram_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t newval;
addr &= 0x1fff;
@@ -1823,7 +1823,7 @@ static void lsi_ram_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
static void lsi_ram_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0x1fff;
s->script_ram[addr >> 2] = val;
@@ -1831,7 +1831,7 @@ static void lsi_ram_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
static uint32_t lsi_ram_readb(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0x1fff;
@@ -1842,7 +1842,7 @@ static uint32_t lsi_ram_readb(void *opaque, target_phys_addr_t addr)
static uint32_t lsi_ram_readw(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0x1fff;
@@ -1854,7 +1854,7 @@ static uint32_t lsi_ram_readw(void *opaque, target_phys_addr_t addr)
static uint32_t lsi_ram_readl(void *opaque, target_phys_addr_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0x1fff;
return le32_to_cpu(s->script_ram[addr >> 2]);
@@ -1874,13 +1874,13 @@ static CPUWriteMemoryFunc *lsi_ram_writefn[3] = {
static uint32_t lsi_io_readb(void *opaque, uint32_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
return lsi_reg_readb(s, addr & 0xff);
}
static uint32_t lsi_io_readw(void *opaque, uint32_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0xff;
val = lsi_reg_readb(s, addr);
@@ -1890,7 +1890,7 @@ static uint32_t lsi_io_readw(void *opaque, uint32_t addr)
static uint32_t lsi_io_readl(void *opaque, uint32_t addr)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
uint32_t val;
addr &= 0xff;
val = lsi_reg_readb(s, addr);
@@ -1902,13 +1902,13 @@ static uint32_t lsi_io_readl(void *opaque, uint32_t addr)
static void lsi_io_writeb(void *opaque, uint32_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
lsi_reg_writeb(s, addr & 0xff, val);
}
static void lsi_io_writew(void *opaque, uint32_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0xff;
lsi_reg_writeb(s, addr, val & 0xff);
lsi_reg_writeb(s, addr + 1, (val >> 8) & 0xff);
@@ -1916,7 +1916,7 @@ static void lsi_io_writew(void *opaque, uint32_t addr, uint32_t val)
static void lsi_io_writel(void *opaque, uint32_t addr, uint32_t val)
{
- LSIState *s = (LSIState *)opaque;
+ LSIState *s = opaque;
addr &= 0xff;
lsi_reg_writeb(s, addr, val & 0xff);
lsi_reg_writeb(s, addr + 1, (val >> 8) & 0xff);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 08/26] lsi53c895a: use DO_UPCAST to cast from PCIDevice
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (6 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 07/26] lsi53c895a: " Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 09/26] lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence) Juan Quintela
` (18 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/lsi53c895a.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index f8501d4..7ebf452 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -1927,7 +1927,7 @@ static void lsi_io_writel(void *opaque, uint32_t addr, uint32_t val)
static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = (LSIState *)pci_dev;
+ LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
DPRINTF("Mapping IO at %08x\n", addr);
@@ -1942,7 +1942,7 @@ static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num,
static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = (LSIState *)pci_dev;
+ LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
DPRINTF("Mapping ram at %08x\n", addr);
s->script_ram_base = addr;
@@ -1952,7 +1952,7 @@ static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num,
static void lsi_mmio_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = (LSIState *)pci_dev;
+ LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
DPRINTF("Mapping registers at %08x\n", addr);
cpu_register_physical_memory(addr + 0, 0x400, s->mmio_io_addr);
@@ -2153,7 +2153,7 @@ static int lsi_scsi_load(QEMUFile *f, void *opaque, int version_id)
static int lsi_scsi_uninit(PCIDevice *d)
{
- LSIState *s = (LSIState *) d;
+ LSIState *s = DO_UPCAST(LSIState, pci_dev, d);
cpu_unregister_io_memory(s->mmio_io_addr);
cpu_unregister_io_memory(s->ram_io_addr);
@@ -2165,7 +2165,7 @@ static int lsi_scsi_uninit(PCIDevice *d)
static void lsi_scsi_init(PCIDevice *dev)
{
- LSIState *s = (LSIState *)dev;
+ LSIState *s = DO_UPCAST(LSIState, pci_dev, dev);
uint8_t *pci_conf;
pci_conf = s->pci_dev.config;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 09/26] lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence)
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (7 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 08/26] lsi53c895a: use DO_UPCAST to cast from PCIDevice Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 10/26] lsi53c895a: LSIState is a DeviceHost Juan Quintela
` (17 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/lsi53c895a.c | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 7ebf452..d154b23 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -175,7 +175,7 @@ typedef struct {
} lsi_queue;
typedef struct {
- PCIDevice pci_dev;
+ PCIDevice dev;
int mmio_io_addr;
int ram_io_addr;
uint32_t script_ram_base;
@@ -410,7 +410,7 @@ static void lsi_update_irq(LSIState *s)
level, s->dstat, s->sist1, s->sist0);
last_level = level;
}
- qemu_set_irq(s->pci_dev.irq[0], level);
+ qemu_set_irq(s->dev.irq[0], level);
}
/* Stop SCRIPTS execution and raise a SCSI interrupt. */
@@ -1927,7 +1927,7 @@ static void lsi_io_writel(void *opaque, uint32_t addr, uint32_t val)
static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
+ LSIState *s = DO_UPCAST(LSIState, dev, pci_dev);
DPRINTF("Mapping IO at %08x\n", addr);
@@ -1942,7 +1942,7 @@ static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num,
static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
+ LSIState *s = DO_UPCAST(LSIState, dev, pci_dev);
DPRINTF("Mapping ram at %08x\n", addr);
s->script_ram_base = addr;
@@ -1952,7 +1952,7 @@ static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num,
static void lsi_mmio_mapfunc(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- LSIState *s = DO_UPCAST(LSIState, pci_dev, pci_dev);
+ LSIState *s = DO_UPCAST(LSIState, dev, pci_dev);
DPRINTF("Mapping registers at %08x\n", addr);
cpu_register_physical_memory(addr + 0, 0x400, s->mmio_io_addr);
@@ -1980,7 +1980,7 @@ void lsi_scsi_attach(DeviceState *host, BlockDriverState *bd, int id)
s->scsi_dev[id] = scsi_generic_init(bd, 1, lsi_command_complete, s);
if (s->scsi_dev[id] == NULL)
s->scsi_dev[id] = scsi_disk_init(bd, 1, lsi_command_complete, s);
- bd->private = &s->pci_dev;
+ bd->private = &s->dev;
}
static void lsi_scsi_save(QEMUFile *f, void *opaque)
@@ -1991,7 +1991,7 @@ static void lsi_scsi_save(QEMUFile *f, void *opaque)
assert(s->current_dma_len == 0);
assert(s->active_commands == 0);
- pci_device_save(&s->pci_dev, f);
+ pci_device_save(&s->dev, f);
qemu_put_sbe32s(f, &s->carry);
qemu_put_sbe32s(f, &s->sense);
@@ -2074,7 +2074,7 @@ static int lsi_scsi_load(QEMUFile *f, void *opaque, int version_id)
return -EINVAL;
}
- if ((ret = pci_device_load(&s->pci_dev, f)) < 0)
+ if ((ret = pci_device_load(&s->dev, f)) < 0)
return ret;
qemu_get_sbe32s(f, &s->carry);
@@ -2153,7 +2153,7 @@ static int lsi_scsi_load(QEMUFile *f, void *opaque, int version_id)
static int lsi_scsi_uninit(PCIDevice *d)
{
- LSIState *s = DO_UPCAST(LSIState, pci_dev, d);
+ LSIState *s = DO_UPCAST(LSIState, dev, d);
cpu_unregister_io_memory(s->mmio_io_addr);
cpu_unregister_io_memory(s->ram_io_addr);
@@ -2165,10 +2165,10 @@ static int lsi_scsi_uninit(PCIDevice *d)
static void lsi_scsi_init(PCIDevice *dev)
{
- LSIState *s = DO_UPCAST(LSIState, pci_dev, dev);
+ LSIState *s = DO_UPCAST(LSIState, dev, dev);
uint8_t *pci_conf;
- pci_conf = s->pci_dev.config;
+ pci_conf = s->dev.config;
/* PCI Vendor ID (word) */
pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_LSI_LOGIC);
@@ -2198,7 +2198,7 @@ static void lsi_scsi_init(PCIDevice *dev)
s->queue = qemu_malloc(sizeof(lsi_queue));
s->queue_len = 1;
s->active_commands = 0;
- s->pci_dev.unregister = lsi_scsi_uninit;
+ s->dev.unregister = lsi_scsi_uninit;
lsi_soft_reset(s);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 10/26] lsi53c895a: LSIState is a DeviceHost
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (8 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 09/26] lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence) Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 11/26] Introduce vga_common_reset() to be able to typcheck vga_reset() Juan Quintela
` (16 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Go figure.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/lsi53c895a.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index d154b23..94712aa 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -1960,7 +1960,7 @@ static void lsi_mmio_mapfunc(PCIDevice *pci_dev, int region_num,
void lsi_scsi_attach(DeviceState *host, BlockDriverState *bd, int id)
{
- LSIState *s = (LSIState *)host;
+ LSIState *s = DO_UPCAST(LSIState, dev.qdev, host);
if (id < 0) {
for (id = 0; id < LSI_MAX_DEVS; id++) {
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 11/26] Introduce vga_common_reset() to be able to typcheck vga_reset()
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (9 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 10/26] lsi53c895a: LSIState is a DeviceHost Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 12/26] vga: Rename vga_state -> vga Juan Quintela
` (15 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 2 +-
hw/vga.c | 10 +++++++---
hw/vga_int.h | 2 +-
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 95d822a..8ac30be 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3125,7 +3125,7 @@ static void cirrus_reset(void *opaque)
{
CirrusVGAState *s = opaque;
- vga_reset(s);
+ vga_common_reset(&s->vga);
unmap_linear_vram(s);
s->vga.sr[0x06] = 0x0f;
if (s->device_id == CIRRUS_ID_CLGD5446) {
diff --git a/hw/vga.c b/hw/vga.c
index 3882f20..463276e 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -1873,10 +1873,8 @@ static void vga_invalidate_display(void *opaque)
s->full_update = 1;
}
-void vga_reset(void *opaque)
+void vga_common_reset(VGACommonState *s)
{
- VGAState *s = (VGAState *) opaque;
-
s->lfb_addr = 0;
s->lfb_end = 0;
s->map_addr = 0;
@@ -1942,6 +1940,12 @@ void vga_reset(void *opaque)
}
}
+static void vga_reset(void *opaque)
+{
+ VGAState *s = (VGAState *) opaque;
+ vga_common_reset(s);
+}
+
#define TEXTMODE_X(x) ((x) % width)
#define TEXTMODE_Y(x) ((x) / width)
#define VMEM2CHTYPE(v) ((v & 0xff0007ff) | \
diff --git a/hw/vga_int.h b/hw/vga_int.h
index eb2d6ea..bb28872 100644
--- a/hw/vga_int.h
+++ b/hw/vga_int.h
@@ -192,7 +192,7 @@ static inline int c6_to_8(int v)
void vga_common_init(VGAState *s, int vga_ram_size);
void vga_init(VGAState *s);
-void vga_reset(void *s);
+void vga_common_reset(VGACommonState *s);
void vga_dirty_log_start(VGAState *s);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 12/26] vga: Rename vga_state -> vga
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (10 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 11/26] Introduce vga_common_reset() to be able to typcheck vga_reset() Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 13/26] Everything outside of vga.c should use VGACommonState Juan Quintela
` (14 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/vga.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/vga.c b/hw/vga.c
index 463276e..35350f1 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -2227,7 +2227,7 @@ static int vga_load(QEMUFile *f, void *opaque, int version_id)
typedef struct PCIVGAState {
PCIDevice dev;
- VGAState vga_state;
+ VGAState vga;
} PCIVGAState;
void vga_dirty_log_start(VGAState *s)
@@ -2245,7 +2245,7 @@ static void vga_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
PCIVGAState *d = (PCIVGAState *)pci_dev;
- VGAState *s = &d->vga_state;
+ VGAState *s = &d->vga;
if (region_num == PCI_ROM_SLOT) {
cpu_register_physical_memory(addr, s->bios_size, s->bios_offset);
} else {
@@ -2479,7 +2479,7 @@ static void pci_vga_write_config(PCIDevice *d,
uint32_t address, uint32_t val, int len)
{
PCIVGAState *pvs = container_of(d, PCIVGAState, dev);
- VGAState *s = &pvs->vga_state;
+ VGAState *s = &pvs->vga;
pci_default_write_config(d, address, val, len);
if (s->map_addr && pvs->dev.io_regions[0].addr == -1)
@@ -2489,7 +2489,7 @@ static void pci_vga_write_config(PCIDevice *d,
static void pci_vga_initfn(PCIDevice *dev)
{
PCIVGAState *d = DO_UPCAST(PCIVGAState, dev, dev);
- VGAState *s = &d->vga_state;
+ VGAState *s = &d->vga;
uint8_t *pci_conf = d->dev.config;
// vga + console init
@@ -2539,8 +2539,8 @@ static PCIDeviceInfo vga_info = {
.init = pci_vga_initfn,
.config_write = pci_vga_write_config,
.qdev.props = (Property[]) {
- DEFINE_PROP_HEX32("bios-offset", PCIVGAState, vga_state.bios_offset, 0),
- DEFINE_PROP_HEX32("bios-size", PCIVGAState, vga_state.bios_size, 0),
+ DEFINE_PROP_HEX32("bios-offset", PCIVGAState, vga.bios_offset, 0),
+ DEFINE_PROP_HEX32("bios-size", PCIVGAState, vga.bios_size, 0),
DEFINE_PROP_END_OF_LIST(),
}
};
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 13/26] Everything outside of vga.c should use VGACommonState
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (11 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 12/26] vga: Rename vga_state -> vga Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 14/26] usb-ohci: Change casts to DO_UPCAST() for OHCIPCIState Juan Quintela
` (13 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 10 +++++-----
hw/vga.c | 4 +++-
hw/vga_int.h | 10 ++++------
hw/vmware_vga.c | 4 ++--
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 8ac30be..bc635e9 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -1078,7 +1078,7 @@ static void cirrus_write_bitblt(CirrusVGAState * s, unsigned reg_value)
*
***************************************/
-static void cirrus_get_offsets(VGAState *s1,
+static void cirrus_get_offsets(VGACommonState *s1,
uint32_t *pline_offset,
uint32_t *pstart_addr,
uint32_t *pline_compare)
@@ -1126,7 +1126,7 @@ static uint32_t cirrus_get_bpp16_depth(CirrusVGAState * s)
return ret;
}
-static int cirrus_get_bpp(VGAState *s1)
+static int cirrus_get_bpp(VGACommonState *s1)
{
CirrusVGAState * s = container_of(s1, CirrusVGAState, vga);
uint32_t ret = 8;
@@ -1164,7 +1164,7 @@ static int cirrus_get_bpp(VGAState *s1)
return ret;
}
-static void cirrus_get_resolution(VGAState *s, int *pwidth, int *pheight)
+static void cirrus_get_resolution(VGACommonState *s, int *pwidth, int *pheight)
{
int width, height;
@@ -2234,7 +2234,7 @@ static inline void cirrus_cursor_compute_yrange(CirrusVGAState *s)
/* NOTE: we do not currently handle the cursor bitmap change, so we
update the cursor only if it moves. */
-static void cirrus_cursor_invalidate(VGAState *s1)
+static void cirrus_cursor_invalidate(VGACommonState *s1)
{
CirrusVGAState *s = container_of(s1, CirrusVGAState, vga);
int size;
@@ -2263,7 +2263,7 @@ static void cirrus_cursor_invalidate(VGAState *s1)
}
}
-static void cirrus_cursor_draw_line(VGAState *s1, uint8_t *d1, int scr_y)
+static void cirrus_cursor_draw_line(VGACommonState *s1, uint8_t *d1, int scr_y)
{
CirrusVGAState *s = container_of(s1, CirrusVGAState, vga);
int w, h, bpp, x1, x2, poffset;
diff --git a/hw/vga.c b/hw/vga.c
index 35350f1..99d045f 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -149,6 +149,8 @@ static uint32_t expand4[256];
static uint16_t expand2[256];
static uint8_t expand4to8[16];
+typedef VGACommonState VGAState;
+
static void vga_screen_dump(void *opaque, const char *filename);
static char *screen_dump_filename;
static DisplayChangeListener *screen_dump_dcl;
@@ -2256,7 +2258,7 @@ static void vga_map(PCIDevice *pci_dev, int region_num,
}
}
-void vga_common_init(VGAState *s, int vga_ram_size)
+void vga_common_init(VGACommonState *s, int vga_ram_size)
{
int i, j, v, b;
diff --git a/hw/vga_int.h b/hw/vga_int.h
index bb28872..eb837ff 100644
--- a/hw/vga_int.h
+++ b/hw/vga_int.h
@@ -180,8 +180,6 @@ typedef struct VGACommonState {
union vga_retrace retrace_info;
} VGACommonState;
-typedef VGACommonState VGAState;
-
static inline int c6_to_8(int v)
{
int b;
@@ -190,15 +188,15 @@ static inline int c6_to_8(int v)
return (v << 2) | (b << 1) | b;
}
-void vga_common_init(VGAState *s, int vga_ram_size);
-void vga_init(VGAState *s);
+void vga_common_init(VGACommonState *s, int vga_ram_size);
+void vga_init(VGACommonState *s);
void vga_common_reset(VGACommonState *s);
-void vga_dirty_log_start(VGAState *s);
+void vga_dirty_log_start(VGACommonState *s);
uint32_t vga_mem_readb(void *opaque, target_phys_addr_t addr);
void vga_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val);
-void vga_invalidate_scanlines(VGAState *s, int y1, int y2);
+void vga_invalidate_scanlines(VGACommonState *s, int y1, int y2);
int ppm_save(const char *filename, struct DisplaySurface *ds);
void vga_draw_cursor_line_8(uint8_t *d1, const uint8_t *src1,
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 5ceebf1..0d8a72f 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -1129,8 +1129,8 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
vmsvga_reset(s);
#ifdef EMBED_STDVGA
- vga_common_init((VGAState *) s, vga_ram_size);
- vga_init((VGAState *) s);
+ vga_common_init(&s->vga, vga_ram_size);
+ vga_init(&s->vga);
#else
s->vram_size = vga_ram_size;
s->vram_offset = qemu_ram_alloc(vga_ram_size);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 14/26] usb-ohci: Change casts to DO_UPCAST() for OHCIPCIState
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (12 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 13/26] Everything outside of vga.c should use VGACommonState Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 15/26] ne2000: remove casts from void * Juan Quintela
` (12 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/usb-ohci.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c
index 4c42ec0..fbebf1d 100644
--- a/hw/usb-ohci.c
+++ b/hw/usb-ohci.c
@@ -1706,7 +1706,7 @@ typedef struct {
static void ohci_mapfunc(PCIDevice *pci_dev, int i,
uint32_t addr, uint32_t size, int type)
{
- OHCIPCIState *ohci = (OHCIPCIState *)pci_dev;
+ OHCIPCIState *ohci = DO_UPCAST(OHCIPCIState, pci_dev, pci_dev);
cpu_register_physical_memory(addr, size, ohci->state.mem);
}
@@ -1714,8 +1714,9 @@ void usb_ohci_init_pci(struct PCIBus *bus, int num_ports, int devfn)
{
OHCIPCIState *ohci;
- ohci = (OHCIPCIState *)pci_register_device(bus, "OHCI USB", sizeof(*ohci),
- devfn, NULL, NULL);
+ ohci = DO_UPCAST(OHCIPCIState, pci_dev,
+ pci_register_device(bus, "OHCI USB", sizeof(*ohci),
+ devfn, NULL, NULL));
if (ohci == NULL) {
fprintf(stderr, "usb-ohci: Failed to register PCI device\n");
return;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 15/26] ne2000: remove casts from void *
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (13 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 14/26] usb-ohci: Change casts to DO_UPCAST() for OHCIPCIState Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 16/26] ne2000: pci_dev has this very value with the right type Juan Quintela
` (11 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/ne2000.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index b9c018a..1555fc3 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -650,7 +650,7 @@ static uint32_t ne2000_reset_ioport_read(void *opaque, uint32_t addr)
static void ne2000_save(QEMUFile* f,void* opaque)
{
- NE2000State* s=(NE2000State*)opaque;
+ NE2000State* s = opaque;
uint32_t tmp;
if (s->pci_dev)
@@ -681,7 +681,7 @@ static void ne2000_save(QEMUFile* f,void* opaque)
static int ne2000_load(QEMUFile* f,void* opaque,int version_id)
{
- NE2000State* s=(NE2000State*)opaque;
+ NE2000State* s = opaque;
int ret;
uint32_t tmp;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 16/26] ne2000: pci_dev has this very value with the right type
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (14 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 15/26] ne2000: remove casts from void * Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 17/26] ne2000: Change casts to DO_UPCAST() for PCINE2000State Juan Quintela
` (10 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/ne2000.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 1555fc3..070afcc 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -820,7 +820,7 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
PCI_ADDRESS_SPACE_IO, ne2000_map);
s = &d->ne2000;
s->irq = d->dev.irq[0];
- s->pci_dev = (PCIDevice *)d;
+ s->pci_dev = pci_dev;
qdev_get_macaddr(&d->dev.qdev, s->macaddr);
ne2000_reset(s);
s->vc = qdev_get_vlan_client(&d->dev.qdev,
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 17/26] ne2000: Change casts to DO_UPCAST() for PCINE2000State
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (15 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 16/26] ne2000: pci_dev has this very value with the right type Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 18/26] We need PCINE2000State for save/load functions Juan Quintela
` (9 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/ne2000.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 070afcc..e5d8914 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -779,7 +779,7 @@ typedef struct PCINE2000State {
static void ne2000_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCINE2000State *d = (PCINE2000State *)pci_dev;
+ PCINE2000State *d = DO_UPCAST(PCINE2000State, dev, pci_dev);
NE2000State *s = &d->ne2000;
register_ioport_write(addr, 16, 1, ne2000_ioport_write, s);
@@ -805,7 +805,7 @@ static void ne2000_cleanup(VLANClientState *vc)
static void pci_ne2000_init(PCIDevice *pci_dev)
{
- PCINE2000State *d = (PCINE2000State *)pci_dev;
+ PCINE2000State *d = DO_UPCAST(PCINE2000State, dev, pci_dev);
NE2000State *s;
uint8_t *pci_conf;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 18/26] We need PCINE2000State for save/load functions
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (16 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 17/26] ne2000: Change casts to DO_UPCAST() for PCINE2000State Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field Juan Quintela
` (8 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/ne2000.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index e5d8914..1c47c84 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -147,6 +147,11 @@ typedef struct NE2000State {
uint8_t mem[NE2000_MEM_SIZE];
} NE2000State;
+typedef struct PCINE2000State {
+ PCIDevice dev;
+ NE2000State ne2000;
+} PCINE2000State;
+
static void ne2000_reset(NE2000State *s)
{
int i;
@@ -771,11 +776,6 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd)
/***********************************************************/
/* PCI NE2000 definitions */
-typedef struct PCINE2000State {
- PCIDevice dev;
- NE2000State ne2000;
-} PCINE2000State;
-
static void ne2000_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (17 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 18/26] We need PCINE2000State for save/load functions Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 20/26] cirrus_vga: remove pointless cast from void * Juan Quintela
` (7 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/ne2000.c | 43 ++++++++++++++++++++++++++++---------------
1 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 1c47c84..c983bc5 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -141,7 +141,6 @@ typedef struct NE2000State {
uint8_t mult[8]; /* multicast mask array */
qemu_irq irq;
int isa_io_base;
- PCIDevice *pci_dev;
VLANClientState *vc;
uint8_t macaddr[6];
uint8_t mem[NE2000_MEM_SIZE];
@@ -653,14 +652,11 @@ static uint32_t ne2000_reset_ioport_read(void *opaque, uint32_t addr)
return 0;
}
-static void ne2000_save(QEMUFile* f,void* opaque)
+static void ne2000_save(QEMUFile* f, void* opaque)
{
NE2000State* s = opaque;
uint32_t tmp;
- if (s->pci_dev)
- pci_device_save(s->pci_dev, f);
-
qemu_put_8s(f, &s->rxcr);
qemu_put_8s(f, &s->cmd);
@@ -684,21 +680,14 @@ static void ne2000_save(QEMUFile* f,void* opaque)
qemu_put_buffer(f, s->mem, NE2000_MEM_SIZE);
}
-static int ne2000_load(QEMUFile* f,void* opaque,int version_id)
+static int ne2000_load(QEMUFile* f, void* opaque, int version_id)
{
NE2000State* s = opaque;
- int ret;
uint32_t tmp;
if (version_id > 3)
return -EINVAL;
- if (s->pci_dev && version_id >= 3) {
- ret = pci_device_load(s->pci_dev, f);
- if (ret < 0)
- return ret;
- }
-
if (version_id >= 2) {
qemu_get_8s(f, &s->rxcr);
} else {
@@ -727,6 +716,31 @@ static int ne2000_load(QEMUFile* f,void* opaque,int version_id)
return 0;
}
+static void pci_ne2000_save(QEMUFile* f, void* opaque)
+{
+ PCINE2000State* s = opaque;
+
+ pci_device_save(&s->dev, f);
+ ne2000_save(f, &s->ne2000);
+}
+
+static int pci_ne2000_load(QEMUFile* f, void* opaque, int version_id)
+{
+ PCINE2000State* s = opaque;
+ int ret;
+
+ if (version_id > 3)
+ return -EINVAL;
+
+ if (version_id >= 3) {
+ ret = pci_device_load(&s->dev, f);
+ if (ret < 0)
+ return ret;
+ }
+
+ return ne2000_load(f, &s->ne2000, version_id);
+}
+
static void isa_ne2000_cleanup(VLANClientState *vc)
{
NE2000State *s = vc->opaque;
@@ -820,7 +834,6 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
PCI_ADDRESS_SPACE_IO, ne2000_map);
s = &d->ne2000;
s->irq = d->dev.irq[0];
- s->pci_dev = pci_dev;
qdev_get_macaddr(&d->dev.qdev, s->macaddr);
ne2000_reset(s);
s->vc = qdev_get_vlan_client(&d->dev.qdev,
@@ -829,7 +842,7 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
qemu_format_nic_info_str(s->vc, s->macaddr);
- register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s);
+ register_savevm("ne2000", -1, 3, pci_ne2000_save, pci_ne2000_load, d);
}
static PCIDeviceInfo ne2000_info = {
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 20/26] cirrus_vga: remove pointless cast from void *
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (18 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 21/26] cirrus_vga: Change casts to DO_UPCAST() for PCICirrusVGAState Juan Quintela
` (6 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index bc635e9..5bfacb2 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -2346,7 +2346,7 @@ static void cirrus_cursor_draw_line(VGACommonState *s1, uint8_t *d1, int scr_y)
static uint32_t cirrus_linear_readb(void *opaque, target_phys_addr_t addr)
{
- CirrusVGAState *s = (CirrusVGAState *) opaque;
+ CirrusVGAState *s = opaque;
uint32_t ret;
addr &= s->cirrus_addr_mask;
@@ -2405,7 +2405,7 @@ static uint32_t cirrus_linear_readl(void *opaque, target_phys_addr_t addr)
static void cirrus_linear_writeb(void *opaque, target_phys_addr_t addr,
uint32_t val)
{
- CirrusVGAState *s = (CirrusVGAState *) opaque;
+ CirrusVGAState *s = opaque;
unsigned mode;
addr &= s->cirrus_addr_mask;
@@ -2533,7 +2533,7 @@ static uint32_t cirrus_linear_bitblt_readl(void *opaque, target_phys_addr_t addr
static void cirrus_linear_bitblt_writeb(void *opaque, target_phys_addr_t addr,
uint32_t val)
{
- CirrusVGAState *s = (CirrusVGAState *) opaque;
+ CirrusVGAState *s = opaque;
if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
/* bitblt */
@@ -2919,7 +2919,7 @@ static void vga_ioport_write(void *opaque, uint32_t addr, uint32_t val)
static uint32_t cirrus_mmio_readb(void *opaque, target_phys_addr_t addr)
{
- CirrusVGAState *s = (CirrusVGAState *) opaque;
+ CirrusVGAState *s = opaque;
addr &= CIRRUS_PNPMMIO_SIZE - 1;
@@ -2963,7 +2963,7 @@ static uint32_t cirrus_mmio_readl(void *opaque, target_phys_addr_t addr)
static void cirrus_mmio_writeb(void *opaque, target_phys_addr_t addr,
uint32_t val)
{
- CirrusVGAState *s = (CirrusVGAState *) opaque;
+ CirrusVGAState *s = opaque;
addr &= CIRRUS_PNPMMIO_SIZE - 1;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 21/26] cirrus_vga: Change casts to DO_UPCAST() for PCICirrusVGAState
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (19 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 20/26] cirrus_vga: remove pointless cast from void * Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 22/26] Add pci_cirrus_vga_{save/load} functions, then remove vga.pci_dev use Juan Quintela
` (5 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 5bfacb2..9bcaa96 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3263,7 +3263,7 @@ void isa_cirrus_vga_init(void)
static void cirrus_pci_lfb_map(PCIDevice *d, int region_num,
uint32_t addr, uint32_t size, int type)
{
- CirrusVGAState *s = &((PCICirrusVGAState *)d)->cirrus_vga;
+ CirrusVGAState *s = &DO_UPCAST(PCICirrusVGAState, dev, d)->cirrus_vga;
/* XXX: add byte swapping apertures */
cpu_register_physical_memory(addr, s->vga.vram_size,
@@ -3284,7 +3284,7 @@ static void cirrus_pci_lfb_map(PCIDevice *d, int region_num,
static void cirrus_pci_mmio_map(PCIDevice *d, int region_num,
uint32_t addr, uint32_t size, int type)
{
- CirrusVGAState *s = &((PCICirrusVGAState *)d)->cirrus_vga;
+ CirrusVGAState *s = &DO_UPCAST(PCICirrusVGAState, dev, d)->cirrus_vga;
cpu_register_physical_memory(addr, CIRRUS_PNPMMIO_SIZE,
s->cirrus_mmio_io_addr);
@@ -3293,11 +3293,11 @@ static void cirrus_pci_mmio_map(PCIDevice *d, int region_num,
static void pci_cirrus_write_config(PCIDevice *d,
uint32_t address, uint32_t val, int len)
{
- PCICirrusVGAState *pvs = container_of(d, PCICirrusVGAState, dev);
+ PCICirrusVGAState *pvs = DO_UPCAST(PCICirrusVGAState, dev, d);
CirrusVGAState *s = &pvs->cirrus_vga;
pci_default_write_config(d, address, val, len);
- if (s->vga.map_addr && pvs->dev.io_regions[0].addr == -1)
+ if (s->vga.map_addr && d->io_regions[0].addr == -1)
s->vga.map_addr = 0;
cirrus_update_memory_access(s);
}
@@ -3312,7 +3312,7 @@ static void pci_cirrus_vga_initfn(PCIDevice *dev)
/* setup VGA */
vga_common_init(&s->vga, VGA_RAM_SIZE);
cirrus_init_common(s, device_id, 1);
- s->vga.pci_dev = (PCIDevice *)d;
+ s->vga.pci_dev = dev;
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 22/26] Add pci_cirrus_vga_{save/load} functions, then remove vga.pci_dev use
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (20 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 21/26] cirrus_vga: Change casts to DO_UPCAST() for PCICirrusVGAState Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 23/26] pcnet: Change casts to DO_UPCAST() for PCIPCNetState Juan Quintela
` (4 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 39 +++++++++++++++++++++++++++------------
1 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 9bcaa96..16cc054 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3021,9 +3021,6 @@ static void cirrus_vga_save(QEMUFile *f, void *opaque)
{
CirrusVGAState *s = opaque;
- if (s->vga.pci_dev)
- pci_device_save(s->vga.pci_dev, f);
-
qemu_put_be32s(f, &s->vga.latch);
qemu_put_8s(f, &s->vga.sr_index);
qemu_put_buffer(f, s->vga.sr, 256);
@@ -3062,17 +3059,10 @@ static void cirrus_vga_save(QEMUFile *f, void *opaque)
static int cirrus_vga_load(QEMUFile *f, void *opaque, int version_id)
{
CirrusVGAState *s = opaque;
- int ret;
if (version_id > 2)
return -EINVAL;
- if (s->vga.pci_dev && version_id >= 2) {
- ret = pci_device_load(s->vga.pci_dev, f);
- if (ret < 0)
- return ret;
- }
-
qemu_get_be32s(f, &s->vga.latch);
qemu_get_8s(f, &s->vga.sr_index);
qemu_get_buffer(f, s->vga.sr, 256);
@@ -3115,6 +3105,31 @@ static int cirrus_vga_load(QEMUFile *f, void *opaque, int version_id)
return 0;
}
+static void pci_cirrus_vga_save(QEMUFile *f, void *opaque)
+{
+ PCICirrusVGAState *s = opaque;
+
+ pci_device_save(&s->dev, f);
+ cirrus_vga_save(f, &s->cirrus_vga);
+}
+
+static int pci_cirrus_vga_load(QEMUFile *f, void *opaque, int version_id)
+{
+ PCICirrusVGAState *s = opaque;
+ int ret;
+
+ if (version_id > 2)
+ return -EINVAL;
+
+ if (version_id >= 2) {
+ ret = pci_device_load(&s->dev, f);
+ if (ret < 0)
+ return ret;
+ }
+
+ return cirrus_vga_load(f, &s->cirrus_vga, version_id);
+}
+
/***************************************
*
* initialize
@@ -3231,7 +3246,6 @@ static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci)
qemu_register_reset(cirrus_reset, s);
cirrus_reset(s);
- register_savevm("cirrus_vga", 0, 2, cirrus_vga_save, cirrus_vga_load, s);
}
/***************************************
@@ -3251,6 +3265,7 @@ void isa_cirrus_vga_init(void)
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
+ register_savevm("cirrus_vga", 0, 2, cirrus_vga_save, cirrus_vga_load, s);
/* XXX ISA-LFB support */
}
@@ -3312,7 +3327,6 @@ static void pci_cirrus_vga_initfn(PCIDevice *dev)
/* setup VGA */
vga_common_init(&s->vga, VGA_RAM_SIZE);
cirrus_init_common(s, device_id, 1);
- s->vga.pci_dev = dev;
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
@@ -3334,6 +3348,7 @@ static void pci_cirrus_vga_initfn(PCIDevice *dev)
pci_register_bar((PCIDevice *)d, 1, CIRRUS_PNPMMIO_SIZE,
PCI_ADDRESS_SPACE_MEM, cirrus_pci_mmio_map);
}
+ register_savevm("cirrus_vga", 0, 2, pci_cirrus_vga_save, pci_cirrus_vga_load, d);
/* XXX: ROM BIOS */
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 23/26] pcnet: Change casts to DO_UPCAST() for PCIPCNetState
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (21 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 22/26] Add pci_cirrus_vga_{save/load} functions, then remove vga.pci_dev use Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 24/26] pcnet: remove useless casts This are casts to the very type of the function Juan Quintela
` (3 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/pcnet.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/pcnet.c b/hw/pcnet.c
index 637dcfb..23a577e 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -1764,7 +1764,7 @@ static uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr)
static void pcnet_ioport_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCNetState *d = &((PCIPCNetState *)pci_dev)->state;
+ PCNetState *d = &DO_UPCAST(PCIPCNetState, pci_dev, pci_dev)->state;
#ifdef PCNET_DEBUG_IO
printf("pcnet_ioport_map addr=0x%04x size=0x%04x\n", addr, size);
@@ -1978,7 +1978,7 @@ static CPUReadMemoryFunc *pcnet_mmio_read[] = {
static void pcnet_mmio_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- PCIPCNetState *d = (PCIPCNetState *)pci_dev;
+ PCIPCNetState *d = DO_UPCAST(PCIPCNetState, pci_dev, pci_dev);
#ifdef PCNET_DEBUG_IO
printf("pcnet_mmio_map addr=0x%08x 0x%08x\n", addr, size);
@@ -2008,7 +2008,7 @@ static void pci_pcnet_cleanup(VLANClientState *vc)
static int pci_pcnet_uninit(PCIDevice *dev)
{
- PCIPCNetState *d = (PCIPCNetState *)dev;
+ PCIPCNetState *d = DO_UPCAST(PCIPCNetState, pci_dev, dev);
cpu_unregister_io_memory(d->state.mmio_index);
@@ -2017,7 +2017,7 @@ static int pci_pcnet_uninit(PCIDevice *dev)
static void pci_pcnet_init(PCIDevice *pci_dev)
{
- PCIPCNetState *d = (PCIPCNetState *)pci_dev;
+ PCIPCNetState *d = DO_UPCAST(PCIPCNetState, pci_dev, pci_dev);
PCNetState *s = &d->state;
uint8_t *pci_conf;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 24/26] pcnet: remove useless casts This are casts to the very type of the function
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (22 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 23/26] pcnet: Change casts to DO_UPCAST() for PCIPCNetState Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:42 ` [Qemu-devel] [PATCH 25/26] pcnet: Add pci_pcnet_{save/load} functions, then remove PCNetState pci_dev field Juan Quintela
` (2 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/pcnet.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/pcnet.c b/hw/pcnet.c
index 23a577e..d5be673 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -1964,15 +1964,15 @@ static void pcnet_common_init(DeviceState *dev, PCNetState *s,
/* PCI interface */
static CPUWriteMemoryFunc *pcnet_mmio_write[] = {
- (CPUWriteMemoryFunc *)&pcnet_mmio_writeb,
- (CPUWriteMemoryFunc *)&pcnet_mmio_writew,
- (CPUWriteMemoryFunc *)&pcnet_mmio_writel
+ &pcnet_mmio_writeb,
+ &pcnet_mmio_writew,
+ &pcnet_mmio_writel
};
static CPUReadMemoryFunc *pcnet_mmio_read[] = {
- (CPUReadMemoryFunc *)&pcnet_mmio_readb,
- (CPUReadMemoryFunc *)&pcnet_mmio_readw,
- (CPUReadMemoryFunc *)&pcnet_mmio_readl
+ &pcnet_mmio_readb,
+ &pcnet_mmio_readw,
+ &pcnet_mmio_readl
};
static void pcnet_mmio_map(PCIDevice *pci_dev, int region_num,
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 25/26] pcnet: Add pci_pcnet_{save/load} functions, then remove PCNetState pci_dev field
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (23 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 24/26] pcnet: remove useless casts This are casts to the very type of the function Juan Quintela
@ 2009-08-24 16:42 ` Juan Quintela
2009-08-24 16:43 ` [Qemu-devel] [PATCH 26/26] e1000 cleanup Juan Quintela
2009-08-25 8:22 ` [Qemu-devel] [PATCH 00/26] Indirection Cleanup Gerd Hoffmann
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:42 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/pcnet.c | 39 ++++++++++++++++++++++++++-------------
1 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/hw/pcnet.c b/hw/pcnet.c
index d5be673..6cba99b 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -60,7 +60,6 @@
typedef struct PCNetState_st PCNetState;
struct PCNetState_st {
- PCIDevice *pci_dev;
VLANClientState *vc;
uint8_t macaddr[6];
QEMUTimer *poll_timer;
@@ -1885,9 +1884,6 @@ static void pcnet_save(QEMUFile *f, void *opaque)
PCNetState *s = opaque;
unsigned int i;
- if (s->pci_dev)
- pci_device_save(s->pci_dev, f);
-
qemu_put_sbe32(f, s->rap);
qemu_put_sbe32(f, s->isr);
qemu_put_sbe32(f, s->lnkst);
@@ -1909,17 +1905,11 @@ static void pcnet_save(QEMUFile *f, void *opaque)
static int pcnet_load(QEMUFile *f, void *opaque, int version_id)
{
PCNetState *s = opaque;
- int i, ret;
+ int i;
if (version_id != 2)
return -EINVAL;
- if (s->pci_dev) {
- ret = pci_device_load(s->pci_dev, f);
- if (ret < 0)
- return ret;
- }
-
qemu_get_sbe32s(f, &s->rap);
qemu_get_sbe32s(f, &s->isr);
qemu_get_sbe32s(f, &s->lnkst);
@@ -1940,6 +1930,29 @@ static int pcnet_load(QEMUFile *f, void *opaque, int version_id)
return 0;
}
+static void pci_pcnet_save(QEMUFile *f, void *opaque)
+{
+ PCIPCNetState *s = opaque;
+
+ pci_device_save(&s->pci_dev, f);
+ pcnet_save(f, &s->state);
+}
+
+static int pci_pcnet_load(QEMUFile *f, void *opaque, int version_id)
+{
+ PCIPCNetState *s = opaque;
+ int ret;
+
+ if (version_id != 2)
+ return -EINVAL;
+
+ ret = pci_device_load(&s->pci_dev, f);
+ if (ret < 0)
+ return ret;
+
+ return pcnet_load(f, &s->state, version_id);
+}
+
static void pcnet_common_cleanup(PCNetState *d)
{
unregister_savevm("pcnet", d);
@@ -1958,7 +1971,6 @@ static void pcnet_common_init(DeviceState *dev, PCNetState *s,
pcnet_can_receive, pcnet_receive, NULL,
cleanup, s);
pcnet_h_reset(s);
- register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
}
/* PCI interface */
@@ -2059,9 +2071,9 @@ static void pci_pcnet_init(PCIDevice *pci_dev)
s->irq = pci_dev->irq[0];
s->phys_mem_read = pci_physical_memory_read;
s->phys_mem_write = pci_physical_memory_write;
- s->pci_dev = pci_dev;
pcnet_common_init(&pci_dev->qdev, s, pci_pcnet_cleanup);
+ register_savevm("pcnet", -1, 2, pci_pcnet_save, pci_pcnet_load, d);
}
/* SPARC32 interface */
@@ -2138,6 +2150,7 @@ static void lance_init(SysBusDevice *dev)
s->phys_mem_write = ledma_memory_write;
pcnet_common_init(&dev->qdev, s, lance_cleanup);
+ register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
}
static SysBusDeviceInfo lance_info = {
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Qemu-devel] [PATCH 26/26] e1000 cleanup
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (24 preceding siblings ...)
2009-08-24 16:42 ` [Qemu-devel] [PATCH 25/26] pcnet: Add pci_pcnet_{save/load} functions, then remove PCNetState pci_dev field Juan Quintela
@ 2009-08-24 16:43 ` Juan Quintela
2009-08-25 8:22 ` [Qemu-devel] [PATCH 00/26] Indirection Cleanup Gerd Hoffmann
26 siblings, 0 replies; 28+ messages in thread
From: Juan Quintela @ 2009-08-24 16:43 UTC (permalink / raw)
To: qemu-devel
Remove un needed casts from void *.
Use DO_UPCAST() instead of blind casts
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/e1000.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/e1000.c b/hw/e1000.c
index b0542d7..85cfbb0 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -897,7 +897,7 @@ enum { MAC_NARRAYS = ARRAY_SIZE(mac_regarraystosave) };
static void
nic_save(QEMUFile *f, void *opaque)
{
- E1000State *s = (E1000State *)opaque;
+ E1000State *s = opaque;
int i, j;
pci_device_save(&s->dev, f);
@@ -940,7 +940,7 @@ nic_save(QEMUFile *f, void *opaque)
static int
nic_load(QEMUFile *f, void *opaque, int version_id)
{
- E1000State *s = (E1000State *)opaque;
+ E1000State *s = opaque;
int i, j, ret;
if ((ret = pci_device_load(&s->dev, f)) < 0)
@@ -1032,7 +1032,7 @@ static void
e1000_mmio_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
- E1000State *d = (E1000State *)pci_dev;
+ E1000State *d = DO_UPCAST(E1000State, dev, pci_dev);
int i;
const uint32_t excluded_regs[] = {
E1000_MDIC, E1000_ICR, E1000_ICS, E1000_IMS,
@@ -1062,7 +1062,7 @@ e1000_cleanup(VLANClientState *vc)
static int
pci_e1000_uninit(PCIDevice *dev)
{
- E1000State *d = (E1000State *) dev;
+ E1000State *d = DO_UPCAST(E1000State, dev, dev);
cpu_unregister_io_memory(d->mmio_index);
@@ -1083,7 +1083,7 @@ static void e1000_reset(void *opaque)
static void pci_e1000_init(PCIDevice *pci_dev)
{
- E1000State *d = (E1000State *)pci_dev;
+ E1000State *d = DO_UPCAST(E1000State, dev, pci_dev);
uint8_t *pci_conf;
uint16_t checksum = 0;
static const char info_str[] = "e1000";
--
1.6.2.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [Qemu-devel] [PATCH 00/26] Indirection Cleanup
2009-08-24 16:42 [Qemu-devel] [PATCH 00/26] Indirection Cleanup Juan Quintela
` (25 preceding siblings ...)
2009-08-24 16:43 ` [Qemu-devel] [PATCH 26/26] e1000 cleanup Juan Quintela
@ 2009-08-25 8:22 ` Gerd Hoffmann
26 siblings, 0 replies; 28+ messages in thread
From: Gerd Hoffmann @ 2009-08-25 8:22 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel
Hi,
> - ne2000: split isa and pci save/load functions. From now, isa parts
> are only the common ones.
Well done, looks much better now.
The other patches of the series are fine too.
cheers,
Gerd
^ permalink raw reply [flat|nested] 28+ messages in thread