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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
vwdebug.h
Abstract:
Prototypes, structures, manifests, macros for VWIPXSPX debug routines
Author:
Richard L Firth (rfirth) 5-Oct-1993
Revision History:
5-Oct-1993 rfirth
Created
--*/
#ifndef _VWDEBUG_H_
#define _VWDEBUG_H_
//
// debug flags
//
#define DEBUG_ANY 0xFFFFFFFF // any debug flags set
#define DEBUG_NOTHING 0x00000001 // no debug output
#define DEBUG_CHECK_INT 0x00080000 // check interrupts (DOS)
#define DEBUG_STATS 0x00100000 // dump connection stats
#define DEBUG_DATA 0x00200000 // dump data (send)
#define DEBUG_FRAGMENTS 0x00400000 // dump fragments
#define DEBUG_HEADERS 0x00800000 // dump IPX/SPX headers
#define DEBUG_ECB 0x01000000 // dump 16-bit ECBs
#define DEBUG_XECB 0x02000000 // dump 32-bit XECBs
#define DEBUG_SOCKINFO 0x04000000 // dump SOCKET_INFO structs
#define DEBUG_CONNINFO 0x08000000 // dump CONNECTION_INFO structs
#define DEBUG_DLL 0x10000000 // include DLL attach/detach info
#define DEBUG_FLUSH 0x20000000 // flush every write
#define DEBUG_TO_FILE 0x40000000 // write debug stuff to file
#define DEBUG_TO_DBG 0x80000000 // debug stuff to debugger
#define VWDEBUG_FILE "VWDEBUG.LOG"
//
// function designators
//
#define FUNCTION_ANY 0xFFFFFFFF
#define FUNCTION_IPXOpenSocket 0x00000001 // 0x00
#define FUNCTION_IPXCloseSocket 0x00000002 // 0x01
#define FUNCTION_IPXGetLocalTarget 0x00000004 // 0x02
#define FUNCTION_IPXSendPacket 0x00000008 // 0x03
#define FUNCTION_IPXListenForPacket 0x00000010 // 0x04
#define FUNCTION_IPXScheduleIPXEvent 0x00000020 // 0x05
#define FUNCTION_IPXCancelEvent 0x00000040 // 0x06
#define FUNCTION_IPXScheduleAESEvent 0x00000080 // 0x07
#define FUNCTION_IPXGetIntervalMarker 0x00000100 // 0x08
#define FUNCTION_IPXGetInternetworkAddress 0x00000200 // 0x09
#define FUNCTION_IPXRelinquishControl 0x00000400 // 0x0A
#define FUNCTION_IPXDisconnectFromTarget 0x00000800 // 0x0B
#define FUNCTION_InvalidFunction_0C 0x00001000 // 0x0C
#define FUNCTION_InvalidFunction_0D 0x00002000 // 0x0D
#define FUNCTION_InvalidFunction_0E 0x00004000 // 0x0E
#define FUNCTION_InvalidFunction_0F 0x00008000 // 0x0F
#define FUNCTION_SPXInitialize 0x00010000 // 0x10
#define FUNCTION_SPXEstablishConnection 0x00020000 // 0x11
#define FUNCTION_SPXListenForConnection 0x00040000 // 0x12
#define FUNCTION_SPXTerminateConnection 0x00080000 // 0x13
#define FUNCTION_SPXAbortConnection 0x00100000 // 0x14
#define FUNCTION_SPXGetConnectionStatus 0x00200000 // 0x15
#define FUNCTION_SPXSendSequencedPacket 0x00400000 // 0x16
#define FUNCTION_SPXListenForSequencedPacket 0x00800000 // 0x17
#define FUNCTION_InvalidFunction_18 0x01000000 // 0x18
#define FUNCTION_InvalidFunction_19 0x02000000 // 0x19
#define FUNCTION_IPXGetMaxPacketSize 0x04000000 // 0x1A
#define FUNCTION_InvalidFunction_1B 0x08000000 // 0x1B
#define FUNCTION_InvalidFunction_1C 0x10000000 // 0x1C
#define FUNCTION_InvalidFunction_1D 0x20000000 // 0x1D
#define FUNCTION_InvalidFunction_1E 0x40000000 // 0x1E
#define FUNCTION_IPXGetInformation 0x80000000 // 0x1F
#define FUNCTION_IPXSendWithChecksum 0xFFFFFFFF // 0x20
#define FUNCTION_IPXGenerateChecksum 0xFFFFFFFF // 0x21
#define FUNCTION_IPXVerifyChecksum 0xFFFFFFFF // 0x22
//
// debug levels
//
#define IPXDBG_LEVEL_ALL 0
#define IPXDBG_LEVEL_INFO 1
#define IPXDBG_LEVEL_WARNING 2
#define IPXDBG_LEVEL_ERROR 3
#define IPXDBG_LEVEL_FATAL 4
#define IPXDBG_MIN_LEVEL IPXDBG_LEVEL_ALL
#define IPXDBG_MAX_LEVEL IPXDBG_LEVEL_FATAL
//
// info dump flags (VWDUMP)
//
#define DUMP_ECB_IN 0x00000001
#define DUMP_ECB_OUT 0x00000002
#define DUMP_SEND_DATA 0x00000004
#define DUMP_RECEIVE_DATA 0x00000008
//
// show flags
//
#define SHOW_ECBS 0x00000001 // show ECBs vs. raw data
#define SHOW_HEADERS 0x00000002 // show IPX/SPX headers vs. raw data
#if DBG
extern DWORD VwDebugFlags;
extern DWORD VwDebugFunctions;
extern DWORD VwShow;
extern DWORD DebugFlagsEx;
#define IF_DEBUG(f) if (VwDebugFlags & DEBUG_ ## f)
#define IF_NOT_DEBUG(f) if (!(VwDebugFlags & DEBUG_ ## f))
#define IF_SHOW(f) if (VwShow & SHOW_ ## f)
#define IF_NOT_SHOW(f) if (!(VwShow & SHOW_ ## f))
#define PRIVATE
#define IPXDBGPRINT(x) VwDebugPrint x
#define IPXDBGSTART() VwDebugStart()
#define IPXDBGEND() VwDebugEnd
#define VWASSERT(a, b) ASSERT((a) == (b))
#define IPXDUMPDATA(x) VwDumpData x
#define IPXDUMPECB(x) VwDumpEcb x
#define DUMPXECB(x) VwDumpXecb(x)
#define DUMPCONN(x) VwDumpConnectionInfo(x)
#define DUMPSTATS(x) VwDumpConnectionStats(x)
#define CHECK_INTERRUPTS(s) CheckInterrupts(s)
#define DUMPALL() VwDumpAll()
#else
#define IF_DEBUG(f) if (0)
#define IF_NOT_DEBUG(f) if (0)
#define IF_SHOW(f) if (0)
#define IF_NOT_SHOW(f) if (0)
#define PRIVATE static
#define IPXDBGPRINT(x)
#define IPXDBGSTART()
#define IPXDBGEND()
#define VWASSERT(a, b) a
#define IPXDUMPDATA(x)
#define IPXDUMPECB(x)
#define DUMPXECB(x)
#define DUMPCONN(x)
#define DUMPSTATS(x)
#define CHECK_INTERRUPTS(s)
#define DUMPALL()
#endif
//
// debug function prototypes
//
extern VOID VwDebugStart(VOID);
extern VOID VwDebugEnd(VOID);
extern VOID VwDebugPrint(LPSTR, DWORD, DWORD, DWORD, LPSTR, ...);
extern VOID VwDumpData(ULPBYTE, WORD, WORD, BOOL, WORD);
extern VOID VwDumpEcb(LPECB, WORD, WORD, BYTE, BOOL, BOOL, BOOL);
extern VOID VwDumpFragment(WORD, LPFRAGMENT, BYTE, BOOL, BOOL);
extern VOID VwDumpPacketHeader(ULPBYTE, BYTE);
extern VOID VwDumpXecb(LPXECB);
extern VOID VwDumpSocketInfo(LPSOCKET_INFO);
extern VOID VwDumpConnectionInfo(LPCONNECTION_INFO);
extern VOID VwDumpConnectionStats(LPSPX_CONNECTION_STATS);
extern VOID VwLog(LPSTR);
extern VOID CheckInterrupts(LPSTR);
extern VOID VwDumpAll(VOID);
#endif // _VWDEBUG_H_
|