Initial revision
[reactos.git] / reactos / drivers / net / ndis / include / protocol.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndis/protocol.h
5 * PURPOSE: Definitions for routines used by NDIS protocol drivers
6 */
7
8 #ifndef __PROTOCOL_H
9 #define __PROTOCOL_H
10
11 #include <ndissys.h>
12 #include <miniport.h>
13
14
15 typedef struct _PROTOCOL_BINDING {
16 LIST_ENTRY ListEntry; /* Entry on global list */
17 KSPIN_LOCK Lock; /* Protecting spin lock */
18 ULONG RefCount; /* Reference count */
19 NDIS_PROTOCOL_CHARACTERISTICS Chars; /* Characteristics */
20 WORK_QUEUE_ITEM WorkItem; /* Work item */
21 LIST_ENTRY AdapterListHead; /* List of adapter bindings */
22 } PROTOCOL_BINDING, *PPROTOCOL_BINDING;
23
24 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
25
26
27 typedef struct _ADAPTER_BINDING {
28 LIST_ENTRY ListEntry; /* Entry on global list */
29 LIST_ENTRY ProtocolListEntry; /* Entry on protocol binding adapter list */
30 KSPIN_LOCK Lock; /* Protecting spin lock */
31 ULONG RefCount; /* Reference count */
32 PLOGICAL_ADAPTER Adapter; /* Adapter opened by protocol */
33 } ADAPTER_BINDING, *PADAPTER_BINDING;
34
35 #define GET_ADAPTER_BINDING(Handle)((PADAPTER_BINDING)Handle)
36
37
38 extern LIST_ENTRY ProtocolListHead;
39 extern KSPIN_LOCK ProtocolListLock;
40
41 #endif /* __PROTOCOL_H */
42
43 /* EOF */