qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 6/6] qdev: switch property accessors to fixed


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v2 6/6] qdev: switch property accessors to fixed-width visitor interfaces
Date: Fri, 24 Feb 2012 11:22:06 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15

According to git bisect and qemu-test, this breaks:

qemu-system-x86_64 -kernel bin/vmlinuz-3.0 -initrd .tmp-26227/initramfs-26227.img.gz -append console=ttyS0 seed=1498 -nographic -enable-kvm -device virtio-balloon-pci,id=balloon0 -pidfile .tmp-26227/pidfile-26227.pid -qmp unix:.tmp-26227/qmpsock-26227.sock,server,nowait
qemu-system-x86_64: Parameter 'id' expects int8_t
Aborted

Regards,

Anthony Liguori

On 02/23/2012 02:22 PM, Michael Roth wrote:
Signed-off-by: Michael Roth<address@hidden>
---
  hw/qdev-addr.c       |    4 ++--
  hw/qdev-properties.c |   42 +++++++++++++++++-------------------------
  2 files changed, 19 insertions(+), 27 deletions(-)

diff --git a/hw/qdev-addr.c b/hw/qdev-addr.c
index 0bb16c7..b711b6b 100644
--- a/hw/qdev-addr.c
+++ b/hw/qdev-addr.c
@@ -27,7 +27,7 @@ static void get_taddr(Object *obj, Visitor *v, void *opaque,
      int64_t value;

      value = *ptr;
-    visit_type_int(v,&value, name, errp);
+    visit_type_int64(v,&value, name, errp);
  }

  static void set_taddr(Object *obj, Visitor *v, void *opaque,
@@ -44,7 +44,7 @@ static void set_taddr(Object *obj, Visitor *v, void *opaque,
          return;
      }

-    visit_type_int(v,&value, name,&local_err);
+    visit_type_int64(v,&value, name,&local_err);
      if (local_err) {
          error_propagate(errp, local_err);
          return;
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 0423af1..98d95fb 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -82,10 +82,8 @@ static void get_int8(Object *obj, Visitor *v, void *opaque,
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
      int8_t *ptr = qdev_get_prop_ptr(dev, prop);
-    int64_t value;

-    value = *ptr;
-    visit_type_int(v,&value, name, errp);
+    visit_type_int8(v, ptr, name, errp);
  }

  static void set_int8(Object *obj, Visitor *v, void *opaque,
@@ -93,16 +91,15 @@ static void set_int8(Object *obj, Visitor *v, void *opaque,
  {
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
-    int8_t *ptr = qdev_get_prop_ptr(dev, prop);
+    int8_t value, *ptr = qdev_get_prop_ptr(dev, prop);
      Error *local_err = NULL;
-    int64_t value;

      if (dev->state != DEV_STATE_CREATED) {
          error_set(errp, QERR_PERMISSION_DENIED);
          return;
      }

-    visit_type_int(v,&value, name,&local_err);
+    visit_type_int8(v,&value, name,&local_err);
      if (local_err) {
          error_propagate(errp, local_err);
          return;
@@ -111,7 +108,7 @@ static void set_int8(Object *obj, Visitor *v, void *opaque,
          *ptr = value;
      } else {
          error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE,
-                  dev->id?:"", name, value, prop->info->min,
+                  dev->id?:"", name, (int64_t)value, prop->info->min,
                    prop->info->max);
      }
  }
@@ -168,10 +165,8 @@ static void get_int16(Object *obj, Visitor *v, void 
*opaque,
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
      int16_t *ptr = qdev_get_prop_ptr(dev, prop);
-    int64_t value;

-    value = *ptr;
-    visit_type_int(v,&value, name, errp);
+    visit_type_int16(v, ptr, name, errp);
  }

  static void set_int16(Object *obj, Visitor *v, void *opaque,
@@ -179,16 +174,15 @@ static void set_int16(Object *obj, Visitor *v, void 
*opaque,
  {
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
-    int16_t *ptr = qdev_get_prop_ptr(dev, prop);
+    int16_t value, *ptr = qdev_get_prop_ptr(dev, prop);
      Error *local_err = NULL;
-    int64_t value;

      if (dev->state != DEV_STATE_CREATED) {
          error_set(errp, QERR_PERMISSION_DENIED);
          return;
      }

-    visit_type_int(v,&value, name,&local_err);
+    visit_type_int16(v,&value, name,&local_err);
      if (local_err) {
          error_propagate(errp, local_err);
          return;
@@ -197,7 +191,7 @@ static void set_int16(Object *obj, Visitor *v, void *opaque,
          *ptr = value;
      } else {
          error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE,
-                  dev->id?:"", name, value, prop->info->min,
+                  dev->id?:"", name, (int64_t)value, prop->info->min,
                    prop->info->max);
      }
  }
@@ -217,11 +211,10 @@ static void get_int32(Object *obj, Visitor *v, void 
*opaque,
  {
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
-    int32_t *ptr = qdev_get_prop_ptr(dev, prop);
-    int64_t value;
+    int32_t value, *ptr = qdev_get_prop_ptr(dev, prop);

      value = *ptr;
-    visit_type_int(v,&value, name, errp);
+    visit_type_int32(v,&value, name, errp);
  }

  static void set_int32(Object *obj, Visitor *v, void *opaque,
@@ -229,16 +222,15 @@ static void set_int32(Object *obj, Visitor *v, void 
*opaque,
  {
      DeviceState *dev = DEVICE(obj);
      Property *prop = opaque;
-    int32_t *ptr = qdev_get_prop_ptr(dev, prop);
+    int32_t value, *ptr = qdev_get_prop_ptr(dev, prop);
      Error *local_err = NULL;
-    int64_t value;

      if (dev->state != DEV_STATE_CREATED) {
          error_set(errp, QERR_PERMISSION_DENIED);
          return;
      }

-    visit_type_int(v,&value, name,&local_err);
+    visit_type_int32(v,&value, name,&local_err);
      if (local_err) {
          error_propagate(errp, local_err);
          return;
@@ -247,7 +239,7 @@ static void set_int32(Object *obj, Visitor *v, void *opaque,
          *ptr = value;
      } else {
          error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE,
-                  dev->id?:"", name, value, prop->info->min,
+                  dev->id?:"", name, (int64_t)value, prop->info->min,
                    prop->info->max);
      }
  }
@@ -313,7 +305,7 @@ static void get_int64(Object *obj, Visitor *v, void *opaque,
      Property *prop = opaque;
      int64_t *ptr = qdev_get_prop_ptr(dev, prop);

-    visit_type_int(v, ptr, name, errp);
+    visit_type_int64(v, ptr, name, errp);
  }

  static void set_int64(Object *obj, Visitor *v, void *opaque,
@@ -328,7 +320,7 @@ static void set_int64(Object *obj, Visitor *v, void *opaque,
          return;
      }

-    visit_type_int(v, ptr, name, errp);
+    visit_type_int64(v, ptr, name, errp);
  }

  PropertyInfo qdev_prop_uint64 = {
@@ -649,7 +641,7 @@ static void get_vlan(Object *obj, Visitor *v, void *opaque,
      int64_t id;

      id = *ptr ? (*ptr)->id : -1;
-    visit_type_int(v,&id, name, errp);
+    visit_type_int64(v,&id, name, errp);
  }

  static void set_vlan(Object *obj, Visitor *v, void *opaque,
@@ -667,7 +659,7 @@ static void set_vlan(Object *obj, Visitor *v, void *opaque,
          return;
      }

-    visit_type_int(v,&id, name,&local_err);
+    visit_type_int64(v,&id, name,&local_err);
      if (local_err) {
          error_propagate(errp, local_err);
          return;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]