* qdev: second part of Property cleanups

* rust: second part of QOM rework
 * rust: callbacks wrapper
 * rust: pl011 bugfixes
 * kvm: cleanup errors in kvm_convert_memory()
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmdkaEkUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroN0/wgAgIJg8BrlRKfmiz14NZfph8/jarSj
 TOWYVxL2v4q98KBuL5pta2ucObgzwqyqSyc02S2DGSOIMQCIiBB5MaCk1iMjx+BO
 pmVU8gNlD8faO8SSmnnr+jDQt+G+bQ/nRgQJOAReF8oVw3O2aC/FaVKpitMzWtvv
 PLnJWdrqqpGq14OzX8iNCzSujxppAuyjrhT4lNlekzDoDfdTez72r+rXkvg4GzZL
 QC3xLYg/LrT8Rs+zgOhm/AaIyS4bOyMlkU9Du1rQ6Tyne45ey2FCwKVzBKrJdGcw
 sVbzEclxseLenoTbZqYK6JTzLdDoThVUbY2JwoCGUaIm+74P4NjEsUsTVg==
 =TuQM
 -----END PGP SIGNATURE-----

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* qdev: second part of Property cleanups
* rust: second part of QOM rework
* rust: callbacks wrapper
* rust: pl011 bugfixes
* kvm: cleanup errors in kvm_convert_memory()

 # -----BEGIN PGP SIGNATURE-----
 #
 # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmdkaEkUHHBib256aW5p
 # QHJlZGhhdC5jb20ACgkQv/vSX3jHroN0/wgAgIJg8BrlRKfmiz14NZfph8/jarSj
 # TOWYVxL2v4q98KBuL5pta2ucObgzwqyqSyc02S2DGSOIMQCIiBB5MaCk1iMjx+BO
 # pmVU8gNlD8faO8SSmnnr+jDQt+G+bQ/nRgQJOAReF8oVw3O2aC/FaVKpitMzWtvv
 # PLnJWdrqqpGq14OzX8iNCzSujxppAuyjrhT4lNlekzDoDfdTez72r+rXkvg4GzZL
 # QC3xLYg/LrT8Rs+zgOhm/AaIyS4bOyMlkU9Du1rQ6Tyne45ey2FCwKVzBKrJdGcw
 # sVbzEclxseLenoTbZqYK6JTzLdDoThVUbY2JwoCGUaIm+74P4NjEsUsTVg==
 # =TuQM
 # -----END PGP SIGNATURE-----
 # gpg: Signature made Thu 19 Dec 2024 13:39:05 EST
 # gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
 # gpg:                issuer "pbonzini@redhat.com"
 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
 # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
 # 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

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (42 commits)
  rust: pl011: simplify handling of the FIFO enabled bit in LCR
  rust: pl011: fix migration stream
  rust: pl011: extend registers to 32 bits
  rust: pl011: fix break errors and definition of Data struct
  rust: pl011: always use reset() method on registers
  rust: pl011: match break logic of C version
  rust: pl011: fix declaration of LineControl bits
  target/i386: Reset TSCs of parked vCPUs too on VM reset
  kvm: consistently return 0/-errno from kvm_convert_memory
  rust: qemu-api: add a module to wrap functions and zero-sized closures
  rust: qom: add initial subset of methods on Object
  rust: qom: add casting functionality
  rust: tests: allow writing more than one test
  bql: add a "mock" BQL for Rust unit tests
  rust: re-export C types from qemu-api submodules
  rust: rename qemu-api modules to follow C code a bit more
  rust: qom: add possibility of overriding unparent
  rust: qom: put class_init together from multiple ClassInitImpl<>
  Constify all opaque Property pointers
  hw/core/qdev-properties: Constify Property argument to PropertyInfo.print
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2024-12-21 08:06:50 -05:00
commit e3a207722b
603 changed files with 1422 additions and 1269 deletions

View file

@ -437,6 +437,16 @@ int kvm_unpark_vcpu(KVMState *s, unsigned long vcpu_id)
return kvm_fd; return kvm_fd;
} }
static void kvm_reset_parked_vcpus(void *param)
{
KVMState *s = param;
struct KVMParkedVcpu *cpu;
QLIST_FOREACH(cpu, &s->kvm_parked_vcpus, node) {
kvm_arch_reset_parked_vcpu(cpu->vcpu_id, cpu->kvm_fd);
}
}
int kvm_create_vcpu(CPUState *cpu) int kvm_create_vcpu(CPUState *cpu)
{ {
unsigned long vcpu_id = kvm_arch_vcpu_id(cpu); unsigned long vcpu_id = kvm_arch_vcpu_id(cpu);
@ -2728,6 +2738,7 @@ static int kvm_init(MachineState *ms)
} }
qemu_register_reset(kvm_unpoison_all, NULL); qemu_register_reset(kvm_unpoison_all, NULL);
qemu_register_reset(kvm_reset_parked_vcpus, s);
if (s->kernel_irqchip_allowed) { if (s->kernel_irqchip_allowed) {
kvm_irqchip_create(s); kvm_irqchip_create(s);
@ -2999,17 +3010,17 @@ int kvm_convert_memory(hwaddr start, hwaddr size, bool to_private)
MemoryRegion *mr; MemoryRegion *mr;
RAMBlock *rb; RAMBlock *rb;
void *addr; void *addr;
int ret = -1; int ret = -EINVAL;
trace_kvm_convert_memory(start, size, to_private ? "shared_to_private" : "private_to_shared"); trace_kvm_convert_memory(start, size, to_private ? "shared_to_private" : "private_to_shared");
if (!QEMU_PTR_IS_ALIGNED(start, qemu_real_host_page_size()) || if (!QEMU_PTR_IS_ALIGNED(start, qemu_real_host_page_size()) ||
!QEMU_PTR_IS_ALIGNED(size, qemu_real_host_page_size())) { !QEMU_PTR_IS_ALIGNED(size, qemu_real_host_page_size())) {
return -1; return ret;
} }
if (!size) { if (!size) {
return -1; return ret;
} }
section = memory_region_find(get_system_memory(), start, size); section = memory_region_find(get_system_memory(), start, size);
@ -3027,7 +3038,7 @@ int kvm_convert_memory(hwaddr start, hwaddr size, bool to_private)
if (!to_private) { if (!to_private) {
return 0; return 0;
} }
return -1; return ret;
} }
if (!memory_region_has_guest_memfd(mr)) { if (!memory_region_has_guest_memfd(mr)) {

View file

@ -46,7 +46,7 @@ static void get_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque, static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
TPMBackend *s, **be = object_field_prop_ptr(obj, prop); TPMBackend *s, **be = object_field_prop_ptr(obj, prop);
char *str; char *str;
@ -66,7 +66,7 @@ static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
static void release_tpm(Object *obj, const char *name, void *opaque) static void release_tpm(Object *obj, const char *name, void *opaque)
{ {
Property *prop = opaque; const Property *prop = opaque;
TPMBackend **be = object_field_prop_ptr(obj, prop); TPMBackend **be = object_field_prop_ptr(obj, prop);
if (*be) { if (*be) {

View file

@ -1,4 +1,5 @@
TARGET_ARCH=i386 TARGET_ARCH=i386
TARGET_SUPPORTS_MTTCG=y TARGET_SUPPORTS_MTTCG=y
TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_KVM_HAVE_GUEST_DEBUG=y
TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
TARGET_XML_FILES= gdb-xml/i386-32bit.xml TARGET_XML_FILES= gdb-xml/i386-32bit.xml

View file

@ -2,4 +2,5 @@ TARGET_ARCH=x86_64
TARGET_BASE_ARCH=i386 TARGET_BASE_ARCH=i386
TARGET_SUPPORTS_MTTCG=y TARGET_SUPPORTS_MTTCG=y
TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_KVM_HAVE_GUEST_DEBUG=y
TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
TARGET_XML_FILES= gdb-xml/i386-64bit.xml TARGET_XML_FILES= gdb-xml/i386-64bit.xml

View file

@ -201,7 +201,6 @@ static const Property cpu_common_props[] = {
DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION, DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION,
MemoryRegion *), MemoryRegion *),
#endif #endif
DEFINE_PROP_END_OF_LIST(),
}; };
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY

View file

@ -401,7 +401,6 @@ the old behaviour or the new behaviour::
DEFINE_PROP_UINT32("acpi-index", PCIDevice, acpi_index, 0), DEFINE_PROP_UINT32("acpi-index", PCIDevice, acpi_index, 0),
+ DEFINE_PROP_BIT("x-pcie-err-unc-mask", PCIDevice, cap_present, + DEFINE_PROP_BIT("x-pcie-err-unc-mask", PCIDevice, cap_present,
+ QEMU_PCIE_ERR_UNC_MASK_BITNR, true), + QEMU_PCIE_ERR_UNC_MASK_BITNR, true),
DEFINE_PROP_END_OF_LIST()
}; };
Notice that we enable the feature for new machine types. Notice that we enable the feature for new machine types.

View file

@ -107,7 +107,6 @@ manually instantiated:
VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true), VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
DEV_NVECTORS_UNSPECIFIED), DEV_NVECTORS_UNSPECIFIED),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)

View file

@ -246,7 +246,6 @@ static const VMStateDescription vmstate_virtio_9p = {
static const Property virtio_9p_properties[] = { static const Property virtio_9p_properties[] = {
DEFINE_PROP_STRING("mount_tag", V9fsVirtioState, state.fsconf.tag), DEFINE_PROP_STRING("mount_tag", V9fsVirtioState, state.fsconf.tag),
DEFINE_PROP_STRING("fsdev", V9fsVirtioState, state.fsconf.fsdev_id), DEFINE_PROP_STRING("fsdev", V9fsVirtioState, state.fsconf.fsdev_id),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtio_9p_class_init(ObjectClass *klass, void *data) static void virtio_9p_class_init(ObjectClass *klass, void *data)

View file

@ -1016,7 +1016,6 @@ static const Property erst_properties[] = {
TYPE_MEMORY_BACKEND, HostMemoryBackend *), TYPE_MEMORY_BACKEND, HostMemoryBackend *),
DEFINE_PROP_UINT32(ACPI_ERST_RECORD_SIZE_PROP, ERSTDeviceState, DEFINE_PROP_UINT32(ACPI_ERST_RECORD_SIZE_PROP, ERSTDeviceState,
default_record_size, ERST_RECORD_SIZE), default_record_size, ERST_RECORD_SIZE),
DEFINE_PROP_END_OF_LIST(),
}; };
static void erst_class_init(ObjectClass *klass, void *data) static void erst_class_init(ObjectClass *klass, void *data)

View file

