Revision 4a1b0f1c

b/hw/lsi53c895a.c
1959 1959
    cpu_register_physical_memory(addr + 0, 0x400, s->mmio_io_addr);
1960 1960
}
1961 1961

  
1962
static void lsi_scsi_save(QEMUFile *f, void *opaque)
1962
static void lsi_pre_save(void *opaque)
1963 1963
{
1964 1964
    LSIState *s = opaque;
1965 1965

  
1966 1966
    assert(s->dma_buf == NULL);
1967 1967
    assert(s->current_dma_len == 0);
1968 1968
    assert(s->active_commands == 0);
1969

  
1970
    pci_device_save(&s->dev, f);
1971

  
1972
    qemu_put_sbe32s(f, &s->carry);
1973
    qemu_put_sbe32s(f, &s->sense);
1974
    qemu_put_sbe32s(f, &s->msg_action);
1975
    qemu_put_sbe32s(f, &s->msg_len);
1976
    qemu_put_buffer(f, s->msg, sizeof (s->msg));
1977
    qemu_put_sbe32s(f, &s->waiting);
1978

  
1979
    qemu_put_be32s(f, &s->dsa);
1980
    qemu_put_be32s(f, &s->temp);
1981
    qemu_put_be32s(f, &s->dnad);
1982
    qemu_put_be32s(f, &s->dbc);
1983
    qemu_put_8s(f, &s->istat0);
1984
    qemu_put_8s(f, &s->istat1);
1985
    qemu_put_8s(f, &s->dcmd);
1986
    qemu_put_8s(f, &s->dstat);
1987
    qemu_put_8s(f, &s->dien);
1988
    qemu_put_8s(f, &s->sist0);
1989
    qemu_put_8s(f, &s->sist1);
1990
    qemu_put_8s(f, &s->sien0);
1991
    qemu_put_8s(f, &s->sien1);
1992
    qemu_put_8s(f, &s->mbox0);
1993
    qemu_put_8s(f, &s->mbox1);
1994
    qemu_put_8s(f, &s->dfifo);
1995
    qemu_put_8s(f, &s->ctest2);
1996
    qemu_put_8s(f, &s->ctest3);
1997
    qemu_put_8s(f, &s->ctest4);
1998
    qemu_put_8s(f, &s->ctest5);
1999
    qemu_put_8s(f, &s->ccntl0);
2000
    qemu_put_8s(f, &s->ccntl1);
2001
    qemu_put_be32s(f, &s->dsp);
2002
    qemu_put_be32s(f, &s->dsps);
2003
    qemu_put_8s(f, &s->dmode);
2004
    qemu_put_8s(f, &s->dcntl);
2005
    qemu_put_8s(f, &s->scntl0);
2006
    qemu_put_8s(f, &s->scntl1);
2007
    qemu_put_8s(f, &s->scntl2);
2008
    qemu_put_8s(f, &s->scntl3);
2009
    qemu_put_8s(f, &s->sstat0);
2010
    qemu_put_8s(f, &s->sstat1);
2011
    qemu_put_8s(f, &s->scid);
2012
    qemu_put_8s(f, &s->sxfer);
2013
    qemu_put_8s(f, &s->socl);
2014
    qemu_put_8s(f, &s->sdid);
2015
    qemu_put_8s(f, &s->ssid);
2016
    qemu_put_8s(f, &s->sfbr);
2017
    qemu_put_8s(f, &s->stest1);
2018
    qemu_put_8s(f, &s->stest2);
2019
    qemu_put_8s(f, &s->stest3);
2020
    qemu_put_8s(f, &s->sidl);
2021
    qemu_put_8s(f, &s->stime0);
2022
    qemu_put_8s(f, &s->respid0);
2023
    qemu_put_8s(f, &s->respid1);
2024
    qemu_put_be32s(f, &s->mmrs);
2025
    qemu_put_be32s(f, &s->mmws);
2026
    qemu_put_be32s(f, &s->sfs);
2027
    qemu_put_be32s(f, &s->drs);
2028
    qemu_put_be32s(f, &s->sbms);
2029
    qemu_put_be32s(f, &s->dbms);
2030
    qemu_put_be32s(f, &s->dnad64);
2031
    qemu_put_be32s(f, &s->pmjad1);
2032
    qemu_put_be32s(f, &s->pmjad2);
2033
    qemu_put_be32s(f, &s->rbc);
2034
    qemu_put_be32s(f, &s->ua);
2035
    qemu_put_be32s(f, &s->ia);
2036
    qemu_put_be32s(f, &s->sbc);
2037
    qemu_put_be32s(f, &s->csbc);
2038
    qemu_put_buffer(f, (uint8_t *)s->scratch, sizeof (s->scratch));
2039
    qemu_put_8s(f, &s->sbr);
2040

  
2041
    qemu_put_buffer(f, (uint8_t *)s->script_ram, sizeof (s->script_ram));
2042 1969
}
2043 1970

  
2044
static int lsi_scsi_load(QEMUFile *f, void *opaque, int version_id)
2045
{
2046
    LSIState *s = opaque;
2047
    int ret;
2048

  
2049
    if (version_id > 0) {
2050
        return -EINVAL;
1971
static const VMStateDescription vmstate_lsi_scsi = {
1972
    .name = "lsiscsi",
1973
    .version_id = 0,
1974
    .minimum_version_id = 0,
1975
    .minimum_version_id_old = 0,
1976
    .pre_save = lsi_pre_save,
1977
    .fields      = (VMStateField []) {
1978
        VMSTATE_PCI_DEVICE(dev, LSIState),
1979

  
1980
        VMSTATE_INT32(carry, LSIState),
1981
        VMSTATE_INT32(sense, LSIState),
1982
        VMSTATE_INT32(msg_action, LSIState),
1983
        VMSTATE_INT32(msg_len, LSIState),
1984
        VMSTATE_BUFFER(msg, LSIState),
1985
        VMSTATE_INT32(waiting, LSIState),
1986

  
1987
        VMSTATE_UINT32(dsa, LSIState),
1988
        VMSTATE_UINT32(temp, LSIState),
1989
        VMSTATE_UINT32(dnad, LSIState),
1990
        VMSTATE_UINT32(dbc, LSIState),
1991
        VMSTATE_UINT8(istat0, LSIState),
1992
        VMSTATE_UINT8(istat1, LSIState),
1993
        VMSTATE_UINT8(dcmd, LSIState),
1994
        VMSTATE_UINT8(dstat, LSIState),
1995
        VMSTATE_UINT8(dien, LSIState),
1996
        VMSTATE_UINT8(sist0, LSIState),
1997
        VMSTATE_UINT8(sist1, LSIState),
1998
        VMSTATE_UINT8(sien0, LSIState),
1999
        VMSTATE_UINT8(sien1, LSIState),
2000
        VMSTATE_UINT8(mbox0, LSIState),
2001
        VMSTATE_UINT8(mbox1, LSIState),
2002
        VMSTATE_UINT8(dfifo, LSIState),
2003
        VMSTATE_UINT8(ctest2, LSIState),
2004
        VMSTATE_UINT8(ctest3, LSIState),
2005
        VMSTATE_UINT8(ctest4, LSIState),
2006
        VMSTATE_UINT8(ctest5, LSIState),
2007
        VMSTATE_UINT8(ccntl0, LSIState),
2008
        VMSTATE_UINT8(ccntl1, LSIState),
2009
        VMSTATE_UINT32(dsp, LSIState),
2010
        VMSTATE_UINT32(dsps, LSIState),
2011
        VMSTATE_UINT8(dmode, LSIState),
2012
        VMSTATE_UINT8(dcntl, LSIState),
2013
        VMSTATE_UINT8(scntl0, LSIState),
2014
        VMSTATE_UINT8(scntl1, LSIState),
2015
        VMSTATE_UINT8(scntl2, LSIState),
2016
        VMSTATE_UINT8(scntl3, LSIState),
2017
        VMSTATE_UINT8(sstat0, LSIState),
2018
        VMSTATE_UINT8(sstat1, LSIState),
2019
        VMSTATE_UINT8(scid, LSIState),
2020
        VMSTATE_UINT8(sxfer, LSIState),
2021
        VMSTATE_UINT8(socl, LSIState),
2022
        VMSTATE_UINT8(sdid, LSIState),
2023
        VMSTATE_UINT8(ssid, LSIState),
2024
        VMSTATE_UINT8(sfbr, LSIState),
2025
        VMSTATE_UINT8(stest1, LSIState),
2026
        VMSTATE_UINT8(stest2, LSIState),
2027
        VMSTATE_UINT8(stest3, LSIState),
2028
        VMSTATE_UINT8(sidl, LSIState),
2029
        VMSTATE_UINT8(stime0, LSIState),
2030
        VMSTATE_UINT8(respid0, LSIState),
2031
        VMSTATE_UINT8(respid1, LSIState),
2032
        VMSTATE_UINT32(mmrs, LSIState),
2033
        VMSTATE_UINT32(mmws, LSIState),
2034
        VMSTATE_UINT32(sfs, LSIState),
2035
        VMSTATE_UINT32(drs, LSIState),
2036
        VMSTATE_UINT32(sbms, LSIState),
2037
        VMSTATE_UINT32(dbms, LSIState),
2038
        VMSTATE_UINT32(dnad64, LSIState),
2039
        VMSTATE_UINT32(pmjad1, LSIState),
2040
        VMSTATE_UINT32(pmjad2, LSIState),
2041
        VMSTATE_UINT32(rbc, LSIState),
2042
        VMSTATE_UINT32(ua, LSIState),
2043
        VMSTATE_UINT32(ia, LSIState),
2044
        VMSTATE_UINT32(sbc, LSIState),
2045
        VMSTATE_UINT32(csbc, LSIState),
2046
        VMSTATE_BUFFER_UNSAFE(scratch, LSIState, 0, 18 * sizeof(uint32_t)),
2047
        VMSTATE_UINT8(sbr, LSIState),
2048

  
2049
        VMSTATE_BUFFER_UNSAFE(script_ram, LSIState, 0, 2048 * sizeof(uint32_t)),
2050
        VMSTATE_END_OF_LIST()
2051 2051
    }
2052

  
2053
    if ((ret = pci_device_load(&s->dev, f)) < 0)
2054
        return ret;
2055

  
2056
    qemu_get_sbe32s(f, &s->carry);
2057
    qemu_get_sbe32s(f, &s->sense);
2058
    qemu_get_sbe32s(f, &s->msg_action);
2059
    qemu_get_sbe32s(f, &s->msg_len);
2060
    qemu_get_buffer(f, s->msg, sizeof (s->msg));
2061
    qemu_get_sbe32s(f, &s->waiting);
2062

  
2063
    qemu_get_be32s(f, &s->dsa);
2064
    qemu_get_be32s(f, &s->temp);
2065
    qemu_get_be32s(f, &s->dnad);
2066
    qemu_get_be32s(f, &s->dbc);
2067
    qemu_get_8s(f, &s->istat0);
2068
    qemu_get_8s(f, &s->istat1);
2069
    qemu_get_8s(f, &s->dcmd);
2070
    qemu_get_8s(f, &s->dstat);
2071
    qemu_get_8s(f, &s->dien);
2072
    qemu_get_8s(f, &s->sist0);
2073
    qemu_get_8s(f, &s->sist1);
2074
    qemu_get_8s(f, &s->sien0);
2075
    qemu_get_8s(f, &s->sien1);
2076
    qemu_get_8s(f, &s->mbox0);
2077
    qemu_get_8s(f, &s->mbox1);
2078
    qemu_get_8s(f, &s->dfifo);
2079
    qemu_get_8s(f, &s->ctest2);
2080
    qemu_get_8s(f, &s->ctest3);
2081
    qemu_get_8s(f, &s->ctest4);
2082
    qemu_get_8s(f, &s->ctest5);
2083
    qemu_get_8s(f, &s->ccntl0);
2084
    qemu_get_8s(f, &s->ccntl1);
2085
    qemu_get_be32s(f, &s->dsp);
2086
    qemu_get_be32s(f, &s->dsps);
2087
    qemu_get_8s(f, &s->dmode);
2088
    qemu_get_8s(f, &s->dcntl);
2089
    qemu_get_8s(f, &s->scntl0);
2090
    qemu_get_8s(f, &s->scntl1);
2091
    qemu_get_8s(f, &s->scntl2);
2092
    qemu_get_8s(f, &s->scntl3);
2093
    qemu_get_8s(f, &s->sstat0);
2094
    qemu_get_8s(f, &s->sstat1);
2095
    qemu_get_8s(f, &s->scid);
2096
    qemu_get_8s(f, &s->sxfer);
2097
    qemu_get_8s(f, &s->socl);
2098
    qemu_get_8s(f, &s->sdid);
2099
    qemu_get_8s(f, &s->ssid);
2100
    qemu_get_8s(f, &s->sfbr);
2101
    qemu_get_8s(f, &s->stest1);
2102
    qemu_get_8s(f, &s->stest2);
2103
    qemu_get_8s(f, &s->stest3);
2104
    qemu_get_8s(f, &s->sidl);
2105
    qemu_get_8s(f, &s->stime0);
2106
    qemu_get_8s(f, &s->respid0);
2107
    qemu_get_8s(f, &s->respid1);
2108
    qemu_get_be32s(f, &s->mmrs);
2109
    qemu_get_be32s(f, &s->mmws);
2110
    qemu_get_be32s(f, &s->sfs);
2111
    qemu_get_be32s(f, &s->drs);
2112
    qemu_get_be32s(f, &s->sbms);
2113
    qemu_get_be32s(f, &s->dbms);
2114
    qemu_get_be32s(f, &s->dnad64);
2115
    qemu_get_be32s(f, &s->pmjad1);
2116
    qemu_get_be32s(f, &s->pmjad2);
2117
    qemu_get_be32s(f, &s->rbc);
2118
    qemu_get_be32s(f, &s->ua);
2119
    qemu_get_be32s(f, &s->ia);
2120
    qemu_get_be32s(f, &s->sbc);
2121
    qemu_get_be32s(f, &s->csbc);
2122
    qemu_get_buffer(f, (uint8_t *)s->scratch, sizeof (s->scratch));
2123
    qemu_get_8s(f, &s->sbr);
2124

  
2125
    qemu_get_buffer(f, (uint8_t *)s->script_ram, sizeof (s->script_ram));
2126

  
2127
    return 0;
2128
}
2052
};
2129 2053

  
2130 2054
static int lsi_scsi_uninit(PCIDevice *d)
2131 2055
{
......
2181 2105
    if (!dev->qdev.hotplugged) {
2182 2106
        scsi_bus_legacy_handle_cmdline(&s->bus);
2183 2107
    }
2184
    register_savevm("lsiscsi", -1, 0, lsi_scsi_save, lsi_scsi_load, s);
2108
    vmstate_register(-1, &vmstate_lsi_scsi, s);
2185 2109
    return 0;
2186 2110
}
2187 2111

  

Also available in: Unified diff