Message ID | 1261862362-2530-7-git-send-email-nathan@parenthephobia.org.uk |
---|---|
State | New |
Headers | show |
On Sat, 26 Dec 2009 21:19:17 +0000 Nathan Baum <nathan@parenthephobia.org.uk> wrote: > Returns information about the system bus as a QObject. > > Signed-off-by: Nathan Baum <nathan@parenthephobia.org.uk> > --- > hw/sysbus.c | 18 ++++++++++++++++++ > 1 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/hw/sysbus.c b/hw/sysbus.c > index 1f7f138..2092d9f 100644 > --- a/hw/sysbus.c > +++ b/hw/sysbus.c > @@ -20,6 +20,7 @@ > #include "sysbus.h" > #include "sysemu.h" > #include "monitor.h" > +#include "qjson.h" > > static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent); > > @@ -170,3 +171,20 @@ static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent) > indent, "", s->mmio[i].addr, s->mmio[i].size); > } > } > + > +static QObject *sysbus_dev_info(Monitor *mon, DeviceState *dev) > +{ > + SysBusDevice *s = sysbus_from_qdev(dev); > + QDict *dict = qdict_new(); > + QList *list = qlist_new(); > + int i; > + > + for (i = 0; i < s->num_mmio; i++) { > + qlist_append_obj(list, qobject_from_jsonf("{ 'addr': " TARGET_FMT_plx ", 'size': " TARGET_FMT_plx " }", > + s->mmio[i].addr, s->mmio[i].size)); > + } > + > + qdict_put(dict, "mmio", list); > + return (QObject *) dict; You can use the QOBJECT() macro instead of the cast.
diff --git a/hw/sysbus.c b/hw/sysbus.c index 1f7f138..2092d9f 100644 --- a/hw/sysbus.c +++ b/hw/sysbus.c @@ -20,6 +20,7 @@ #include "sysbus.h" #include "sysemu.h" #include "monitor.h" +#include "qjson.h" static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent); @@ -170,3 +171,20 @@ static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent) indent, "", s->mmio[i].addr, s->mmio[i].size); } } + +static QObject *sysbus_dev_info(Monitor *mon, DeviceState *dev) +{ + SysBusDevice *s = sysbus_from_qdev(dev); + QDict *dict = qdict_new(); + QList *list = qlist_new(); + int i; + + for (i = 0; i < s->num_mmio; i++) { + qlist_append_obj(list, qobject_from_jsonf("{ 'addr': " TARGET_FMT_plx ", 'size': " TARGET_FMT_plx " }", + s->mmio[i].addr, s->mmio[i].size)); + } + + qdict_put(dict, "mmio", list); + return (QObject *) dict; + +}
Returns information about the system bus as a QObject. Signed-off-by: Nathan Baum <nathan@parenthephobia.org.uk> --- hw/sysbus.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-)