summaryrefslogtreecommitdiffstats
path: root/private/ntos/ndis/ndis30/minisub.c
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/ndis/ndis30/minisub.c
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/ndis/ndis30/minisub.c')
-rw-r--r--private/ntos/ndis/ndis30/minisub.c280
1 files changed, 280 insertions, 0 deletions
diff --git a/private/ntos/ndis/ndis30/minisub.c b/private/ntos/ndis/ndis30/minisub.c
new file mode 100644
index 000000000..4454cd129
--- /dev/null
+++ b/private/ntos/ndis/ndis30/minisub.c
@@ -0,0 +1,280 @@
+/*++
+Copyright (c) 1992 Microsoft Corporation
+
+Module Name:
+
+ miniport.c
+
+Abstract:
+
+ NDIS wrapper functions
+
+Author:
+
+ Sean Selitrennikoff (SeanSe) 05-Oct-93
+
+Environment:
+
+ Kernel mode, FSD
+
+Revision History:
+
+--*/
+
+#include "precomp.h"
+#pragma hdrstop
+
+#undef NdisAllocateSpinLock
+#undef NdisFreeSpinLock
+#undef NdisAcquireSpinLock
+#undef NdisReleaseSpinLock
+#undef NdisDprAcquireSpinLock
+#undef NdisDprReleaseSpinLock
+#undef NdisFreeBuffer
+#undef NdisQueryBuffer
+#undef NdisQueryBufferOffset
+#undef NDIS_BUFFER_TO_SPAN_PAGES
+#undef NdisGetBufferPhysicalArraySize
+#undef NdisEqualString
+#undef NdisMStartBufferPhysicalMapping
+#undef NdisMCompleteBufferPhysicalMapping
+
+VOID
+NdisAllocateSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisFreeSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisAcquireSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisReleaseSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisDprAcquireSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisDprReleaseSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ );
+
+VOID
+NdisFreeBuffer(
+ IN PNDIS_BUFFER Buffer
+ );
+
+VOID
+NdisQueryBuffer(
+ IN PNDIS_BUFFER Buffer,
+ OUT PVOID *VirtualAddress OPTIONAL,
+ OUT PUINT Length
+ );
+
+VOID
+NdisQueryBufferOffset(
+ IN PNDIS_BUFFER Buffer,
+ OUT PUINT Offset,
+ OUT PUINT Length
+ );
+
+ULONG
+NDIS_BUFFER_TO_SPAN_PAGES(
+ IN PNDIS_BUFFER Buffer
+ );
+
+VOID
+NdisGetBufferPhysicalArraySize(
+ IN PNDIS_BUFFER Buffer,
+ OUT PUINT ArraySize
+ );
+
+BOOLEAN
+NdisEqualString(
+ IN PNDIS_STRING String1,
+ IN PNDIS_STRING String2,
+ IN BOOLEAN CaseInsensitive
+ );
+
+VOID
+NdisMStartBufferPhysicalMapping(
+ IN NDIS_HANDLE MiniportAdapterHandle,
+ IN PNDIS_BUFFER Buffer,
+ IN ULONG PhysicalMapRegister,
+ IN BOOLEAN WriteToDevice,
+ OUT PNDIS_PHYSICAL_ADDRESS_UNIT PhysicalAddressArray,
+ OUT PUINT ArraySize
+ );
+
+VOID
+NdisMCompleteBufferPhysicalMapping(
+ IN NDIS_HANDLE MiniportAdapterHandle,
+ IN PNDIS_BUFFER Buffer,
+ IN ULONG PhysicalMapRegister
+ );
+
+
+VOID
+NdisAllocateSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ KeInitializeSpinLock(&SpinLock->SpinLock);
+}
+
+VOID
+NdisFreeSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ UNREFERENCED_PARAMETER (SpinLock);
+}
+
+VOID
+NdisAcquireSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ KeAcquireSpinLock(&SpinLock->SpinLock, &SpinLock->OldIrql);
+}
+
+VOID
+NdisReleaseSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ KeReleaseSpinLock(&SpinLock->SpinLock, SpinLock->OldIrql);
+}
+
+VOID
+NdisDprAcquireSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ KeAcquireSpinLockAtDpcLevel(&SpinLock->SpinLock);
+ SpinLock->OldIrql = DISPATCH_LEVEL;
+}
+
+VOID
+NdisDprReleaseSpinLock(
+ IN PNDIS_SPIN_LOCK SpinLock
+ )
+{
+ KeReleaseSpinLockFromDpcLevel(&SpinLock->SpinLock);
+}
+VOID
+NdisFreeBuffer(
+ IN PNDIS_BUFFER Buffer
+ )
+{
+ IoFreeMdl(Buffer);
+}
+
+VOID
+NdisQueryBuffer(
+ IN PNDIS_BUFFER Buffer,
+ OUT PVOID *VirtualAddress OPTIONAL,
+ OUT PUINT Length
+ )
+{
+ if ( ARGUMENT_PRESENT(VirtualAddress) ) {
+ *VirtualAddress = MmGetSystemAddressForMdl(Buffer);
+ }
+ *Length = MmGetMdlByteCount(Buffer);
+}
+
+VOID
+NdisQueryBufferOffset(
+ IN PNDIS_BUFFER Buffer,
+ OUT PUINT Offset,
+ OUT PUINT Length
+ )
+{
+ *Offset = MmGetMdlByteOffset(Buffer);
+ *Length = MmGetMdlByteCount(Buffer);
+}
+
+ULONG
+NDIS_BUFFER_TO_SPAN_PAGES(
+ IN PNDIS_BUFFER Buffer
+ )
+{
+ if (MmGetMdlByteCount(Buffer) == 0) {
+ return 1;
+ }
+ return COMPUTE_PAGES_SPANNED(
+ MmGetMdlVirtualAddress(Buffer),
+ MmGetMdlByteCount(Buffer)
+ );
+}
+
+VOID
+NdisGetBufferPhysicalArraySize(
+ IN PNDIS_BUFFER Buffer,
+ OUT PUINT ArraySize
+ )
+{
+ if (MmGetMdlByteCount(Buffer) == 0) {
+ *ArraySize = 1;
+ } else {
+ *ArraySize = COMPUTE_PAGES_SPANNED(
+ MmGetMdlVirtualAddress(Buffer),
+ MmGetMdlByteCount(Buffer)
+ );
+ }
+}
+
+BOOLEAN
+NdisEqualString(
+ IN PNDIS_STRING String1,
+ IN PNDIS_STRING String2,
+ IN BOOLEAN CaseInsensitive
+ )
+{
+ return RtlEqualUnicodeString(String1, String2, CaseInsensitive);
+}
+
+VOID
+NdisMStartBufferPhysicalMapping(
+ IN NDIS_HANDLE MiniportAdapterHandle,
+ IN PNDIS_BUFFER Buffer,
+ IN ULONG PhysicalMapRegister,
+ IN BOOLEAN WriteToDevice,
+ OUT PNDIS_PHYSICAL_ADDRESS_UNIT PhysicalAddressArray,
+ OUT PUINT ArraySize
+ )
+{
+ NdisMStartBufferPhysicalMappingMacro(
+ MiniportAdapterHandle,
+ Buffer,
+ PhysicalMapRegister,
+ WriteToDevice,
+ PhysicalAddressArray,
+ ArraySize
+ );
+}
+
+VOID
+NdisMCompleteBufferPhysicalMapping(
+ IN NDIS_HANDLE MiniportAdapterHandle,
+ IN PNDIS_BUFFER Buffer,
+ IN ULONG PhysicalMapRegister
+ )
+{
+ NdisMCompleteBufferPhysicalMappingMacro(
+ MiniportAdapterHandle,
+ Buffer,
+ PhysicalMapRegister
+ );
+}
+