@ -318,7 +318,6 @@ static void acpi_ged_send_event(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
static const Property acpi_ged_properties[] = { static const Property acpi_ged_properties[] = {
DEFINE_PROP_UINT32("ged-event", AcpiGedState, ged_event_bitmap, 0), DEFINE_PROP_UINT32("ged-event", AcpiGedState, ged_event_bitmap, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static const VMStateDescription vmstate_memhp_state = { static const VMStateDescription vmstate_memhp_state = {

View file

@ -617,7 +617,6 @@ static const Property piix4_pm_properties[] = {
DEFINE_PROP_BOOL("smm-enabled", PIIX4PMState, smm_enabled, false), DEFINE_PROP_BOOL("smm-enabled", PIIX4PMState, smm_enabled, false),
DEFINE_PROP_BOOL("x-not-migrate-acpi-index", PIIX4PMState, DEFINE_PROP_BOOL("x-not-migrate-acpi-index", PIIX4PMState,
not_migrate_acpi_index, false), not_migrate_acpi_index, false),
DEFINE_PROP_END_OF_LIST(),
}; };
static void piix4_pm_class_init(ObjectClass *klass, void *data) static void piix4_pm_class_init(ObjectClass *klass, void *data)

View file

@ -216,7 +216,6 @@ static void vmgenid_realize(DeviceState *dev, Error **errp)
static const Property vmgenid_device_properties[] = { static const Property vmgenid_device_properties[] = {
DEFINE_PROP_UUID(VMGENID_GUID, VmGenIdState, guid), DEFINE_PROP_UUID(VMGENID_GUID, VmGenIdState, guid),
DEFINE_PROP_END_OF_LIST(),
}; };
static void vmgenid_device_class_init(ObjectClass *klass, void *data) static void vmgenid_device_class_init(ObjectClass *klass, void *data)

View file

@ -289,7 +289,6 @@ static const VMStateDescription vmstate_aspeed_adc_engine = {
static const Property aspeed_adc_engine_properties[] = { static const Property aspeed_adc_engine_properties[] = {
DEFINE_PROP_UINT32("engine-id", AspeedADCEngineState, engine_id, 0), DEFINE_PROP_UINT32("engine-id", AspeedADCEngineState, engine_id, 0),
DEFINE_PROP_UINT32("nr-channels", AspeedADCEngineState, nr_channels, 0), DEFINE_PROP_UINT32("nr-channels", AspeedADCEngineState, nr_channels, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static void aspeed_adc_engine_class_init(ObjectClass *klass, void *data) static void aspeed_adc_engine_class_init(ObjectClass *klass, void *data)

View file

@ -269,7 +269,6 @@ static const VMStateDescription vmstate_npcm7xx_adc = {
static const Property npcm7xx_timer_properties[] = { static const Property npcm7xx_timer_properties[] = {
DEFINE_PROP_UINT32("iref", NPCM7xxADCState, iref, NPCM7XX_ADC_DEFAULT_IREF), DEFINE_PROP_UINT32("iref", NPCM7xxADCState, iref, NPCM7XX_ADC_DEFAULT_IREF),
DEFINE_PROP_END_OF_LIST(),
}; };
static void npcm7xx_adc_class_init(ObjectClass *klass, void *data) static void npcm7xx_adc_class_init(ObjectClass *klass, void *data)

View file

@ -72,6 +72,7 @@ struct ARMSSEInfo {
bool has_cpu_pwrctrl; bool has_cpu_pwrctrl;
bool has_sse_counter; bool has_sse_counter;
bool has_tcms; bool has_tcms;
uint8_t props_count;
const Property *props; const Property *props;
const ARMSSEDeviceInfo *devinfo; const ARMSSEDeviceInfo *devinfo;
const bool *irq_is_common; const bool *irq_is_common;
@ -87,7 +88,6 @@ static const Property iotkit_properties[] = {
DEFINE_PROP_BOOL("CPU0_DSP", ARMSSE, cpu_dsp[0], true), DEFINE_PROP_BOOL("CPU0_DSP", ARMSSE, cpu_dsp[0], true),
DEFINE_PROP_UINT32("CPU0_MPU_NS", ARMSSE, cpu_mpu_ns[0], 8), DEFINE_PROP_UINT32("CPU0_MPU_NS", ARMSSE, cpu_mpu_ns[0], 8),
DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8), DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8),
DEFINE_PROP_END_OF_LIST()
}; };
static const Property sse200_properties[] = { static const Property sse200_properties[] = {
@ -104,7 +104,6 @@ static const Property sse200_properties[] = {
DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8), DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8),
DEFINE_PROP_UINT32("CPU1_MPU_NS", ARMSSE, cpu_mpu_ns[1], 8), DEFINE_PROP_UINT32("CPU1_MPU_NS", ARMSSE, cpu_mpu_ns[1], 8),
DEFINE_PROP_UINT32("CPU1_MPU_S", ARMSSE, cpu_mpu_s[1], 8), DEFINE_PROP_UINT32("CPU1_MPU_S", ARMSSE, cpu_mpu_s[1], 8),
DEFINE_PROP_END_OF_LIST()
}; };
static const Property sse300_properties[] = { static const Property sse300_properties[] = {
@ -117,7 +116,6 @@ static const Property sse300_properties[] = {
DEFINE_PROP_BOOL("CPU0_DSP", ARMSSE, cpu_dsp[0], true), DEFINE_PROP_BOOL("CPU0_DSP", ARMSSE, cpu_dsp[0], true),
DEFINE_PROP_UINT32("CPU0_MPU_NS", ARMSSE, cpu_mpu_ns[0], 8), DEFINE_PROP_UINT32("CPU0_MPU_NS", ARMSSE, cpu_mpu_ns[0], 8),
DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8), DEFINE_PROP_UINT32("CPU0_MPU_S", ARMSSE, cpu_mpu_s[0], 8),
DEFINE_PROP_END_OF_LIST()
}; };
static const ARMSSEDeviceInfo iotkit_devices[] = { static const ARMSSEDeviceInfo iotkit_devices[] = {
@ -528,6 +526,7 @@ static const ARMSSEInfo armsse_variants[] = {
.has_sse_counter = false, .has_sse_counter = false,
.has_tcms = false, .has_tcms = false,
.props = iotkit_properties, .props = iotkit_properties,
.props_count = ARRAY_SIZE(iotkit_properties),
.devinfo = iotkit_devices, .devinfo = iotkit_devices,
.irq_is_common = sse200_irq_is_common, .irq_is_common = sse200_irq_is_common,
}, },
@ -549,6 +548,7 @@ static const ARMSSEInfo armsse_variants[] = {
.has_sse_counter = false, .has_sse_counter = false,
.has_tcms = false, .has_tcms = false,
.props = sse200_properties, .props = sse200_properties,
.props_count = ARRAY_SIZE(sse200_properties),
.devinfo = sse200_devices, .devinfo = sse200_devices,
.irq_is_common = sse200_irq_is_common, .irq_is_common = sse200_irq_is_common,
}, },
@ -570,6 +570,7 @@ static const ARMSSEInfo armsse_variants[] = {
.has_sse_counter = true, .has_sse_counter = true,
.has_tcms = true, .has_tcms = true,
.props = sse300_properties, .props = sse300_properties,
.props_count = ARRAY_SIZE(sse300_properties),
.devinfo = sse300_devices, .devinfo = sse300_devices,
.irq_is_common = sse300_irq_is_common, .irq_is_common = sse300_irq_is_common,
}, },
@ -1699,7 +1700,7 @@ static void armsse_class_init(ObjectClass *klass, void *data)
dc->realize = armsse_realize; dc->realize = armsse_realize;
dc->vmsd = &armsse_vmstate; dc->vmsd = &armsse_vmstate;
device_class_set_props(dc, info->props); device_class_set_props_n(dc, info->props, info->props_count);
device_class_set_legacy_reset(dc, armsse_reset); device_class_set_legacy_reset(dc, armsse_reset);
iic->check = armsse_idau_check; iic->check = armsse_idau_check;
asc->info = info; asc->info = info;

View file

@ -552,7 +552,6 @@ static const Property armv7m_properties[] = {
DEFINE_PROP_BOOL("dsp", ARMv7MState, dsp, true), DEFINE_PROP_BOOL("dsp", ARMv7MState, dsp, true),
DEFINE_PROP_UINT32("mpu-ns-regions", ARMv7MState, mpu_ns_regions, UINT_MAX), DEFINE_PROP_UINT32("mpu-ns-regions", ARMv7MState, mpu_ns_regions, UINT_MAX),
DEFINE_PROP_UINT32("mpu-s-regions", ARMv7MState, mpu_s_regions, UINT_MAX), DEFINE_PROP_UINT32("mpu-s-regions", ARMv7MState, mpu_s_regions, UINT_MAX),
DEFINE_PROP_END_OF_LIST(),
}; };
static const VMStateDescription vmstate_armv7m = { static const VMStateDescription vmstate_armv7m = {
@ -635,7 +634,6 @@ static const Property bitband_properties[] = {
DEFINE_PROP_UINT32("base", BitBandState, base, 0), DEFINE_PROP_UINT32("base", BitBandState, base, 0),
DEFINE_PROP_LINK("source-memory", BitBandState, source_memory, DEFINE_PROP_LINK("source-memory", BitBandState, source_memory,
TYPE_MEMORY_REGION, MemoryRegion *), TYPE_MEMORY_REGION, MemoryRegion *),
DEFINE_PROP_END_OF_LIST(),
}; };
static void bitband_class_init(ObjectClass *klass, void *data) static void bitband_class_init(ObjectClass *klass, void *data)

View file

@ -144,7 +144,6 @@ static const Property aspeed_soc_properties[] = {
MemoryRegion *), MemoryRegion *),
DEFINE_PROP_LINK("memory", AspeedSoCState, memory, TYPE_MEMORY_REGION, DEFINE_PROP_LINK("memory", AspeedSoCState, memory, TYPE_MEMORY_REGION,
MemoryRegion *), MemoryRegion *),
DEFINE_PROP_END_OF_LIST(),
}; };
static void aspeed_soc_class_init(ObjectClass *oc, void *data) static void aspeed_soc_class_init(ObjectClass *oc, void *data)

View file

@ -311,7 +311,6 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
static const Property fsl_imx25_properties[] = { static const Property fsl_imx25_properties[] = {
DEFINE_PROP_UINT32("fec-phy-num", FslIMX25State, phy_num, 0), DEFINE_PROP_UINT32("fec-phy-num", FslIMX25State, phy_num, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static void fsl_imx25_class_init(ObjectClass *oc, void *data) static void fsl_imx25_class_init(ObjectClass *oc, void *data)

View file

@ -483,7 +483,6 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
static const Property fsl_imx6_properties[] = { static const Property fsl_imx6_properties[] = {
DEFINE_PROP_UINT32("fec-phy-num", FslIMX6State, phy_num, 0), DEFINE_PROP_UINT32("fec-phy-num", FslIMX6State, phy_num, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static void fsl_imx6_class_init(ObjectClass *oc, void *data) static void fsl_imx6_class_init(ObjectClass *oc, void *data)

View file

@ -725,7 +725,6 @@ static const Property fsl_imx6ul_properties[] = {
true), true),
DEFINE_PROP_BOOL("fec2-phy-connected", FslIMX6ULState, phy_connected[1], DEFINE_PROP_BOOL("fec2-phy-connected", FslIMX6ULState, phy_connected[1],
true), true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void fsl_imx6ul_class_init(ObjectClass *oc, void *data) static void fsl_imx6ul_class_init(ObjectClass *oc, void *data)

View file

@ -743,7 +743,6 @@ static const Property fsl_imx7_properties[] = {
true), true),
DEFINE_PROP_BOOL("fec2-phy-connected", FslIMX7State, phy_connected[1], DEFINE_PROP_BOOL("fec2-phy-connected", FslIMX7State, phy_connected[1],
true), true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void fsl_imx7_class_init(ObjectClass *oc, void *data) static void fsl_imx7_class_init(ObjectClass *oc, void *data)

View file

@ -696,7 +696,6 @@ DEFINE_MACHINE("integratorcp", integratorcp_machine_init)
static const Property core_properties[] = { static const Property core_properties[] = {
DEFINE_PROP_UINT32("memsz", IntegratorCMState, memsz, 0), DEFINE_PROP_UINT32("memsz", IntegratorCMState, memsz, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static void core_class_init(ObjectClass *klass, void *data) static void core_class_init(ObjectClass *klass, void *data)

View file

@ -234,7 +234,6 @@ static const Property m2sxxx_soc_properties[] = {
/* default divisors in Libero GUI */ /* default divisors in Libero GUI */
DEFINE_PROP_UINT8("apb0div", MSF2State, apb0div, 2), DEFINE_PROP_UINT8("apb0div", MSF2State, apb0div, 2),
DEFINE_PROP_UINT8("apb1div", MSF2State, apb1div, 2), DEFINE_PROP_UINT8("apb1div", MSF2State, apb1div, 2),
DEFINE_PROP_END_OF_LIST(),
}; };
static void m2sxxx_soc_class_init(ObjectClass *klass, void *data) static void m2sxxx_soc_class_init(ObjectClass *klass, void *data)

View file

@ -813,7 +813,6 @@ static void npcm7xx_realize(DeviceState *dev, Error **errp)
static const Property npcm7xx_properties[] = { static const Property npcm7xx_properties[] = {
DEFINE_PROP_LINK("dram-mr", NPCM7xxState, dram, TYPE_MEMORY_REGION, DEFINE_PROP_LINK("dram-mr", NPCM7xxState, dram, TYPE_MEMORY_REGION,
MemoryRegion *), MemoryRegion *),
DEFINE_PROP_END_OF_LIST(),
}; };
static void npcm7xx_class_init(ObjectClass *oc, void *data) static void npcm7xx_class_init(ObjectClass *oc, void *data)

View file

@ -214,7 +214,6 @@ static const Property nrf51_soc_properties[] = {
DEFINE_PROP_UINT32("sram-size", NRF51State, sram_size, NRF51822_SRAM_SIZE), DEFINE_PROP_UINT32("sram-size", NRF51State, sram_size, NRF51822_SRAM_SIZE),
DEFINE_PROP_UINT32("flash-size", NRF51State, flash_size, DEFINE_PROP_UINT32("flash-size", NRF51State, flash_size,
NRF51822_FLASH_SIZE), NRF51822_FLASH_SIZE),
DEFINE_PROP_END_OF_LIST(),
}; };
static void nrf51_soc_class_init(ObjectClass *klass, void *data) static void nrf51_soc_class_init(ObjectClass *klass, void *data)

View file

@ -938,7 +938,6 @@ static const Property smmu_dev_properties[] = {
DEFINE_PROP_UINT8("bus_num", SMMUState, bus_num, 0), DEFINE_PROP_UINT8("bus_num", SMMUState, bus_num, 0),
DEFINE_PROP_LINK("primary-bus", SMMUState, primary_bus, DEFINE_PROP_LINK("primary-bus", SMMUState, primary_bus,
TYPE_PCI_BUS, PCIBus *), TYPE_PCI_BUS, PCIBus *),
DEFINE_PROP_END_OF_LIST(),
}; };
static void smmu_base_class_init(ObjectClass *klass, void *data) static void smmu_base_class_init(ObjectClass *klass, void *data)

View file

@ -1985,7 +1985,6 @@ static const Property smmuv3_properties[] = {
* Defaults to stage 1 * Defaults to stage 1
*/ */
DEFINE_PROP_STRING("stage", SMMUv3State, stage), DEFINE_PROP_STRING("stage", SMMUv3State, stage),
DEFINE_PROP_END_OF_LIST()
}; };
static void smmuv3_instance_init(Object *obj) static void smmuv3_instance_init(Object *obj)

View file

@ -448,7 +448,6 @@ static const Property stellaris_sys_properties[] = {
DEFINE_PROP_UINT32("dc2", ssys_state, dc2, 0), DEFINE_PROP_UINT32("dc2", ssys_state, dc2, 0),
DEFINE_PROP_UINT32("dc3", ssys_state, dc3, 0), DEFINE_PROP_UINT32("dc3", ssys_state, dc3, 0),
DEFINE_PROP_UINT32("dc4", ssys_state, dc4, 0), DEFINE_PROP_UINT32("dc4", ssys_state, dc4, 0),
DEFINE_PROP_END_OF_LIST()
}; };
static void stellaris_sys_instance_init(Object *obj) static void stellaris_sys_instance_init(Object *obj)

View file

@ -1334,7 +1334,6 @@ static const VMStateDescription vmstate_strongarm_uart_regs = {
static const Property strongarm_uart_properties[] = { static const Property strongarm_uart_properties[] = {
DEFINE_PROP_CHR("chardev", StrongARMUARTState, chr), DEFINE_PROP_CHR("chardev", StrongARMUARTState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void strongarm_uart_class_init(ObjectClass *klass, void *data) static void strongarm_uart_class_init(ObjectClass *klass, void *data)

View file

@ -975,7 +975,6 @@ static const Property versal_properties[] = {
TYPE_CAN_BUS, CanBusState *), TYPE_CAN_BUS, CanBusState *),
DEFINE_PROP_LINK("canbus1", Versal, lpd.iou.canbus[1], DEFINE_PROP_LINK("canbus1", Versal, lpd.iou.canbus[1],
TYPE_CAN_BUS, CanBusState *), TYPE_CAN_BUS, CanBusState *),
DEFINE_PROP_END_OF_LIST()
}; };
static void versal_class_init(ObjectClass *klass, void *data) static void versal_class_init(ObjectClass *klass, void *data)

View file

@ -867,7 +867,6 @@ static const Property xlnx_zynqmp_props[] = {
CanBusState *), CanBusState *),
DEFINE_PROP_LINK("canbus1", XlnxZynqMPState, canbus[1], TYPE_CAN_BUS, DEFINE_PROP_LINK("canbus1", XlnxZynqMPState, canbus[1], TYPE_CAN_BUS,
CanBusState *), CanBusState *),
DEFINE_PROP_END_OF_LIST()
}; };
static void xlnx_zynqmp_class_init(ObjectClass *oc, void *data) static void xlnx_zynqmp_class_init(ObjectClass *oc, void *data)

View file

@ -1326,7 +1326,6 @@ static void ac97_exit(PCIDevice *dev)
static const Property ac97_properties[] = { static const Property ac97_properties[] = {
DEFINE_AUDIO_PROPERTIES(AC97LinkState, card), DEFINE_AUDIO_PROPERTIES(AC97LinkState, card),
DEFINE_PROP_END_OF_LIST(),
}; };
static void ac97_class_init(ObjectClass *klass, void *data) static void ac97_class_init(ObjectClass *klass, void *data)

View file

@ -301,7 +301,6 @@ static const Property adlib_properties[] = {
DEFINE_AUDIO_PROPERTIES(AdlibState, card), DEFINE_AUDIO_PROPERTIES(AdlibState, card),
DEFINE_PROP_UINT32 ("iobase", AdlibState, port, 0x220), DEFINE_PROP_UINT32 ("iobase", AdlibState, port, 0x220),
DEFINE_PROP_UINT32 ("freq", AdlibState, freq, 44100), DEFINE_PROP_UINT32 ("freq", AdlibState, freq, 44100),
DEFINE_PROP_END_OF_LIST (),
}; };
static void adlib_class_initfn (ObjectClass *klass, void *data) static void adlib_class_initfn (ObjectClass *klass, void *data)

View file

@ -698,7 +698,6 @@ static void asc_init(Object *obj)
static const Property asc_properties[] = { static const Property asc_properties[] = {
DEFINE_AUDIO_PROPERTIES(ASCState, card), DEFINE_AUDIO_PROPERTIES(ASCState, card),
DEFINE_PROP_UINT8("asctype", ASCState, type, ASC_TYPE_ASC), DEFINE_PROP_UINT8("asctype", ASCState, type, ASC_TYPE_ASC),
DEFINE_PROP_END_OF_LIST(),
}; };
static void asc_class_init(ObjectClass *oc, void *data) static void asc_class_init(ObjectClass *oc, void *data)

View file

@ -694,7 +694,6 @@ static const Property cs4231a_properties[] = {
DEFINE_PROP_UINT32 ("iobase", CSState, port, 0x534), DEFINE_PROP_UINT32 ("iobase", CSState, port, 0x534),
DEFINE_PROP_UINT32 ("irq", CSState, irq, 9), DEFINE_PROP_UINT32 ("irq", CSState, irq, 9),
DEFINE_PROP_UINT32 ("dma", CSState, dma, 3), DEFINE_PROP_UINT32 ("dma", CSState, dma, 3),
DEFINE_PROP_END_OF_LIST (),
}; };
static void cs4231a_class_initfn (ObjectClass *klass, void *data) static void cs4231a_class_initfn (ObjectClass *klass, void *data)

View file

@ -870,7 +870,6 @@ static void es1370_exit(PCIDevice *dev)
static const Property es1370_properties[] = { static const Property es1370_properties[] = {
DEFINE_AUDIO_PROPERTIES(ES1370State, card), DEFINE_AUDIO_PROPERTIES(ES1370State, card),
DEFINE_PROP_END_OF_LIST(),
}; };
static void es1370_class_init (ObjectClass *klass, void *data) static void es1370_class_init (ObjectClass *klass, void *data)

View file

@ -296,7 +296,6 @@ static const Property gus_properties[] = {
DEFINE_PROP_UINT32 ("iobase", GUSState, port, 0x240), DEFINE_PROP_UINT32 ("iobase", GUSState, port, 0x240),
DEFINE_PROP_UINT32 ("irq", GUSState, emu.gusirq, 7), DEFINE_PROP_UINT32 ("irq", GUSState, emu.gusirq, 7),
DEFINE_PROP_UINT32 ("dma", GUSState, emu.gusdma, 3), DEFINE_PROP_UINT32 ("dma", GUSState, emu.gusdma, 3),
DEFINE_PROP_END_OF_LIST (),
}; };
static void gus_class_initfn (ObjectClass *klass, void *data) static void gus_class_initfn (ObjectClass *klass, void *data)

View file

@ -862,7 +862,6 @@ static const Property hda_audio_properties[] = {
DEFINE_PROP_UINT32("debug", HDAAudioState, debug, 0), DEFINE_PROP_UINT32("debug", HDAAudioState, debug, 0),
DEFINE_PROP_BOOL("mixer", HDAAudioState, mixer, true), DEFINE_PROP_BOOL("mixer", HDAAudioState, mixer, true),
DEFINE_PROP_BOOL("use-timer", HDAAudioState, use_timer, true), DEFINE_PROP_BOOL("use-timer", HDAAudioState, use_timer, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void hda_audio_init_output(HDACodecDevice *hda, Error **errp) static void hda_audio_init_output(HDACodecDevice *hda, Error **errp)

View file

@ -39,7 +39,6 @@
static const Property hda_props[] = { static const Property hda_props[] = {
DEFINE_PROP_UINT32("cad", HDACodecDevice, cad, -1), DEFINE_PROP_UINT32("cad", HDACodecDevice, cad, -1),
DEFINE_PROP_END_OF_LIST()
}; };
static const TypeInfo hda_codec_bus_info = { static const TypeInfo hda_codec_bus_info = {
@ -1219,7 +1218,6 @@ static const Property intel_hda_properties[] = {
DEFINE_PROP_UINT32("debug", IntelHDAState, debug, 0), DEFINE_PROP_UINT32("debug", IntelHDAState, debug, 0),
DEFINE_PROP_ON_OFF_AUTO("msi", IntelHDAState, msi, ON_OFF_AUTO_AUTO), DEFINE_PROP_ON_OFF_AUTO("msi", IntelHDAState, msi, ON_OFF_AUTO_AUTO),
DEFINE_PROP_BOOL("old_msi_addr", IntelHDAState, old_msi_addr, false), DEFINE_PROP_BOOL("old_msi_addr", IntelHDAState, old_msi_addr, false),
DEFINE_PROP_END_OF_LIST(),
}; };
static void intel_hda_class_init(ObjectClass *klass, void *data) static void intel_hda_class_init(ObjectClass *klass, void *data)

View file

@ -219,7 +219,6 @@ static const Property pcspk_properties[] = {
DEFINE_AUDIO_PROPERTIES(PCSpkState, card), DEFINE_AUDIO_PROPERTIES(PCSpkState, card),
DEFINE_PROP_UINT32("iobase", PCSpkState, iobase, 0x61), DEFINE_PROP_UINT32("iobase", PCSpkState, iobase, 0x61),
DEFINE_PROP_BOOL("migrate", PCSpkState, migrate, true), DEFINE_PROP_BOOL("migrate", PCSpkState, migrate, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void pcspk_class_initfn(ObjectClass *klass, void *data) static void pcspk_class_initfn(ObjectClass *klass, void *data)

View file

@ -630,7 +630,6 @@ static const Property pl041_device_properties[] = {
/* Non-compact FIFO depth property */ /* Non-compact FIFO depth property */
DEFINE_PROP_UINT32("nc_fifo_depth", PL041State, fifo_depth, DEFINE_PROP_UINT32("nc_fifo_depth", PL041State, fifo_depth,
DEFAULT_FIFO_DEPTH), DEFAULT_FIFO_DEPTH),
DEFINE_PROP_END_OF_LIST(),
}; };
static void pl041_device_class_init(ObjectClass *klass, void *data) static void pl041_device_class_init(ObjectClass *klass, void *data)

View file

@ -1447,7 +1447,6 @@ static const Property sb16_properties[] = {
DEFINE_PROP_UINT32 ("irq", SB16State, irq, 5), DEFINE_PROP_UINT32 ("irq", SB16State, irq, 5),
DEFINE_PROP_UINT32 ("dma", SB16State, dma, 1), DEFINE_PROP_UINT32 ("dma", SB16State, dma, 1),
DEFINE_PROP_UINT32 ("dma16", SB16State, hdma, 5), DEFINE_PROP_UINT32 ("dma16", SB16State, hdma, 5),
DEFINE_PROP_END_OF_LIST (),
}; };
static void sb16_class_initfn (ObjectClass *klass, void *data) static void sb16_class_initfn (ObjectClass *klass, void *data)

View file

@ -461,7 +461,6 @@ static void via_ac97_exit(PCIDevice *dev)
static const Property via_ac97_properties[] = { static const Property via_ac97_properties[] = {
DEFINE_AUDIO_PROPERTIES(ViaAC97State, card), DEFINE_AUDIO_PROPERTIES(ViaAC97State, card),
DEFINE_PROP_END_OF_LIST(),
}; };
static void via_ac97_class_init(ObjectClass *klass, void *data) static void via_ac97_class_init(ObjectClass *klass, void *data)

View file

@ -31,7 +31,6 @@ static const Property virtio_snd_pci_properties[] = {
DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags, DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true), VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2), DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtio_snd_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) static void virtio_snd_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)

View file

@ -85,7 +85,6 @@ static const Property virtio_snd_properties[] = {
VIRTIO_SOUND_STREAM_DEFAULT), VIRTIO_SOUND_STREAM_DEFAULT),
DEFINE_PROP_UINT32("chmaps", VirtIOSound, snd_conf.chmaps, DEFINE_PROP_UINT32("chmaps", VirtIOSound, snd_conf.chmaps,
VIRTIO_SOUND_CHMAP_DEFAULT), VIRTIO_SOUND_CHMAP_DEFAULT),
DEFINE_PROP_END_OF_LIST(),
}; };
static void static void

