mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20170628' into staging
migration/next for 20170628 # gpg: Signature made Wed 28 Jun 2017 12:16:44 BST # gpg: using RSA key 0xF487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" # gpg: aka "Juan Quintela <quintela@trasno.org>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723 * remotes/juanquintela/tags/migration/20170628: exec: fix access to ram_list.dirty_memory when sync dirty bitmap migration: add "return-path" capability vmstate: error hint for failed equal checks migration: add comment for TYPE_MIGRATE migration: hmp: dump globals migration: merge enforce_config_section somewhat migration: move skip_section_footers migration: move skip_configuration out migration: move only_migratable to MigrationState migration: move global_state.optional out migration: let MigrationState be a qdev vl: clean up global property registration accel: introduce AccelClass.global_props machine: export register_compat_prop() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
@@ -120,6 +120,12 @@ void configure_accelerator(MachineState *ms)
|
||||
}
|
||||
}
|
||||
|
||||
void accel_register_compat_props(AccelState *accel)
|
||||
{
|
||||
AccelClass *class = ACCEL_GET_CLASS(accel);
|
||||
register_compat_props_array(class->global_props);
|
||||
}
|
||||
|
||||
static void register_accel_types(void)
|
||||
{
|
||||
type_register_static(&accel_type);
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "exec/ramlist.h"
|
||||
#include "hw/intc/intc.h"
|
||||
#include "migration/snapshot.h"
|
||||
#include "migration/misc.h"
|
||||
|
||||
#ifdef CONFIG_SPICE
|
||||
#include <spice/enums.h>
|
||||
@@ -164,6 +165,8 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
|
||||
info = qmp_query_migrate(NULL);
|
||||
caps = qmp_query_migrate_capabilities(NULL);
|
||||
|
||||
migration_global_dump(mon);
|
||||
|
||||
/* do not display parameters during setup */
|
||||
if (info->has_status && caps) {
|
||||
monitor_printf(mon, "capabilities: ");
|
||||
|
||||
+1
-1
@@ -1217,7 +1217,7 @@ static const VMStateDescription vmstate_fdc = {
|
||||
VMSTATE_UINT8(config, FDCtrl),
|
||||
VMSTATE_UINT8(lock, FDCtrl),
|
||||
VMSTATE_UINT8(pwrd, FDCtrl),
|
||||
VMSTATE_UINT8_EQUAL(num_floppies, FDCtrl),
|
||||
VMSTATE_UINT8_EQUAL(num_floppies, FDCtrl, NULL),
|
||||
VMSTATE_STRUCT_ARRAY(drives, FDCtrl, MAX_FD, 1,
|
||||
vmstate_fdrive, FDrive),
|
||||
VMSTATE_END_OF_LIST()
|
||||
|
||||
@@ -770,19 +770,6 @@ static void machine_class_finalize(ObjectClass *klass, void *data)
|
||||
g_free(mc->name);
|
||||
}
|
||||
|
||||
static void register_compat_prop(const char *driver,
|
||||
const char *property,
|
||||
const char *value)
|
||||
{
|
||||
GlobalProperty *p = g_new0(GlobalProperty, 1);
|
||||
/* Machine compat_props must never cause errors: */
|
||||
p->errp = &error_abort;
|
||||
p->driver = driver;
|
||||
p->property = property;
|
||||
p->value = value;
|
||||
qdev_prop_register_global(p);
|
||||
}
|
||||
|
||||
static void machine_register_compat_for_subclass(ObjectClass *oc, void *opaque)
|
||||
{
|
||||
GlobalProperty *p = opaque;
|
||||
|
||||
@@ -1084,6 +1084,27 @@ void qdev_prop_register_global(GlobalProperty *prop)
|
||||
global_props = g_list_append(global_props, prop);
|
||||
}
|
||||
|
||||
void register_compat_prop(const char *driver,
|
||||
const char *property,
|
||||
const char *value)
|
||||
{
|
||||
GlobalProperty *p = g_new0(GlobalProperty, 1);
|
||||
|
||||
/* Any compat_props must never cause error */
|
||||
p->errp = &error_abort;
|
||||
p->driver = driver;
|
||||
p->property = property;
|
||||
p->value = value;
|
||||
qdev_prop_register_global(p);
|
||||
}
|
||||
|
||||
void register_compat_props_array(GlobalProperty *prop)
|
||||
{
|
||||
for (; prop && prop->driver; prop++) {
|
||||
register_compat_prop(prop->driver, prop->property, prop->value);
|
||||
}
|
||||
}
|
||||
|
||||
void qdev_prop_register_global_list(GlobalProperty *props)
|
||||
{
|
||||
int i;
|
||||
|
||||
+2
-2
@@ -2373,12 +2373,12 @@ static VMStateDescription qxl_vmstate = {
|
||||
VMSTATE_UINT32(last_release_offset, PCIQXLDevice),
|
||||
VMSTATE_UINT32(mode, PCIQXLDevice),
|
||||
VMSTATE_UINT32(ssd.unique, PCIQXLDevice),
|
||||
VMSTATE_INT32_EQUAL(num_memslots, PCIQXLDevice),
|
||||
VMSTATE_INT32_EQUAL(num_memslots, PCIQXLDevice, NULL),
|
||||
VMSTATE_STRUCT_ARRAY(guest_slots, PCIQXLDevice, NUM_MEMSLOTS, 0,
|
||||
qxl_memslot, struct guest_slots),
|
||||
VMSTATE_STRUCT(guest_primary.surface, PCIQXLDevice, 0,
|
||||
qxl_surface, QXLSurfaceCreate),
|
||||
VMSTATE_INT32_EQUAL(ssd.num_surfaces, PCIQXLDevice),
|
||||
VMSTATE_INT32_EQUAL(ssd.num_surfaces, PCIQXLDevice, NULL),
|
||||
VMSTATE_VARRAY_INT32(guest_surfaces.cmds, PCIQXLDevice,
|
||||
ssd.num_surfaces, 0,
|
||||
vmstate_info_uint64, uint64_t),
|
||||
|
||||
+1
-1
@@ -2099,7 +2099,7 @@ const VMStateDescription vmstate_vga_common = {
|
||||
VMSTATE_BUFFER(palette, VGACommonState),
|
||||
|
||||
VMSTATE_INT32(bank_offset, VGACommonState),
|
||||
VMSTATE_UINT8_EQUAL(is_vbe_vmstate, VGACommonState),
|
||||
VMSTATE_UINT8_EQUAL(is_vbe_vmstate, VGACommonState, NULL),
|
||||
VMSTATE_UINT16(vbe_index, VGACommonState),
|
||||
VMSTATE_UINT16_ARRAY(vbe_regs, VGACommonState, VBE_DISPI_INDEX_NB),
|
||||
VMSTATE_UINT32(vbe_start_addr, VGACommonState),
|
||||
|
||||
@@ -962,7 +962,7 @@ static const VMStateDescription vmstate_virtio_gpu_scanouts = {
|
||||
.version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_INT32(enable, struct VirtIOGPU),
|
||||
VMSTATE_UINT32_EQUAL(conf.max_outputs, struct VirtIOGPU),
|
||||
VMSTATE_UINT32_EQUAL(conf.max_outputs, struct VirtIOGPU, NULL),
|
||||
VMSTATE_STRUCT_VARRAY_UINT32(scanout, struct VirtIOGPU,
|
||||
conf.max_outputs, 1,
|
||||
vmstate_virtio_gpu_scanout,
|
||||
|
||||
@@ -1192,7 +1192,7 @@ static const VMStateDescription vmstate_vmware_vga_internal = {
|
||||
.minimum_version_id = 0,
|
||||
.post_load = vmsvga_post_load,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_INT32_EQUAL(new_depth, struct vmsvga_state_s),
|
||||
VMSTATE_INT32_EQUAL(new_depth, struct vmsvga_state_s, NULL),
|
||||
VMSTATE_INT32(enable, struct vmsvga_state_s),
|
||||
VMSTATE_INT32(config, struct vmsvga_state_s),
|
||||
VMSTATE_INT32(cursor.id, struct vmsvga_state_s),
|
||||
|
||||
@@ -314,12 +314,9 @@ static void pc_init1(MachineState *machine,
|
||||
static void pc_compat_2_3(MachineState *machine)
|
||||
{
|
||||
PCMachineState *pcms = PC_MACHINE(machine);
|
||||
savevm_skip_section_footers();
|
||||
if (kvm_enabled()) {
|
||||
pcms->smm = ON_OFF_AUTO_OFF;
|
||||
}
|
||||
global_state_set_optional();
|
||||
savevm_skip_configuration();
|
||||
}
|
||||
|
||||
static void pc_compat_2_2(MachineState *machine)
|
||||
|
||||
+1
-1
@@ -1669,7 +1669,7 @@ const VMStateDescription vmstate_ahci = {
|
||||
VMSTATE_UINT32(control_regs.impl, AHCIState),
|
||||
VMSTATE_UINT32(control_regs.version, AHCIState),
|
||||
VMSTATE_UINT32(idp_index, AHCIState),
|
||||
VMSTATE_INT32_EQUAL(ports, AHCIState),
|
||||
VMSTATE_INT32_EQUAL(ports, AHCIState, NULL),
|
||||
VMSTATE_END_OF_LIST()
|
||||
},
|
||||
};
|
||||
|
||||
+1
-1
@@ -243,7 +243,7 @@ static const VMStateDescription vmstate_vmmouse = {
|
||||
.minimum_version_id = 0,
|
||||
.post_load = vmmouse_post_load,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_INT32_EQUAL(queue_size, VMMouseState),
|
||||
VMSTATE_INT32_EQUAL(queue_size, VMMouseState, NULL),
|
||||
VMSTATE_UINT32_ARRAY(queue, VMMouseState, VMMOUSE_QUEUE_SIZE),
|
||||
VMSTATE_UINT16(nb_queue, VMMouseState),
|
||||
VMSTATE_UINT16(status, VMMouseState),
|
||||
|
||||
+1
-1
@@ -1499,7 +1499,7 @@ static const VMStateDescription vmstate_openpic = {
|
||||
VMSTATE_UINT32(max_irq, OpenPICState),
|
||||
VMSTATE_STRUCT_VARRAY_UINT32(src, OpenPICState, max_irq, 0,
|
||||
vmstate_openpic_irqsource, IRQSource),
|
||||
VMSTATE_UINT32_EQUAL(nb_cpus, OpenPICState),
|
||||
VMSTATE_UINT32_EQUAL(nb_cpus, OpenPICState, NULL),
|
||||
VMSTATE_STRUCT_VARRAY_UINT32(dst, OpenPICState, nb_cpus, 0,
|
||||
vmstate_openpic_irqdest, IRQDest),
|
||||
VMSTATE_STRUCT_ARRAY(timers, OpenPICState, OPENPIC_MAX_TMR, 0,
|
||||
|
||||
+1
-1
@@ -574,7 +574,7 @@ static const VMStateDescription vmstate_ics_simple = {
|
||||
.post_load = ics_simple_dispatch_post_load,
|
||||
.fields = (VMStateField[]) {
|
||||
/* Sanity check */
|
||||
VMSTATE_UINT32_EQUAL(nr_irqs, ICSState),
|
||||
VMSTATE_UINT32_EQUAL(nr_irqs, ICSState, NULL),
|
||||
|
||||
VMSTATE_STRUCT_VARRAY_POINTER_UINT32(irqs, ICSState, nr_irqs,
|
||||
vmstate_ics_simple_irq,
|
||||
|
||||
+1
-1
@@ -116,7 +116,7 @@ static const VMStateDescription vmstate_max111x = {
|
||||
VMSTATE_UINT8(tb1, MAX111xState),
|
||||
VMSTATE_UINT8(rb2, MAX111xState),
|
||||
VMSTATE_UINT8(rb3, MAX111xState),
|
||||
VMSTATE_INT32_EQUAL(inputs, MAX111xState),
|
||||
VMSTATE_INT32_EQUAL(inputs, MAX111xState, NULL),
|
||||
VMSTATE_INT32(com, MAX111xState),
|
||||
VMSTATE_ARRAY_INT32_UNSAFE(input, MAX111xState, inputs,
|
||||
vmstate_info_uint8, uint8_t),
|
||||
|
||||
@@ -143,7 +143,7 @@ static const VMStateDescription vmstate_eeprom = {
|
||||
VMSTATE_UINT8(addrbits, eeprom_t),
|
||||
VMSTATE_UINT16_HACK_TEST(size, eeprom_t, is_old_eeprom_version),
|
||||
VMSTATE_UNUSED_TEST(is_old_eeprom_version, 1),
|
||||
VMSTATE_UINT16_EQUAL_V(size, eeprom_t, EEPROM_VERSION),
|
||||
VMSTATE_UINT16_EQUAL_V(size, eeprom_t, EEPROM_VERSION, NULL),
|
||||
VMSTATE_UINT16(data, eeprom_t),
|
||||
VMSTATE_VARRAY_UINT16_UNSAFE(contents, eeprom_t, size, 0,
|
||||
vmstate_info_uint16, uint16_t),
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ static const VMStateDescription vmstate_pcibus = {
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_INT32_EQUAL(nirq, PCIBus),
|
||||
VMSTATE_INT32_EQUAL(nirq, PCIBus, NULL),
|
||||
VMSTATE_VARRAY_INT32(irq_count, PCIBus,
|
||||
nirq, 0, vmstate_info_int32,
|
||||
int32_t),
|
||||
|
||||
+1
-1
@@ -813,7 +813,7 @@ const VMStateDescription vmstate_pcie_aer_log = {
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT16(log_num, PCIEAERLog),
|
||||
VMSTATE_UINT16_EQUAL(log_max, PCIEAERLog),
|
||||
VMSTATE_UINT16_EQUAL(log_max, PCIEAERLog, NULL),
|
||||
VMSTATE_VALIDATE("log_num <= log_max", pcie_aer_state_log_num_valid),
|
||||
VMSTATE_STRUCT_VARRAY_POINTER_UINT16(log, PCIEAERLog, log_num,
|
||||
vmstate_pcie_aer_err, PCIEAERErr),
|
||||
|
||||
@@ -3580,9 +3580,6 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false);
|
||||
static void spapr_machine_2_3_instance_options(MachineState *machine)
|
||||
{
|
||||
spapr_machine_2_4_instance_options(machine);
|
||||
savevm_skip_section_footers();
|
||||
global_state_set_optional();
|
||||
savevm_skip_configuration();
|
||||
}
|
||||
|
||||
static void spapr_machine_2_3_class_options(MachineClass *mc)
|
||||
|
||||
@@ -231,7 +231,7 @@ static const VMStateDescription vmstate_spapr_tce_table = {
|
||||
.post_load = spapr_tce_table_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
/* Sanity check */
|
||||
VMSTATE_UINT32_EQUAL(liobn, sPAPRTCETable),
|
||||
VMSTATE_UINT32_EQUAL(liobn, sPAPRTCETable, NULL),
|
||||
|
||||
/* IOMMU state */
|
||||
VMSTATE_UINT32(mig_nb_table, sPAPRTCETable),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user