summaryrefslogtreecommitdiffstats
path: root/qemu/hw/net/vmxnet_debug.h
blob: 96495dbb12b324775cac7dd7bcdffad7b579df67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*
 * QEMU VMWARE VMXNET* paravirtual NICs - debugging facilities
 *
 * Copyright (c) 2012 Ravello Systems LTD (http://ravellosystems.com)
 *
 * Developed by Daynix Computing LTD (http://www.daynix.com)
 *
 * Authors:
 * Dmitry Fleytman <dmitry@daynix.com>
 * Tamir Shomer <tamirs@daynix.com>
 * Yan Vugenfirer <yan@daynix.com>
 *
 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 * See the COPYING file in the top-level directory.
 *
 */

#ifndef _QEMU_VMXNET_DEBUG_H
#define _QEMU_VMXNET_DEBUG_H

#define VMXNET_DEVICE_NAME "vmxnet3"

#define VMXNET_DEBUG_WARNINGS
#define VMXNET_DEBUG_ERRORS

#undef VMXNET_DEBUG_CB
#undef VMXNET_DEBUG_INTERRUPTS
#undef VMXNET_DEBUG_CONFIG
#undef VMXNET_DEBUG_RINGS
#undef VMXNET_DEBUG_PACKETS
#undef VMXNET_DEBUG_SHMEM_ACCESS

#ifdef VMXNET_DEBUG_CB
#  define VMXNET_DEBUG_CB_ENABLED 1
#else
#  define VMXNET_DEBUG_CB_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_WARNINGS
#  define VMXNET_DEBUG_WARNINGS_ENABLED 1
#else
#  define VMXNET_DEBUG_WARNINGS_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_ERRORS
#  define VMXNET_DEBUG_ERRORS_ENABLED 1
#else
#  define VMXNET_DEBUG_ERRORS_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_CONFIG
#  define VMXNET_DEBUG_CONFIG_ENABLED 1
#else
#  define VMXNET_DEBUG_CONFIG_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_RINGS
#  define VMXNET_DEBUG_RINGS_ENABLED 1
#else
#  define VMXNET_DEBUG_RINGS_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_PACKETS
#  define VMXNET_DEBUG_PACKETS_ENABLED 1
#else
#  define VMXNET_DEBUG_PACKETS_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_INTERRUPTS
#  define VMXNET_DEBUG_INTERRUPTS_ENABLED 1
#else
#  define VMXNET_DEBUG_INTERRUPTS_ENABLED 0
#endif

#ifdef VMXNET_DEBUG_SHMEM_ACCESS
#  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 1
#else
#  define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 0
#endif

#define VMW_SHPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_SHMEM_ACCESS_ENABLED) {                              \
            printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
       }                                                                      \
    } while (0)

#define VMW_CBPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_CB_ENABLED) {                                        \
            printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_PKPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_PACKETS_ENABLED) {                                   \
            printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_WRPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_WARNINGS_ENABLED) {                                  \
            printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_ERPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_ERRORS_ENABLED) {                                    \
            printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_IRPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_INTERRUPTS_ENABLED) {                                \
            printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_CFPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_CONFIG_ENABLED) {                                    \
            printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMW_RIPRN(fmt, ...)                                                   \
    do {                                                                      \
        if (VMXNET_DEBUG_RINGS_ENABLED) {                                     \
            printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__,   \
                ## __VA_ARGS__);                                              \
        }                                                                     \
    } while (0)

#define VMXNET_MF       "%02X:%02X:%02X:%02X:%02X:%02X"
#define VMXNET_MA(a)    (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]

#endif /* _QEMU_VMXNET3_DEBUG_H  */