[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 08/10] monitor: QError support
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH 08/10] monitor: QError support |
Date: |
Wed, 18 Nov 2009 15:29:34 -0200 |
On Wed, 18 Nov 2009 16:16:40 +0100
Markus Armbruster <address@hidden> wrote:
> Luiz Capitulino <address@hidden> writes:
>
> > This commit adds QError support in the Monitor.
> >
> > A QError member is added to the Monitor struct. This new member
> > stores error information and is also used to check if an error
> > has occurred when the called handler returns.
> >
> > Additionally, a new macro called qemu_error_new() is introduced.
> > It builds on top of the QemuErrorSink API and should be used in
> > place of qemu_error().
> >
> > When all conversion to qemu_error_new() is done, qemu_error() can
> > be turned private.
> >
> > Basically, Monitor's error flow is something like this:
> >
> > 1. An error occurs in the handler, it calls qemu_error_new()
> > 2. qemu_error_new() builds a new QError object and stores it in
> > the Monitor struct
> > 3. The handler returns
> > 4. Top level Monitor code checks the Monitor struct and calls
> > qerror_print() to print the error
> [...]
> > diff --git a/sysemu.h b/sysemu.h
> > index b1887ef..656f6a4 100644
> > --- a/sysemu.h
> > +++ b/sysemu.h
> > @@ -7,6 +7,7 @@
> > #include "qemu-queue.h"
> > #include "qemu-timer.h"
> > #include "qdict.h"
> > +#include "qerror.h"
> >
> > #ifdef _WIN32
> > #include <windows.h>
> > @@ -71,6 +72,11 @@ void qemu_errors_to_file(FILE *fp);
> > void qemu_errors_to_mon(Monitor *mon);
> > void qemu_errors_to_previous(void);
> > void qemu_error(const char *fmt, ...) __attribute__ ((format(printf, 1,
> > 2)));
> > +void qemu_error_full(const char *file, int linenr, const char *fmt, ...)
> > + __attribute__ ((format(printf, 3, 4)));
> > +
> > +#define qemu_error_new(fmt, ...) \
> > + qemu_error_full(__FILE__, __LINE__, fmt, ## __VA_ARGS__)
> >
> > #ifdef _WIN32
> > /* Polling handling */
>
> The relationship between qemu_error_new() and qemu_error_full() is not
> obvious from their names. What about calling the latter
> qemu_error_new_internal()?
Okay, as I'm going to post a new version anyway.
- [Qemu-devel] Re: [PATCH 07/10] Introduce QError, (continued)
[Qemu-devel] [PATCH 10/10] monitor: do_info_balloon(): use QError, Luiz Capitulino, 2009/11/17
[Qemu-devel] [PATCH 08/10] monitor: QError support, Luiz Capitulino, 2009/11/17
[Qemu-devel] [PATCH 09/10] qdev: Use QError for 'device not found' error, Luiz Capitulino, 2009/11/17
Re: [Qemu-devel] [PATCH 00/10]: QError v4, Markus Armbruster, 2009/11/18