Unbreak Sparc32 and PPC
authorBlue Swirl <blauwirbel@gmail.com>
Thu, 13 Aug 2009 16:26:52 +0000 (16:26 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Thu, 13 Aug 2009 16:26:52 +0000 (16:26 +0000)
Convert qdev ptr type to chr, allow a NULL pointer.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

hw/escc.c
hw/qdev-properties.c

index 74a96cd..031dae3 100644 (file)
--- a/hw/escc.c
+++ b/hw/escc.c
@@ -737,8 +737,8 @@ int escc_init(target_phys_addr_t base, qemu_irq irqA, qemu_irq irqB,
     qdev_prop_set_uint32(dev, "disabled", 0);
     qdev_prop_set_uint32(dev, "frequency", clock);
     qdev_prop_set_uint32(dev, "it_shift", it_shift);
-    qdev_prop_set_ptr(dev, "chrB", chrB);
-    qdev_prop_set_ptr(dev, "chrA", chrA);
+    qdev_prop_set_chr(dev, "chrB", chrB);
+    qdev_prop_set_chr(dev, "chrA", chrA);
     qdev_prop_set_uint32(dev, "chnBtype", ser);
     qdev_prop_set_uint32(dev, "chnAtype", ser);
     qdev_init(dev);
@@ -900,8 +900,8 @@ void slavio_serial_ms_kbd_init(target_phys_addr_t base, qemu_irq irq,
     qdev_prop_set_uint32(dev, "disabled", disabled);
     qdev_prop_set_uint32(dev, "frequency", clock);
     qdev_prop_set_uint32(dev, "it_shift", it_shift);
-    qdev_prop_set_ptr(dev, "chrB", NULL);
-    qdev_prop_set_ptr(dev, "chrA", NULL);
+    qdev_prop_set_chr(dev, "chrB", NULL);
+    qdev_prop_set_chr(dev, "chrA", NULL);
     qdev_prop_set_uint32(dev, "chnBtype", mouse);
     qdev_prop_set_uint32(dev, "chnAtype", kbd);
     qdev_init(dev);
index df3d209..c9703c2 100644 (file)
@@ -173,7 +173,12 @@ PropertyInfo qdev_prop_drive = {
 static int print_chr(DeviceState *dev, Property *prop, char *dest, size_t len)
 {
     CharDriverState **ptr = qdev_get_prop_ptr(dev, prop);
-    return snprintf(dest, len, "%s", (*ptr)->label);
+
+    if (*ptr && (*ptr)->label) {
+        return snprintf(dest, len, "%s", (*ptr)->label);
+    } else {
+        return snprintf(dest, len, "<null>");
+    }
 }
 
 PropertyInfo qdev_prop_chr = {