Revision 0abaa7c1 hw/pcnet.c

b/hw/pcnet.c
60 60
typedef struct PCNetState_st PCNetState;
61 61

  
62 62
struct PCNetState_st {
63
    PCIDevice *pci_dev;
64 63
    VLANClientState *vc;
65 64
    uint8_t macaddr[6];
66 65
    QEMUTimer *poll_timer;
......
1885 1884
    PCNetState *s = opaque;
1886 1885
    unsigned int i;
1887 1886

  
1888
    if (s->pci_dev)
1889
        pci_device_save(s->pci_dev, f);
1890

  
1891 1887
    qemu_put_sbe32(f, s->rap);
1892 1888
    qemu_put_sbe32(f, s->isr);
1893 1889
    qemu_put_sbe32(f, s->lnkst);
......
1909 1905
static int pcnet_load(QEMUFile *f, void *opaque, int version_id)
1910 1906
{
1911 1907
    PCNetState *s = opaque;
1912
    int i, ret;
1908
    int i;
1913 1909

  
1914 1910
    if (version_id != 2)
1915 1911
        return -EINVAL;
1916 1912

  
1917
    if (s->pci_dev) {
1918
        ret = pci_device_load(s->pci_dev, f);
1919
        if (ret < 0)
1920
            return ret;
1921
    }
1922

  
1923 1913
    qemu_get_sbe32s(f, &s->rap);
1924 1914
    qemu_get_sbe32s(f, &s->isr);
1925 1915
    qemu_get_sbe32s(f, &s->lnkst);
......
1940 1930
    return 0;
1941 1931
}
1942 1932

  
1933
static void pci_pcnet_save(QEMUFile *f, void *opaque)
1934
{
1935
    PCIPCNetState *s = opaque;
1936

  
1937
    pci_device_save(&s->pci_dev, f);
1938
    pcnet_save(f, &s->state);
1939
}
1940

  
1941
static int pci_pcnet_load(QEMUFile *f, void *opaque, int version_id)
1942
{
1943
    PCIPCNetState *s = opaque;
1944
    int ret;
1945

  
1946
    if (version_id != 2)
1947
        return -EINVAL;
1948

  
1949
    ret = pci_device_load(&s->pci_dev, f);
1950
    if (ret < 0)
1951
        return ret;
1952

  
1953
    return pcnet_load(f, &s->state, version_id);
1954
}
1955

  
1943 1956
static void pcnet_common_cleanup(PCNetState *d)
1944 1957
{
1945 1958
    unregister_savevm("pcnet", d);
......
1958 1971
                                 pcnet_can_receive, pcnet_receive, NULL,
1959 1972
                                 cleanup, s);
1960 1973
    pcnet_h_reset(s);
1961
    register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
1962 1974
    return 0;
1963 1975
}
1964 1976

  
......
2060 2072
    s->irq = pci_dev->irq[0];
2061 2073
    s->phys_mem_read = pci_physical_memory_read;
2062 2074
    s->phys_mem_write = pci_physical_memory_write;
2063
    s->pci_dev = pci_dev;
2064 2075

  
2076
    register_savevm("pcnet", -1, 2, pci_pcnet_save, pci_pcnet_load, d);
2065 2077
    return pcnet_common_init(&pci_dev->qdev, s, pci_pcnet_cleanup);
2066 2078
}
2067 2079

  
......
2138 2150
    s->phys_mem_read = ledma_memory_read;
2139 2151
    s->phys_mem_write = ledma_memory_write;
2140 2152

  
2153
    register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
2141 2154
    return pcnet_common_init(&dev->qdev, s, lance_cleanup);
2142 2155
}
2143 2156

  

Also available in: Unified diff