[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 13/44] qdev: Move UUID property to qdev-properties-system.c
From: |
Eduardo Habkost |
Subject: |
[PATCH v2 13/44] qdev: Move UUID property to qdev-properties-system.c |
Date: |
Wed, 4 Nov 2020 10:59:50 -0500 |
Only softmmu code uses DEFINE_PROP_UUID, and it currently depends
on error_set_from_qdev_prop_error(). Move it to
qdev-properties-system.c to get out of our way when refactoring
the qdev property system.
We can eventually move it back to the core property system later,
after removing usage of error_set_from_qdev_prop_error().
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
This is a new patch added in series v2
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org
---
hw/core/qdev-properties-system.c | 57 ++++++++++++++++++++++++++++++++
hw/core/qdev-properties.c | 57 --------------------------------
2 files changed, 57 insertions(+), 57 deletions(-)
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index fca1b694ca..35515886a9 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -21,6 +21,7 @@
#include "qemu/ctype.h"
#include "qemu/cutils.h"
#include "qemu/units.h"
+#include "qemu/uuid.h"
#include "qemu/error-report.h"
#include "qdev-prop-internal.h"
@@ -1105,3 +1106,59 @@ const PropertyInfo qdev_prop_pcie_link_width = {
.set = set_prop_pcielinkwidth,
.set_default_value = qdev_propinfo_set_default_value_enum,
};
+
+/* --- UUID --- */
+
+static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
+ Error **errp)
+{
+ Property *prop = opaque;
+ QemuUUID *uuid = qdev_get_prop_ptr(obj, prop);
+ char buffer[UUID_FMT_LEN + 1];
+ char *p = buffer;
+
+ qemu_uuid_unparse(uuid, buffer);
+
+ visit_type_str(v, name, &p, errp);
+}
+
+#define UUID_VALUE_AUTO "auto"
+
+static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
+ Error **errp)
+{
+ DeviceState *dev = DEVICE(obj);
+ Property *prop = opaque;
+ QemuUUID *uuid = qdev_get_prop_ptr(obj, prop);
+ char *str;
+
+ if (dev->realized) {
+ qdev_prop_set_after_realize(dev, name, errp);
+ return;
+ }
+
+ if (!visit_type_str(v, name, &str, errp)) {
+ return;
+ }
+
+ if (!strcmp(str, UUID_VALUE_AUTO)) {
+ qemu_uuid_generate(uuid);
+ } else if (qemu_uuid_parse(str, uuid) < 0) {
+ error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str);
+ }
+ g_free(str);
+}
+
+static void set_default_uuid_auto(ObjectProperty *op, const Property *prop)
+{
+ object_property_set_default_str(op, UUID_VALUE_AUTO);
+}
+
+const PropertyInfo qdev_prop_uuid = {
+ .name = "str",
+ .description = "UUID (aka GUID) or \"" UUID_VALUE_AUTO
+ "\" for random value (default)",
+ .get = get_uuid,
+ .set = set_uuid,
+ .set_default_value = set_default_uuid_auto,
+};
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 5e010afdb8..d7796e8cc3 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -6,7 +6,6 @@
#include "qemu/ctype.h"
#include "qemu/error-report.h"
#include "qapi/visitor.h"
-#include "qemu/uuid.h"
#include "qemu/units.h"
#include "qemu/cutils.h"
#include "qdev-prop-internal.h"
@@ -544,62 +543,6 @@ const PropertyInfo qdev_prop_size32 = {
.set_default_value = qdev_propinfo_set_default_value_uint,
};
-/* --- UUID --- */
-
-static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
- Error **errp)
-{
- Property *prop = opaque;
- QemuUUID *uuid = qdev_get_prop_ptr(obj, prop);
- char buffer[UUID_FMT_LEN + 1];
- char *p = buffer;
-
- qemu_uuid_unparse(uuid, buffer);
-
- visit_type_str(v, name, &p, errp);
-}
-
-#define UUID_VALUE_AUTO "auto"
-
-static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
- Error **errp)
-{
- DeviceState *dev = DEVICE(obj);
- Property *prop = opaque;
- QemuUUID *uuid = qdev_get_prop_ptr(obj, prop);
- char *str;
-
- if (dev->realized) {
- qdev_prop_set_after_realize(dev, name, errp);
- return;
- }
-
- if (!visit_type_str(v, name, &str, errp)) {
- return;
- }
-
- if (!strcmp(str, UUID_VALUE_AUTO)) {
- qemu_uuid_generate(uuid);
- } else if (qemu_uuid_parse(str, uuid) < 0) {
- error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str);
- }
- g_free(str);
-}
-
-static void set_default_uuid_auto(ObjectProperty *op, const Property *prop)
-{
- object_property_set_default_str(op, UUID_VALUE_AUTO);
-}
-
-const PropertyInfo qdev_prop_uuid = {
- .name = "str",
- .description = "UUID (aka GUID) or \"" UUID_VALUE_AUTO
- "\" for random value (default)",
- .get = get_uuid,
- .set = set_uuid,
- .set_default_value = set_default_uuid_auto,
-};
-
/* --- support for array properties --- */
/* Used as an opaque for the object properties we add for each
--
2.28.0
- [PATCH v2 03/44] qdev: Move property code to qdev-properties.[ch], (continued)
- [PATCH v2 03/44] qdev: Move property code to qdev-properties.[ch], Eduardo Habkost, 2020/11/04
- [PATCH v2 04/44] qdev: Check dev->realized at set_size(), Eduardo Habkost, 2020/11/04
- [PATCH v2 05/44] sparc: Check dev->realized at sparc_set_nwindows(), Eduardo Habkost, 2020/11/04
- [PATCH v2 06/44] qdev: Don't use dev->id on set_size32() error message, Eduardo Habkost, 2020/11/04
- [PATCH v2 07/44] qdev: Make PropertyInfo.print method get Object* argument, Eduardo Habkost, 2020/11/04
- [PATCH v2 08/44] qdev: Make bit_prop_set() get Object* argument, Eduardo Habkost, 2020/11/04
- [PATCH v2 09/44] qdev: Make qdev_get_prop_ptr() get Object* arg, Eduardo Habkost, 2020/11/04
- [PATCH v2 14/44] qdev: Move softmmu properties to qdev-properties-system.h, Eduardo Habkost, 2020/11/04
- [PATCH v2 20/44] qdev: Add name argument to PropertyInfo.create method, Eduardo Habkost, 2020/11/04
- [PATCH v2 10/44] qdev: Make qdev_find_global_prop() get Object* argument, Eduardo Habkost, 2020/11/04
- [PATCH v2 13/44] qdev: Move UUID property to qdev-properties-system.c,
Eduardo Habkost <=
- [PATCH v2 11/44] qdev: Make check_prop_still_unset() get Object* argument, Eduardo Habkost, 2020/11/04
- [PATCH v2 16/44] sparc: Use DEFINE_PROP for nwindows property, Eduardo Habkost, 2020/11/04
- [PATCH v2 17/44] qdev: Get just property name at error_set_from_qdev_prop_error(), Eduardo Habkost, 2020/11/04
- [PATCH v2 12/44] qdev: Make error_set_from_qdev_prop_error() get Object* argument, Eduardo Habkost, 2020/11/04
- [PATCH v2 21/44] qdev: Wrap getters and setters in separate helpers, Eduardo Habkost, 2020/11/04
- [PATCH v2 15/44] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros, Eduardo Habkost, 2020/11/04
- [PATCH v2 28/44] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen(), Eduardo Habkost, 2020/11/04
- [PATCH v2 39/44] qdev: PROP_* macros, Eduardo Habkost, 2020/11/04
- [PATCH v2 32/44] qom: Add allow_set callback to ObjectProperty, Eduardo Habkost, 2020/11/04
- [PATCH v2 31/44] qdev: Reuse object_property_add_field() when adding array elements, Eduardo Habkost, 2020/11/04