update for HEAD-2003091401
[reactos.git] / 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 <net/ndis.h>
13 #include "../include/miniport.h"
14
15
16 typedef struct _PROTOCOL_BINDING {
17     LIST_ENTRY                    ListEntry;        /* Entry on global list */
18     KSPIN_LOCK                    Lock;             /* Protecting spin lock */
19     ULONG                         RefCount;         /* Reference count */
20     NDIS_PROTOCOL_CHARACTERISTICS Chars;            /* Characteristics */
21     WORK_QUEUE_ITEM               WorkItem;         /* Work item */
22     LIST_ENTRY                    AdapterListHead;  /* List of adapter bindings */
23 } PROTOCOL_BINDING, *PPROTOCOL_BINDING;
24
25 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
26
27
28 typedef struct _ADAPTER_BINDING {
29     NDIS_OPEN_BLOCK NdisOpenBlock;                            /* NDIS defined fields */
30
31     LIST_ENTRY        ListEntry;                /* Entry on global list */
32     LIST_ENTRY        ProtocolListEntry;        /* Entry on protocol binding adapter list */
33     LIST_ENTRY        AdapterListEntry;         /* Entry on logical adapter list */
34     KSPIN_LOCK        Lock;                     /* Protecting spin lock */
35     ULONG             RefCount;                 /* Reference count */
36     PPROTOCOL_BINDING ProtocolBinding;          /* Protocol that opened adapter */
37     PLOGICAL_ADAPTER  Adapter;                  /* Adapter opened by protocol */
38 } ADAPTER_BINDING, *PADAPTER_BINDING;
39
40 #define GET_ADAPTER_BINDING(Handle)((PADAPTER_BINDING)Handle)
41
42
43 extern LIST_ENTRY ProtocolListHead;
44 extern KSPIN_LOCK ProtocolListLock;
45
46
47 NDIS_STATUS
48 ProIndicatePacket(
49     PLOGICAL_ADAPTER Adapter,
50     PNDIS_PACKET Packet);
51
52 #endif /* __PROTOCOL_H */
53
54 /* EOF */