summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/qapi/error.h9
-rw-r--r--qga/vss-win32.c5
-rw-r--r--qga/vss-win32/requester.cpp2
-rw-r--r--qga/vss-win32/requester.h11
-rw-r--r--util/error.c5
5 files changed, 13 insertions, 19 deletions
diff --git a/include/qapi/error.h b/include/qapi/error.h
index 34af4e103f..692e01346e 100644
--- a/include/qapi/error.h
+++ b/include/qapi/error.h
@@ -44,8 +44,8 @@ void error_set_errno(Error **errp, int os_error, ErrorClass err_class,
* printf-style human message, followed by a g_win32_error_message() string if
* @win32_err is not zero.
*/
-void error_set_win32(Error **errp, int win32_err, ErrorClass err_class,
- const char *fmt, ...) GCC_FMT_ATTR(4, 5);
+void error_setg_win32(Error **errp, int win32_err, const char *fmt, ...)
+ GCC_FMT_ATTR(3, 4);
#endif
/**
@@ -56,11 +56,6 @@ void error_setg(Error **errp, const char *fmt, ...)
#define error_setg_errno(errp, os_error, fmt, ...) \
error_set_errno(errp, os_error, ERROR_CLASS_GENERIC_ERROR, \
fmt, ## __VA_ARGS__)
-#ifdef _WIN32
-#define error_setg_win32(errp, win32_err, fmt, ...) \
- error_set_win32(errp, win32_err, ERROR_CLASS_GENERIC_ERROR, \
- fmt, ## __VA_ARGS__)
-#endif
/**
* Helper for open() errors
diff --git a/qga/vss-win32.c b/qga/vss-win32.c
index 0e4095736e..e1f539835c 100644
--- a/qga/vss-win32.c
+++ b/qga/vss-win32.c
@@ -150,9 +150,8 @@ void qga_vss_fsfreeze(int *nr_volume, Error **errp, bool freeze)
const char *func_name = freeze ? "requester_freeze" : "requester_thaw";
QGAVSSRequesterFunc func;
ErrorSet errset = {
- .error_set = (ErrorSetFunc)error_set_win32,
- .errp = (void **)errp,
- .err_class = ERROR_CLASS_GENERIC_ERROR
+ .error_setg_win32 = error_setg_win32,
+ .errp = errp,
};
func = (QGAVSSRequesterFunc)GetProcAddress(provider_lib, func_name);
diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index 922e74ddfc..b130fee934 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -24,7 +24,7 @@
#define VSS_TIMEOUT_EVENT_MSEC 10
#define err_set(e, err, fmt, ...) \
- ((e)->error_set((e)->errp, err, (e)->err_class, fmt, ## __VA_ARGS__))
+ ((e)->error_setg_win32((e)->errp, err, fmt, ## __VA_ARGS__))
#define err_is_set(e) ((e)->errp && *(e)->errp)
diff --git a/qga/vss-win32/requester.h b/qga/vss-win32/requester.h
index 374f9b8d16..0a8d048874 100644
--- a/qga/vss-win32/requester.h
+++ b/qga/vss-win32/requester.h
@@ -20,13 +20,14 @@
extern "C" {
#endif
+struct Error;
+
/* Callback to set Error; used to avoid linking glib to the DLL */
-typedef void (*ErrorSetFunc)(void **errp, int win32_err, int err_class,
- const char *fmt, ...) GCC_FMT_ATTR(4, 5);
+typedef void (*ErrorSetFunc)(struct Error **errp, int win32_err,
+ const char *fmt, ...) GCC_FMT_ATTR(3, 4);
typedef struct ErrorSet {
- ErrorSetFunc error_set;
- void **errp;
- int err_class;
+ ErrorSetFunc error_setg_win32;
+ struct Error **errp;
} ErrorSet;
STDAPI requester_init(void);
diff --git a/util/error.c b/util/error.c
index 8f12f67012..9620f2a1f6 100644
--- a/util/error.c
+++ b/util/error.c
@@ -96,8 +96,7 @@ void error_setg_file_open(Error **errp, int os_errno, const char *filename)
#ifdef _WIN32
-void error_set_win32(Error **errp, int win32_err, ErrorClass err_class,
- const char *fmt, ...)
+void error_setg_win32(Error **errp, int win32_err, const char *fmt, ...)
{
va_list ap;
char *msg1, *msg2;
@@ -107,7 +106,7 @@ void error_set_win32(Error **errp, int win32_err, ErrorClass err_class,
}
va_start(ap, fmt);
- error_setv(errp, err_class, fmt, ap);
+ error_setv(errp, ERROR_CLASS_GENERIC_ERROR, fmt, ap);
va_end(ap);
if (win32_err != 0) {