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