[PATCH v2 25/44] qdev: Separate generic and device-specific property registration

2020-11-04 Thread Eduardo Habkost
the plan is to eventually get rid of the Property.name field. The declarations for the new functions are being added to qdev-properties.h, but they will be moved to a QOM header later. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Patch redone after changes in previous patches in the ser

[PATCH v2 41/44] qdev: Move base property types to qom/property-types.c

2020-11-04 Thread Eduardo Habkost
Move all property types from qdev-properties.c to qom/property-types.c. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Rebased after changes in previous patches in the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --

[PATCH v2 43/44] tests: Use field properties at check-qom-proplist test case

2020-11-04 Thread Eduardo Habkost
Use field properties for the bool and string properties used at check-qom-proplist. Signed-off-by: Eduardo Habkost --- Changes v2: * Redone patch using PROP_* instead of DEFINE_PROP_* --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- i

[PATCH v2 24/44] qdev: Make qdev_class_add_property() more flexible

2020-11-04 Thread Eduardo Habkost
Support Property.set_default and PropertyInfo.description even if PropertyInfo.create is set. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Patch redone after changes in the previous patches in the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habk

[PATCH v2 33/44] qdev: Make qdev_prop_allow_set() a ObjectProperty.allow_set callback

2020-11-04 Thread Eduardo Habkost
QOM feature. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone patch on top of changes in previous patches in the series * Forbid allow_set==NULL to avoid confusion with link property semantics (where NULL makes the property read only) --- Cc: Paolo Bonzini Cc: "

[PATCH v2 38/44] qdev: Rename qdev_prop_* to prop_info_*

2020-11-04 Thread Eduardo Habkost
The basic property types in qdev-properties.c are not going to be qdev-specific anymore. Rename the variables to prop_info_*. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone patch after moving UUID property to qdev-properties-system.c --- Cc: Paolo Bonzini Cc: "Daniel P.

[PATCH v2 26/44] qdev: Rename Property.name to Property.qdev_prop_name

2020-11-04 Thread Eduardo Habkost
The Property.name field won't always be set and we need to be 100% sure its usage will be restricted to qdev/TYPE_DEVICE code. Renaming the field is a good way to ensure that and make its purpose more clear. Signed-off-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc

[PATCH v2 27/44] qdev: Don't set qdev_prop_name for array elements

2020-11-04 Thread Eduardo Habkost
qdev_prop_name is supposed to be used only by qdev property registration code, we don't need to set it for array element properties. Signed-off-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost

[PATCH v2 44/44] machine: Register most properties as field properties

2020-11-04 Thread Eduardo Habkost
Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone using object_class_add_property_field() + PROP_* macros instead of DEFINE_PROP_* array, as suggested by Paolo --- Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: qemu-devel@nongnu.org --- hw/core/machine.c |

[PATCH v2 22/44] qdev: Move dev->realized check to qdev_property_set()

2020-11-04 Thread Eduardo Habkost
Every single qdev property setter function manually checks dev->realized. We can just check dev->realized inside qdev_property_set() instead. The check is being added as a separate function (qdev_prop_allow_set()) because it will become a callback later. Signed-off-by: Eduardo H

[PATCH v2 31/44] qdev: Reuse object_property_add_field() when adding array elements

2020-11-04 Thread Eduardo Habkost
Now that we can call object_property_add() with exactly the same arguments as object_property_add_field(), we can just reuse the function. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Now we don't need to hack ObjectProperty.release anymore, patch became trivial --- Cc: Paolo Bonz

[PATCH v2 19/44] qdev: Add name parameter to qdev_class_add_property()

2020-11-04 Thread Eduardo Habkost
This will make it easier to remove Property.name in the future. Signed-off-by: Eduardo Habkost --- This is a new patch added in series v2 --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 9 + 1 fi

[PATCH v2 32/44] qom: Add allow_set callback to ObjectProperty

2020-11-04 Thread Eduardo Habkost
this not being necessary in most cases). Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone patch on top of changes in previous patches in the series * Provide prop_allow_set_always() and prop_allow_set_never() helpers --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduard

[PATCH v2 42/44] qom: Include static property API reference in documentation