View file

@ -708,7 +708,6 @@ void wm8750_set_bclk_in(void *opaque, int new_hz)
static const Property wm8750_properties[] = { static const Property wm8750_properties[] = {
DEFINE_AUDIO_PROPERTIES(WM8750State, card), DEFINE_AUDIO_PROPERTIES(WM8750State, card),
DEFINE_PROP_END_OF_LIST(),
}; };
static void wm8750_class_init(ObjectClass *klass, void *data) static void wm8750_class_init(ObjectClass *klass, void *data)

View file

@ -358,7 +358,6 @@ static void atmega_realize(DeviceState *dev, Error **errp)
static const Property atmega_props[] = { static const Property atmega_props[] = {
DEFINE_PROP_UINT64("xtal-frequency-hz", AtmegaMcuState, DEFINE_PROP_UINT64("xtal-frequency-hz", AtmegaMcuState,
xtal_freq_hz, 0), xtal_freq_hz, 0),
DEFINE_PROP_END_OF_LIST()
}; };
static void atmega_class_init(ObjectClass *oc, void *data) static void atmega_class_init(ObjectClass *oc, void *data)

View file

@ -296,7 +296,6 @@ static const Property isa_fdc_properties[] = {
DEFINE_PROP_SIGNED("fallback", FDCtrlISABus, state.fallback, DEFINE_PROP_SIGNED("fallback", FDCtrlISABus, state.fallback,
FLOPPY_DRIVE_TYPE_288, qdev_prop_fdc_drive_type, FLOPPY_DRIVE_TYPE_288, qdev_prop_fdc_drive_type,
FloppyDriveType), FloppyDriveType),
DEFINE_PROP_END_OF_LIST(),
}; };
static void isabus_fdc_class_init(ObjectClass *klass, void *data) static void isabus_fdc_class_init(ObjectClass *klass, void *data)

