Upgrade to OpenVPN 2.1.0
[tomato.git] / release / src / router / openvpn / tap-win32 / error.h
blobd3deb28050dc24c8c921174a682822c3fcc43efb
1 /*
2 * TAP-Win32/TAP-Win64 -- A kernel driver to provide virtual tap
3 * device functionality on Windows.
5 * This code was inspired by the CIPE-Win32 driver by Damion K. Wilson.
7 * This source code is Copyright (C) 2002-2009 OpenVPN Technologies, Inc.,
8 * and is released under the GPL version 2 (see below).
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2
12 * as published by the Free Software Foundation.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program (see the file COPYING included with this
21 * distribution); if not, write to the Free Software Foundation, Inc.,
22 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 //-----------------
26 // DEBUGGING OUTPUT
27 //-----------------
29 #define NOTE_ERROR() \
30 { \
31 g_LastErrorFilename = __FILE__; \
32 g_LastErrorLineNumber = __LINE__; \
35 #if DBG
37 typedef struct {
38 unsigned int in;
39 unsigned int out;
40 unsigned int capacity;
41 char *text;
42 BOOLEAN error;
43 MUTEX lock;
44 } DebugOutput;
46 VOID MyDebugPrint (const unsigned char* format, ...);
48 VOID MyAssert (const unsigned char *file, int line);
50 VOID DumpPacket (const char *prefix,
51 const unsigned char *data,
52 unsigned int len);
54 VOID DumpPacket2 (const char *prefix,
55 const ETH_HEADER *eth,
56 const unsigned char *data,
57 unsigned int len);
59 #define CAN_WE_PRINT (DEBUGP_AT_DISPATCH || KeGetCurrentIrql () < DISPATCH_LEVEL)
61 #if ALSO_DBGPRINT
62 #define DEBUGP(fmt) { MyDebugPrint fmt; if (CAN_WE_PRINT) DbgPrint fmt; }
63 #else
64 #define DEBUGP(fmt) { MyDebugPrint fmt; }
65 #endif
67 #define MYASSERT(exp) \
68 { \
69 if (!(exp)) \
70 { \
71 MyAssert(__FILE__, __LINE__); \
72 } \
75 #define DUMP_PACKET(prefix, data, len) \
76 DumpPacket (prefix, data, len)
78 #define DUMP_PACKET2(prefix, eth, data, len) \
79 DumpPacket2 (prefix, eth, data, len)
81 #else
83 #define DEBUGP(fmt)
84 #define MYASSERT(exp)
85 #define DUMP_PACKET(prefix, data, len)
86 #define DUMP_PACKET2(prefix, eth, data, len)
88 #endif