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