View file

@ -206,7 +206,6 @@ static const Property sysbus_fdc_properties[] = {
DEFINE_PROP_SIGNED("fallback", FDCtrlSysBus, state.fallback, DEFINE_PROP_SIGNED("fallback", FDCtrlSysBus, state.fallback,
FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type, FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type,
FloppyDriveType), FloppyDriveType),
DEFINE_PROP_END_OF_LIST(),
}; };
static void sysbus_fdc_class_init(ObjectClass *klass, void *data) static void sysbus_fdc_class_init(ObjectClass *klass, void *data)
@ -230,7 +229,6 @@ static const Property sun4m_fdc_properties[] = {
DEFINE_PROP_SIGNED("fallback", FDCtrlSysBus, state.fallback, DEFINE_PROP_SIGNED("fallback", FDCtrlSysBus, state.fallback,
FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type, FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type,
FloppyDriveType), FloppyDriveType),
DEFINE_PROP_END_OF_LIST(),
}; };
static void sun4m_fdc_class_init(ObjectClass *klass, void *data) static void sun4m_fdc_class_init(ObjectClass *klass, void *data)

View file

@ -460,7 +460,6 @@ static const Property floppy_drive_properties[] = {
DEFINE_PROP_SIGNED("drive-type", FloppyDrive, type, DEFINE_PROP_SIGNED("drive-type", FloppyDrive, type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType), FloppyDriveType),
DEFINE_PROP_END_OF_LIST(),
}; };
static void floppy_drive_realize(DeviceState *qdev, Error **errp) static void floppy_drive_realize(DeviceState *qdev, Error **errp)

View file

@ -1729,7 +1729,6 @@ static const Property m25p80_properties[] = {
DEFINE_PROP_UINT8("spansion-cr3nv", Flash, spansion_cr3nv, 0x2), DEFINE_PROP_UINT8("spansion-cr3nv", Flash, spansion_cr3nv, 0x2),
DEFINE_PROP_UINT8("spansion-cr4nv", Flash, spansion_cr4nv, 0x10), DEFINE_PROP_UINT8("spansion-cr4nv", Flash, spansion_cr4nv, 0x10),
DEFINE_PROP_DRIVE("drive", Flash, blk), DEFINE_PROP_DRIVE("drive", Flash, blk),
DEFINE_PROP_END_OF_LIST(),
}; };
static int m25p80_pre_load(void *opaque) static int m25p80_pre_load(void *opaque)

View file

@ -449,7 +449,6 @@ static const Property nand_properties[] = {
DEFINE_PROP_UINT8("manufacturer_id", NANDFlashState, manf_id, 0), DEFINE_PROP_UINT8("manufacturer_id", NANDFlashState, manf_id, 0),
DEFINE_PROP_UINT8("chip_id", NANDFlashState, chip_id, 0), DEFINE_PROP_UINT8("chip_id", NANDFlashState, chip_id, 0),
DEFINE_PROP_DRIVE("drive", NANDFlashState, blk), DEFINE_PROP_DRIVE("drive", NANDFlashState, blk),
DEFINE_PROP_END_OF_LIST(),
}; };
static void nand_class_init(ObjectClass *klass, void *data) static void nand_class_init(ObjectClass *klass, void *data)

View file

@ -932,7 +932,6 @@ static const Property pflash_cfi01_properties[] = {
DEFINE_PROP_STRING("name", PFlashCFI01, name), DEFINE_PROP_STRING("name", PFlashCFI01, name),
DEFINE_PROP_BOOL("old-multiple-chip-handling", PFlashCFI01, DEFINE_PROP_BOOL("old-multiple-chip-handling", PFlashCFI01,
old_multiple_chip_handling, false), old_multiple_chip_handling, false),
DEFINE_PROP_END_OF_LIST(),
}; };
static void pflash_cfi01_class_init(ObjectClass *klass, void *data) static void pflash_cfi01_class_init(ObjectClass *klass, void *data)

View file

@ -959,7 +959,6 @@ static const Property pflash_cfi02_properties[] = {
DEFINE_PROP_UINT16("unlock-addr0", PFlashCFI02, unlock_addr0, 0), DEFINE_PROP_UINT16("unlock-addr0", PFlashCFI02, unlock_addr0, 0),
DEFINE_PROP_UINT16("unlock-addr1", PFlashCFI02, unlock_addr1, 0), DEFINE_PROP_UINT16("unlock-addr1", PFlashCFI02, unlock_addr1, 0),
DEFINE_PROP_STRING("name", PFlashCFI02, name), DEFINE_PROP_STRING("name", PFlashCFI02, name),
DEFINE_PROP_END_OF_LIST(),
}; };
static void pflash_cfi02_unrealize(DeviceState *dev) static void pflash_cfi02_unrealize(DeviceState *dev)

View file

