Use free Windows DDK and compile with latest MinGW releases.
[reactos.git] / reactos / drivers / net / ndis / ndis / memory.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndis/memory.c
5 * PURPOSE: Memory management routines
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
7 * REVISIONS:
8 * CSH 01/08-2000 Created
9 */
10 #include <ndissys.h>
11
12
13 NDIS_STATUS
14 STDCALL
15 NdisAllocateMemoryWithTag(
16 OUT PVOID *VirtualAddress,
17 IN UINT Length,
18 IN ULONG Tag)
19 /*
20 * FUNCTION:
21 * ARGUMENTS:
22 * NOTES:
23 * NDIS 5.0
24 */
25 {
26 UNIMPLEMENTED
27
28 return NDIS_STATUS_FAILURE;
29 }
30
31
32 #undef NdisCreateLookaheadBufferFromSharedMemory
33
34 VOID
35 STDCALL
36 NdisCreateLookaheadBufferFromSharedMemory(
37 IN PVOID pSharedMemory,
38 IN UINT LookaheadLength,
39 OUT PVOID *pLookaheadBuffer)
40 {
41 UNIMPLEMENTED
42 }
43
44
45 #undef NdisDestroyLookaheadBufferFromSharedMemory
46
47 VOID
48 STDCALL
49 NdisDestroyLookaheadBufferFromSharedMemory(
50 IN PVOID pLookaheadBuffer)
51 {
52 UNIMPLEMENTED
53 }
54
55
56 #undef NdisMoveFromMappedMemory
57
58 VOID
59 STDCALL
60 NdisMoveFromMappedMemory(
61 OUT PVOID Destination,
62 IN PVOID Source,
63 IN ULONG Length)
64 {
65 UNIMPLEMENTED
66 }
67
68
69 #undef NdisMoveMappedMemory
70
71 VOID
72 STDCALL
73 NdisMoveMappedMemory(
74 OUT PVOID Destination,
75 IN PVOID Source,
76 IN ULONG Length)
77 {
78 RtlCopyMemory(Destination,Source,Length);
79 }
80
81
82 #undef NdisMoveToMappedMemory
83
84 VOID
85 STDCALL
86 NdisMoveToMappedMemory(
87 OUT PVOID Destination,
88 IN PVOID Source,
89 IN ULONG Length)
90 {
91 UNIMPLEMENTED
92 }
93
94
95 #undef NdisMUpdateSharedMemory
96
97 VOID
98 STDCALL
99 NdisMUpdateSharedMemory(
100 IN NDIS_HANDLE MiniportAdapterHandle,
101 IN ULONG Length,
102 IN PVOID VirtualAddress,
103 IN NDIS_PHYSICAL_ADDRESS PhysicalAddress)
104 {
105 UNIMPLEMENTED
106 }
107
108
109 NDIS_STATUS
110 STDCALL
111 NdisAllocateMemory(
112 OUT PVOID *VirtualAddress,
113 IN UINT Length,
114 IN UINT MemoryFlags,
115 IN NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress)
116 /*
117 * FUNCTION: Allocates a block of memory
118 * ARGUMENTS:
119 * VirtualAddress = Address of buffer to place virtual
120 * address of the allocated memory
121 * Length = Size of the memory block to allocate
122 * MemoryFlags = Flags to specify special restrictions
123 * HighestAcceptableAddress = Specifies -1
124 */
125 {
126 PVOID Block;
127
128 if (MemoryFlags & NDIS_MEMORY_CONTIGUOUS) {
129 /* FIXME */
130 *VirtualAddress = NULL;
131 return NDIS_STATUS_FAILURE;
132 }
133
134 if (MemoryFlags & NDIS_MEMORY_NONCACHED) {
135 /* FIXME */
136 *VirtualAddress = NULL;
137 return NDIS_STATUS_FAILURE;
138 }
139
140 /* Plain nonpaged memory */
141 Block = ExAllocatePool(NonPagedPool, Length);
142 *VirtualAddress = Block;
143 if (!Block)
144 return NDIS_STATUS_FAILURE;
145
146 return NDIS_STATUS_SUCCESS;
147 }
148
149
150 VOID
151 STDCALL
152 NdisFreeMemory(
153 IN PVOID VirtualAddress,
154 IN UINT Length,
155 IN UINT MemoryFlags)
156 /*
157 * FUNCTION: Frees a memory block allocated with NdisAllocateMemory
158 * ARGUMENTS:
159 * VirtualAddress = Pointer to the base virtual address of the allocated memory
160 * Length = Size of the allocated memory block as passed to NdisAllocateMemory
161 * MemoryFlags = Memory flags passed to NdisAllocateMemory
162 */
163 {
164 if (MemoryFlags & NDIS_MEMORY_CONTIGUOUS) {
165 /* FIXME */
166 return;
167 }
168
169 if (MemoryFlags & NDIS_MEMORY_NONCACHED) {
170 /* FIXME */
171 return;
172 }
173
174 /* Plain nonpaged memory */
175 ExFreePool(VirtualAddress);
176 }
177
178
179 VOID
180 STDCALL
181 NdisImmediateReadSharedMemory(
182 IN NDIS_HANDLE WrapperConfigurationContext,
183 IN ULONG SharedMemoryAddress,
184 OUT PUCHAR Buffer,
185 IN ULONG Length)
186 {
187 }
188
189
190 VOID
191 STDCALL
192 NdisImmediateWriteSharedMemory(
193 IN NDIS_HANDLE WrapperConfigurationContext,
194 IN ULONG SharedMemoryAddress,
195 IN PUCHAR Buffer,
196 IN ULONG Length)
197 {
198 UNIMPLEMENTED
199 }
200
201
202 VOID
203 STDCALL
204 NdisMAllocateSharedMemory(
205 IN NDIS_HANDLE MiniportAdapterHandle,
206 IN ULONG Length,
207 IN BOOLEAN Cached,
208 OUT PVOID *VirtualAddress,
209 OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress)
210 {
211 UNIMPLEMENTED
212 }
213
214
215 NDIS_STATUS
216 STDCALL
217 NdisMAllocateSharedMemoryAsync(
218 IN NDIS_HANDLE MiniportAdapterHandle,
219 IN ULONG Length,
220 IN BOOLEAN Cached,
221 IN PVOID Context)
222 {
223 UNIMPLEMENTED
224
225 return NDIS_STATUS_FAILURE;
226 }
227
228
229 VOID
230 STDCALL
231 NdisMFreeSharedMemory(
232 IN NDIS_HANDLE MiniportAdapterHandle,
233 IN ULONG Length,
234 IN BOOLEAN Cached,
235 IN PVOID VirtualAddress,
236 IN NDIS_PHYSICAL_ADDRESS PhysicalAddress)
237 {
238 UNIMPLEMENTED
239 }
240
241 /* EOF */