Changed GUID_DEFINED to _GUID_DEFINED for compatibility (prevent conflict) with mingw...
[reactos.git] / reactos / include / net / ndis.h
index dd42439..a018457 100644 (file)
@@ -39,7 +39,7 @@ extern "C"
 #endif
 
 #ifndef FASTCALL
-#define FASTCALL STDCALL
+#define FASTCALL  __attribute__((fastcall))
 #endif
 
 /* The NDIS library export functions. NDIS miniport drivers import functions */
@@ -96,15 +96,6 @@ typedef struct _DMA_CONFIGURATION_BYTE1
 } DMA_CONFIGURATION_BYTE1;
 
 
-typedef struct _CM_MCA_POS_DATA
-{
-    USHORT  AdapterId;
-    UCHAR   PosData1;
-    UCHAR   PosData2;
-    UCHAR   PosData3;
-    UCHAR   PosData4;
-} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;
-
 typedef struct _EISA_MEMORY_TYPE
 {
     UCHAR   ReadWrite:1;
@@ -197,11 +188,6 @@ typedef struct _CM_EISA_FUNCTION_INFORMATION
 
 typedef CONST CHAR *PCSTR;
 
-/* Could be defined in tdi.h */
-#ifndef __TDI_H
-typedef signed int INT, *PINT;
-#endif /* __TDI_H */
-
 #endif /* NDIS_MINIPORT_DRIVER */
 
 #include "netevent.h"
@@ -209,13 +195,11 @@ typedef signed int INT, *PINT;
 #include "ntddndis.h"
 
 
-/* More types */
-
-typedef ULONG ULONG_PTR, *PULONG_PTR;
-
-
 #if defined(NDIS_MINIPORT_DRIVER) || !defined(_MSC_VER)
 
+#ifndef _GUID_DEFINED
+#define _GUID_DEFINED
+
 typedef struct _GUID {
     ULONG   Data1;
     USHORT  Data2;
@@ -223,6 +207,8 @@ typedef struct _GUID {
     UCHAR   Data4[8];
 } GUID;
 
+#endif /* _GUID_DEFINED */
+
 #endif /* NDIS_MINIPORT_DRIVER || _MSC_VER */
 
 
@@ -1956,14 +1942,10 @@ NdisFreeBuffer(
 {                                           \
 }
 
-
-/*
- * VOID NdisReinitializePacket(
- *     IN OUT  PNDIS_PACKET    Packet);
- */
-#define NdisReinitializePacketCounts(Packet)    \
-{                                               \
-}
+VOID
+EXPIMP
+NdisReinitializePacket(
+    IN OUT  PNDIS_PACKET    Packet);
 
 
 /*
@@ -2241,6 +2223,102 @@ NdisUpdateSharedMemory(
 
 
 
+//
+// System processor count
+//
+
+CCHAR
+EXPIMP
+NdisSystemProcessorCount(
+       VOID
+       );
+
+VOID
+EXPIMP
+NdisImmediateReadPortUchar(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       OUT PUCHAR                                      Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateReadPortUshort(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       OUT PUSHORT Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateReadPortUlong(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       OUT PULONG Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateWritePortUchar(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       IN      UCHAR                                   Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateWritePortUshort(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       IN      USHORT                                  Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateWritePortUlong(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   Port,
+       IN      ULONG                                   Data
+       );
+
+VOID
+EXPIMP
+NdisImmediateReadSharedMemory(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   SharedMemoryAddress,
+       IN      PUCHAR                                  Buffer,
+       IN      ULONG                                   Length
+       );
+
+VOID
+EXPIMP
+NdisImmediateWriteSharedMemory(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   SharedMemoryAddress,
+       IN      PUCHAR                                  Buffer,
+       IN      ULONG                                   Length
+       );
+
+ULONG
+EXPIMP
+NdisImmediateReadPciSlotInformation(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   SlotNumber,
+       IN      ULONG                                   Offset,
+       IN      PVOID                                   Buffer,
+       IN      ULONG                                   Length
+       );
+
+ULONG
+EXPIMP
+NdisImmediateWritePciSlotInformation(
+       IN      NDIS_HANDLE                             WrapperConfigurationContext,
+       IN      ULONG                                   SlotNumber,
+       IN      ULONG                                   Offset,
+       IN      PVOID                                   Buffer,
+       IN      ULONG                                   Length
+       );
+
 /* String management routines */
 
 #if BINARY_COMPATIBLE
@@ -2567,6 +2645,42 @@ NdisWriteErrorLogEntry(
     KeStallExecutionProcessor(MicroSecondsToStall)
 
 
+#define NdisZeroMappedMemory(Destination,Length)               RtlZeroMemory(Destination,Length)
+/* moved to ndis/memory.c by robd
+#define NdisMoveMappedMemory(Destination,Source,Length) RtlCopyMemory(Destination,Source,Length)
+ */
+/* moved to ndis/control.c by robd
+#define NdisReinitializePacket(Packet)                                                                         \
+{                                                                                                                                                      \
+       (Packet)->Private.Head = (PNDIS_BUFFER)NULL;                                                    \
+       (Packet)->Private.ValidCounts = FALSE;                                                                  \
+}
+ */
+VOID
+EXPIMP
+NdisInitializeEvent(
+       IN      PNDIS_EVENT                             Event
+);
+
+VOID
+EXPIMP
+NdisSetEvent(
+       IN      PNDIS_EVENT                             Event
+);
+
+VOID
+EXPIMP
+NdisResetEvent(
+       IN      PNDIS_EVENT                             Event
+);
+
+BOOLEAN
+EXPIMP
+NdisWaitEvent(
+       IN      PNDIS_EVENT                             Event,
+       IN      UINT                                    msToWait
+);
+
 
 /* NDIS helper macros */
 
@@ -2647,6 +2761,81 @@ NdisReadMcaPosInformation(
 #endif /* NDIS40 */
 
 
+#if    USE_KLOCKS
+
+#define        DISPATCH_LEVEL          2
+
+#define NdisAllocateSpinLock(_SpinLock)        KeInitializeSpinLock(&(_SpinLock)->SpinLock)
+
+#define NdisFreeSpinLock(_SpinLock)
+
+#define NdisAcquireSpinLock(_SpinLock) KeAcquireSpinLock(&(_SpinLock)->SpinLock, &(_SpinLock)->OldIrql)
+
+#define NdisReleaseSpinLock(_SpinLock) KeReleaseSpinLock(&(_SpinLock)->SpinLock,(_SpinLock)->OldIrql)
+
+#define NdisDprAcquireSpinLock(_SpinLock)                                              \
+{                                                                                                                              \
+       KeAcquireSpinLockAtDpcLevel(&(_SpinLock)->SpinLock);            \
+       (_SpinLock)->OldIrql = DISPATCH_LEVEL;                                          \
+}
+
+#define NdisDprReleaseSpinLock(_SpinLock) KeReleaseSpinLockFromDpcLevel(&(_SpinLock)->SpinLock)
+
+#else
+
+//
+// Ndis Spin Locks
+//
+
+VOID
+EXPIMP
+NdisAllocateSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+
+VOID
+EXPIMP
+NdisFreeSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+
+VOID
+EXPIMP
+NdisAcquireSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+
+VOID
+EXPIMP
+NdisReleaseSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+
+VOID
+EXPIMP
+NdisDprAcquireSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+
+VOID
+EXPIMP
+NdisDprReleaseSpinLock(
+       IN      PNDIS_SPIN_LOCK                 SpinLock
+       );
+
+#endif
+
+VOID
+EXPIMP
+NdisGetCurrentSystemTime(
+       PLONGLONG                               pSystemTime
+       );
+
 
 /* NDIS 5.0 extensions */