@ -169,7 +169,6 @@ static const BlockDevOps swim_block_ops = {
static const Property swim_drive_properties[] = { static const Property swim_drive_properties[] = {
DEFINE_PROP_INT32("unit", SWIMDrive, unit, -1), DEFINE_PROP_INT32("unit", SWIMDrive, unit, -1),
DEFINE_BLOCK_PROPERTIES(SWIMDrive, conf), DEFINE_BLOCK_PROPERTIES(SWIMDrive, conf),
DEFINE_PROP_END_OF_LIST(),
}; };
static void swim_drive_realize(DeviceState *qdev, Error **errp) static void swim_drive_realize(DeviceState *qdev, Error **errp)

View file

@ -581,7 +581,6 @@ static const Property vhost_user_blk_properties[] = {
VIRTIO_BLK_F_DISCARD, true), VIRTIO_BLK_F_DISCARD, true),
DEFINE_PROP_BIT64("write-zeroes", VHostUserBlk, parent_obj.host_features, DEFINE_PROP_BIT64("write-zeroes", VHostUserBlk, parent_obj.host_features,
VIRTIO_BLK_F_WRITE_ZEROES, true), VIRTIO_BLK_F_WRITE_ZEROES, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void vhost_user_blk_class_init(ObjectClass *klass, void *data) static void vhost_user_blk_class_init(ObjectClass *klass, void *data)

View file

@ -2014,7 +2014,6 @@ static const Property virtio_blk_properties[] = {
conf.max_write_zeroes_sectors, BDRV_REQUEST_MAX_SECTORS), conf.max_write_zeroes_sectors, BDRV_REQUEST_MAX_SECTORS),
DEFINE_PROP_BOOL("x-enable-wce-if-config-wce", VirtIOBlock, DEFINE_PROP_BOOL("x-enable-wce-if-config-wce", VirtIOBlock,
conf.x_enable_wce_if_config_wce, true), conf.x_enable_wce_if_config_wce, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtio_blk_class_init(ObjectClass *klass, void *data) static void virtio_blk_class_init(ObjectClass *klass, void *data)

View file

@ -485,7 +485,7 @@ static char *disk_to_vbd_name(unsigned int disk)
static void xen_block_get_vdev(Object *obj, Visitor *v, const char *name, static void xen_block_get_vdev(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
XenBlockVdev *vdev = object_field_prop_ptr(obj, prop); XenBlockVdev *vdev = object_field_prop_ptr(obj, prop);
char *str; char *str;
@ -545,7 +545,7 @@ static int vbd_name_to_disk(const char *name, const char **endp,
static void xen_block_set_vdev(Object *obj, Visitor *v, const char *name, static void xen_block_set_vdev(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
XenBlockVdev *vdev = object_field_prop_ptr(obj, prop); XenBlockVdev *vdev = object_field_prop_ptr(obj, prop);
char *str, *p; char *str, *p;
const char *end; const char *end;
@ -674,7 +674,6 @@ static const Property xen_block_props[] = {
props.max_ring_page_order, 4), props.max_ring_page_order, 4),
DEFINE_PROP_LINK("iothread", XenBlockDevice, props.iothread, DEFINE_PROP_LINK("iothread", XenBlockDevice, props.iothread,
TYPE_IOTHREAD, IOThread *), TYPE_IOTHREAD, IOThread *),
DEFINE_PROP_END_OF_LIST()
}; };
static void xen_block_class_init(ObjectClass *class, void *data) static void xen_block_class_init(ObjectClass *class, void *data)

View file

@ -261,7 +261,6 @@ static const MemoryRegionOps avr_usart_ops = {
static const Property avr_usart_properties[] = { static const Property avr_usart_properties[] = {
DEFINE_PROP_CHR("chardev", AVRUsartState, chr), DEFINE_PROP_CHR("chardev", AVRUsartState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void avr_usart_pr(void *opaque, int irq, int level) static void avr_usart_pr(void *opaque, int irq, int level)

View file

@ -292,7 +292,6 @@ static void bcm2835_aux_realize(DeviceState *dev, Error **errp)
static const Property bcm2835_aux_props[] = { static const Property bcm2835_aux_props[] = {
DEFINE_PROP_CHR("chardev", BCM2835AuxState, chr), DEFINE_PROP_CHR("chardev", BCM2835AuxState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void bcm2835_aux_class_init(ObjectClass *oc, void *data) static void bcm2835_aux_class_init(ObjectClass *oc, void *data)

View file

@ -619,7 +619,6 @@ static const VMStateDescription vmstate_cadence_uart = {
static const Property cadence_uart_properties[] = { static const Property cadence_uart_properties[] = {
DEFINE_PROP_CHR("chardev", CadenceUARTState, chr), DEFINE_PROP_CHR("chardev", CadenceUARTState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void cadence_uart_class_init(ObjectClass *klass, void *data) static void cadence_uart_class_init(ObjectClass *klass, void *data)

View file

@ -380,7 +380,6 @@ static const VMStateDescription cmsdk_apb_uart_vmstate = {
static const Property cmsdk_apb_uart_properties[] = { static const Property cmsdk_apb_uart_properties[] = {
DEFINE_PROP_CHR("chardev", CMSDKAPBUART, chr), DEFINE_PROP_CHR("chardev", CMSDKAPBUART, chr),
DEFINE_PROP_UINT32("pclk-frq", CMSDKAPBUART, pclk_frq, 0), DEFINE_PROP_UINT32("pclk-frq", CMSDKAPBUART, pclk_frq, 0),
DEFINE_PROP_END_OF_LIST(),
}; };
static void cmsdk_apb_uart_class_init(ObjectClass *klass, void *data) static void cmsdk_apb_uart_class_init(ObjectClass *klass, void *data)

View file

@ -118,7 +118,6 @@ static const Property debugcon_isa_properties[] = {
DEFINE_PROP_UINT32("iobase", ISADebugconState, iobase, 0xe9), DEFINE_PROP_UINT32("iobase", ISADebugconState, iobase, 0xe9),
DEFINE_PROP_CHR("chardev", ISADebugconState, state.chr), DEFINE_PROP_CHR("chardev", ISADebugconState, state.chr),
DEFINE_PROP_UINT32("readback", ISADebugconState, state.readback, 0xe9), DEFINE_PROP_UINT32("readback", ISADebugconState, state.readback, 0xe9),
DEFINE_PROP_END_OF_LIST(),
}; };
static void debugcon_isa_class_initfn(ObjectClass *klass, void *data) static void debugcon_isa_class_initfn(ObjectClass *klass, void *data)

View file

@ -174,7 +174,6 @@ static const VMStateDescription vmstate_digic_uart = {
static const Property digic_uart_properties[] = { static const Property digic_uart_properties[] = {
DEFINE_PROP_CHR("chardev", DigicUartState, chr), DEFINE_PROP_CHR("chardev", DigicUartState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void digic_uart_class_init(ObjectClass *klass, void *data) static void digic_uart_class_init(ObjectClass *klass, void *data)

View file

@ -1099,7 +1099,6 @@ static const Property escc_properties[] = {
DEFINE_PROP_CHR("chrB", ESCCState, chn[0].chr), DEFINE_PROP_CHR("chrB", ESCCState, chn[0].chr),
DEFINE_PROP_CHR("chrA", ESCCState, chn[1].chr), DEFINE_PROP_CHR("chrA", ESCCState, chn[1].chr),
DEFINE_PROP_STRING("chnA-sunkbd-layout", ESCCState, chn[1].sunkbd_layout), DEFINE_PROP_STRING("chnA-sunkbd-layout", ESCCState, chn[1].sunkbd_layout),
DEFINE_PROP_END_OF_LIST(),
}; };
static void escc_class_init(ObjectClass *klass, void *data) static void escc_class_init(ObjectClass *klass, void *data)

View file

@ -709,7 +709,6 @@ static const Property exynos4210_uart_properties[] = {
DEFINE_PROP_UINT32("channel", Exynos4210UartState, channel, 0), DEFINE_PROP_UINT32("channel", Exynos4210UartState, channel, 0),
DEFINE_PROP_UINT32("rx-size", Exynos4210UartState, rx.size, 16), DEFINE_PROP_UINT32("rx-size", Exynos4210UartState, rx.size, 16),
DEFINE_PROP_UINT32("tx-size", Exynos4210UartState, tx.size, 16), DEFINE_PROP_UINT32("tx-size", Exynos4210UartState, tx.size, 16),
DEFINE_PROP_END_OF_LIST(),
}; };
static void exynos4210_uart_class_init(ObjectClass *klass, void *data) static void exynos4210_uart_class_init(ObjectClass *klass, void *data)

View file

@ -243,7 +243,6 @@ static const VMStateDescription vmstate_goldfish_tty = {
static const Property goldfish_tty_properties[] = { static const Property goldfish_tty_properties[] = {
DEFINE_PROP_CHR("chardev", GoldfishTTYState, chr), DEFINE_PROP_CHR("chardev", GoldfishTTYState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void goldfish_tty_instance_init(Object *obj) static void goldfish_tty_instance_init(Object *obj)

View file

@ -279,7 +279,6 @@ static void grlib_apbuart_reset(DeviceState *d)
static const Property grlib_apbuart_properties[] = { static const Property grlib_apbuart_properties[] = {
DEFINE_PROP_CHR("chrdev", UART, chr), DEFINE_PROP_CHR("chrdev", UART, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void grlib_apbuart_class_init(ObjectClass *klass, void *data) static void grlib_apbuart_class_init(ObjectClass *klass, void *data)

View file

@ -510,7 +510,6 @@ static const VMStateDescription vmstate_ibex_uart = {
static const Property ibex_uart_properties[] = { static const Property ibex_uart_properties[] = {
DEFINE_PROP_CHR("chardev", IbexUartState, chr), DEFINE_PROP_CHR("chardev", IbexUartState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void ibex_uart_init(Object *obj) static void ibex_uart_init(Object *obj)

View file

@ -440,7 +440,6 @@ static void imx_serial_init(Object *obj)
static const Property imx_serial_properties[] = { static const Property imx_serial_properties[] = {
DEFINE_PROP_CHR("chardev", IMXSerialState, chr), DEFINE_PROP_CHR("chardev", IMXSerialState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void imx_serial_class_init(ObjectClass *klass, void *data) static void imx_serial_class_init(ObjectClass *klass, void *data)

View file

@ -567,7 +567,6 @@ static const Property ipoctal_properties[] = {
DEFINE_PROP_CHR("chardev5", IPOctalState, ch[5].dev), DEFINE_PROP_CHR("chardev5", IPOctalState, ch[5].dev),
DEFINE_PROP_CHR("chardev6", IPOctalState, ch[6].dev), DEFINE_PROP_CHR("chardev6", IPOctalState, ch[6].dev),
DEFINE_PROP_CHR("chardev7", IPOctalState, ch[7].dev), DEFINE_PROP_CHR("chardev7", IPOctalState, ch[7].dev),
DEFINE_PROP_END_OF_LIST(),
}; };
static void ipoctal_class_init(ObjectClass *klass, void *data) static void ipoctal_class_init(ObjectClass *klass, void *data)

View file

@ -314,7 +314,6 @@ static void mcf_uart_realize(DeviceState *dev, Error **errp)
static const Property mcf_uart_properties[] = { static const Property mcf_uart_properties[] = {
DEFINE_PROP_CHR("chardev", mcf_uart_state, chr), DEFINE_PROP_CHR("chardev", mcf_uart_state, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void mcf_uart_class_init(ObjectClass *oc, void *data) static void mcf_uart_class_init(ObjectClass *oc, void *data)

View file

@ -306,7 +306,6 @@ static const VMStateDescription nrf51_uart_vmstate = {
static const Property nrf51_uart_properties[] = { static const Property nrf51_uart_properties[] = {
DEFINE_PROP_CHR("chardev", NRF51UARTState, chr), DEFINE_PROP_CHR("chardev", NRF51UARTState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void nrf51_uart_class_init(ObjectClass *klass, void *data) static void nrf51_uart_class_init(ObjectClass *klass, void *data)

View file

@ -608,7 +608,6 @@ static const Property parallel_isa_properties[] = {
DEFINE_PROP_UINT32("iobase", ISAParallelState, iobase, -1), DEFINE_PROP_UINT32("iobase", ISAParallelState, iobase, -1),
DEFINE_PROP_UINT32("irq", ISAParallelState, isairq, 7), DEFINE_PROP_UINT32("irq", ISAParallelState, isairq, 7),
DEFINE_PROP_CHR("chardev", ISAParallelState, state.chr), DEFINE_PROP_CHR("chardev", ISAParallelState, state.chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void parallel_isa_class_initfn(ObjectClass *klass, void *data) static void parallel_isa_class_initfn(ObjectClass *klass, void *data)

View file

@ -606,7 +606,6 @@ static const VMStateDescription vmstate_pl011 = {
static const Property pl011_properties[] = { static const Property pl011_properties[] = {
DEFINE_PROP_CHR("chardev", PL011State, chr), DEFINE_PROP_CHR("chardev", PL011State, chr),
DEFINE_PROP_BOOL("migrate-clk", PL011State, migrate_clk, true), DEFINE_PROP_BOOL("migrate-clk", PL011State, migrate_clk, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void pl011_init(Object *obj) static void pl011_init(Object *obj)

View file

@ -322,7 +322,6 @@ static const VMStateDescription vmstate_rsci = {
static const Property rsci_properties[] = { static const Property rsci_properties[] = {
DEFINE_PROP_UINT64("input-freq", RSCIState, input_freq, 0), DEFINE_PROP_UINT64("input-freq", RSCIState, input_freq, 0),
DEFINE_PROP_CHR("chardev", RSCIState, chr), DEFINE_PROP_CHR("chardev", RSCIState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void rsci_class_init(ObjectClass *klass, void *data) static void rsci_class_init(ObjectClass *klass, void *data)

View file

@ -337,7 +337,6 @@ static const Property console_properties[] = {
DEFINE_PROP_CHR("chardev", SCLPConsoleLM, chr), DEFINE_PROP_CHR("chardev", SCLPConsoleLM, chr),
DEFINE_PROP_UINT32("write_errors", SCLPConsoleLM, write_errors, 0), DEFINE_PROP_UINT32("write_errors", SCLPConsoleLM, write_errors, 0),
DEFINE_PROP_BOOL("echo", SCLPConsoleLM, echo, true), DEFINE_PROP_BOOL("echo", SCLPConsoleLM, echo, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void console_class_init(ObjectClass *klass, void *data) static void console_class_init(ObjectClass *klass, void *data)

View file

@ -253,7 +253,6 @@ static void console_reset(DeviceState *dev)
static const Property console_properties[] = { static const Property console_properties[] = {
DEFINE_PROP_CHR("chardev", SCLPConsole, chr), DEFINE_PROP_CHR("chardev", SCLPConsole, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void console_class_init(ObjectClass *klass, void *data) static void console_class_init(ObjectClass *klass, void *data)

View file

@ -117,7 +117,6 @@ static const Property serial_isa_properties[] = {
DEFINE_PROP_UINT32("index", ISASerialState, index, -1), DEFINE_PROP_UINT32("index", ISASerialState, index, -1),
DEFINE_PROP_UINT32("iobase", ISASerialState, iobase, -1), DEFINE_PROP_UINT32("iobase", ISASerialState, iobase, -1),
DEFINE_PROP_UINT32("irq", ISASerialState, isairq, -1), DEFINE_PROP_UINT32("irq", ISASerialState, isairq, -1),
DEFINE_PROP_END_OF_LIST(),
}; };
static void serial_isa_class_initfn(ObjectClass *klass, void *data) static void serial_isa_class_initfn(ObjectClass *klass, void *data)

View file

@ -132,7 +132,6 @@ static const Property serial_mm_properties[] = {
*/ */
DEFINE_PROP_UINT8("regshift", SerialMM, regshift, 0), DEFINE_PROP_UINT8("regshift", SerialMM, regshift, 0),
DEFINE_PROP_UINT8("endianness", SerialMM, endianness, DEVICE_NATIVE_ENDIAN), DEFINE_PROP_UINT8("endianness", SerialMM, endianness, DEVICE_NATIVE_ENDIAN),
DEFINE_PROP_END_OF_LIST(),
}; };
static void serial_mm_class_init(ObjectClass *oc, void *data) static void serial_mm_class_init(ObjectClass *oc, void *data)

View file

@ -136,7 +136,6 @@ static const Property multi_2x_serial_pci_properties[] = {
DEFINE_PROP_CHR("chardev1", PCIMultiSerialState, state[0].chr), DEFINE_PROP_CHR("chardev1", PCIMultiSerialState, state[0].chr),
DEFINE_PROP_CHR("chardev2", PCIMultiSerialState, state[1].chr), DEFINE_PROP_CHR("chardev2", PCIMultiSerialState, state[1].chr),
DEFINE_PROP_UINT8("prog_if", PCIMultiSerialState, prog_if, 0x02), DEFINE_PROP_UINT8("prog_if", PCIMultiSerialState, prog_if, 0x02),
DEFINE_PROP_END_OF_LIST(),
}; };
static const Property multi_4x_serial_pci_properties[] = { static const Property multi_4x_serial_pci_properties[] = {
@ -145,7 +144,6 @@ static const Property multi_4x_serial_pci_properties[] = {
DEFINE_PROP_CHR("chardev3", PCIMultiSerialState, state[2].chr), DEFINE_PROP_CHR("chardev3", PCIMultiSerialState, state[2].chr),
DEFINE_PROP_CHR("chardev4", PCIMultiSerialState, state[3].chr), DEFINE_PROP_CHR("chardev4", PCIMultiSerialState, state[3].chr),
DEFINE_PROP_UINT8("prog_if", PCIMultiSerialState, prog_if, 0x02), DEFINE_PROP_UINT8("prog_if", PCIMultiSerialState, prog_if, 0x02),
DEFINE_PROP_END_OF_LIST(),
}; };
static void multi_2x_serial_pci_class_initfn(ObjectClass *klass, void *data) static void multi_2x_serial_pci_class_initfn(ObjectClass *klass, void *data)

View file

@ -83,7 +83,6 @@ static const VMStateDescription vmstate_pci_serial = {
static const Property serial_pci_properties[] = { static const Property serial_pci_properties[] = {
DEFINE_PROP_UINT8("prog_if", PCISerialState, prog_if, 0x02), DEFINE_PROP_UINT8("prog_if", PCISerialState, prog_if, 0x02),
DEFINE_PROP_END_OF_LIST(),
}; };
static void serial_pci_class_initfn(ObjectClass *klass, void *data) static void serial_pci_class_initfn(ObjectClass *klass, void *data)

View file

@ -968,7 +968,6 @@ static const Property serial_properties[] = {
DEFINE_PROP_CHR("chardev", SerialState, chr), DEFINE_PROP_CHR("chardev", SerialState, chr),
DEFINE_PROP_UINT32("baudbase", SerialState, baudbase, 115200), DEFINE_PROP_UINT32("baudbase", SerialState, baudbase, 115200),
DEFINE_PROP_BOOL("wakeup", SerialState, wakeup, false), DEFINE_PROP_BOOL("wakeup", SerialState, wakeup, false),
DEFINE_PROP_END_OF_LIST(),
}; };
static void serial_class_init(ObjectClass *klass, void* data) static void serial_class_init(ObjectClass *klass, void* data)

View file

@ -450,7 +450,6 @@ static void sh_serial_init(Object *obj)
static const Property sh_serial_properties[] = { static const Property sh_serial_properties[] = {
DEFINE_PROP_CHR("chardev", SHSerialState, chr), DEFINE_PROP_CHR("chardev", SHSerialState, chr),
DEFINE_PROP_UINT8("features", SHSerialState, feat, 0), DEFINE_PROP_UINT8("features", SHSerialState, feat, 0),
DEFINE_PROP_END_OF_LIST()
}; };
static void sh_serial_class_init(ObjectClass *oc, void *data) static void sh_serial_class_init(ObjectClass *oc, void *data)

View file

@ -159,7 +159,6 @@ static void shakti_uart_instance_init(Object *obj)
static const Property shakti_uart_properties[] = { static const Property shakti_uart_properties[] = {
DEFINE_PROP_CHR("chardev", ShaktiUartState, chr), DEFINE_PROP_CHR("chardev", ShaktiUartState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void shakti_uart_class_init(ObjectClass *klass, void *data) static void shakti_uart_class_init(ObjectClass *klass, void *data)

View file

@ -253,7 +253,6 @@ static int sifive_uart_be_change(void *opaque)
static const Property sifive_uart_properties[] = { static const Property sifive_uart_properties[] = {
DEFINE_PROP_CHR("chardev", SiFiveUARTState, chr), DEFINE_PROP_CHR("chardev", SiFiveUARTState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void sifive_uart_init(Object *obj) static void sifive_uart_init(Object *obj)

View file

@ -166,7 +166,6 @@ void spapr_vty_create(SpaprVioBus *bus, Chardev *chardev)
static const Property spapr_vty_properties[] = { static const Property spapr_vty_properties[] = {
DEFINE_SPAPR_PROPERTIES(SpaprVioVty, sdev), DEFINE_SPAPR_PROPERTIES(SpaprVioVty, sdev),
DEFINE_PROP_CHR("chardev", SpaprVioVty, chardev), DEFINE_PROP_CHR("chardev", SpaprVioVty, chardev),
DEFINE_PROP_END_OF_LIST(),
}; };
static const VMStateDescription vmstate_spapr_vty = { static const VMStateDescription vmstate_spapr_vty = {

View file

@ -201,7 +201,6 @@ static const MemoryRegionOps stm32f2xx_usart_ops = {
static const Property stm32f2xx_usart_properties[] = { static const Property stm32f2xx_usart_properties[] = {
DEFINE_PROP_CHR("chardev", STM32F2XXUsartState, chr), DEFINE_PROP_CHR("chardev", STM32F2XXUsartState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void stm32f2xx_usart_init(Object *obj) static void stm32f2xx_usart_init(Object *obj)

View file

@ -536,7 +536,6 @@ static const MemoryRegionOps stm32l4x5_usart_base_ops = {
static const Property stm32l4x5_usart_base_properties[] = { static const Property stm32l4x5_usart_base_properties[] = {
DEFINE_PROP_CHR("chardev", Stm32l4x5UsartBaseState, chr), DEFINE_PROP_CHR("chardev", Stm32l4x5UsartBaseState, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void stm32l4x5_usart_base_init(Object *obj) static void stm32l4x5_usart_base_init(Object *obj)

View file

@ -285,7 +285,6 @@ static int write_payload_3270(EmulatedCcw3270Device *dev, uint8_t cmd)
static const Property terminal_properties[] = { static const Property terminal_properties[] = {
DEFINE_PROP_CHR("chardev", Terminal3270, chr), DEFINE_PROP_CHR("chardev", Terminal3270, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static const VMStateDescription terminal3270_vmstate = { static const VMStateDescription terminal3270_vmstate = {

View file

@ -276,7 +276,6 @@ static const TypeInfo virtconsole_info = {
static const Property virtserialport_properties[] = { static const Property virtserialport_properties[] = {
DEFINE_PROP_CHR("chardev", VirtConsole, chr), DEFINE_PROP_CHR("chardev", VirtConsole, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtserialport_class_init(ObjectClass *klass, void *data) static void virtserialport_class_init(ObjectClass *klass, void *data)

View file

@ -838,7 +838,6 @@ static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent);
static const Property virtser_props[] = { static const Property virtser_props[] = {
DEFINE_PROP_UINT32("nr", VirtIOSerialPort, id, VIRTIO_CONSOLE_BAD_ID), DEFINE_PROP_UINT32("nr", VirtIOSerialPort, id, VIRTIO_CONSOLE_BAD_ID),
DEFINE_PROP_STRING("name", VirtIOSerialPort, name), DEFINE_PROP_STRING("name", VirtIOSerialPort, name),
DEFINE_PROP_END_OF_LIST()
}; };
static void virtser_bus_class_init(ObjectClass *klass, void *data) static void virtser_bus_class_init(ObjectClass *klass, void *data)
@ -1158,7 +1157,6 @@ static const Property virtio_serial_properties[] = {
31), 31),
DEFINE_PROP_BIT64("emergency-write", VirtIOSerial, host_features, DEFINE_PROP_BIT64("emergency-write", VirtIOSerial, host_features,
VIRTIO_CONSOLE_F_EMERG_WRITE, true), VIRTIO_CONSOLE_F_EMERG_WRITE, true),
DEFINE_PROP_END_OF_LIST(),
}; };
static void virtio_serial_class_init(ObjectClass *klass, void *data) static void virtio_serial_class_init(ObjectClass *klass, void *data)

View file

@ -490,7 +490,6 @@ static char *xen_console_get_frontend_path(XenDevice *xendev, Error **errp)
static const Property xen_console_properties[] = { static const Property xen_console_properties[] = {
DEFINE_PROP_CHR("chardev", XenConsole, chr), DEFINE_PROP_CHR("chardev", XenConsole, chr),
DEFINE_PROP_INT32("idx", XenConsole, dev, -1), DEFINE_PROP_INT32("idx", XenConsole, dev, -1),
DEFINE_PROP_END_OF_LIST(),
}; };
static void xen_console_class_init(ObjectClass *class, void *data) static void xen_console_class_init(ObjectClass *class, void *data)

View file

@ -178,7 +178,6 @@ static const MemoryRegionOps uart_ops = {
static const Property xilinx_uartlite_properties[] = { static const Property xilinx_uartlite_properties[] = {
DEFINE_PROP_CHR("chardev", XilinxUARTLite, chr), DEFINE_PROP_CHR("chardev", XilinxUARTLite, chr),
DEFINE_PROP_END_OF_LIST(),
}; };
static void uart_rx(void *opaque, const uint8_t *buf, int size) static void uart_rx(void *opaque, const uint8_t *buf, int size)

View file

@ -187,7 +187,6 @@ static const Property generic_loader_props[] = {
DEFINE_PROP_UINT32("cpu-num", GenericLoaderState, cpu_num, CPU_NONE), DEFINE_PROP_UINT32("cpu-num", GenericLoaderState, cpu_num, CPU_NONE),
DEFINE_PROP_BOOL("force-raw", GenericLoaderState, force_raw, false), DEFINE_PROP_BOOL("force-raw", GenericLoaderState, force_raw, false),
DEFINE_PROP_STRING("file", GenericLoaderState, file), DEFINE_PROP_STRING("file", GenericLoaderState, file),
DEFINE_PROP_END_OF_LIST(),
}; };
static void generic_loader_class_init(ObjectClass *klass, void *data) static void generic_loader_class_init(ObjectClass *klass, void *data)

View file

@ -116,7 +116,6 @@ static const Property guest_loader_props[] = {
DEFINE_PROP_STRING("kernel", GuestLoaderState, kernel), DEFINE_PROP_STRING("kernel", GuestLoaderState, kernel),
DEFINE_PROP_STRING("bootargs", GuestLoaderState, args), DEFINE_PROP_STRING("bootargs", GuestLoaderState, args),
DEFINE_PROP_STRING("initrd", GuestLoaderState, initrd), DEFINE_PROP_STRING("initrd", GuestLoaderState, initrd),
DEFINE_PROP_END_OF_LIST(),
}; };
static void guest_loader_class_init(ObjectClass *klass, void *data) static void guest_loader_class_init(ObjectClass *klass, void *data)

View file

@ -117,7 +117,6 @@ static const VMStateDescription vmstate_or_irq = {
static const Property or_irq_properties[] = { static const Property or_irq_properties[] = {
DEFINE_PROP_UINT16("num-lines", OrIRQState, num_lines, 1), DEFINE_PROP_UINT16("num-lines", OrIRQState, num_lines, 1),
DEFINE_PROP_END_OF_LIST(),
}; };
static void or_irq_class_init(ObjectClass *klass, void *data) static void or_irq_class_init(ObjectClass *klass, void *data)

View file

@ -207,7 +207,6 @@ static void platform_bus_realize(DeviceState *dev, Error **errp)
static const Property platform_bus_properties[] = { static const Property platform_bus_properties[] = {
DEFINE_PROP_UINT32("num_irqs", PlatformBusDevice, num_irqs, 0), DEFINE_PROP_UINT32("num_irqs", PlatformBusDevice, num_irqs, 0),
DEFINE_PROP_UINT32("mmio_size", PlatformBusDevice, mmio_size, 0), DEFINE_PROP_UINT32("mmio_size", PlatformBusDevice, mmio_size, 0),
DEFINE_PROP_END_OF_LIST()
}; };
static void platform_bus_class_init(ObjectClass *klass, void *data) static void platform_bus_class_init(ObjectClass *klass, void *data)

View file

@ -90,7 +90,7 @@ bool qdev_prop_sanitize_s390x_loadparm(uint8_t *loadparm, const char *str,
static void get_drive(Object *obj, Visitor *v, const char *name, void *opaque, static void get_drive(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
void **ptr = object_field_prop_ptr(obj, prop); void **ptr = object_field_prop_ptr(obj, prop);
const char *value; const char *value;
char *p; char *p;
@ -116,7 +116,7 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
void *opaque, bool iothread, Error **errp) void *opaque, bool iothread, Error **errp)
{ {
DeviceState *dev = DEVICE(obj); DeviceState *dev = DEVICE(obj);
Property *prop = opaque; const Property *prop = opaque;
void **ptr = object_field_prop_ptr(obj, prop); void **ptr = object_field_prop_ptr(obj, prop);
char *str; char *str;
BlockBackend *blk; BlockBackend *blk;
@ -225,7 +225,7 @@ static void set_drive_iothread(Object *obj, Visitor *v, const char *name,
static void release_drive(Object *obj, const char *name, void *opaque) static void release_drive(Object *obj, const char *name, void *opaque)
{ {
DeviceState *dev = DEVICE(obj); DeviceState *dev = DEVICE(obj);
Property *prop = opaque; const Property *prop = opaque;
BlockBackend **ptr = object_field_prop_ptr(obj, prop); BlockBackend **ptr = object_field_prop_ptr(obj, prop);
if (*ptr) { if (*ptr) {
@ -269,7 +269,7 @@ static void set_chr(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
ERRP_GUARD(); ERRP_GUARD();
Property *prop = opaque; const Property *prop = opaque;
CharBackend *be = object_field_prop_ptr(obj, prop); CharBackend *be = object_field_prop_ptr(obj, prop);
Chardev *s; Chardev *s;
char *str; char *str;
@ -305,7 +305,7 @@ static void set_chr(Object *obj, Visitor *v, const char *name, void *opaque,
static void release_chr(Object *obj, const char *name, void *opaque) static void release_chr(Object *obj, const char *name, void *opaque)
{ {
Property *prop = opaque; const Property *prop = opaque;
CharBackend *be = object_field_prop_ptr(obj, prop); CharBackend *be = object_field_prop_ptr(obj, prop);
qemu_chr_fe_deinit(be, false); qemu_chr_fe_deinit(be, false);
@ -329,7 +329,7 @@ const PropertyInfo qdev_prop_chr = {
static void get_mac(Object *obj, Visitor *v, const char *name, void *opaque, static void get_mac(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
MACAddr *mac = object_field_prop_ptr(obj, prop); MACAddr *mac = object_field_prop_ptr(obj, prop);
char buffer[2 * 6 + 5 + 1]; char buffer[2 * 6 + 5 + 1];
char *p = buffer; char *p = buffer;
@ -344,7 +344,7 @@ static void get_mac(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque, static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
MACAddr *mac = object_field_prop_ptr(obj, prop); MACAddr *mac = object_field_prop_ptr(obj, prop);
int i, pos; int i, pos;
char *str; char *str;
@ -406,7 +406,7 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char *name,
static void get_netdev(Object *obj, Visitor *v, const char *name, static void get_netdev(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
NICPeers *peers_ptr = object_field_prop_ptr(obj, prop); NICPeers *peers_ptr = object_field_prop_ptr(obj, prop);
char *p = g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : ""); char *p = g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : "");
@ -417,7 +417,7 @@ static void get_netdev(Object *obj, Visitor *v, const char *name,
static void set_netdev(Object *obj, Visitor *v, const char *name, static void set_netdev(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
NICPeers *peers_ptr = object_field_prop_ptr(obj, prop); NICPeers *peers_ptr = object_field_prop_ptr(obj, prop);
NetClientState **ncs = peers_ptr->ncs; NetClientState **ncs = peers_ptr->ncs;
NetClientState *peers[MAX_QUEUE_NUM]; NetClientState *peers[MAX_QUEUE_NUM];
@ -485,7 +485,7 @@ const PropertyInfo qdev_prop_netdev = {
static void get_audiodev(Object *obj, Visitor *v, const char* name, static void get_audiodev(Object *obj, Visitor *v, const char* name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
QEMUSoundCard *card = object_field_prop_ptr(obj, prop); QEMUSoundCard *card = object_field_prop_ptr(obj, prop);
char *p = g_strdup(audio_get_id(card)); char *p = g_strdup(audio_get_id(card));
@ -496,7 +496,7 @@ static void get_audiodev(Object *obj, Visitor *v, const char* name,
static void set_audiodev(Object *obj, Visitor *v, const char* name, static void set_audiodev(Object *obj, Visitor *v, const char* name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
QEMUSoundCard *card = object_field_prop_ptr(obj, prop); QEMUSoundCard *card = object_field_prop_ptr(obj, prop);
AudioState *state; AudioState *state;
g_autofree char *str = NULL; g_autofree char *str = NULL;
@ -578,7 +578,7 @@ static void qdev_propinfo_set_losttickpolicy(Object *obj, Visitor *v,
const char *name, void *opaque, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int *ptr = object_field_prop_ptr(obj, prop); int *ptr = object_field_prop_ptr(obj, prop);
int value; int value;
@ -614,7 +614,7 @@ const PropertyInfo qdev_prop_losttickpolicy = {
static void set_blocksize(Object *obj, Visitor *v, const char *name, static void set_blocksize(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *ptr = object_field_prop_ptr(obj, prop); uint32_t *ptr = object_field_prop_ptr(obj, prop);
uint64_t value; uint64_t value;
@ -737,7 +737,7 @@ const PropertyInfo qdev_prop_zero_page_detection = {
static void get_reserved_region(Object *obj, Visitor *v, const char *name, static void get_reserved_region(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
ReservedRegion *rr = object_field_prop_ptr(obj, prop); ReservedRegion *rr = object_field_prop_ptr(obj, prop);
char buffer[64]; char buffer[64];
char *p = buffer; char *p = buffer;
@ -753,7 +753,7 @@ static void get_reserved_region(Object *obj, Visitor *v, const char *name,
static void set_reserved_region(Object *obj, Visitor *v, const char *name, static void set_reserved_region(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
ReservedRegion *rr = object_field_prop_ptr(obj, prop); ReservedRegion *rr = object_field_prop_ptr(obj, prop);
const char *endptr; const char *endptr;
uint64_t lob, upb; uint64_t lob, upb;
@ -815,7 +815,7 @@ const PropertyInfo qdev_prop_reserved_region = {
static void set_pci_devfn(Object *obj, Visitor *v, const char *name, static void set_pci_devfn(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
g_autofree GenericAlternate *alt; g_autofree GenericAlternate *alt;
int32_t value, *ptr = object_field_prop_ptr(obj, prop); int32_t value, *ptr = object_field_prop_ptr(obj, prop);
unsigned int slot, fn, n; unsigned int slot, fn, n;
@ -869,7 +869,7 @@ out:
visit_end_alternate(v, (void **) &alt); visit_end_alternate(v, (void **) &alt);
} }
static int print_pci_devfn(Object *obj, Property *prop, char *dest, static int print_pci_devfn(Object *obj, const Property *prop, char *dest,
size_t len) size_t len)
{ {
int32_t *ptr = object_field_prop_ptr(obj, prop); int32_t *ptr = object_field_prop_ptr(obj, prop);
@ -895,7 +895,7 @@ const PropertyInfo qdev_prop_pci_devfn = {
static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name, static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIHostDeviceAddress *addr = object_field_prop_ptr(obj, prop); PCIHostDeviceAddress *addr = object_field_prop_ptr(obj, prop);
char buffer[] = "ffff:ff:ff.f"; char buffer[] = "ffff:ff:ff.f";
char *p = buffer; char *p = buffer;
@ -921,7 +921,7 @@ static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name, static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIHostDeviceAddress *addr = object_field_prop_ptr(obj, prop); PCIHostDeviceAddress *addr = object_field_prop_ptr(obj, prop);
char *str, *p; char *str, *p;
char *e; char *e;
@ -1011,7 +1011,7 @@ const PropertyInfo qdev_prop_off_auto_pcibar = {
static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name, static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIExpLinkSpeed *p = object_field_prop_ptr(obj, prop); PCIExpLinkSpeed *p = object_field_prop_ptr(obj, prop);
int speed; int speed;
@ -1045,7 +1045,7 @@ static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name, static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIExpLinkSpeed *p = object_field_prop_ptr(obj, prop); PCIExpLinkSpeed *p = object_field_prop_ptr(obj, prop);
int speed; int speed;
@ -1093,7 +1093,7 @@ const PropertyInfo qdev_prop_pcie_link_speed = {
static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name, static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIExpLinkWidth *p = object_field_prop_ptr(obj, prop); PCIExpLinkWidth *p = object_field_prop_ptr(obj, prop);
int width; int width;
@ -1130,7 +1130,7 @@ static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name, static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
PCIExpLinkWidth *p = object_field_prop_ptr(obj, prop); PCIExpLinkWidth *p = object_field_prop_ptr(obj, prop);
int width; int width;
@ -1181,7 +1181,7 @@ const PropertyInfo qdev_prop_pcie_link_width = {
static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque, static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
QemuUUID *uuid = object_field_prop_ptr(obj, prop); QemuUUID *uuid = object_field_prop_ptr(obj, prop);
char buffer[UUID_STR_LEN]; char buffer[UUID_STR_LEN];
char *p = buffer; char *p = buffer;
@ -1196,7 +1196,7 @@ static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque, static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
QemuUUID *uuid = object_field_prop_ptr(obj, prop); QemuUUID *uuid = object_field_prop_ptr(obj, prop);
char *str; char *str;

View file

@ -51,7 +51,7 @@ void qdev_prop_allow_set_link_before_realize(const Object *obj,
} }
} }
void *object_field_prop_ptr(Object *obj, Property *prop) void *object_field_prop_ptr(Object *obj, const Property *prop)
{ {
void *ptr = obj; void *ptr = obj;
ptr += prop->offset; ptr += prop->offset;
@ -61,7 +61,7 @@ void *object_field_prop_ptr(Object *obj, Property *prop)
static void field_prop_get(Object *obj, Visitor *v, const char *name, static void field_prop_get(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
return prop->info->get(obj, v, name, opaque, errp); return prop->info->get(obj, v, name, opaque, errp);
} }
@ -78,7 +78,7 @@ static ObjectPropertyAccessor *field_prop_getter(const PropertyInfo *info)
static void field_prop_set(Object *obj, Visitor *v, const char *name, static void field_prop_set(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
if (!qdev_prop_allow_set(obj, name, prop->info, errp)) { if (!qdev_prop_allow_set(obj, name, prop->info, errp)) {
return; return;
@ -100,7 +100,7 @@ static ObjectPropertyAccessor *field_prop_setter(const PropertyInfo *info)
void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int *ptr = object_field_prop_ptr(obj, prop); int *ptr = object_field_prop_ptr(obj, prop);
visit_type_enum(v, name, ptr, prop->info->enum_table, errp); visit_type_enum(v, name, ptr, prop->info->enum_table, errp);
@ -109,7 +109,7 @@ void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name,
void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int *ptr = object_field_prop_ptr(obj, prop); int *ptr = object_field_prop_ptr(obj, prop);
visit_type_enum(v, name, ptr, prop->info->enum_table, errp); visit_type_enum(v, name, ptr, prop->info->enum_table, errp);
@ -131,13 +131,13 @@ const PropertyInfo qdev_prop_enum = {
/* Bit */ /* Bit */
static uint32_t qdev_get_prop_mask(Property *prop) static uint32_t qdev_get_prop_mask(const Property *prop)
{ {
assert(prop->info == &qdev_prop_bit); assert(prop->info == &qdev_prop_bit);
return 0x1 << prop->bitnr; return 0x1 << prop->bitnr;
} }
static void bit_prop_set(Object *obj, Property *props, bool val) static void bit_prop_set(Object *obj, const Property *props, bool val)
{ {
uint32_t *p = object_field_prop_ptr(obj, props); uint32_t *p = object_field_prop_ptr(obj, props);
uint32_t mask = qdev_get_prop_mask(props); uint32_t mask = qdev_get_prop_mask(props);
@ -151,7 +151,7 @@ static void bit_prop_set(Object *obj, Property *props, bool val)
static void prop_get_bit(Object *obj, Visitor *v, const char *name, static void prop_get_bit(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *p = object_field_prop_ptr(obj, prop); uint32_t *p = object_field_prop_ptr(obj, prop);
bool value = (*p & qdev_get_prop_mask(prop)) != 0; bool value = (*p & qdev_get_prop_mask(prop)) != 0;
@ -161,7 +161,7 @@ static void prop_get_bit(Object *obj, Visitor *v, const char *name,
static void prop_set_bit(Object *obj, Visitor *v, const char *name, static void prop_set_bit(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
bool value; bool value;
if (!visit_type_bool(v, name, &value, errp)) { if (!visit_type_bool(v, name, &value, errp)) {
@ -185,13 +185,13 @@ const PropertyInfo qdev_prop_bit = {
/* Bit64 */ /* Bit64 */
static uint64_t qdev_get_prop_mask64(Property *prop) static uint64_t qdev_get_prop_mask64(const Property *prop)
{ {
assert(prop->info == &qdev_prop_bit64); assert(prop->info == &qdev_prop_bit64);
return 0x1ull << prop->bitnr; return 0x1ull << prop->bitnr;
} }
static void bit64_prop_set(Object *obj, Property *props, bool val) static void bit64_prop_set(Object *obj, const Property *props, bool val)
{ {
uint64_t *p = object_field_prop_ptr(obj, props); uint64_t *p = object_field_prop_ptr(obj, props);
uint64_t mask = qdev_get_prop_mask64(props); uint64_t mask = qdev_get_prop_mask64(props);
@ -205,7 +205,7 @@ static void bit64_prop_set(Object *obj, Property *props, bool val)
static void prop_get_bit64(Object *obj, Visitor *v, const char *name, static void prop_get_bit64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *p = object_field_prop_ptr(obj, prop); uint64_t *p = object_field_prop_ptr(obj, prop);
bool value = (*p & qdev_get_prop_mask64(prop)) != 0; bool value = (*p & qdev_get_prop_mask64(prop)) != 0;
@ -215,7 +215,7 @@ static void prop_get_bit64(Object *obj, Visitor *v, const char *name,
static void prop_set_bit64(Object *obj, Visitor *v, const char *name, static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
bool value; bool value;
if (!visit_type_bool(v, name, &value, errp)) { if (!visit_type_bool(v, name, &value, errp)) {
@ -237,7 +237,7 @@ const PropertyInfo qdev_prop_bit64 = {
static void get_bool(Object *obj, Visitor *v, const char *name, void *opaque, static void get_bool(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
bool *ptr = object_field_prop_ptr(obj, prop); bool *ptr = object_field_prop_ptr(obj, prop);
visit_type_bool(v, name, ptr, errp); visit_type_bool(v, name, ptr, errp);
@ -246,7 +246,7 @@ static void get_bool(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque, static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
bool *ptr = object_field_prop_ptr(obj, prop); bool *ptr = object_field_prop_ptr(obj, prop);
visit_type_bool(v, name, ptr, errp); visit_type_bool(v, name, ptr, errp);
@ -264,7 +264,7 @@ const PropertyInfo qdev_prop_bool = {
static void get_uint8(Object *obj, Visitor *v, const char *name, void *opaque, static void get_uint8(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint8_t *ptr = object_field_prop_ptr(obj, prop); uint8_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint8(v, name, ptr, errp); visit_type_uint8(v, name, ptr, errp);
@ -273,7 +273,7 @@ static void get_uint8(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_uint8(Object *obj, Visitor *v, const char *name, void *opaque, static void set_uint8(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint8_t *ptr = object_field_prop_ptr(obj, prop); uint8_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint8(v, name, ptr, errp); visit_type_uint8(v, name, ptr, errp);
@ -303,7 +303,7 @@ const PropertyInfo qdev_prop_uint8 = {
static void get_uint16(Object *obj, Visitor *v, const char *name, static void get_uint16(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint16_t *ptr = object_field_prop_ptr(obj, prop); uint16_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint16(v, name, ptr, errp); visit_type_uint16(v, name, ptr, errp);
@ -312,7 +312,7 @@ static void get_uint16(Object *obj, Visitor *v, const char *name,
static void set_uint16(Object *obj, Visitor *v, const char *name, static void set_uint16(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint16_t *ptr = object_field_prop_ptr(obj, prop); uint16_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint16(v, name, ptr, errp); visit_type_uint16(v, name, ptr, errp);
@ -330,7 +330,7 @@ const PropertyInfo qdev_prop_uint16 = {
static void get_uint32(Object *obj, Visitor *v, const char *name, static void get_uint32(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *ptr = object_field_prop_ptr(obj, prop); uint32_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint32(v, name, ptr, errp); visit_type_uint32(v, name, ptr, errp);
@ -339,7 +339,7 @@ static void get_uint32(Object *obj, Visitor *v, const char *name,
static void set_uint32(Object *obj, Visitor *v, const char *name, static void set_uint32(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *ptr = object_field_prop_ptr(obj, prop); uint32_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint32(v, name, ptr, errp); visit_type_uint32(v, name, ptr, errp);
@ -348,7 +348,7 @@ static void set_uint32(Object *obj, Visitor *v, const char *name,
void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int32_t *ptr = object_field_prop_ptr(obj, prop); int32_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_int32(v, name, ptr, errp); visit_type_int32(v, name, ptr, errp);
@ -357,7 +357,7 @@ void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name,
static void set_int32(Object *obj, Visitor *v, const char *name, void *opaque, static void set_int32(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int32_t *ptr = object_field_prop_ptr(obj, prop); int32_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_int32(v, name, ptr, errp); visit_type_int32(v, name, ptr, errp);
@ -382,7 +382,7 @@ const PropertyInfo qdev_prop_int32 = {
static void get_uint64(Object *obj, Visitor *v, const char *name, static void get_uint64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *ptr = object_field_prop_ptr(obj, prop); uint64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint64(v, name, ptr, errp); visit_type_uint64(v, name, ptr, errp);
@ -391,7 +391,7 @@ static void get_uint64(Object *obj, Visitor *v, const char *name,
static void set_uint64(Object *obj, Visitor *v, const char *name, static void set_uint64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *ptr = object_field_prop_ptr(obj, prop); uint64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint64(v, name, ptr, errp); visit_type_uint64(v, name, ptr, errp);
@ -400,7 +400,7 @@ static void set_uint64(Object *obj, Visitor *v, const char *name,
static void get_int64(Object *obj, Visitor *v, const char *name, static void get_int64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int64_t *ptr = object_field_prop_ptr(obj, prop); int64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_int64(v, name, ptr, errp); visit_type_int64(v, name, ptr, errp);
@ -409,7 +409,7 @@ static void get_int64(Object *obj, Visitor *v, const char *name,
static void set_int64(Object *obj, Visitor *v, const char *name, static void set_int64(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
int64_t *ptr = object_field_prop_ptr(obj, prop); int64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_int64(v, name, ptr, errp); visit_type_int64(v, name, ptr, errp);
@ -432,7 +432,7 @@ const PropertyInfo qdev_prop_int64 = {
static void set_uint64_checkmask(Object *obj, Visitor *v, const char *name, static void set_uint64_checkmask(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *ptr = object_field_prop_ptr(obj, prop); uint64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_uint64(v, name, ptr, errp); visit_type_uint64(v, name, ptr, errp);
@ -452,14 +452,14 @@ const PropertyInfo qdev_prop_uint64_checkmask = {
static void release_string(Object *obj, const char *name, void *opaque) static void release_string(Object *obj, const char *name, void *opaque)
{ {
Property *prop = opaque; const Property *prop = opaque;
g_free(*(char **)object_field_prop_ptr(obj, prop)); g_free(*(char **)object_field_prop_ptr(obj, prop));
} }
static void get_string(Object *obj, Visitor *v, const char *name, static void get_string(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
char **ptr = object_field_prop_ptr(obj, prop); char **ptr = object_field_prop_ptr(obj, prop);
if (!*ptr) { if (!*ptr) {
@ -473,7 +473,7 @@ static void get_string(Object *obj, Visitor *v, const char *name,
static void set_string(Object *obj, Visitor *v, const char *name, static void set_string(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
char **ptr = object_field_prop_ptr(obj, prop); char **ptr = object_field_prop_ptr(obj, prop);
char *str; char *str;
@ -507,7 +507,7 @@ const PropertyInfo qdev_prop_on_off_auto = {
void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *ptr = object_field_prop_ptr(obj, prop); uint32_t *ptr = object_field_prop_ptr(obj, prop);
uint64_t value = *ptr; uint64_t value = *ptr;
@ -517,7 +517,7 @@ void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name,
static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque, static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *ptr = object_field_prop_ptr(obj, prop); uint32_t *ptr = object_field_prop_ptr(obj, prop);
uint64_t value; uint64_t value;
@ -557,7 +557,7 @@ struct ArrayElementList {
* specific element of the array. Arrays are backed by an uint32_t length field * specific element of the array. Arrays are backed by an uint32_t length field
* and an element array. @elem points at an element in this element array. * and an element array. @elem points at an element in this element array.
*/ */
static Property array_elem_prop(Object *obj, Property *parent_prop, static Property array_elem_prop(Object *obj, const Property *parent_prop,
const char *name, char *elem) const char *name, char *elem)
{ {
return (Property) { return (Property) {
@ -582,7 +582,7 @@ static Property array_elem_prop(Object *obj, Property *parent_prop,
*/ */
static void release_prop_array(Object *obj, const char *name, void *opaque) static void release_prop_array(Object *obj, const char *name, void *opaque)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint32_t *alenptr = object_field_prop_ptr(obj, prop); uint32_t *alenptr = object_field_prop_ptr(obj, prop);
void **arrayptr = (void *)obj + prop->arrayoffset; void **arrayptr = (void *)obj + prop->arrayoffset;
char *elem = *arrayptr; char *elem = *arrayptr;
@ -609,7 +609,7 @@ static void set_prop_array(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
ERRP_GUARD(); ERRP_GUARD();
Property *prop = opaque; const Property *prop = opaque;
uint32_t *alenptr = object_field_prop_ptr(obj, prop); uint32_t *alenptr = object_field_prop_ptr(obj, prop);
void **arrayptr = (void *)obj + prop->arrayoffset; void **arrayptr = (void *)obj + prop->arrayoffset;
ArrayElementList *list, *elem, *next; ArrayElementList *list, *elem, *next;
@ -685,7 +685,7 @@ static void get_prop_array(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp) void *opaque, Error **errp)
{ {
ERRP_GUARD(); ERRP_GUARD();
Property *prop = opaque; const Property *prop = opaque;
uint32_t *alenptr = object_field_prop_ptr(obj, prop); uint32_t *alenptr = object_field_prop_ptr(obj, prop);
void **arrayptr = (void *)obj + prop->arrayoffset; void **arrayptr = (void *)obj + prop->arrayoffset;
char *elemptr = *arrayptr; char *elemptr = *arrayptr;
@ -749,16 +749,13 @@ const PropertyInfo qdev_prop_array = {
/* --- public helpers --- */ /* --- public helpers --- */
static const Property *qdev_prop_walk(const Property *props, const char *name) static const Property *qdev_prop_walk(DeviceClass *cls, const char *name)
{ {
if (!props) { for (int i = 0, n = cls->props_count_; i < n; ++i) {
return NULL; const Property *prop = &cls->props_[i];
} if (strcmp(prop->name, name) == 0) {
while (props->name) { return prop;
if (strcmp(props->name, name) == 0) {
return props;
} }
props++;
} }
return NULL; return NULL;
} }
@ -771,7 +768,7 @@ static const Property *qdev_prop_find(DeviceState *dev, const char *name)
/* device properties */ /* device properties */
class = object_get_class(OBJECT(dev)); class = object_get_class(OBJECT(dev));
do { do {
prop = qdev_prop_walk(DEVICE_CLASS(class)->props_, name); prop = qdev_prop_walk(DEVICE_CLASS(class), name);
if (prop) { if (prop) {
return prop; return prop;
} }
@ -931,7 +928,7 @@ void qdev_prop_set_globals(DeviceState *dev)
static void get_size(Object *obj, Visitor *v, const char *name, void *opaque, static void get_size(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *ptr = object_field_prop_ptr(obj, prop); uint64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_size(v, name, ptr, errp); visit_type_size(v, name, ptr, errp);
@ -940,7 +937,7 @@ static void get_size(Object *obj, Visitor *v, const char *name, void *opaque,
static void set_size(Object *obj, Visitor *v, const char *name, void *opaque, static void set_size(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
uint64_t *ptr = object_field_prop_ptr(obj, prop); uint64_t *ptr = object_field_prop_ptr(obj, prop);
visit_type_size(v, name, ptr, errp); visit_type_size(v, name, ptr, errp);
@ -1023,7 +1020,7 @@ static void qdev_get_legacy_property(Object *obj, Visitor *v,
const char *name, void *opaque, const char *name, void *opaque,
Error **errp) Error **errp)
{ {
Property *prop = opaque; const Property *prop = opaque;
char buffer[1024]; char buffer[1024];
char *ptr = buffer; char *ptr = buffer;
@ -1061,12 +1058,18 @@ static void qdev_class_add_legacy_property(DeviceClass *dc, const Property *prop
NULL, NULL, (Property *)prop); NULL, NULL, (Property *)prop);
} }
void device_class_set_props(DeviceClass *dc, const Property *props) void device_class_set_props_n(DeviceClass *dc, const Property *props, size_t n)
{ {
const Property *prop; /* We used a hole in DeviceClass because that's still a lot. */
assert(n <= UINT16_MAX);
assert(n != 0);
dc->props_ = props; dc->props_ = props;
for (prop = props; prop && prop->name; prop++) { dc->props_count_ = n;
for (size_t i = 0; i < n; ++i) {
const Property *prop = &props[i];
assert(prop->name);
qdev_class_add_legacy_property(dc, prop); qdev_class_add_legacy_property(dc, prop);
qdev_class_add_property(dc, prop->name, prop); qdev_class_add_property(dc, prop->name, prop);
} }

Some files were not shown because too many files have changed in this diff Show more