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 53