[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/16] qdev: add print_options callback
From: |
Alon Levy |
Subject: |
[Qemu-devel] [PATCH 01/16] qdev: add print_options callback |
Date: |
Fri, 4 Feb 2011 00:45:37 +0200 |
another callback added to PropertyInfo, for later use by PROP_TYPE_ENUM.
Allows printing of runtime computed options when doing:
qemu -device foo,?
Signed-off-by: Alon Levy <address@hidden>
---
hw/qdev.c | 10 +++++++++-
hw/qdev.h | 1 +
2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/hw/qdev.c b/hw/qdev.c
index c7fec44..0b2ad3d 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -187,7 +187,15 @@ int qdev_device_help(QemuOpts *opts)
if (!prop->info->parse) {
continue; /* no way to set it, don't show */
}
- error_printf("%s.%s=%s\n", info->name, prop->name, prop->info->name);
+ if (prop->info->print_options) {
+ char buf[256];
+ int ret;
+ ret = prop->info->print_options(info, prop, buf, sizeof(buf) - 3);
+ error_printf("%s.%s=%s%s\n", info->name, prop->name, buf,
+ ret == sizeof(buf) - 3 ? "..." : "" );
+ } else {
+ error_printf("%s.%s=%s\n", info->name, prop->name,
prop->info->name);
+ }
}
return 1;
}
diff --git a/hw/qdev.h b/hw/qdev.h
index 9808f85..fa3221b 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -109,6 +109,7 @@ struct PropertyInfo {
enum PropertyType type;
int (*parse)(DeviceState *dev, Property *prop, const char *str);
int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len);
+ int (*print_options)(DeviceInfo *info, Property *prop, char *dest, size_t
len);
void (*free)(DeviceState *dev, Property *prop);
};
--
1.7.4