]>
Commit | Line | Data |
---|---|---|
75020a70 DF |
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 <[email protected]> | |
10 | * Tamir Shomer <[email protected]> | |
11 | * Yan Vugenfirer <[email protected]> | |
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_CB */ | |
24 | #define VMXNET_DEBUG_WARNINGS | |
25 | #define VMXNET_DEBUG_ERRORS | |
26 | /* #define VMXNET_DEBUG_INTERRUPTS */ | |
27 | /* #define VMXNET_DEBUG_CONFIG */ | |
28 | /* #define VMXNET_DEBUG_RINGS */ | |
29 | /* #define VMXNET_DEBUG_PACKETS */ | |
30 | /* #define VMXNET_DEBUG_SHMEM_ACCESS */ | |
31 | ||
32 | #ifdef VMXNET_DEBUG_SHMEM_ACCESS | |
33 | #define VMW_SHPRN(fmt, ...) \ | |
34 | do { \ | |
35 | printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
36 | ## __VA_ARGS__); \ | |
37 | } while (0) | |
38 | #else | |
39 | #define VMW_SHPRN(fmt, ...) do {} while (0) | |
40 | #endif | |
41 | ||
42 | #ifdef VMXNET_DEBUG_CB | |
43 | #define VMW_CBPRN(fmt, ...) \ | |
44 | do { \ | |
45 | printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
46 | ## __VA_ARGS__); \ | |
47 | } while (0) | |
48 | #else | |
49 | #define VMW_CBPRN(fmt, ...) do {} while (0) | |
50 | #endif | |
51 | ||
52 | #ifdef VMXNET_DEBUG_PACKETS | |
53 | #define VMW_PKPRN(fmt, ...) \ | |
54 | do { \ | |
55 | printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
56 | ## __VA_ARGS__); \ | |
57 | } while (0) | |
58 | #else | |
59 | #define VMW_PKPRN(fmt, ...) do {} while (0) | |
60 | #endif | |
61 | ||
62 | #ifdef VMXNET_DEBUG_WARNINGS | |
63 | #define VMW_WRPRN(fmt, ...) \ | |
64 | do { \ | |
65 | printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
66 | ## __VA_ARGS__); \ | |
67 | } while (0) | |
68 | #else | |
69 | #define VMW_WRPRN(fmt, ...) do {} while (0) | |
70 | #endif | |
71 | ||
72 | #ifdef VMXNET_DEBUG_ERRORS | |
73 | #define VMW_ERPRN(fmt, ...) \ | |
74 | do { \ | |
75 | printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
76 | ## __VA_ARGS__); \ | |
77 | } while (0) | |
78 | #else | |
79 | #define VMW_ERPRN(fmt, ...) do {} while (0) | |
80 | #endif | |
81 | ||
82 | #ifdef VMXNET_DEBUG_INTERRUPTS | |
83 | #define VMW_IRPRN(fmt, ...) \ | |
84 | do { \ | |
85 | printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
86 | ## __VA_ARGS__); \ | |
87 | } while (0) | |
88 | #else | |
89 | #define VMW_IRPRN(fmt, ...) do {} while (0) | |
90 | #endif | |
91 | ||
92 | #ifdef VMXNET_DEBUG_CONFIG | |
93 | #define VMW_CFPRN(fmt, ...) \ | |
94 | do { \ | |
95 | printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
96 | ## __VA_ARGS__); \ | |
97 | } while (0) | |
98 | #else | |
99 | #define VMW_CFPRN(fmt, ...) do {} while (0) | |
100 | #endif | |
101 | ||
102 | #ifdef VMXNET_DEBUG_RINGS | |
103 | #define VMW_RIPRN(fmt, ...) \ | |
104 | do { \ | |
105 | printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ | |
106 | ## __VA_ARGS__); \ | |
107 | } while (0) | |
108 | #else | |
109 | #define VMW_RIPRN(fmt, ...) do {} while (0) | |
110 | #endif | |
111 | ||
112 | #define VMXNET_MF "%02X:%02X:%02X:%02X:%02X:%02X" | |
113 | #define VMXNET_MA(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5] | |
114 | ||
115 | #endif /* _QEMU_VMXNET3_DEBUG_H */ |