Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20210921' into staging
[qemu.git] / qga / vss-win32 / requester.h
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
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 struct Error;
23
24 /* Callback to set Error; used to avoid linking glib to the DLL */
25 typedef void (*ErrorSetFunc)(struct Error **errp,
26 const char *src, int line, const char *func,
27 int win32_err, const char *fmt, ...)
28 GCC_FMT_ATTR(6, 7);
29 typedef struct ErrorSet {
30 ErrorSetFunc error_setg_win32_wrapper;
31 struct Error **errp; /* restriction: must not be null */
32 } ErrorSet;
33
34 STDAPI requester_init(void);
35 STDAPI requester_deinit(void);
36
37 typedef struct volList volList;
38
39 struct volList {
40 volList *next;
41 char *value;
42 };
43
44 typedef void (*QGAVSSRequesterFunc)(int *, void *, ErrorSet *);
45 void requester_freeze(int *num_vols, void *volList, ErrorSet *errset);
46 void requester_thaw(int *num_vols, void *volList, ErrorSet *errset);
47
48 #ifdef __cplusplus
49 }
50 #endif
51
52 #endif