[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/29] QMonitor
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH v3 00/29] QMonitor |
Date: |
Fri, 28 Aug 2009 15:27:03 -0300 |
Hi there,
Another respin, the most important change being a rebase against
latest push bomb.
Please review, as it's easy to make mistakes on conflict fixes.
Changelog, description and diffstat follows.
changelog
---------
V2 -> V3
- Rebase against latest master
- Updated configure changes to new style (Juan's advice)
V1 -> V2
- Renamed some macros to be more OOP-like
- New refcounts terminology by Paulo Bonzini
- QDict:
o use sys-queue for the linked list
o replace qdict_add() by qdict_put()
o rename qdict_exists() to qdict_haskey()
o add qdict_get_try_int() and qdict_get_try_str()
- QInt
o drop 'export' functions
o rename qint_from_int64() to qint_from_int()
- Other small changes
V0 -> V1
- Make QType structs const
- New macros: QOBJECT_INIT(), QDECREF()/QINCREF(), QType_HEAD
- qobject_to_*() should return NULL if type doesn't match
description
------------
Basically, this series introduces high-level data types (QInt, QString,
QDict) and port all Monitor command handlers to use them to receive
arguments.
The following points should be observed:
o Object life cycle management: I'm using refcouting for this
o QString's get: QString exports a function called qstring_get_str(), this
function returns a *pointer* to the stored string. A better API would
return a copy instead, but it would be too much work and error-prone to go
over all handlers and put a qemu_free() in the right place.
Handlers only want quick and read-only access to strings anyway, so
returning a pointer makes handlers' code a lot simpler.
o unit-testing: I have written unit-tests for all the new code and have an
off-tree suite for the Monitor's parsing code. I was in doubt if I should
submit this work... I did, but it's in the end of the series, if people
don't like this it can be easily dropped.
Monitor's suite is not in the series because I couldn't make it build
"in tree".
While reviewing the series is important to bear in mind that all my
design decisions were based on the need of the current and most important
users of the API: monitor command handlers.
Thanks for reading this all! :)
Makefile | 5 +
check-qdict.c | 365 ++++
check-qint.c | 110 ++
check-qstring.c | 100 +
configure | 31 +
console.h | 3 +-
hw/pci-hotplug.c | 15 +-
migration.c | 12 +-
migration.h | 9 +-
monitor.c | 457 +++---
monitor.h | 1 +
net.c | 25 +-
net.h | 13 +-
qdict-test-data.txt | 4999 +++++++++++++++++++++++++++++++++++++++++++++++++++
qdict.c | 297 +++
qdict.h | 42 +
qemu-monitor.hx | 109 +-
qint.c | 66 +
qint.h | 16 +
qobject.h | 109 ++
qstring.c | 73 +
qstring.h | 15 +
savevm.c | 6 +-
sysemu.h | 15 +-
vl.c | 11 +-
25 files changed, 6578 insertions(+), 326 deletions(-)
- [Qemu-devel] [PATCH v3 00/29] QMonitor,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 01/29] Introduce QObject, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 02/29] Introduce QInt, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 03/29] Introduce QString, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 05/29] Add wrappers to functions used by the Monitor, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 04/29] Introduce QDict, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 07/29] monitor: Setup a QDict with arguments to handlers, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 08/29] monitor: Export QDict header, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 10/29] monitor: Port handler_1 to use QDict, Luiz Capitulino, 2009/08/28
- [Qemu-devel] [PATCH 09/29] monitor: Port handler_0 to use QDict, Luiz Capitulino, 2009/08/28