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