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 #include "qemu/compiler.h" 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 struct Error; 24 25 /* Callback to set Error; used to avoid linking glib to the DLL */ 26 typedef void (*ErrorSetFunc)(struct Error **errp, 27 const char *src, int line, const char *func, 28 int win32_err, const char *fmt, ...) 29 GCC_FMT_ATTR(6, 7); 30 typedef struct ErrorSet { 31 ErrorSetFunc error_setg_win32; 32 struct Error **errp; /* restriction: must not be null */ 33 } ErrorSet; 34 35 STDAPI requester_init(void); 36 STDAPI requester_deinit(void); 37 38 typedef void (*QGAVSSRequesterFunc)(int *, ErrorSet *); 39 void requester_freeze(int *num_vols, ErrorSet *errset); 40 void requester_thaw(int *num_vols, ErrorSet *errset); 41 42 #ifdef __cplusplus 43 } 44 #endif 45 46 #endif 47