From: Luiz Capitulino <lcapitulino@redhat.com>
To: qemu-devel@nongnu.org
Cc: aliguori@us.ibm.com, avi@redhat.com
Subject: [Qemu-devel] [PATCH v2 00/29] QMonitor
Date: Wed, 26 Aug 2009 14:05:23 -0300 [thread overview]
Message-ID: <1251306352-31316-1-git-send-email-lcapitulino@redhat.com> (raw)
Hi there,
This new version of the QMonitor series has more simplifications,
renames and improvements.
Most changes are because of simplifications on QInt, please review
carefully its implementation and usage.
Changelog, description and diffstat follows.
changelog
---------
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 | 8 +
check-qdict.c | 365 ++++
check-qint.c | 110 ++
check-qstring.c | 100 +
configure | 32 +
console.h | 3 +-
hw/pci-hotplug.c | 15 +-
migration.c | 12 +-
migration.h | 9 +-
monitor.c | 448 +++---
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 | 111 ++
qstring.c | 73 +
qstring.h | 15 +
savevm.c | 13 +-
sysemu.h | 18 +-
vl.c | 13 +-
25 files changed, 6587 insertions(+), 326 deletions(-)
next reply other threads:[~2009-08-26 17:06 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-26 17:05 Luiz Capitulino [this message]
2009-08-26 17:05 ` [Qemu-devel] [PATCH 01/29] Introduce QObject Luiz Capitulino
2009-08-26 18:12 ` [Qemu-devel] " Paolo Bonzini
2009-08-26 17:05 ` [Qemu-devel] [PATCH 02/29] Introduce QInt Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 03/29] Introduce QString Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 04/29] Introduce QDict Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 05/29] Add wrappers to functions used by the Monitor Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 07/29] monitor: Setup a QDict with arguments to handlers Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 08/29] monitor: Export QDict header Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 09/29] monitor: Port handler_0 to use QDict Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 10/29] monitor: Port handler_1 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 11/29] monitor: Port handler_2 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 12/29] monitor: Port handler_3 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 13/29] monitor: Port handler_4 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 14/29] monitor: Port handler_5 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 15/29] monitor: Port handler_6 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 16/29] monitor: Port handler_7 " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 17/29] monitor: Drop handler_8 and handler_9 Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 18/29] monitor: Port handler_10 to use QDict Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 19/29] monitor: Split monitor_handle_command() Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 20/29] monitor: Drop unused macros Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 21/29] monitor: Drop str_allocated[] Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 22/29] monitor: Drop args[] handling code Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 23/29] monitor: fail when 'i' type is greater than 32-bit Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 24/29] monitor: Update supported types documentation Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 25/29] Add check support Luiz Capitulino
2009-08-26 19:34 ` [Qemu-devel] " Juan Quintela
2009-08-26 20:39 ` Luiz Capitulino
2009-08-26 21:53 ` Juan Quintela
2009-08-26 17:05 ` [Qemu-devel] [PATCH 26/29] Introduce QInt unit-tests Luiz Capitulino
[not found] ` <m3ocq2dyu2.fsf@neno.mitica>
2009-08-28 18:26 ` [Qemu-devel] " Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 27/29] Introduce QString unit-tests Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 28/29] Introduce QDict test data file Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 29/29] Introduce QDict unit-tests Luiz Capitulino
2009-08-28 11:43 ` [Qemu-devel] [PATCH v2 00/29] QMonitor Vincent Hanquez
2009-08-28 13:22 ` Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1251306352-31316-1-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).