summaryrefslogtreecommitdiffstats
path: root/private/ntos/ndis/ibmtok2i/tok162pr.h
blob: 1875cdd233469fd7157c0bd53ee5aa06ae5704f7 (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
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
/*++

Copyright (c) 1990  Microsoft Corporation

Module Name:

    tok162pr.h

Abstract:

    The procedure declarations for the IBM Token-Ring 16/4 II
    ISA driver.

Author:

    Kevin Martin (kevinma) 1-Feb-1994

Environment:

    Architecturally, there is an assumption in this driver that we are
    on a little endian machine.

Notes:

    optional-notes

Revision History:


--*/

#ifndef _TOK162PROC_
#define _TOK162PROC_

//
// We define the external interfaces to the TOK162 driver.
// These routines are only external to permit separate
// compilation.  Given a truely fast compiler they could
// all reside in a single file and be static.
//

extern
VOID
TOK162DisableInterrupt(
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
VOID
TOK162EnableInterrupt(
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
VOID
TOK162Halt(
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
VOID
TOK162Shutdown(
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
VOID
TOK162HandleInterrupt(
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
BOOLEAN
TOK162InitialInit(
    IN PTOK162_ADAPTER Adapter
    );
extern
NDIS_STATUS
TOK162Initialize(
    OUT PNDIS_STATUS OpenErrorStatus,
    OUT PUINT SelectedMediumIndex,
    IN PNDIS_MEDIUM MediumArray,
    IN UINT MediumArraySize,
    IN NDIS_HANDLE MiniportAdapterHandle,
    IN NDIS_HANDLE WrapperConfigurationContext
    );

extern
NDIS_STATUS
TOK162QueryInformation(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_OID Oid,
    IN PVOID InformationBuffer,
    IN ULONG InformationBufferLength,
    OUT PULONG BytesWritten,
    OUT PULONG BytesNeeded
    );

extern
NDIS_STATUS
TOK162SetInformation(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_OID Oid,
    IN PVOID InformationBuffer,
    IN ULONG InformationBufferLength,
    OUT PULONG BytesRead,
    OUT PULONG BytesNeeded
    );

extern
VOID
TOK162Isr(
    OUT PBOOLEAN InterruptRecognized,
    OUT PBOOLEAN QueueDpc,
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
NDIS_STATUS
TOK162Reset(
    OUT PBOOLEAN AddressingReset,
    IN  NDIS_HANDLE MiniportAdapterContext
    );

extern
NDIS_STATUS
TOK162TransferData(
    OUT PNDIS_PACKET Packet,
    OUT PUINT BytesTransferred,
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_HANDLE MiniportReceiveContext,
    IN UINT ByteOffset,
    IN UINT BytesToTransfer
    );

extern
NDIS_STATUS
TOK162Send(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN PNDIS_PACKET Packet,
    IN UINT Flags
    );

extern
VOID
TOK162CopyFromBufferToPacket(
    IN PCHAR Buffer,
    IN UINT BytesToCopy,
    IN PNDIS_PACKET Packet,
    IN UINT Offset,
    OUT PUINT BytesCopied
    );


VOID
TOK162FinishQueryInformation(
    IN PTOK162_ADAPTER Adapter
);

extern
NDIS_STATUS
TOK162RegisterAdapter(
    IN NDIS_HANDLE ConfigurationHandle,
    IN NDIS_HANDLE MiniportAdapterHandle,
    IN PUCHAR  CurrentAddress,
    IN UINT PortAddress,
    IN ULONG MaxFrameSize
    );

extern
VOID
TOK162AcquireCommandBlock(
    IN PTOK162_ADAPTER Adapter,
    OUT PTOK162_SUPER_COMMAND_BLOCK * CommandBlock
    );

extern
BOOLEAN
TOK162AcquireTransmitBlock(
    IN PTOK162_ADAPTER Adapter,
    OUT PTOK162_SUPER_COMMAND_BLOCK * CommandBlock
    );

extern
VOID
TOK162RelinquishCommandBlock(
    IN PTOK162_ADAPTER Adapter,
    IN PTOK162_SUPER_COMMAND_BLOCK CommandBlock
    );

extern
VOID
TOK162SubmitCommandBlock(
    IN PTOK162_ADAPTER Adapter,
    IN PTOK162_SUPER_COMMAND_BLOCK CommandBlock
    );

extern
VOID
TOK162DoAdapterReset(
    IN PTOK162_ADAPTER Adapter
    );

extern
NDIS_STATUS
TOK162SetupForReset(
    IN PTOK162_ADAPTER Adapter
    );

BOOLEAN
TOK162CheckForHang(
    IN NDIS_HANDLE MiniportAdapterContext
    );

VOID
TOK162ResetVariables(
    IN PTOK162_ADAPTER Adapter
    );

VOID
TOK162ResetHandler(
    IN PVOID SystemSpecific1,
    IN PTOK162_ADAPTER Adapter,
    IN PVOID SystemSpecific2,
    IN PVOID SystemSpecific3
    );

VOID
TOK162DeferredTimer(
    IN PVOID SystemSpecific1,
    IN PTOK162_ADAPTER Adapter,
    IN PVOID SystemSpecific2,
    IN PVOID SystemSpecific3
    );


extern
NDIS_STATUS
TOK162GetAdapterConfiguration(
    IN PTOK162_ADAPTER Adapter
    );
extern
VOID
TOK162ResetAdapter(
    IN PTOK162_ADAPTER Adapter
    );

BOOLEAN
DoTheOpen(
  PTOK162_ADAPTER Adapter
      );

BOOLEAN
DoTheReceive(
  PTOK162_ADAPTER Adapter
      );

extern
NDIS_STATUS
TOK162ChangeFuncGroup(
    IN PTOK162_ADAPTER Adapter
);


BOOLEAN
TOK162InitializeTransmitQueue(
    IN PTOK162_ADAPTER Adapter
    );
VOID
TOK162ResetTimer(
    IN PVOID SystemSpecific1,
    IN PTOK162_ADAPTER Adapter,
    IN PVOID SystemSpecific2,
    IN PVOID SystemSpecific3
    );
VOID
TOK162DoResetIndications(
    IN PTOK162_ADAPTER Adapter,
    IN NDIS_STATUS Status
    );

BOOLEAN
TOK162AcquireTransmitBlock(
    IN PTOK162_ADAPTER Adapter,
    OUT PTOK162_SUPER_COMMAND_BLOCK * CommandBlock
    );

VOID
TOK162RelinquishTransmitBlock(
    IN PTOK162_ADAPTER Adapter,
    IN PTOK162_SUPER_COMMAND_BLOCK CommandBlock
    );

VOID
TOK162SubmitTransmitBlock(
    IN PTOK162_ADAPTER Adapter,
    IN PTOK162_SUPER_COMMAND_BLOCK CommandBlock
    );
VOID
TOK162ProcessTransmitInterrupts(
    IN PTOK162_ADAPTER Adapter
    );
extern
BOOLEAN
TOK162ProcessRingInterrupts(
    IN PTOK162_ADAPTER Adapter
    );

extern
VOID
TOK162DeleteAdapterMemory(
    IN PTOK162_ADAPTER Adapter
    );

#endif  //_TOK162PROC_