aboutsummaryrefslogtreecommitdiff
path: root/hw/core/qdev-properties.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/core/qdev-properties.c')
-rw-r--r--hw/core/qdev-properties.c95
1 files changed, 30 insertions, 65 deletions
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index ca7771f307..098298c78e 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -117,7 +117,6 @@ static void prop_set_bit(Object *obj, Visitor *v, const char *name,
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
- Error *local_err = NULL;
bool value;
if (dev->realized) {
@@ -125,9 +124,7 @@ static void prop_set_bit(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
bit_prop_set(dev, prop, value);
@@ -181,7 +178,6 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
- Error *local_err = NULL;
bool value;
if (dev->realized) {
@@ -189,9 +185,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
bit64_prop_set(dev, prop, value);
@@ -478,7 +472,6 @@ static void set_string(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
char **ptr = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str;
if (dev->realized) {
@@ -486,9 +479,7 @@ static void set_string(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
g_free(*ptr);
@@ -531,7 +522,6 @@ static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
MACAddr *mac = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
int i, pos;
char *str, *p;
@@ -540,9 +530,7 @@ static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -754,7 +742,6 @@ static void set_pci_devfn(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
int32_t value, *ptr = qdev_get_prop_ptr(dev, prop);
unsigned int slot, fn, n;
- Error *local_err = NULL;
char *str;
if (dev->realized) {
@@ -762,19 +749,16 @@ static void set_pci_devfn(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_free(local_err);
- local_err = NULL;
- visit_type_int32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- } else if (value < -1 || value > 255) {
+ if (!visit_type_str(v, name, &str, NULL)) {
+ if (!visit_type_int32(v, name, &value, errp)) {
+ return;
+ }
+ if (value < -1 || value > 255) {
error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
name ? name : "null", "pci_devfn");
- } else {
- *ptr = value;
+ return;
}
+ *ptr = value;
return;
}
@@ -837,16 +821,13 @@ static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,
Property *prop = opaque;
uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
uint64_t value;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
@@ -887,16 +868,13 @@ static void set_blocksize(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
uint64_t value;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
/* value of 0 means "unset" */
@@ -964,7 +942,6 @@ static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
PCIHostDeviceAddress *addr = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str, *p;
char *e;
unsigned long val;
@@ -976,9 +953,7 @@ static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -1068,7 +1043,6 @@ static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
QemuUUID *uuid = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str;
if (dev->realized) {
@@ -1076,9 +1050,7 @@ static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -1144,7 +1116,6 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
uint32_t *alenptr = qdev_get_prop_ptr(dev, prop);
void **arrayptr = (void *)dev + prop->arrayoffset;
- Error *local_err = NULL;
void *eltptr;
const char *arrayname;
int i;
@@ -1158,9 +1129,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
name);
return;
}
- visit_type_uint32(v, name, alenptr, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, alenptr, errp)) {
return;
}
if (!*alenptr) {
@@ -1266,37 +1235,37 @@ void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev,
void qdev_prop_set_bit(DeviceState *dev, const char *name, bool value)
{
- object_property_set_bool(OBJECT(dev), value, name, &error_abort);
+ object_property_set_bool(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_uint8(DeviceState *dev, const char *name, uint8_t value)
{
- object_property_set_int(OBJECT(dev), value, name, &error_abort);
+ object_property_set_int(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_uint16(DeviceState *dev, const char *name, uint16_t value)
{
- object_property_set_int(OBJECT(dev), value, name, &error_abort);
+ object_property_set_int(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_uint32(DeviceState *dev, const char *name, uint32_t value)
{
- object_property_set_int(OBJECT(dev), value, name, &error_abort);
+ object_property_set_int(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_int32(DeviceState *dev, const char *name, int32_t value)
{
- object_property_set_int(OBJECT(dev), value, name, &error_abort);
+ object_property_set_int(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_uint64(DeviceState *dev, const char *name, uint64_t value)
{
- object_property_set_int(OBJECT(dev), value, name, &error_abort);
+ object_property_set_int(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_string(DeviceState *dev, const char *name, const char *value)
{
- object_property_set_str(OBJECT(dev), value, name, &error_abort);
+ object_property_set_str(OBJECT(dev), name, value, &error_abort);
}
void qdev_prop_set_macaddr(DeviceState *dev, const char *name,
@@ -1306,7 +1275,7 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char *name,
snprintf(str, sizeof(str), "%02x:%02x:%02x:%02x:%02x:%02x",
value[0], value[1], value[2], value[3], value[4], value[5]);
- object_property_set_str(OBJECT(dev), str, name, &error_abort);
+ object_property_set_str(OBJECT(dev), name, str, &error_abort);
}
void qdev_prop_set_enum(DeviceState *dev, const char *name, int value)
@@ -1314,9 +1283,9 @@ void qdev_prop_set_enum(DeviceState *dev, const char *name, int value)
Property *prop;
prop = qdev_prop_find(dev, name);
- object_property_set_str(OBJECT(dev),
+ object_property_set_str(OBJECT(dev), name,
qapi_enum_lookup(prop->info->enum_table, value),
- name, &error_abort);
+ &error_abort);
}
static GPtrArray *global_props(void)
@@ -1483,16 +1452,14 @@ static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
PCIExpLinkSpeed *p = qdev_get_prop_ptr(dev, prop);
int speed;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_enum(v, prop->name, &speed, prop->info->enum_table, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_enum(v, prop->name, &speed, prop->info->enum_table,
+ errp)) {
return;
}
@@ -1571,16 +1538,14 @@ static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
PCIExpLinkWidth *p = qdev_get_prop_ptr(dev, prop);
int width;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_enum(v, prop->name, &width, prop->info->enum_table, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_enum(v, prop->name, &width, prop->info->enum_table,
+ errp)) {
return;
}