xref: /openbmc/qemu/qga/vss-win32/requester.h (revision 9edc6313)
1b39297aeSTomoki Sekiyama /*
2b39297aeSTomoki Sekiyama  * QEMU Guest Agent VSS requester declarations
3b39297aeSTomoki Sekiyama  *
4b39297aeSTomoki Sekiyama  * Copyright Hitachi Data Systems Corp. 2013
5b39297aeSTomoki Sekiyama  *
6b39297aeSTomoki Sekiyama  * Authors:
7b39297aeSTomoki Sekiyama  *  Tomoki Sekiyama   <tomoki.sekiyama@hds.com>
8b39297aeSTomoki Sekiyama  *
9b39297aeSTomoki Sekiyama  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10b39297aeSTomoki Sekiyama  * See the COPYING file in the top-level directory.
11b39297aeSTomoki Sekiyama  */
12b39297aeSTomoki Sekiyama 
13b39297aeSTomoki Sekiyama #ifndef VSS_WIN32_REQUESTER_H
14b39297aeSTomoki Sekiyama #define VSS_WIN32_REQUESTER_H
15b39297aeSTomoki Sekiyama 
16ba1c2931SStefan Weil #include <basetyps.h>           /* STDAPI */
17b39297aeSTomoki Sekiyama 
18b39297aeSTomoki Sekiyama #ifdef __cplusplus
19b39297aeSTomoki Sekiyama extern "C" {
20b39297aeSTomoki Sekiyama #endif
21b39297aeSTomoki Sekiyama 
22e7cf59e8SMarkus Armbruster struct Error;
23e7cf59e8SMarkus Armbruster 
24b39297aeSTomoki Sekiyama /* Callback to set Error; used to avoid linking glib to the DLL */
251e9b65bbSMarkus Armbruster typedef void (*ErrorSetFunc)(struct Error **errp,
261e9b65bbSMarkus Armbruster                              const char *src, int line, const char *func,
271e9b65bbSMarkus Armbruster                              int win32_err, const char *fmt, ...)
28*9edc6313SMarc-André Lureau     G_GNUC_PRINTF(6, 7);
29b39297aeSTomoki Sekiyama typedef struct ErrorSet {
30e55eb806SMichael Roth     ErrorSetFunc error_setg_win32_wrapper;
3108e64640SMarkus Armbruster     struct Error **errp;        /* restriction: must not be null */
32b39297aeSTomoki Sekiyama } ErrorSet;
33b39297aeSTomoki Sekiyama 
34b39297aeSTomoki Sekiyama STDAPI requester_init(void);
35b39297aeSTomoki Sekiyama STDAPI requester_deinit(void);
36b39297aeSTomoki Sekiyama 
370692b03eSChen Hanxiao typedef struct volList volList;
380692b03eSChen Hanxiao 
390692b03eSChen Hanxiao struct volList {
400692b03eSChen Hanxiao     volList *next;
410692b03eSChen Hanxiao     char *value;
420692b03eSChen Hanxiao };
430692b03eSChen Hanxiao 
440692b03eSChen Hanxiao typedef void (*QGAVSSRequesterFunc)(int *, void *, ErrorSet *);
450692b03eSChen Hanxiao void requester_freeze(int *num_vols, void *volList, ErrorSet *errset);
460692b03eSChen Hanxiao void requester_thaw(int *num_vols, void *volList, ErrorSet *errset);
47b39297aeSTomoki Sekiyama 
48b39297aeSTomoki Sekiyama #ifdef __cplusplus
49b39297aeSTomoki Sekiyama }
50b39297aeSTomoki Sekiyama #endif
51b39297aeSTomoki Sekiyama 
52b39297aeSTomoki Sekiyama #endif
53