summaryrefslogtreecommitdiffstats
path: root/private/mvdm/vdmredir/vrdlcdbg.h
blob: 38198f15638aae8ba82c0a5d69f8aa0f5bcd5563 (plain) (blame)
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
185
186
187
/*++

Copyright (c) 1991  Microsoft Corporation

Module Name:

    vrdlcdbg.h

Abstract:

    contains prototypes etc for DLC dump/diagnostic functions in VrDlcDbg.c

Author:

    Richard L Firth (rfirth) 30-Apr-1992

Revision History:

--*/

//
// CCB return codes valid in DOS mode
// See IBM Local Area Network Tech. Ref. Appendix B
//

#define CCB_COMMAND_IN_PROGRESS     0xff
#define CCB_SUCCESS                 0x00
#define CCB_INVALID_COMMAND         0x01
#define CCB_ALREADY_PENDING         0x02
#define CCB_ADAPTER_NOT_CLOSED      0x03
#define CCB_ADAPTER_NOT_OPEN        0x04
#define CCB_PARAMETERS_MISSING      0x05
#define CCB_INVALID_OPTION          0x06
#define CCB_COMMAND_CANCELLED       0x07
#define CCB_UNAUTHORIZED_ACCESS     0x08
#define CCB_ADAPTER_NOT_INITIALIZED 0x09
#define CCB_CANCELLED_BY_USER       0x0a
#define CCB_CANCELLED_IN_PROGRESS   0x0b
#define CCB_SUCCESS_ADAPTER_NOT_OPEN 0x0c

// hole - 0x0d to 0x0f

#define CCB_NETBIOS_FAILURE         0x10
#define CCB_TIMER_ERROR             0x11
#define CCB_NEED_MORE_WORK_AREA     0x12
#define CCB_INVALID_LOG_ID          0x13
#define CCB_INVALID_SHARED_SEGMENT  0x14
#define CCB_LOST_LOG_DATA           0x15
#define CCB_BUFFER_TOO_BIG          0x16
#define CCB_NETBIOS_CLASH           0x17
#define CCB_INVALID_SAP_BUFFER      0x18
#define CCB_NOT_ENOUGH_BUFFERS      0x19
#define CCB_USER_BUFFER_TOO_BIG     0x1a
#define CCB_INVALID_PARAMETER_POINTER 0x1b
#define CCB_INVALID_TABLE_POINTER   0x1c
#define CCB_INVALID_ADAPTER         0x1d
#define CCB_INVALID_FUNCTION_ADDRESS 0x1e

// hole - 0x1f

#define CCB_DATA_LOST_NO_BUFFERS    0x20
#define CCB_DATA_LOST_NO_SPACE      0x21
#define CCB_TRANSMIT_FS_ERROR       0x22
#define CCB_TRANSMIT_ERROR          0x23
#define CCB_UNAUTHORIZED_MAC_FRAME  0x24
#define CCB_MAX_COMMANDS_EXCEEDED   0x25
#define CCB_UNRECOGNIZED_CORRELATOR 0x26    // Not Used
#define CCB_LINK_NOT_OPEN           0x27
#define CCB_INVALID_FRAME_LENGTH    0x28

// hole - 0x29 to 0x2f

#define CCB_NOT_ENOUGH_BUFFERS_OPEN 0x30

// hole - 0x31

#define CCB_INVALID_NODE_ADDRESS    0x32
#define CCB_INVALID_RECEIVE_LENGTH  0x33
#define CCB_INVALID_TRANSMIT_LENGTH 0x34

// hole - 0x35 to 0x3f

#define CCB_INVALID_STATION_ID      0x40
#define CCB_PROTOCOL_ERROR          0x41
#define CCB_PARAMETER_EXCEEDS_MAX   0x42
#define CCB_INVALID_SAP_VALUE       0x43
#define CCB_INVALID_ROUTING_LENGTH  0x44
#define CCB_INVALID_GROUP_SAP       0x45
#define CCB_NOT_ENOUGH_LINK_STATIONS 0x46
#define CCB_CANNOT_CLOSE_SAP        0x47
#define CCB_CANNOT_CLOSE_GROUP_SAP  0x48
#define CCB_GROUP_SAP_FULL          0x49
#define CCB_SEQUENCE_ERROR          0x4a
#define CCB_STATION_CLOSED_NO_ACK   0x4b
#define CCB_COMMANDS_PENDING        0x4c
#define CCB_CANNOT_CONNECT          0x4d
#define CCB_SAP_NOT_IN_GROUP        0x4e
#define CCB_INVALID_REMOTE_ADDRESS  0x4f

#define MAX_CCB1_ERROR              CCB_INVALID_REMOTE_ADDRESS

#define NUMBER_OF_CCB1_ERRORS       (MAX_CCB1_ERROR + 1)    // including holes

//
// Error macros
//

#define IS_VALID_CCB1_COMMAND(command)  (command <= MAX_CCB1_COMMAND)
#define IS_VALID_CCB1_ERROR(error)      (error <= MAX_CCB1_ERROR)

//
// prototypes
//

VOID
DumpCcb(
    IN PVOID Ccb,
    IN BOOL DumpAll,
    IN BOOL CcbIsInput,
    IN BOOL IsDos,
    IN WORD Segment OPTIONAL,
    IN WORD Offset OPTIONAL
    );

VOID
DumpDosDlcBufferPool(
    IN PDOS_DLC_BUFFER_POOL PoolDescriptor
    );

VOID
DumpDosDlcBufferChain(
    IN DOS_ADDRESS DosAddress,
    IN DWORD BufferCount
    );

VOID
DumpReceiveDataBuffer(
    IN PVOID Buffer,
    IN BOOL IsDos,
    IN WORD Segment,
    IN WORD Offset
    );

LPSTR
MapCcbRetcode(
    IN BYTE Retcode
    );

BOOL
IsCcbErrorCodeAllowable(
    IN BYTE CcbCommand,
    IN BYTE CcbErrorCode
    );

BOOL
IsCcbErrorCodeValid(
    IN BYTE CcbErrorCode
    );

BOOL
IsCcbCommandValid(
    IN BYTE CcbCommand
    );

LPSTR
MapCcbCommandToName(
    IN BYTE CcbCommand
    );

VOID
DumpDosAdapter(
    IN DOS_ADAPTER* pDosAdapter
    );

//
// debug conditional macros
//

#if DBG
#define CHECK_CCB_COMMAND(pccb) \
            ASSERT(IsCcbCommandValid(((PLLC_DOS_CCB)pccb)->uchDlcCommand))
#define CHECK_CCB_RETCODE(pccb) \
            ASSERT(IsCcbErrorCodeAllowable(((PLLC_DOS_CCB)pccb)->uchDlcCommand, ((PLLC_DOS_CCB)pccb)->uchDlcStatus))
#else
#define CHECK_CCB_COMMAND(pccb)
#define CHECK_CCB_RETCODE(pccb)
#endif