Commit message (Collapse)AuthorAgeFilesLines
* QMP: Asynchronous events infrastructureLuiz Capitulino2009-12-031-0/+4
| | | | | | | | | | | | | | | | | | Asynchronous events are generated with a call to monitor_protocol_event(). This function builds the right data-type and emit the event right away. The emitted data is always a JSON object and its format is as follows: { "event": json-string, "timestamp": { "seconds": json-number, "microseconds": json-number }, "data": json-value } This design is based on ideas by Amit Shah <>. Signed-off-by: Luiz Capitulino <> Signed-off-by: Anthony Liguori <>
* Added imlpementation for qemu_error for non-qemu executablesNaphtali Sprei2009-11-091-0/+9
| | | | | | | Now qemu_error can be called also from shared files, e.g. block.c. Signed-off-by: Naphtali Sprei <> Signed-off-by: Anthony Liguori <>
* Introduce contexts for asynchronous callbacksKevin Wolf2009-10-271-0/+13
| | | | | | | | | Add the possibility to use AIO and BHs without allowing foreign callbacks to be run. Basically, you put your own AIOs and BHs in a separate context. For details see the comments in the source. Signed-off-by: Kevin Wolf <> Signed-off-by: Anthony Liguori <>
* Fix most warnings (errors with -Werror) when debugging is enabledBlue Swirl2009-07-201-0/+3
| | | | | | | I used the following command to enable debugging: perl -p -i -e 's/^\/\/#define DEBUG/#define DEBUG/g' * */* */*/* Signed-off-by: Blue Swirl <>
* monitor: Rework API (Jan Kiszka)aliguori2009-03-051-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the monitor API and prepare it for decoupled terminals: term_print functions are renamed to monitor_* and all monitor services gain a new parameter (mon) that will once refer to the monitor instance the output is supposed to appear on. However, the argument remains unused for now. All monitor command callbacks are also extended by a mon parameter so that command handlers are able to pass an appropriate reference to monitor output services. For the case that monitor outputs so far happen without clearly identifiable context, the global variable cur_mon is introduced that shall once provide a pointer either to the current active monitor (while processing commands) or to the default one. On the mid or long term, those use case will be obsoleted so that this variable can be removed again. Due to the broad usage of the monitor interface, this patch mostly deals with converting users of the monitor API. A few of them are already extended to pass 'mon' from the command handler further down to internal functions that invoke monitor_printf. At this chance, monitor-related prototypes are moved from console.h to a new monitor.h. The same is done for the readline API. Signed-off-by: Jan Kiszka <> Signed-off-by: Anthony Liguori <> git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162
* toplevel: remove error handling from qemu_malloc() callers (Avi Kivity)aliguori2009-02-051-4/+2
| | | | | | | | Signed-off-by: Avi Kivity <> Signed-off-by: Anthony Liguori <> git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162
* Fix warning from sparse (wrong declaration)aurel322008-11-301-1/+1
| | | | | | | | | Fix data type (this fixes a warning from sparse) Signed-off-by: Stefan Weil <> Signed-off-by: Aurelien Jarno <> git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162
* Use qemu_gettimeofday.pbrook2008-10-291-1/+1
| | | | git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162
* Fix IO performance regression in sparcaliguori2008-10-081-0/+4
| | | | | | | | | | | | | | | | | | Replace signalfd with signal handler/pipe. There is no way to interrupt the CPU execution loop when a file descriptor becomes readable. This results in a large performance regression in sparc emulation during bootup. This patch switches us to signal handler/pipe which was originally suggested by Ian Jackson. The signal handler lets us interrupt the CPU emulation loop while the write to a pipe lets us avoid the select/signal race condition. Signed-off-by: Anthony Liguori <> git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162
* Use common objects for qemu-img and qemu-nbdaliguori2008-09-151-0/+83
Right now, we sprinkle #if defined(QEMU_IMG) && defined(QEMU_NBD) all over the code. It's ugly and causes us to have to build multiple object files for linking against qemu and the tools. This patch introduces a new file, qemu-tool.c which contains enough for qemu-img, qemu-nbd, and QEMU to all share the same objects. This also required getting qemu-nbd to be a bit more Windows friendly. I also changed the Windows block-raw to use normal IO instead of overlapping IO since we don't actually do AIO yet on Windows. I changed the various #if 0's to #if WIN32_AIO to make it easier for someone to eventually fix AIO on Windows. After this patch, there are no longer any #ifdef's related to qemu-img and qemu-nbd. Signed-off-by: Anthony Liguori <> git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162