:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / drivers / net / ndis / include / buffer.h
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS NDIS library
4  * FILE:        include/buffer.h
5  * PURPOSE:     Buffer management routine definitions
6  */
7 #ifndef __BUFFER_H
8 #define __BUFFER_H
9
10 #include <ndissys.h>
11
12
13 /* FIXME: Possibly move this to ntddk.h */
14 typedef struct _NETWORK_HEADER
15 {
16     MDL Mdl;                                /* Memory Descriptor List */
17     struct _NETWORK_HEADER *Next;           /* Link to next NDIS buffer in pool */
18     struct _NDIS_BUFFER_POOL *BufferPool;   /* Link to NDIS buffer pool */
19 } NETWORK_HEADER, *PNETWORK_HEADER;
20
21 typedef struct _NDIS_BUFFER_POOL
22 {
23     KSPIN_LOCK SpinLock;
24     PNETWORK_HEADER FreeList;
25     NETWORK_HEADER Buffers[0];
26 } NDIS_BUFFER_POOL, *PNDIS_BUFFER_POOL;
27
28
29 UINT CopyBufferToBufferChain(
30     PNDIS_BUFFER DstBuffer,
31     UINT DstOffset,
32     PUCHAR SrcData,
33     UINT Length);
34
35 UINT CopyBufferChainToBuffer(
36     PUCHAR DstData,
37     PNDIS_BUFFER SrcBuffer,
38     UINT SrcOffset,
39     UINT Length);
40
41 UINT CopyPacketToBuffer(
42     PUCHAR DstData,
43     PNDIS_PACKET SrcPacket,
44     UINT SrcOffset,
45     UINT Length);
46
47 UINT CopyPacketToBufferChain(
48     PNDIS_BUFFER DstBuffer,
49     UINT DstOffset,
50     PNDIS_PACKET SrcPacket,
51     UINT SrcOffset,
52     UINT Length);
53
54 #endif /* __BUFFER_H */
55
56 /* EOF */