Revision 0c7d19e5 hw/piix_pci.c
b/hw/piix_pci.c | ||
---|---|---|
154 | 154 |
i440fx_update_memory_mappings(d); |
155 | 155 |
} |
156 | 156 |
|
157 |
static void i440fx_save(QEMUFile* f, void *opaque) |
|
158 |
{ |
|
159 |
PCII440FXState *d = opaque; |
|
160 |
|
|
161 |
pci_device_save(&d->dev, f); |
|
162 |
qemu_put_8s(f, &d->smm_enabled); |
|
163 |
} |
|
164 |
|
|
165 |
static int i440fx_load(QEMUFile* f, void *opaque, int version_id) |
|
157 |
static int i440fx_load_old(QEMUFile* f, void *opaque, int version_id) |
|
166 | 158 |
{ |
167 | 159 |
PCII440FXState *d = opaque; |
168 | 160 |
int ret, i; |
169 | 161 |
|
170 |
if (version_id > 3) |
|
171 |
return -EINVAL; |
|
172 | 162 |
ret = pci_device_load(&d->dev, f); |
173 | 163 |
if (ret < 0) |
174 | 164 |
return ret; |
... | ... | |
182 | 172 |
return 0; |
183 | 173 |
} |
184 | 174 |
|
175 |
static int i440fx_after_load(void *opaque) |
|
176 |
{ |
|
177 |
PCII440FXState *d = opaque; |
|
178 |
|
|
179 |
i440fx_update_memory_mappings(d); |
|
180 |
return 0; |
|
181 |
} |
|
182 |
|
|
183 |
static const VMStateDescription vmstate_i440fx = { |
|
184 |
.name = "I440FX", |
|
185 |
.version_id = 3, |
|
186 |
.minimum_version_id = 3, |
|
187 |
.minimum_version_id_old = 1, |
|
188 |
.load_state_old = i440fx_load_old, |
|
189 |
.run_after_load = i440fx_after_load, |
|
190 |
.fields = (VMStateField []) { |
|
191 |
VMSTATE_PCI_DEVICE(dev, PCII440FXState), |
|
192 |
VMSTATE_UINT8(smm_enabled, PCII440FXState), |
|
193 |
VMSTATE_END_OF_LIST() |
|
194 |
} |
|
195 |
}; |
|
196 |
|
|
185 | 197 |
static int i440fx_pcihost_initfn(SysBusDevice *dev) |
186 | 198 |
{ |
187 | 199 |
I440FXState *s = FROM_SYSBUS(I440FXState, dev); |
... | ... | |
210 | 222 |
|
211 | 223 |
d->dev.config[0x72] = 0x02; /* SMRAM */ |
212 | 224 |
|
213 |
register_savevm("I440FX", 0, 3, i440fx_save, i440fx_load, d);
|
|
225 |
vmstate_register(0, &vmstate_i440fx, d);
|
|
214 | 226 |
return 0; |
215 | 227 |
} |
216 | 228 |
|
Also available in: Unified diff