xref: /openbmc/qemu/qga/vss-win32/vss-debug.cpp (revision adc97c4b808bb23d6bb17b8871787333af0086d2)
1*925d05d3SKonstantin Kostiuk /*
2*925d05d3SKonstantin Kostiuk  * QEMU Guest Agent VSS debug declarations
3*925d05d3SKonstantin Kostiuk  *
4*925d05d3SKonstantin Kostiuk  * Copyright (C) 2023 Red Hat Inc
5*925d05d3SKonstantin Kostiuk  *
6*925d05d3SKonstantin Kostiuk  * Authors:
7*925d05d3SKonstantin Kostiuk  *  Konstantin Kostiuk <kkostiuk@redhat.com>
8*925d05d3SKonstantin Kostiuk  *
9*925d05d3SKonstantin Kostiuk  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10*925d05d3SKonstantin Kostiuk  * See the COPYING file in the top-level directory.
11*925d05d3SKonstantin Kostiuk  */
12*925d05d3SKonstantin Kostiuk 
13*925d05d3SKonstantin Kostiuk #include "qemu/osdep.h"
14*925d05d3SKonstantin Kostiuk #include "vss-debug.h"
15*925d05d3SKonstantin Kostiuk #include "vss-common.h"
16*925d05d3SKonstantin Kostiuk 
qga_debug_internal(const char * funcname,const char * fmt,...)17*925d05d3SKonstantin Kostiuk void qga_debug_internal(const char *funcname, const char *fmt, ...)
18*925d05d3SKonstantin Kostiuk {
19*925d05d3SKonstantin Kostiuk     char user_string[512] = {0};
20*925d05d3SKonstantin Kostiuk     char full_string[640] = {0};
21*925d05d3SKonstantin Kostiuk 
22*925d05d3SKonstantin Kostiuk     va_list args;
23*925d05d3SKonstantin Kostiuk     va_start(args, fmt);
24*925d05d3SKonstantin Kostiuk     if (vsnprintf(user_string, _countof(user_string), fmt, args) <= 0) {
25*925d05d3SKonstantin Kostiuk         va_end(args);
26*925d05d3SKonstantin Kostiuk         return;
27*925d05d3SKonstantin Kostiuk     }
28*925d05d3SKonstantin Kostiuk 
29*925d05d3SKonstantin Kostiuk     va_end(args);
30*925d05d3SKonstantin Kostiuk 
31*925d05d3SKonstantin Kostiuk     if (snprintf(full_string, _countof(full_string),
32*925d05d3SKonstantin Kostiuk                  QGA_PROVIDER_NAME "[%lu]: %s %s\n",
33*925d05d3SKonstantin Kostiuk                  GetCurrentThreadId(), funcname, user_string) <= 0) {
34*925d05d3SKonstantin Kostiuk         return;
35*925d05d3SKonstantin Kostiuk     }
36*925d05d3SKonstantin Kostiuk 
37*925d05d3SKonstantin Kostiuk     OutputDebugString(full_string);
38*925d05d3SKonstantin Kostiuk     fputs(full_string, stderr);
39*925d05d3SKonstantin Kostiuk }
40