xref: /openbmc/qemu/hw/net/vmxnet_debug.h (revision 98c710f2d5cdf37f29a267352eb1f3c28cbf369d)
149ab747fSPaolo Bonzini /*
249ab747fSPaolo Bonzini  * QEMU VMWARE VMXNET* paravirtual NICs - debugging facilities
349ab747fSPaolo Bonzini  *
449ab747fSPaolo Bonzini  * Copyright (c) 2012 Ravello Systems LTD (http://ravellosystems.com)
549ab747fSPaolo Bonzini  *
649ab747fSPaolo Bonzini  * Developed by Daynix Computing LTD (http://www.daynix.com)
749ab747fSPaolo Bonzini  *
849ab747fSPaolo Bonzini  * Authors:
949ab747fSPaolo Bonzini  * Dmitry Fleytman <dmitry@daynix.com>
1049ab747fSPaolo Bonzini  * Tamir Shomer <tamirs@daynix.com>
1149ab747fSPaolo Bonzini  * Yan Vugenfirer <yan@daynix.com>
1249ab747fSPaolo Bonzini  *
1349ab747fSPaolo Bonzini  * This work is licensed under the terms of the GNU GPL, version 2 or later.
1449ab747fSPaolo Bonzini  * See the COPYING file in the top-level directory.
1549ab747fSPaolo Bonzini  *
1649ab747fSPaolo Bonzini  */
1749ab747fSPaolo Bonzini 
1849ab747fSPaolo Bonzini #ifndef QEMU_VMXNET_DEBUG_H
1949ab747fSPaolo Bonzini #define QEMU_VMXNET_DEBUG_H
2049ab747fSPaolo Bonzini 
2149ab747fSPaolo Bonzini #define VMXNET_DEVICE_NAME "vmxnet3"
2249ab747fSPaolo Bonzini 
2349ab747fSPaolo Bonzini #define VMXNET_DEBUG_WARNINGS
2449ab747fSPaolo Bonzini #define VMXNET_DEBUG_ERRORS
2549ab747fSPaolo Bonzini 
26*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_CB
27*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_INTERRUPTS
28*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_CONFIG
29*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_RINGS
30*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_PACKETS
31*71c2f5b9SMiao Yan #undef VMXNET_DEBUG_SHMEM_ACCESS
3249ab747fSPaolo Bonzini 
3349ab747fSPaolo Bonzini #ifdef VMXNET_DEBUG_CB
34*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_CB_ENABLED 1
3549ab747fSPaolo Bonzini #else
36*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_CB_ENABLED 0
3749ab747fSPaolo Bonzini #endif
3849ab747fSPaolo Bonzini 
3949ab747fSPaolo Bonzini #ifdef VMXNET_DEBUG_WARNINGS
40*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_WARNINGS_ENABLED 1
4149ab747fSPaolo Bonzini #else
42*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_WARNINGS_ENABLED 0
4349ab747fSPaolo Bonzini #endif
4449ab747fSPaolo Bonzini 
4549ab747fSPaolo Bonzini #ifdef VMXNET_DEBUG_ERRORS
46*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_ERRORS_ENABLED 1
4749ab747fSPaolo Bonzini #else
48*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_ERRORS_ENABLED 0
4949ab747fSPaolo Bonzini #endif
5049ab747fSPaolo Bonzini 
5149ab747fSPaolo Bonzini #ifdef VMXNET_DEBUG_CONFIG
52*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_CONFIG_ENABLED 1
5349ab747fSPaolo Bonzini #else
54*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_CONFIG_ENABLED 0
5549ab747fSPaolo Bonzini #endif
5649ab747fSPaolo Bonzini 
5749ab747fSPaolo Bonzini #ifdef VMXNET_DEBUG_RINGS
58*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_RINGS_ENABLED 1
59*71c2f5b9SMiao Yan #else
60*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_RINGS_ENABLED 0
61*71c2f5b9SMiao Yan #endif
62*71c2f5b9SMiao Yan 
63*71c2f5b9SMiao Yan #ifdef VMXNET_DEBUG_PACKETS
64*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_PACKETS_ENABLED 1
65*71c2f5b9SMiao Yan #else
66*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_PACKETS_ENABLED 0
67*71c2f5b9SMiao Yan #endif
68*71c2f5b9SMiao Yan 
69*71c2f5b9SMiao Yan #ifdef VMXNET_DEBUG_INTERRUPTS
70*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_INTERRUPTS_ENABLED 1
71*71c2f5b9SMiao Yan #else
72*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_INTERRUPTS_ENABLED 0
73*71c2f5b9SMiao Yan #endif
74*71c2f5b9SMiao Yan 
75*71c2f5b9SMiao Yan #ifdef VMXNET_DEBUG_SHMEM_ACCESS
76*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 1
77*71c2f5b9SMiao Yan #else
78*71c2f5b9SMiao Yan #  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 0
79*71c2f5b9SMiao Yan #endif
80*71c2f5b9SMiao Yan 
81*71c2f5b9SMiao Yan #define VMW_SHPRN(fmt, ...)                                                   \
82*71c2f5b9SMiao Yan     do {                                                                      \
83*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_SHMEM_ACCESS_ENABLED) {                              \
84*71c2f5b9SMiao Yan             printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
85*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
86*71c2f5b9SMiao Yan        }                                                                      \
87*71c2f5b9SMiao Yan     } while (0)
88*71c2f5b9SMiao Yan 
89*71c2f5b9SMiao Yan #define VMW_CBPRN(fmt, ...)                                                   \
90*71c2f5b9SMiao Yan     do {                                                                      \
91*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_CB_ENABLED) {                                        \
92*71c2f5b9SMiao Yan             printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
93*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
94*71c2f5b9SMiao Yan         }                                                                     \
95*71c2f5b9SMiao Yan     } while (0)
96*71c2f5b9SMiao Yan 
97*71c2f5b9SMiao Yan #define VMW_PKPRN(fmt, ...)                                                   \
98*71c2f5b9SMiao Yan     do {                                                                      \
99*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_PACKETS_ENABLED) {                                   \
100*71c2f5b9SMiao Yan             printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
101*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
102*71c2f5b9SMiao Yan         }                                                                     \
103*71c2f5b9SMiao Yan     } while (0)
104*71c2f5b9SMiao Yan 
105*71c2f5b9SMiao Yan #define VMW_WRPRN(fmt, ...)                                                   \
106*71c2f5b9SMiao Yan     do {                                                                      \
107*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_WARNINGS_ENABLED) {                                  \
108*71c2f5b9SMiao Yan             printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
109*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
110*71c2f5b9SMiao Yan         }                                                                     \
111*71c2f5b9SMiao Yan     } while (0)
112*71c2f5b9SMiao Yan 
113*71c2f5b9SMiao Yan #define VMW_ERPRN(fmt, ...)                                                   \
114*71c2f5b9SMiao Yan     do {                                                                      \
115*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_ERRORS_ENABLED) {                                    \
116*71c2f5b9SMiao Yan             printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
117*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
118*71c2f5b9SMiao Yan         }                                                                     \
119*71c2f5b9SMiao Yan     } while (0)
120*71c2f5b9SMiao Yan 
121*71c2f5b9SMiao Yan #define VMW_IRPRN(fmt, ...)                                                   \
122*71c2f5b9SMiao Yan     do {                                                                      \
123*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_INTERRUPTS_ENABLED) {                                \
124*71c2f5b9SMiao Yan             printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
125*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
126*71c2f5b9SMiao Yan         }                                                                     \
127*71c2f5b9SMiao Yan     } while (0)
128*71c2f5b9SMiao Yan 
129*71c2f5b9SMiao Yan #define VMW_CFPRN(fmt, ...)                                                   \
130*71c2f5b9SMiao Yan     do {                                                                      \
131*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_CONFIG_ENABLED) {                                    \
132*71c2f5b9SMiao Yan             printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
133*71c2f5b9SMiao Yan                 ## __VA_ARGS__);                                              \
134*71c2f5b9SMiao Yan         }                                                                     \
135*71c2f5b9SMiao Yan     } while (0)
136*71c2f5b9SMiao Yan 
13749ab747fSPaolo Bonzini #define VMW_RIPRN(fmt, ...)                                                   \
13849ab747fSPaolo Bonzini     do {                                                                      \
139*71c2f5b9SMiao Yan         if (VMXNET_DEBUG_RINGS_ENABLED) {                                     \
14049ab747fSPaolo Bonzini             printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
14149ab747fSPaolo Bonzini                 ## __VA_ARGS__);                                              \
142*71c2f5b9SMiao Yan         }                                                                     \
14349ab747fSPaolo Bonzini     } while (0)
14449ab747fSPaolo Bonzini 
14549ab747fSPaolo Bonzini #endif /* QEMU_VMXNET_DEBUG_H */
146