xref: /qemu/qga/vss-win32/requester.h (revision e7cf59e84767e30b507b6bd7c1347072ec12b636)
1 /*
2  * QEMU Guest Agent VSS requester declarations
3  *
4  * Copyright Hitachi Data Systems Corp. 2013
5  *
6  * Authors:
7  *  Tomoki Sekiyama   <tomoki.sekiyama@hds.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10  * See the COPYING file in the top-level directory.
11  */
12 
13 #ifndef VSS_WIN32_REQUESTER_H
14 #define VSS_WIN32_REQUESTER_H
15 
16 #include <basetyps.h>           /* STDAPI */
17 #include "qemu/compiler.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 struct Error;
24 
25 /* Callback to set Error; used to avoid linking glib to the DLL */
26 typedef void (*ErrorSetFunc)(struct Error **errp, int win32_err,
27                              const char *fmt, ...) GCC_FMT_ATTR(3, 4);
28 typedef struct ErrorSet {
29     ErrorSetFunc error_setg_win32;
30     struct Error **errp;
31 } ErrorSet;
32 
33 STDAPI requester_init(void);
34 STDAPI requester_deinit(void);
35 
36 typedef void (*QGAVSSRequesterFunc)(int *, ErrorSet *);
37 void requester_freeze(int *num_vols, ErrorSet *errset);
38 void requester_thaw(int *num_vols, ErrorSet *errset);
39 
40 #ifdef __cplusplus
41 }
42 #endif
43 
44 #endif
45