xref: /qemu/qga/vss-win32/requester.h (revision c4b8ffcb)
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     G_GNUC_PRINTF(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
53