diff mbox

[v3,1/4] error-report: provide error_report_fatal()

Message ID 1471498092-27135-2-git-send-email-peterx@redhat.com
State New
Headers show

Commit Message

Peter Xu Aug. 18, 2016, 5:28 a.m. UTC
There are many places in current QEMU codes that needs to print some
error and then quit QEMU. Provide a new function for it.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 include/qemu/error-report.h |  1 +
 util/qemu-error.c           | 12 ++++++++++++
 2 files changed, 13 insertions(+)

Comments

Fam Zheng Sept. 6, 2016, 9:52 a.m. UTC | #1
On Thu, 08/18 13:28, Peter Xu wrote:
> There are many places in current QEMU codes that needs to print some
> error and then quit QEMU. Provide a new function for it.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  include/qemu/error-report.h |  1 +
>  util/qemu-error.c           | 12 ++++++++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
> index 499ec8b..eb8260e 100644
> --- a/include/qemu/error-report.h
> +++ b/include/qemu/error-report.h
> @@ -36,6 +36,7 @@ void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
>  void error_set_progname(const char *argv0);
>  void error_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0);
>  void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
> +void error_report_fatal(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
>  const char *error_get_progname(void);
>  extern bool enable_timestamp_msg;
>  
> diff --git a/util/qemu-error.c b/util/qemu-error.c
> index 1ef3566..81379e1 100644
> --- a/util/qemu-error.c
> +++ b/util/qemu-error.c
> @@ -10,6 +10,7 @@
>   * See the COPYING file in the top-level directory.
>   */
>  
> +#include <unistd.h>

I think qemu/osdep.h must come first. But OTOH this include is not necessary.

>  #include "qemu/osdep.h"
>  #include "monitor/monitor.h"
>  #include "qemu/error-report.h"
> @@ -237,3 +238,14 @@ void error_report(const char *fmt, ...)
>      error_vreport(fmt, ap);
>      va_end(ap);
>  }
> +
> +void error_report_fatal(const char *fmt, ...)
> +{
> +    va_list ap;
> +
> +    va_start(ap, fmt);
> +    error_vreport(fmt, ap);
> +    va_end(ap);
> +
> +    exit(1);
> +}
> -- 
> 2.7.4
>
diff mbox

Patch

diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
index 499ec8b..eb8260e 100644
--- a/include/qemu/error-report.h
+++ b/include/qemu/error-report.h
@@ -36,6 +36,7 @@  void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
 void error_set_progname(const char *argv0);
 void error_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0);
 void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
+void error_report_fatal(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
 const char *error_get_progname(void);
 extern bool enable_timestamp_msg;
 
diff --git a/util/qemu-error.c b/util/qemu-error.c
index 1ef3566..81379e1 100644
--- a/util/qemu-error.c
+++ b/util/qemu-error.c
@@ -10,6 +10,7 @@ 
  * See the COPYING file in the top-level directory.
  */
 
+#include <unistd.h>
 #include "qemu/osdep.h"
 #include "monitor/monitor.h"
 #include "qemu/error-report.h"
@@ -237,3 +238,14 @@  void error_report(const char *fmt, ...)
     error_vreport(fmt, ap);
     va_end(ap);
 }
+
+void error_report_fatal(const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    error_vreport(fmt, ap);
+    va_end(ap);
+
+    exit(1);
+}