qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/2] error-report: provide error_report_exit()


From: Peter Xu
Subject: [Qemu-devel] [PATCH 1/2] error-report: provide error_report_exit()
Date: Thu, 11 Aug 2016 15:37:17 +0800

There are many places in current QEMU codes that needs to print some
error and then quit QEMU. Provide a macro for it.

Also, one coccinelle script is added to convert existing cases to
leverage this new macro.

Signed-off-by: Peter Xu <address@hidden>
---
 include/qemu/error-report.h                |  8 ++++++++
 scripts/coccinelle/error_report_exit.cocci | 13 +++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 scripts/coccinelle/error_report_exit.cocci

diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
index 499ec8b..c2d5059 100644
--- a/include/qemu/error-report.h
+++ b/include/qemu/error-report.h
@@ -13,6 +13,8 @@
 #ifndef QEMU_ERROR_REPORT_H
 #define QEMU_ERROR_REPORT_H
 
+#include <unistd.h>
+
 typedef struct Location {
     /* all members are private to qemu-error.c */
     enum { LOC_NONE, LOC_CMDLINE, LOC_FILE } kind;
@@ -36,6 +38,12 @@ 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);
+
+#define error_report_exit(...) do {             \
+        error_report(__VA_ARGS__);              \
+        exit(1);                                \
+    } while (0)
+
 const char *error_get_progname(void);
 extern bool enable_timestamp_msg;
 
diff --git a/scripts/coccinelle/error_report_exit.cocci 
b/scripts/coccinelle/error_report_exit.cocci
new file mode 100644
index 0000000..49f6c17
--- /dev/null
+++ b/scripts/coccinelle/error_report_exit.cocci
@@ -0,0 +1,13 @@
+@@
+expression list X;
+@@
+
+-error_report(X);
++error_report_exit(X);
+-exit(
+(
+-1
+|
+-EXIT_FAILURE
+)
+-);
-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]