aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-08-30 16:30:32 +0300
committerAvi Kivity <avi@redhat.com>2009-08-30 16:30:32 +0300
commitfb9bb68a1abeef5a1c3eccd4a1e5599266d57108 (patch)
treef1033e54bf123e5b70d185a34cf83b6aa1a24bd3 /hw
parentMerge commit 'a4a2f59cda3c88eb647d651e0e0c5f1933b646b3' into upstream-merge (diff)
parentRelax pthreads check to avoid win32 (diff)
downloadqemu-kvm-fb9bb68a1abeef5a1c3eccd4a1e5599266d57108.tar.gz
qemu-kvm-fb9bb68a1abeef5a1c3eccd4a1e5599266d57108.tar.bz2
qemu-kvm-fb9bb68a1abeef5a1c3eccd4a1e5599266d57108.zip
Merge commit '4617e59389b3b389ec853e98b91e2402cab84818' into upstream-merge
* commit '4617e59389b3b389ec853e98b91e2402cab84818': Relax pthreads check to avoid win32 e1000 cleanup pcnet: Add pci_pcnet_{save/load} functions, then remove PCNetState pci_dev field pcnet: remove useless casts This are casts to the very type of the function pcnet: Change casts to DO_UPCAST() for PCIPCNetState Add pci_cirrus_vga_{save/load} functions, then remove vga.pci_dev use cirrus_vga: Change casts to DO_UPCAST() for PCICirrusVGAState cirrus_vga: remove pointless cast from void * Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field We need PCINE2000State for save/load functions ne2000: Change casts to DO_UPCAST() for PCINE2000State ne2000: pci_dev has this very value with the right type ne2000: remove casts from void * usb-ohci: Change casts to DO_UPCAST() for OHCIPCIState Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/cirrus_vga.c57
-rw-r--r--hw/e1000.c10
-rw-r--r--hw/ne2000.c61
-rw-r--r--hw/pci.c4
-rw-r--r--hw/pcnet.c59
-rw-r--r--hw/usb-ohci.c7
6 files changed, 120 insertions, 78 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 6b84e3950..d0f0f61a4 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -2347,7 +2347,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;
@@ -2406,7 +2406,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;
@@ -2534,7 +2534,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 */
@@ -2931,7 +2931,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;
@@ -2975,7 +2975,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;
@@ -3033,9 +3033,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);
@@ -3074,17 +3071,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);
@@ -3127,6 +3117,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
@@ -3243,7 +3258,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);
}
/***************************************
@@ -3263,6 +3277,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 */
}
@@ -3275,7 +3290,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;
vga_dirty_log_stop(&s->vga);
@@ -3298,7 +3313,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);
@@ -3307,13 +3322,13 @@ 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;
vga_dirty_log_stop(&s->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);
@@ -3330,7 +3345,6 @@ static int 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.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
@@ -3352,6 +3366,7 @@ static int 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 */
return 0;
}
diff --git a/hw/e1000.c b/hw/e1000.c
index 0253d3b35..95c471c62 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 int 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";
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 9f685b4e9..bdfc9ed26 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -141,12 +141,16 @@ 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];
} NE2000State;
+typedef struct PCINE2000State {
+ PCIDevice dev;
+ NE2000State ne2000;
+} PCINE2000State;
+
static void ne2000_reset(NE2000State *s)
{
int i;
@@ -648,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=(NE2000State*)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);
@@ -679,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=(NE2000State*)opaque;
- int ret;
+ NE2000State* s = opaque;
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 {
@@ -722,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;
@@ -771,15 +790,10 @@ 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)
{
- 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 +819,7 @@ static void ne2000_cleanup(VLANClientState *vc)
static int 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;
@@ -820,7 +834,6 @@ static int 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;
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 int 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);
return 0;
}
diff --git a/hw/pci.c b/hw/pci.c
index 035a4cec4..d0327e2d0 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -90,7 +90,7 @@ static const VMStateDescription vmstate_pcibus = {
static void pci_bus_reset(void *opaque)
{
- PCIBus *bus = (PCIBus *)opaque;
+ PCIBus *bus = opaque;
int i;
for (i = 0; i < bus->nirq; i++) {
@@ -737,7 +737,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;
diff --git a/hw/pcnet.c b/hw/pcnet.c
index 107b5b64c..8c352d213 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;
@@ -1764,7 +1763,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);
@@ -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,28 +1971,27 @@ static int 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);
return 0;
}
/* PCI interface */
static CPUWriteMemoryFunc * const pcnet_mmio_write[] = {
- (CPUWriteMemoryFunc * const )&pcnet_mmio_writeb,
- (CPUWriteMemoryFunc * const )&pcnet_mmio_writew,
- (CPUWriteMemoryFunc * const )&pcnet_mmio_writel
+ &pcnet_mmio_writeb,
+ &pcnet_mmio_writew,
+ &pcnet_mmio_writel
};
static CPUReadMemoryFunc * const pcnet_mmio_read[] = {
- (CPUReadMemoryFunc * const )&pcnet_mmio_readb,
- (CPUReadMemoryFunc * const )&pcnet_mmio_readw,
- (CPUReadMemoryFunc * const )&pcnet_mmio_readl
+ &pcnet_mmio_readb,
+ &pcnet_mmio_readw,
+ &pcnet_mmio_readl
};
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);
@@ -2009,7 +2021,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);
@@ -2018,7 +2030,7 @@ static int pci_pcnet_uninit(PCIDevice *dev)
static int 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;
@@ -2060,8 +2072,8 @@ static int 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;
+ register_savevm("pcnet", -1, 2, pci_pcnet_save, pci_pcnet_load, d);
return pcnet_common_init(&pci_dev->qdev, s, pci_pcnet_cleanup);
}
@@ -2138,6 +2150,7 @@ static int lance_init(SysBusDevice *dev)
s->phys_mem_read = ledma_memory_read;
s->phys_mem_write = ledma_memory_write;
+ register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
return pcnet_common_init(&dev->qdev, s, lance_cleanup);
}
diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c
index 093623fc4..0c08e9fff 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;