2020-11-04 Thread Eduardo Habkost
Add new doc comments and reformat the existing ones, and include the static-properties.h API reference in docs/devel/qom.rst. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone patch after changes in previous patches in the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berra

[PATCH v2 39/44] qdev: PROP_* macros

2020-11-04 Thread Eduardo Habkost
The new helper macros are just wrappers to DEFINE_PROP_* that can be used directly as arguments to object_class_property_add_field(). Signed-off-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost

[PATCH v2 28/44] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen()

2020-11-04 Thread Eduardo Habkost
We're just doing pointer math with the device pointer, we can simply use obj instead. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 ++-

[PATCH v2 23/44] qdev: Make PropertyInfo.create return ObjectProperty*

2020-11-04 Thread Eduardo Habkost
Returning ObjectProperty* will be useful for new property registration code that will add additional callbacks to ObjectProperty after registering it. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone patch on top of additional changes in series v2 * Commit message reword ---

[PATCH v2 18/44] qdev: Avoid using prop->name unnecessarily

2020-11-04 Thread Eduardo Habkost
We already get the property name as argument to the property getter and setters, we don't need to use prop->name. This will make it easier to remove the Property.name field in the future. Signed-off-by: Eduardo Habkost --- This is a new patch added in series v2 --- Cc: Stefan Berger Cc: Pa

[PATCH v2 40/44] qdev: Move core field property code to QOM

2020-11-04 Thread Eduardo Habkost
Move the core of the static property code to qom/field-property.c. The actual property type implementations are still in qdev-properties.c, they will be moved later. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Rename static-property.* to field-property.* --- Cc: Paolo Bonzini

[PATCH v2 21/44] qdev: Wrap getters and setters in separate helpers

2020-11-04 Thread Eduardo Habkost
OM code. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone after changes in previous patches in the series * Renamed functions from static_prop_* to field_prop_* --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --

[PATCH v2 36/44] qdev: Rename qdev_get_prop_ptr() to object_field_prop_ptr()

2020-11-04 Thread Eduardo Habkost
The function will be moved to common QOM code, as it is not specific to TYPE_DEVICE anymore. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Rename to object_field_prop_ptr() instead of object_static_prop_ptr() --- Cc: Stefan Berger Cc: Stefano Stabellini Cc: Anthony Perard Cc: P

[PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field

2020-11-04 Thread Eduardo Habkost
-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/hw/core/qdev-properties.c

[PATCH v2 17/44] qdev: Get just property name at error_set_from_qdev_prop_error()

2020-11-04 Thread Eduardo Habkost
Replace `Property *prop` parameter with `char *name`, to reduce dependency of getter and setter functions on the Property struct (which will be changed in following patches). Signed-off-by: Eduardo Habkost --- This is a new patch added in series v2 --- Cc: Paolo Bonzini Cc: "Daniel P. Ber

[PATCH v2 12/44] qdev: Make error_set_from_qdev_prop_error() get Object* argument

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: Cornelia Huck Cc: Thomas Huth Cc: Richard Henderson Cc: David Hildenbrand Cc: Halil

[PATCH v2 30/44] qdev: Get rid of ArrayElementProperty struct

2020-11-04 Thread Eduardo Habkost
Now that we don't store any additional data about the property in AraryElementStruct, we don't need it anymore. We can just allocate a Property struct directly. Signed-off-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé

[PATCH v2 08/44] qdev: Make bit_prop_set() get Object* argument

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 10 ++ 1 file changed, 6

[PATCH v2 15/44] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros

2020-11-04 Thread Eduardo Habkost
Instead of duplicating the code that sets name, info, offset, and does type checking, make DEFINE_PROP accept a variable number of arguments and reuse it in all DEFINE_PROP_* macros. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Redone after UUID property was moved --- Cc: Paolo Bonz

[PATCH v2 20/44] qdev: Add name argument to PropertyInfo.create method

2020-11-04 Thread Eduardo Habkost
This will make it easier to remove the Property.name field in the future. Signed-off-by: Eduardo Habkost --- This is a new patch added in series v2 --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +

[PATCH v2 11/44] qdev: Make check_prop_still_unset() get Object* argument

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 10 +- 1 file

[PATCH v2 07/44] qdev: Make PropertyInfo.print method get Object* argument

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-

[PATCH v2 13/44] qdev: Move UUID property to qdev-properties-system.c

2020-11-04 Thread Eduardo Habkost
of error_set_from_qdev_prop_error(). Signed-off-by: Eduardo Habkost --- This is a new patch added in series v2 --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 57 hw

[PATCH v2 16/44] sparc: Use DEFINE_PROP for nwindows property

2020-11-04 Thread Eduardo Habkost
Use the DEFINE_PROP macro (which will set extra fields in the struct) instead of initializing a Property struct manually. Signed-off-by: Eduardo Habkost --- This is a new patch added in v2 of the series --- Cc: Mark Cave-Ayland Cc: Artyom Tarasenko Cc: qemu-devel@nongnu.org --- target/sparc

[PATCH v2 05/44] sparc: Check dev->realized at sparc_set_nwindows()

2020-11-04 Thread Eduardo Habkost
sparc_set_nwindows() is one of the very few property setters that don't check dev->realized, and there's no reason for it to be special. Check dev->realized like the other setters. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Mark Cave-Ayland Cc: Artyom Tarasen

[PATCH v2 10/44] qdev: Make qdev_find_global_prop() get Object* argument

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-

[PATCH v2 06/44] qdev: Don't use dev->id on set_size32() error message

2020-11-04 Thread Eduardo Habkost
All other qdev property error messages use "." instead of ".". Change set_size32() for consistency, and to make the code not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé"

[PATCH v2 14/44] qdev: Move softmmu properties to qdev-properties-system.h

2020-11-04 Thread Eduardo Habkost
Move the property types and property macros implemented in qdev-properties-system.c to a new qdev-properties-system.h header. Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: * Move UUID property type too, as it was moved to qdev-properties-system.c in the previous patch --- audio/audi

[PATCH v2 09/44] qdev: Make qdev_get_prop_ptr() get Object* arg

2020-11-04 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Changes v1 -> v2: - Fix build error with CONFIG_XEN I took the liberty of keeping the Reviewed-by line from Marc-André as the build fix is a trivial one line cha

[PATCH v2 04/44] qdev: Check dev->realized at set_size()

2020-11-04 Thread Eduardo Habkost
f-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 + 1 file changed, 5 insertions(+) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 12a053e732..67ae19df

[PATCH v2 02/44] cpu: Move cpu_common_props to hw/core/cpu.c

2020-11-04 Thread Eduardo Habkost
There's no reason to keep the property list separate from the CPU class code. Move the variable to hw/core/cpu.c and make it static. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: qemu-devel@nongnu.org --- include/hw/core/cpu.h

[PATCH v2 01/44] cs4231: Get rid of empty property array

2020-11-04 Thread Eduardo Habkost
An empty props array is unnecessary, we can just not call device_class_set_props(). Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Gerd Hoffmann Cc: qemu-devel@nongnu.org --- hw/audio/cs4231.c | 5 - 1 file changed, 5 deletions(-) diff --git a/hw/audio/cs4231.c b

[PATCH v2 03/44] qdev: Move property code to qdev-properties.[ch]

2020-11-04 Thread Eduardo Habkost
Move everything related to Property and PropertyInfo to qdev-properties.[ch] to make it easier to refactor that code. Reviewed-by: Marc-André Lureau Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org ---

[PATCH v2 00/44] Make qdev static property API usable by any QOM type

2020-11-04 Thread Eduardo Habkost
stom release function for array elements anymore, because we don't need to save the property name in the Property struct anymore. * Moved UUID property to qdev-properties-system, because it still has dependencies on qdev code Eduardo Habkost (44): cs4231: Get rid of empty property array cpu:

Re: [PATCH v3] qom: code hardening - have bound checking while looping with integer value

2020-11-04 Thread Eduardo Habkost
On Sat, Oct 31, 2020 at 09:51:38PM +0530, Ani Sinha wrote: > On Thu, Oct 15, 2020 at 10:22 PM Eduardo Habkost wrote: > > > > On Mon, Sep 21, 2020 at 03:03:25PM +0530, Ani Sinha wrote: > > > Object property insertion code iterates over an integer to get an unused >

Re: [PATCH v3 7/7] tests/acceptance: Add virtiofs_submounts.py

2020-11-02 Thread Eduardo Habkost
by executing something like "sudo true" before invoking > Avocado.) > > Signed-off-by: Max Reitz Fixes the issue detected in v3. Tested-by: Eduardo Habkost -- Eduardo

