diff options
Diffstat (limited to 'qga')
-rw-r--r-- | qga/vss-win32.c | 2 | ||||
-rw-r--r-- | qga/vss-win32/requester.cpp | 5 | ||||
-rw-r--r-- | qga/vss-win32/requester.h | 6 |
3 files changed, 8 insertions, 5 deletions
diff --git a/qga/vss-win32.c b/qga/vss-win32.c index d75d7bbf09..2142b4964d 100644 --- a/qga/vss-win32.c +++ b/qga/vss-win32.c @@ -150,7 +150,7 @@ 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_setg_win32 = error_setg_win32, + .error_setg_win32 = error_setg_win32_internal, .errp = errp, }; diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index aae0d5f2bf..9b3e310971 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -23,8 +23,9 @@ /* Call QueryStatus every 10 ms while waiting for frozen event */ #define VSS_TIMEOUT_EVENT_MSEC 10 -#define err_set(e, err, fmt, ...) \ - ((e)->error_setg_win32((e)->errp, err, fmt, ## __VA_ARGS__)) +#define err_set(e, err, fmt, ...) \ + ((e)->error_setg_win32((e)->errp, __FILE__, __LINE__, __func__, \ + err, fmt, ## __VA_ARGS__)) /* Bad idea, works only when (e)->errp != NULL: */ #define err_is_set(e) ((e)->errp && *(e)->errp) /* To lift this restriction, error_propagate(), like we do in QEMU code */ diff --git a/qga/vss-win32/requester.h b/qga/vss-win32/requester.h index 34be5c1d11..c3093cf4b6 100644 --- a/qga/vss-win32/requester.h +++ b/qga/vss-win32/requester.h @@ -23,8 +23,10 @@ extern "C" { struct Error; /* Callback to set Error; used to avoid linking glib to the DLL */ -typedef void (*ErrorSetFunc)(struct Error **errp, int win32_err, - const char *fmt, ...) GCC_FMT_ATTR(3, 4); +typedef void (*ErrorSetFunc)(struct Error **errp, + const char *src, int line, const char *func, + int win32_err, const char *fmt, ...) + GCC_FMT_ATTR(6, 7); typedef struct ErrorSet { ErrorSetFunc error_setg_win32; struct Error **errp; /* restriction: must not be null */ |