Basic NDIS 3.0 support
[reactos.git] / reactos / 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 */