]> git.proxmox.com Git - ceph.git/blob - ceph/src/tools/rbd_ggate/debug.cc
update sources to v12.1.3
[ceph.git] / ceph / src / tools / rbd_ggate / debug.cc
1 #include "common/debug.h"
2 #include "common/errno.h"
3 #include "debug.h"
4
5 #define dout_context g_ceph_context
6 #define dout_subsys ceph_subsys_rbd
7 #undef dout_prefix
8 #define dout_prefix *_dout << "rbd::ggate: "
9
10 extern "C" void debugv(int level, const char *fmt, va_list ap) {
11 char *msg;
12 int saved_errno = errno;
13
14 if (g_ceph_context == nullptr) {
15 return;
16 }
17
18 vasprintf(&msg, fmt, ap);
19
20 dout(level) << msg << dendl;
21
22 free(msg);
23 errno = saved_errno;
24 }
25
26 extern "C" void debug(int level, const char *fmt, ...) {
27 va_list ap;
28
29 va_start(ap, fmt);
30 debugv(level, fmt, ap);
31 va_end(ap);
32 }
33
34 extern "C" void errx(const char *fmt, ...) {
35 va_list ap;
36
37 va_start(ap, fmt);
38 debugv(-1, fmt, ap);
39 va_end(ap);
40 }
41
42 extern "C" void err(const char *fmt, ...) {
43 va_list ap;
44 char *msg;
45 int saved_errno = errno;
46
47 va_start(ap, fmt);
48 vasprintf(&msg, fmt, ap);
49 va_end(ap);
50 errno = saved_errno;
51
52 errx("%s: %s", msg, cpp_strerror(errno).c_str());
53
54 free(msg);
55 }