Re: [PATCH-for-5.2 v3] util/cutils: Fix Coverity array overrun in freq_to_str()

2020-11-02 Thread Eduardo Habkost
x" (which evaluates to 7). > > Note, the biggest input value freq_to_str() can accept is UINT64_MAX, > which is ~18.446 EHz, less than 1000 EHz. > > Reported-by: Eduardo Habkost > Suggested-by: Peter Maydell > Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Eduardo Habkost Thanks for taking the time to fix this! -- Eduardo

Re: [PATCH 34/36] machine: Use DEFINE_PROP_STRING for string properties

2020-10-30 Thread Eduardo Habkost
On Fri, Oct 30, 2020 at 09:41:46PM +0100, Paolo Bonzini wrote: > Il ven 30 ott 2020, 21:03 Eduardo Habkost ha scritto: > > > > OBJECT_CLASS_PROPERTY_ADD_STR(oc, MachineState, kernel_filename, > > > "kernel", prop_allow_se

[PATCH 19/20] filter-buffer: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Jason Wang Cc: qemu-devel@nongnu.org --- net/filter-buffer.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/filter-

[PATCH 17/20] colo-compare: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Zhang Chen Cc: Li Zhijian Cc: Jason Wang Cc: qemu-devel@nongnu.org --- net/colo-compare.c | 9 +++-- 1 file changed, 3 insertions(+), 6

[PATCH 14/20] i386: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- target/i386/cpu.c | 2 +- 1 file changed, 1 inser

[PATCH 11/20] tpm_util: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Stefan Berger Cc: qemu-devel@nongnu.org --- backends/tpm/tpm_util.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ba

[PATCH 09/20] cryptodev: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: "Gonglei (Arei)" Cc: qemu-devel@nongnu.org --- backends/cryptodev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) d

[PATCH 07/20] qdev: Stop using error_set_from_qdev_prop_error() for css devno property

2020-10-30 Thread Eduardo Habkost
-system-s390x -device x-terminal3270,devno=x qemu-system-s390x: -device x-terminal3270,devno=x: Property 'x-terminal3270.devno' can't take value 'x': invalid devno Signed-off-by: Eduardo Habkost --- Cc: Cornelia Huck Cc: Thomas Huth Cc: Richard Henderson Cc: David Hildenbrand Cc: Halil Pasic Cc

[PATCH 08/20] qdev: Delete unused error_set_from_qdev_prop_error() function

2020-10-30 Thread Eduardo Habkost
Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 -- hw/core/qdev-properties.c| 22 -- 2 files changed, 24 deletions(-) diff --git a/inclu

[PATCH 20/20] qom: Remove error prefix check at object_property_parse()

2020-10-30 Thread Eduardo Habkost
All existing "Property '.' ..." error messages were rewritten, we can now add the error message prefix unconditionally. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- qom/object.c | 10 ++

[PATCH 16/20] nvdimm: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Xiao Guangrong Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: qemu-devel@nongnu.org --- hw/mem/nvdimm.c | 6 ++ 1 file changed

[PATCH 06/20] qdev: Stop using error_set_from_qdev_prop_error() for PCI host device property

2020-10-30 Thread Eduardo Habkost
vfio-pci,host=x qemu-system-x86_64: -device vfio-pci,host=x: Property 'vfio-pci.host' can't take value 'x': invalid host device address Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-

[PATCH 15/20] qerror: Delete unused QERR_PROPERTY_VALUE_BAD macro

2020-10-30 Thread Eduardo Habkost
Signed-off-by: Eduardo Habkost --- Cc: Markus Armbruster Cc: qemu-devel@nongnu.org --- include/qapi/qmp/qerror.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index 7c76e24aa7..646a42c4b4 100644 --- a/include/qapi/qmp/qerror.h +++ b

