mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
* gdbstub fixes (Alex)
* IOMMU MemoryRegion subclass (Alexey) * Chardev hotswap (Anton) * NBD_OPT_GO support (Eric) * Misc bugfixes * DEFINE_PROP_LINK (minus the ARM patches - Fam) * MAINTAINERS updates (Philippe) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAABAgAGBQJZaJejAAoJEL/70l94x66DwQ4H/0NUvh/Zfs64wE1iuZJACc24 1za02fFaB50vFDwQKWbM0GkHzDxoXBHk4Rvn92p+VSxpKtaAX4GRwCvxRA5GeUtm GAYbdIJUe0UELepKExrlUVzQcK9VfljoJpK3dZkP5Zzx83L2PAI/SexrZRibN2Uf yRI60uvlsMWU12nenzdVnYORd+TWDNKele7BhMrX/FX9wxaS1PlnsnKZggy6CU7G 8dwZJAZJ/s5tRGXyXyAQzLm5JZQCLnA6jxya540TbPeciFgbvvS2ydIitZ54vSPO VtmZ1rSWfTEbNF5xGD1Ztu8aAENr5/I05l6IjxZd45BdUCW3HxeJkc+7lE0K4uk= =wnVs -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging * gdbstub fixes (Alex) * IOMMU MemoryRegion subclass (Alexey) * Chardev hotswap (Anton) * NBD_OPT_GO support (Eric) * Misc bugfixes * DEFINE_PROP_LINK (minus the ARM patches - Fam) * MAINTAINERS updates (Philippe) # gpg: Signature made Fri 14 Jul 2017 11:06:27 BST # gpg: using RSA key 0xBFFBD25F78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini/tags/for-upstream: (55 commits) spapr_rng: Convert to DEFINE_PROP_LINK cpu: Convert to DEFINE_PROP_LINK mips_cmgcr: Convert to DEFINE_PROP_LINK ivshmem: Convert to DEFINE_PROP_LINK dimm: Convert to DEFINE_PROP_LINK virtio-crypto: Convert to DEFINE_PROP_LINK virtio-rng: Convert to DEFINE_PROP_LINK virtio-scsi: Convert to DEFINE_PROP_LINK virtio-blk: Convert to DEFINE_PROP_LINK qdev: Add const qualifier to PropertyInfo definitions qmp: Use ObjectProperty.type if present qdev: Introduce DEFINE_PROP_LINK qdev: Introduce PropertyInfo.create qom: enforce readonly nature of link's check callback translate-all: remove redundant !tcg_enabled check in dump_exec_info vl: fix breakage of -tb-size nbd: Implement NBD_INFO_BLOCK_SIZE on client nbd: Implement NBD_INFO_BLOCK_SIZE on server nbd: Implement NBD_OPT_GO on client nbd: Implement NBD_OPT_GO on server ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
6c6076662d
123 changed files with 2021 additions and 875 deletions
|
@ -25,7 +25,8 @@ void qdev_prop_set_after_realize(DeviceState *dev, const char *name,
|
|||
}
|
||||
}
|
||||
|
||||
void qdev_prop_allow_set_link_before_realize(Object *obj, const char *name,
|
||||
void qdev_prop_allow_set_link_before_realize(const Object *obj,
|
||||
const char *name,
|
||||
Object *val, Error **errp)
|
||||
{
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
|
@ -131,7 +132,7 @@ static void set_default_value_bool(Object *obj, const Property *prop)
|
|||
object_property_set_bool(obj, prop->defval.u, prop->name, &error_abort);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_bit = {
|
||||
const PropertyInfo qdev_prop_bit = {
|
||||
.name = "bool",
|
||||
.description = "on/off",
|
||||
.get = prop_get_bit,
|
||||
|
@ -190,7 +191,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
|
|||
bit64_prop_set(dev, prop, value);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_bit64 = {
|
||||
const PropertyInfo qdev_prop_bit64 = {
|
||||
.name = "bool",
|
||||
.description = "on/off",
|
||||
.get = prop_get_bit64,
|
||||
|
@ -225,7 +226,7 @@ static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque,
|
|||
visit_type_bool(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_bool = {
|
||||
const PropertyInfo qdev_prop_bool = {
|
||||
.name = "bool",
|
||||
.get = get_bool,
|
||||
.set = set_bool,
|
||||
|
@ -269,7 +270,7 @@ static void set_default_value_uint(Object *obj, const Property *prop)
|
|||
object_property_set_uint(obj, prop->defval.u, prop->name, &error_abort);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_uint8 = {
|
||||
const PropertyInfo qdev_prop_uint8 = {
|
||||
.name = "uint8",
|
||||
.get = get_uint8,
|
||||
.set = set_uint8,
|
||||
|
@ -303,7 +304,7 @@ static void set_uint16(Object *obj, Visitor *v, const char *name,
|
|||
visit_type_uint16(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_uint16 = {
|
||||
const PropertyInfo qdev_prop_uint16 = {
|
||||
.name = "uint16",
|
||||
.get = get_uint16,
|
||||
.set = set_uint16,
|
||||
|
@ -362,14 +363,14 @@ static void set_int32(Object *obj, Visitor *v, const char *name, void *opaque,
|
|||
visit_type_int32(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_uint32 = {
|
||||
const PropertyInfo qdev_prop_uint32 = {
|
||||
.name = "uint32",
|
||||
.get = get_uint32,
|
||||
.set = set_uint32,
|
||||
.set_default_value = set_default_value_uint,
|
||||
};
|
||||
|
||||
PropertyInfo qdev_prop_int32 = {
|
||||
const PropertyInfo qdev_prop_int32 = {
|
||||
.name = "int32",
|
||||
.get = get_int32,
|
||||
.set = set_int32,
|
||||
|
@ -403,7 +404,7 @@ static void set_uint64(Object *obj, Visitor *v, const char *name,
|
|||
visit_type_uint64(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_uint64 = {
|
||||
const PropertyInfo qdev_prop_uint64 = {
|
||||
.name = "uint64",
|
||||
.get = get_uint64,
|
||||
.set = set_uint64,
|
||||
|
@ -456,7 +457,7 @@ static void set_string(Object *obj, Visitor *v, const char *name,
|
|||
*ptr = str;
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_string = {
|
||||
const PropertyInfo qdev_prop_string = {
|
||||
.name = "str",
|
||||
.release = release_string,
|
||||
.get = get_string,
|
||||
|
@ -466,7 +467,7 @@ PropertyInfo qdev_prop_string = {
|
|||
/* --- pointer --- */
|
||||
|
||||
/* Not a proper property, just for dirty hacks. TODO Remove it! */
|
||||
PropertyInfo qdev_prop_ptr = {
|
||||
const PropertyInfo qdev_prop_ptr = {
|
||||
.name = "ptr",
|
||||
};
|
||||
|
||||
|
@ -540,7 +541,7 @@ inval:
|
|||
g_free(str);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_macaddr = {
|
||||
const PropertyInfo qdev_prop_macaddr = {
|
||||
.name = "str",
|
||||
.description = "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
|
||||
.get = get_mac,
|
||||
|
@ -549,7 +550,7 @@ PropertyInfo qdev_prop_macaddr = {
|
|||
|
||||
/* --- on/off/auto --- */
|
||||
|
||||
PropertyInfo qdev_prop_on_off_auto = {
|
||||
const PropertyInfo qdev_prop_on_off_auto = {
|
||||
.name = "OnOffAuto",
|
||||
.description = "on/off/auto",
|
||||
.enum_table = OnOffAuto_lookup,
|
||||
|
@ -562,7 +563,7 @@ PropertyInfo qdev_prop_on_off_auto = {
|
|||
|
||||
QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) != sizeof(int));
|
||||
|
||||
PropertyInfo qdev_prop_losttickpolicy = {
|
||||
const PropertyInfo qdev_prop_losttickpolicy = {
|
||||
.name = "LostTickPolicy",
|
||||
.enum_table = LostTickPolicy_lookup,
|
||||
.get = get_enum,
|
||||
|
@ -574,7 +575,7 @@ PropertyInfo qdev_prop_losttickpolicy = {
|
|||
|
||||
QEMU_BUILD_BUG_ON(sizeof(BlockdevOnError) != sizeof(int));
|
||||
|
||||
PropertyInfo qdev_prop_blockdev_on_error = {
|
||||
const PropertyInfo qdev_prop_blockdev_on_error = {
|
||||
.name = "BlockdevOnError",
|
||||
.description = "Error handling policy, "
|
||||
"report/ignore/enospc/stop/auto",
|
||||
|
@ -588,7 +589,7 @@ PropertyInfo qdev_prop_blockdev_on_error = {
|
|||
|
||||
QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) != sizeof(int));
|
||||
|
||||
PropertyInfo qdev_prop_bios_chs_trans = {
|
||||
const PropertyInfo qdev_prop_bios_chs_trans = {
|
||||
.name = "BiosAtaTranslation",
|
||||
.description = "Logical CHS translation algorithm, "
|
||||
"auto/none/lba/large/rechs",
|
||||
|
@ -600,7 +601,7 @@ PropertyInfo qdev_prop_bios_chs_trans = {
|
|||
|
||||
/* --- FDC default drive types */
|
||||
|
||||
PropertyInfo qdev_prop_fdc_drive_type = {
|
||||
const PropertyInfo qdev_prop_fdc_drive_type = {
|
||||
.name = "FdcDriveType",
|
||||
.description = "FDC drive type, "
|
||||
"144/288/120/none/auto",
|
||||
|
@ -676,7 +677,7 @@ static int print_pci_devfn(DeviceState *dev, Property *prop, char *dest,
|
|||
}
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_pci_devfn = {
|
||||
const PropertyInfo qdev_prop_pci_devfn = {
|
||||
.name = "int32",
|
||||
.description = "Slot and optional function number, example: 06.0 or 06",
|
||||
.print = print_pci_devfn,
|
||||
|
@ -725,7 +726,7 @@ static void set_blocksize(Object *obj, Visitor *v, const char *name,
|
|||
*ptr = value;
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_blocksize = {
|
||||
const PropertyInfo qdev_prop_blocksize = {
|
||||
.name = "uint16",
|
||||
.description = "A power of two between 512 and 32768",
|
||||
.get = get_uint16,
|
||||
|
@ -840,7 +841,7 @@ inval:
|
|||
g_free(str);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_pci_host_devaddr = {
|
||||
const PropertyInfo qdev_prop_pci_host_devaddr = {
|
||||
.name = "str",
|
||||
.description = "Address (bus/device/function) of "
|
||||
"the host device, example: 04:10.0",
|
||||
|
@ -949,7 +950,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
|
|||
}
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_arraylen = {
|
||||
const PropertyInfo qdev_prop_arraylen = {
|
||||
.name = "uint32",
|
||||
.get = get_uint32,
|
||||
.set = set_prop_arraylen,
|
||||
|
@ -1207,9 +1208,27 @@ static void set_size(Object *obj, Visitor *v, const char *name, void *opaque,
|
|||
visit_type_size(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_size = {
|
||||
const PropertyInfo qdev_prop_size = {
|
||||
.name = "size",
|
||||
.get = get_size,
|
||||
.set = set_size,
|
||||
.set_default_value = set_default_value_uint,
|
||||
};
|
||||
|
||||
/* --- object link property --- */
|
||||
|
||||
static void create_link_property(Object *obj, Property *prop, Error **errp)
|
||||
{
|
||||
Object **child = qdev_get_prop_ptr(DEVICE(obj), prop);
|
||||
|
||||
object_property_add_link(obj, prop->name, prop->link_type,
|
||||
child,
|
||||
qdev_prop_allow_set_link_before_realize,
|
||||
OBJ_PROP_LINK_UNREF_ON_RELEASE,
|
||||
errp);
|
||||
}
|
||||
|
||||
const PropertyInfo qdev_prop_link = {
|
||||
.name = "link",
|
||||
.create = create_link_property,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue