xref: /qemu/hw/net/vmxnet_debug.h (revision 7a4e543d)
1 /*
2  * QEMU VMWARE VMXNET* paravirtual NICs - debugging facilities
3  *
4  * Copyright (c) 2012 Ravello Systems LTD (http://ravellosystems.com)
5  *
6  * Developed by Daynix Computing LTD (http://www.daynix.com)
7  *
8  * Authors:
9  * Dmitry Fleytman <dmitry@daynix.com>
10  * Tamir Shomer <tamirs@daynix.com>
11  * Yan Vugenfirer <yan@daynix.com>
12  *
13  * This work is licensed under the terms of the GNU GPL, version 2 or later.
14  * See the COPYING file in the top-level directory.
15  *
16  */
17 
18 #ifndef _QEMU_VMXNET_DEBUG_H
19 #define _QEMU_VMXNET_DEBUG_H
20 
21 #define VMXNET_DEVICE_NAME "vmxnet3"
22 
23 #define VMXNET_DEBUG_WARNINGS
24 #define VMXNET_DEBUG_ERRORS
25 
26 #undef VMXNET_DEBUG_CB
27 #undef VMXNET_DEBUG_INTERRUPTS
28 #undef VMXNET_DEBUG_CONFIG
29 #undef VMXNET_DEBUG_RINGS
30 #undef VMXNET_DEBUG_PACKETS
31 #undef VMXNET_DEBUG_SHMEM_ACCESS
32 
33 #ifdef VMXNET_DEBUG_CB
34 #  define VMXNET_DEBUG_CB_ENABLED 1
35 #else
36 #  define VMXNET_DEBUG_CB_ENABLED 0
37 #endif
38 
39 #ifdef VMXNET_DEBUG_WARNINGS
40 #  define VMXNET_DEBUG_WARNINGS_ENABLED 1
41 #else
42 #  define VMXNET_DEBUG_WARNINGS_ENABLED 0
43 #endif
44 
45 #ifdef VMXNET_DEBUG_ERRORS
46 #  define VMXNET_DEBUG_ERRORS_ENABLED 1
47 #else
48 #  define VMXNET_DEBUG_ERRORS_ENABLED 0
49 #endif
50 
51 #ifdef VMXNET_DEBUG_CONFIG
52 #  define VMXNET_DEBUG_CONFIG_ENABLED 1
53 #else
54 #  define VMXNET_DEBUG_CONFIG_ENABLED 0
55 #endif
56 
57 #ifdef VMXNET_DEBUG_RINGS
58 #  define VMXNET_DEBUG_RINGS_ENABLED 1
59 #else
60 #  define VMXNET_DEBUG_RINGS_ENABLED 0
61 #endif
62 
63 #ifdef VMXNET_DEBUG_PACKETS
64 #  define VMXNET_DEBUG_PACKETS_ENABLED 1
65 #else
66 #  define VMXNET_DEBUG_PACKETS_ENABLED 0
67 #endif
68 
69 #ifdef VMXNET_DEBUG_INTERRUPTS
70 #  define VMXNET_DEBUG_INTERRUPTS_ENABLED 1
71 #else
72 #  define VMXNET_DEBUG_INTERRUPTS_ENABLED 0
73 #endif
74 
75 #ifdef VMXNET_DEBUG_SHMEM_ACCESS
76 #  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 1
77 #else
78 #  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 0
79 #endif
80 
81 #define VMW_SHPRN(fmt, ...)                                                   \
82     do {                                                                      \
83         if (VMXNET_DEBUG_SHMEM_ACCESS_ENABLED) {                              \
84             printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
85                 ## __VA_ARGS__);                                              \
86        }                                                                      \
87     } while (0)
88 
89 #define VMW_CBPRN(fmt, ...)                                                   \
90     do {                                                                      \
91         if (VMXNET_DEBUG_CB_ENABLED) {                                        \
92             printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
93                 ## __VA_ARGS__);                                              \
94         }                                                                     \
95     } while (0)
96 
97 #define VMW_PKPRN(fmt, ...)                                                   \
98     do {                                                                      \
99         if (VMXNET_DEBUG_PACKETS_ENABLED) {                                   \
100             printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
101                 ## __VA_ARGS__);                                              \
102         }                                                                     \
103     } while (0)
104 
105 #define VMW_WRPRN(fmt, ...)                                                   \
106     do {                                                                      \
107         if (VMXNET_DEBUG_WARNINGS_ENABLED) {                                  \
108             printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
109                 ## __VA_ARGS__);                                              \
110         }                                                                     \
111     } while (0)
112 
113 #define VMW_ERPRN(fmt, ...)                                                   \
114     do {                                                                      \
115         if (VMXNET_DEBUG_ERRORS_ENABLED) {                                    \
116             printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
117                 ## __VA_ARGS__);                                              \
118         }                                                                     \
119     } while (0)
120 
121 #define VMW_IRPRN(fmt, ...)                                                   \
122     do {                                                                      \
123         if (VMXNET_DEBUG_INTERRUPTS_ENABLED) {                                \
124             printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
125                 ## __VA_ARGS__);                                              \
126         }                                                                     \
127     } while (0)
128 
129 #define VMW_CFPRN(fmt, ...)                                                   \
130     do {                                                                      \
131         if (VMXNET_DEBUG_CONFIG_ENABLED) {                                    \
132             printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
133                 ## __VA_ARGS__);                                              \
134         }                                                                     \
135     } while (0)
136 
137 #define VMW_RIPRN(fmt, ...)                                                   \
138     do {                                                                      \
139         if (VMXNET_DEBUG_RINGS_ENABLED) {                                     \
140             printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
141                 ## __VA_ARGS__);                                              \
142         }                                                                     \
143     } while (0)
144 
145 #define VMXNET_MF       "%02X:%02X:%02X:%02X:%02X:%02X"
146 #define VMXNET_MA(a)    (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
147 
148 #endif /* _QEMU_VMXNET3_DEBUG_H  */
149