[PATCH 13/20] qdev: chardev: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 8 +++-

[PATCH 18/20] filter-dump: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Jason Wang Cc: qemu-devel@nongnu.org --- net/dump.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/dump.c b/net/du

[PATCH 12/20] qdev: drive: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 3 +-

[PATCH 05/20] qdev: Stop using error_set_from_qdev_prop_error() for devfn property

2020-10-30 Thread Eduardo Habkost
=x qemu-system-x86_64: -device e1000,addr=x: Property 'e1000.addr' can't take value 'x': invalid PCI address Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 2 +- 1 fi

[PATCH 10/20] memfd: Remove unnecessary prefix from error message

2020-10-30 Thread Eduardo Habkost
object_property_parse() will add a "Property '.' can't take value ''" prefix automatically for us. Signed-off-by: Eduardo Habkost --- Cc: Eduardo Habkost Cc: Igor Mammedov Cc: qemu-devel@nongnu.org --- backends/hostmem-memfd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletion

[PATCH 02/20] qdev: Stop using error_set_from_qdev_prop_error() for netdev property

2020-10-30 Thread Eduardo Habkost
value 'n0': netdev not found $ ./qemu-system-x86_64 -netdev id=n0,type=user -device e1000,netdev=n0 -device e1000,netdev=n0 qemu-system-x86_64: -device e1000,netdev=n0: Property 'e1000.netdev' can't take value 'n0': netdev is in use Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc

[PATCH 01/20] qom: Add prefix to error message inside object_property_parse()

2020-10-30 Thread Eduardo Habkost
prepending our own. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- qom/object.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/qom/object.c b/qom/object.c index 20726e4584..6fb1657

[PATCH 04/20] qdev: Stop using error_set_from_qdev_prop_error() for mac property

2020-10-30 Thread Eduardo Habkost
qemu-system-x86_64: -device e1000,mac=x: Property 'e1000.mac' can't take value 'x': invalid mac address Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 2 +- 1 file

[PATCH 03/20] qdev: Stop using error_set_from_qdev_prop_error() for audiodev property

2020-10-30 Thread Eduardo Habkost
AC97,audiodev=a0 qemu-system-x86_64: -device AC97,audiodev=a0: Property 'AC97.audiodev' can't take value 'a0': audiodev not found Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-propertie

[PATCH 00/20] qdev/qom: Remove explicit type names from error_setg() calls

