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