summary refs log tree commit diff stats
path: root/hw/qdev-properties.c
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2010-06-14 10:33:36 -0500
committerAnthony Liguori <aliguori@us.ibm.com>2010-06-14 10:33:36 -0500
commita4673e276248ada38f40d39191a197e7e35d3f8b (patch)
tree4ecdac95fb7bb86eefc08ee38ca229c4d89e02e0 /hw/qdev-properties.c
parenta2da0395c12bd2b26e2180d735c83988ff66a559 (diff)
parent653dbec7c97cb51d19636423902719e5850da265 (diff)
downloadfocaccia-qemu-a4673e276248ada38f40d39191a197e7e35d3f8b.tar.gz
focaccia-qemu-a4673e276248ada38f40d39191a197e7e35d3f8b.zip
Merge remote branch 'kwolf/for-anthony' into staging
Conflicts:
	hw/pc.c
Diffstat (limited to 'hw/qdev-properties.c')
-rw-r--r--hw/qdev-properties.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 9ffdba792c..5a8739debe 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -1,4 +1,3 @@
-#include "sysemu.h"
 #include "net.h"
 #include "qdev.h"
 #include "qerror.h"
@@ -260,6 +259,11 @@ static int parse_string(DeviceState *dev, Property *prop, const char *str)
     return 0;
 }
 
+static void free_string(DeviceState *dev, Property *prop)
+{
+    qemu_free(*(char **)qdev_get_prop_ptr(dev, prop));
+}
+
 static int print_string(DeviceState *dev, Property *prop, char *dest, size_t len)
 {
     char **ptr = qdev_get_prop_ptr(dev, prop);
@@ -274,6 +278,7 @@ PropertyInfo qdev_prop_string = {
     .size  = sizeof(char*),
     .parse = parse_string,
     .print = print_string,
+    .free  = free_string,
 };
 
 /* --- drive --- */
@@ -617,6 +622,11 @@ void qdev_prop_set_uint64(DeviceState *dev, const char *name, uint64_t value)
     qdev_prop_set(dev, name, &value, PROP_TYPE_UINT64);
 }
 
+void qdev_prop_set_string(DeviceState *dev, const char *name, char *value)
+{
+    qdev_prop_set(dev, name, &value, PROP_TYPE_STRING);
+}
+
 void qdev_prop_set_drive(DeviceState *dev, const char *name, DriveInfo *value)
 {
     qdev_prop_set(dev, name, &value, PROP_TYPE_DRIVE);