qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 00/29] QMonitor
@ 2009-08-28 18:27 Luiz Capitulino
  2009-08-28 18:27 ` [Qemu-devel] [PATCH 01/29] Introduce QObject Luiz Capitulino
                   ` (29 more replies)
  0 siblings, 30 replies; 34+ messages in thread
From: Luiz Capitulino @ 2009-08-28 18:27 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, avi

 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(-)

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2009-09-03 22:00 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-28 18:27 [Qemu-devel] [PATCH v3 00/29] QMonitor Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 01/29] Introduce QObject Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 02/29] Introduce QInt Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 03/29] Introduce QString Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 04/29] Introduce QDict Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 05/29] Add wrappers to functions used by the Monitor Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 07/29] monitor: Setup a QDict with arguments to handlers Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 08/29] monitor: Export QDict header Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 09/29] monitor: Port handler_0 to use QDict Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 10/29] monitor: Port handler_1 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 11/29] monitor: Port handler_2 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 12/29] monitor: Port handler_3 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 13/29] monitor: Port handler_4 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 14/29] monitor: Port handler_5 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 15/29] monitor: Port handler_6 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 16/29] monitor: Port handler_7 " Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 17/29] monitor: Drop handler_8 and handler_9 Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 18/29] monitor: Port handler_10 to use QDict Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 19/29] monitor: Split monitor_handle_command() Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 20/29] monitor: Drop unused macros Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 21/29] monitor: Drop str_allocated[] Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 22/29] monitor: Drop args[] handling code Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 23/29] monitor: fail when 'i' type is greater than 32-bit Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 24/29] monitor: Update supported types documentation Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 25/29] Add check support Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 26/29] Introduce QInt unit-tests Luiz Capitulino
2009-08-31  7:55   ` Kevin Wolf
2009-08-31 14:43     ` Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 27/29] Introduce QString unit-tests Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 28/29] Introduce QDict test data file Luiz Capitulino
2009-08-28 18:27 ` [Qemu-devel] [PATCH 29/29] Introduce QDict unit-tests Luiz Capitulino
2009-09-03 21:06 ` [Qemu-devel] [PATCH v3 00/29] QMonitor Mark McLoughlin
2009-09-03 22:00   ` Luiz Capitulino

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).