2020-10-30 Thread Eduardo Habkost
hat parses -device and -object add a "Property '.' can't take value '': " prefix automatically when encountering an error when setting a property. This is the approach implemented in this series. Eduardo Habkost (20): qom: Add prefix to error message inside object_property_parse(

Re: [PATCH 34/36] machine: Use DEFINE_PROP_STRING for string properties

2020-10-30 Thread Eduardo Habkost
On Fri, Oct 30, 2020 at 06:10:34PM +0100, Paolo Bonzini wrote: > On 29/10/20 23:02, Eduardo Habkost wrote: > > +static Property machine_props[] = { > > +DEFINE_PROP_STRING("kernel", MachineState, kernel_filename), > > +DEFINE_PROP_STRING("in

--enable-xen on gitlab CI? (was Re: [PATCH 09/36] qdev: Make qdev_get_prop_ptr() get Object* arg)

2020-10-30 Thread Eduardo Habkost
On Fri, Oct 30, 2020 at 11:29:25AM +0400, Marc-André Lureau wrote: > On Fri, Oct 30, 2020 at 2:07 AM Eduardo Habkost wrote: > > > Make the code more generic and not specific to TYPE_DEVICE. > > > > Signed-off-by: Eduardo Habkost > > > > Nice cleanup!, but

Re: [PATCH 19/36] qdev: Move array property creation/registration to separate functions

2020-10-30 Thread Eduardo Habkost
On Fri, Oct 30, 2020 at 02:03:07PM +0400, Marc-André Lureau wrote: > On Fri, Oct 30, 2020 at 2:17 AM Eduardo Habkost wrote: > > > The array property registration code is hard to follow. Move the > > two steps into separate functions that have clear > > responsibili

Re: [PATCH 12/36] qdev: Make error_set_from_qdev_prop_error() get Object* argument

2020-10-30 Thread Eduardo Habkost
On Fri, Oct 30, 2020 at 12:00:33PM +0400, Marc-André Lureau wrote: > On Fri, Oct 30, 2020 at 2:16 AM Eduardo Habkost wrote: > > > Make the code more generic and not specific to TYPE_DEVICE. > > > > Signed-off-by: Eduardo Habkost > > > > What about dropping

[PATCH 36/36] qom: Include static property API reference in documentation

2020-10-29 Thread Eduardo Habkost
Add new doc comments and reformat the existing ones, and include the static-properties.h API reference in docs/devel/qom.rst. Signed-off-by: Eduardo Habkost --- docs/devel/qom.rst| 6 ++ include/qom/static-property.h | 154 -- 2 files changed, 151

[PATCH 33/36] tests: Use static properties at check-qom-proplist test case

2020-10-29 Thread Eduardo Habkost
Use static properties for the bool and string properties used at check-qom-proplist. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- tests/check-qom-proplist.c | 61 +---

[PATCH 32/36] qdev: Move base property types to qom/property-types.c

2020-10-29 Thread Eduardo Habkost
Move all property types from qdev-properties.c to qom/property-types.c. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 130 --- include/qom/static-property.h | 128 +

[PATCH 34/36] machine: Use DEFINE_PROP_STRING for string properties

2020-10-29 Thread Eduardo Habkost
Signed-off-by: Eduardo Habkost --- hw/core/machine.c | 166 ++ 1 file changed, 19 insertions(+), 147 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index c5e0e79e6d..97e102911a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c

[PATCH 29/36] qdev: Move qdev_prop_tpm declaration to tpm_prop.h

2020-10-29 Thread Eduardo Habkost
Move the variable declaration close to the macro that uses it. Signed-off-by: Eduardo Habkost --- Cc: Stefan Berger Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/tpm/tpm_prop.h| 2 ++ include/hw/qdev-properties.h | 1

[PATCH 27/36] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros

2020-10-29 Thread Eduardo Habkost
Instead of duplicating the code that sets name, info, offset, and does type checking, make DEFINE_PROP accept a variable number of arguments and reuse it in all DEFINE_PROP_* macros. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost

[PATCH 35/36] machine: Use DEFINE_PROP_BOOL for boolean properties

2020-10-29 Thread Eduardo Habkost
Unfortunately, the "usb" property is not trivial because it actually represents a pair of booleans. It probably should be replaced by a OnOffAuto property instead. Signed-off-by: Eduardo Habkost --- hw/core/machine.c | 77 +++ 1 file

[PATCH 31/36] qdev: Stop using error_set_from_qdev_prop_error() for UUID property

2020-10-29 Thread Eduardo Habkost
vmgenid,guid=x qemu-system-x86_64: -device vmgenid,guid=x: invalid UUID: 'x' Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

[PATCH 23/36] qdev: Make qdev_propinfo_get_uint16() static

2020-10-29 Thread Eduardo Habkost
There are no users of the function outside qdev-properties.c. Make function static and rename it to get_uint16(). Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 2 -- hw

[PATCH 25/36] qdev: Rename qdev_get_prop_ptr() to object_static_prop_ptr()

2020-10-29 Thread Eduardo Habkost
The function will be moved to common QOM code, as it is not specific to TYPE_DEVICE anymore. Signed-off-by: Eduardo Habkost --- Cc: Stefan Berger Cc: Stefano Stabellini Cc: Anthony Perard Cc: Paul Durrant Cc: Kevin Wolf Cc: Max Reitz Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" C

[PATCH 30/36] qdev: Rename qdev_prop_* to prop_info_*

2020-10-29 Thread Eduardo Habkost
The basic property types in qdev-properties.c are not going to be qdev-specific anymore. Rename the variables to prop_info_*. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: Peter Maydell Cc: Yoshinori Sato Cc: Dmitry Fl

[PATCH 17/36] qdev: Separate generic and device-specific property registration

2020-10-29 Thread Eduardo Habkost
functions are being added to qdev-properties.h, but they will be moved to a QOM header later. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 11 +++ inclu

[PATCH 18/36] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen()

2020-10-29 Thread Eduardo Habkost
We're just doing pointer math with the device pointer, we can simply use obj instead. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 ++--- 1 file changed, 2 insert

[PATCH 28/36] qdev: Move core static property code to QOM

2020-10-29 Thread Eduardo Habkost
Move the core of the static property code to qom/static-property.c. The actual property type implementations are still in qdev-properties.c, they will be moved later. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@

[PATCH 19/36] qdev: Move array property creation/registration to separate functions

2020-10-29 Thread Eduardo Habkost
The array property registration code is hard to follow. Move the two steps into separate functions that have clear responsibilities. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-propert

[PATCH 26/36] qdev: Move softmmu properties to qdev-properties-system.h

2020-10-29 Thread Eduardo Habkost
Move the property types and property macros implemented in qdev-properties-system.c to a new qdev-properties-system.h header. Signed-off-by: Eduardo Habkost --- audio/audio.h | 1 + include/hw/block/block.h| 1 + include/hw/qdev-properties-system.h | 68

[PATCH 22/36] qdev: Make qdev_prop_allow_set() a property allow_set callback

2020-10-29 Thread Eduardo Habkost
This removes the last remaining DeviceState-specific line of code inside qdev property registration code, and will allow us to make static properties a core QOM feature. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@

[PATCH 12/36] qdev: Make error_set_from_qdev_prop_error() get Object* argument

2020-10-29 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: Cornelia Huck Cc: Thomas Huth Cc: Richard Henderson Cc: David Hildenbrand Cc: Halil Pasic Cc: Christian Borntraeger

[PATCH 15/36] qdev: Make PropertyInfo.create return ObjectProperty*

2020-10-29 Thread Eduardo Habkost
Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties.c| 10 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/inclu

[PATCH 24/36] qdev: Rename qdev_propinfo_* to object_propinfo_*

2020-10-29 Thread Eduardo Habkost
These functions will be moved to be part of QOM, so rename them. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 28 +-- hw/core/qdev-properties-sys

[PATCH 11/36] qdev: Make check_prop_still_unset() get Object* argument

2020-10-29 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 10 +- 1 file changed, 5 insertions(+), 5 deletion

[PATCH 16/36] qdev: Make qdev_class_add_property() more flexible

2020-10-29 Thread Eduardo Habkost
Support Property.set_default and PropertyInfo.description even if PropertyInfo.create is set. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 17 + 1 file

[PATCH 21/36] qom: Add allow_set callback to ObjectProperty

2020-10-29 Thread Eduardo Habkost
Note that this doesn't replace the check callback at object*_property_add_link() (yet), because currently the link property check callback needs to get the property value as argument (despite this not being necessary in most cases). Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc

[PATCH 13/36] qdev: Wrap getters and setters in separate helpers

2020-10-29 Thread Eduardo Habkost
OM code. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 44 +++ 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/hw/core/qd

[PATCH 08/36] qdev: Make bit_prop_set() get Object* argument

2020-10-29 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-)

[PATCH 14/36] qdev: Move dev->realized check to qdev_property_set()

2020-10-29 Thread Eduardo Habkost
Every single qdev property setter function manually checks dev->realized. We can just check dev->realized inside qdev_property_set() instead. The check is being added as a separate function (qdev_prop_allow_set()) because it will become a callback later. Signed-off-by: Eduardo Habkost

[PATCH 10/36] qdev: Make qdev_find_global_prop() get Object* argument

2020-10-29 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties-system.c | 2 +- hw

[PATCH 07/36] qdev: Make PropertyInfo.print method get Object* argument

2020-10-29 Thread Eduardo Habkost
Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties-system.c | 3 ++- hw

[PATCH 20/36] qdev: Reuse object_property_add_static() when adding array elements

2020-10-29 Thread Eduardo Habkost
Reuse function instead of calling object_property_add() directly. We need to hack ObjectProperty.release to make sure we will free the array property. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw

<    4   5   6   7   8   9   10   11   12   13   >