Start removing dead code and ReactOS specific structure fields (the NDIS structures...
[reactos.git] / reactos / drivers / net / ndis / ndis / io.c
index cf38d8c..439529e 100644 (file)
@@ -44,14 +44,14 @@ VOID NTAPI HandleDeferredProcessing(
   KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock);
 
   /* Call the deferred interrupt service handler for this adapter */
-  (*Adapter->Miniport->Chars.HandleInterruptHandler)(
+  (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.HandleInterruptHandler)(
       Adapter->NdisMiniportBlock.MiniportAdapterContext);
 
   KeAcquireSpinLockAtDpcLevel(&Adapter->NdisMiniportBlock.Lock);
     {
       if ((!WasBusy) && (Adapter->WorkQueueHead))
         {
-          KeInsertQueueDpc(&Adapter->MiniportDpc, NULL, NULL);
+          KeInsertQueueDpc(&Adapter->NdisMiniportBlock.DeferredDpc, NULL, NULL);
         }
       else
         {
@@ -62,8 +62,8 @@ VOID NTAPI HandleDeferredProcessing(
 
   /* re-enable the interrupt */
   NDIS_DbgPrint(MAX_TRACE, ("re-enabling the interrupt\n"));
-  if(Adapter->Miniport->Chars.EnableInterruptHandler)
-    (*Adapter->Miniport->Chars.EnableInterruptHandler)(
+  if(Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.EnableInterruptHandler)
+    (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.EnableInterruptHandler)(
         Adapter->NdisMiniportBlock.MiniportAdapterContext);
 
   NDIS_DbgPrint(MAX_TRACE, ("Leaving.\n"));
@@ -84,18 +84,19 @@ BOOLEAN NTAPI ServiceRoutine(
 {
   BOOLEAN InterruptRecognized;
   BOOLEAN QueueMiniportHandleInterrupt;
-  PLOGICAL_ADAPTER Adapter = GET_LOGICAL_ADAPTER(ServiceContext);
+  PNDIS_MINIPORT_BLOCK Adapter = (PNDIS_MINIPORT_BLOCK)ServiceContext;
 
   NDIS_DbgPrint(MAX_TRACE, ("Called. Adapter (0x%X)\n", Adapter));
 
-  (*Adapter->Miniport->Chars.ISRHandler)(&InterruptRecognized,
+  (*Adapter->DriverHandle->MiniportCharacteristics.ISRHandler)(
+      &InterruptRecognized,
       &QueueMiniportHandleInterrupt,
-      Adapter->NdisMiniportBlock.MiniportAdapterContext);
+      Adapter->MiniportAdapterContext);
 
   if (QueueMiniportHandleInterrupt)
     {
       NDIS_DbgPrint(MAX_TRACE, ("Queueing DPC.\n"));
-      KeInsertQueueDpc(&Adapter->NdisMiniportBlock.Interrupt->InterruptDpc, NULL, NULL);
+      KeInsertQueueDpc(&Adapter->Interrupt->InterruptDpc, NULL, NULL);
     }
 
   NDIS_DbgPrint(MAX_TRACE, ("Leaving.\n"));
@@ -228,15 +229,15 @@ IO_ALLOCATION_ACTION NTAPI NdisMapRegisterCallback (
  *     - Called at IRQL = DISPATCH_LEVEL
  */
 {
-  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)Context;
+  PNDIS_MINIPORT_BLOCK Adapter = (PNDIS_MINIPORT_BLOCK)Context;
 
   NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
 
-  Adapter->NdisMiniportBlock.MapRegisters[Adapter->NdisMiniportBlock.CurrentMapRegister].MapRegister = MapRegisterBase;
+  Adapter->MapRegisters[Adapter->CurrentMapRegister].MapRegister = MapRegisterBase;
 
   NDIS_DbgPrint(MAX_TRACE, ("setting event and leaving.\n"));
 
-  KeSetEvent(&Adapter->DmaEvent, 0, FALSE);
+  KeSetEvent(Adapter->AllocationEvent, 0, FALSE);
 
   /* this is only the thing to do for busmaster NICs */
   return DeallocateObjectKeepRegisters;
@@ -284,33 +285,34 @@ NdisMAllocateMapRegisters(
  *       map registers to 32.
  */
 {
-  DEVICE_DESCRIPTION Description;
-  PDMA_ADAPTER       AdapterObject = 0;
-  UINT               MapRegistersPerBaseRegister = 0;
-  ULONG              AvailableMapRegisters;
-  NTSTATUS           NtStatus;
-  PLOGICAL_ADAPTER   Adapter = 0;
-  PDEVICE_OBJECT     DeviceObject = 0;
-  KIRQL              OldIrql;
+  DEVICE_DESCRIPTION   Description;
+  PDMA_ADAPTER         AdapterObject = 0;
+  UINT                 MapRegistersPerBaseRegister = 0;
+  ULONG                AvailableMapRegisters;
+  NTSTATUS             NtStatus;
+  PNDIS_MINIPORT_BLOCK Adapter = 0;
+  PDEVICE_OBJECT       DeviceObject = 0;
+  KEVENT               AllocationEvent;
+  KIRQL                OldIrql;
 
   NDIS_DbgPrint(MAX_TRACE, ("called: Handle 0x%x, DmaChannel 0x%x, DmaSize 0x%x, BaseMapRegsNeeded: 0x%x, MaxBuffer: 0x%x.\n",
                             MiniportAdapterHandle, DmaChannel, DmaSize, BaseMapRegistersNeeded, MaximumBufferSize));
 
   memset(&Description,0,sizeof(Description));
 
-  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
+  Adapter = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
 
   ASSERT(Adapter);
 
   /* only bus masters may call this routine */
-  ASSERT(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER);
-  if(!(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER))
+  ASSERT(Adapter->Flags & NDIS_ATTRIBUTE_BUS_MASTER);
+  if(!(Adapter->Flags & NDIS_ATTRIBUTE_BUS_MASTER))
     return NDIS_STATUS_SUCCESS;
 
-  DeviceObject = Adapter->NdisMiniportBlock.DeviceObject;
+  DeviceObject = Adapter->DeviceObject;
 
-  KeInitializeEvent(&Adapter->DmaEvent, NotificationEvent, FALSE);
-  KeInitializeSpinLock(&Adapter->DmaLock);
+  KeInitializeEvent(&AllocationEvent, NotificationEvent, FALSE);
+  Adapter->AllocationEvent = &AllocationEvent;
 
   /*
   * map registers correlate to physical pages.  ndis documents a
@@ -330,12 +332,12 @@ NdisMAllocateMapRegisters(
   Description.Master = TRUE;                         /* implied by calling this function */
   Description.ScatterGather = TRUE;                  /* XXX UNTRUE: All BM DMA are S/G (ms seems to do this) */
   Description.Dma32BitAddresses = DmaSize;
-  Description.BusNumber = Adapter->NdisMiniportBlock.BusNumber;
-  Description.InterfaceType = Adapter->NdisMiniportBlock.BusType;
+  Description.BusNumber = Adapter->BusNumber;
+  Description.InterfaceType = Adapter->BusType;
   Description.DmaChannel = DmaChannel;
   Description.MaximumLength = MaximumBufferSize;
 
-  if(Adapter->NdisMiniportBlock.AdapterType == Isa)
+  if(Adapter->AdapterType == Isa)
     {
       /* system dma */
       if(DmaChannel < 4)
@@ -345,7 +347,7 @@ NdisMAllocateMapRegisters(
 
       Description.DmaSpeed = Compatible;
     }
-  else if(Adapter->NdisMiniportBlock.AdapterType == PCIBus)
+  else if(Adapter->AdapterType == PCIBus)
     {
       if(DmaSize == NDIS_DMA_64BITS)
         Description.Dma64BitAddresses = TRUE;
@@ -359,8 +361,7 @@ NdisMAllocateMapRegisters(
     }
 
   AdapterObject = IoGetDmaAdapter(
-    Adapter->NdisMiniportBlock.PhysicalDeviceObject,
-    &Description, &AvailableMapRegisters);
+    Adapter->PhysicalDeviceObject, &Description, &AvailableMapRegisters);
 
   if(!AdapterObject)
     {
@@ -368,7 +369,7 @@ NdisMAllocateMapRegisters(
       return NDIS_STATUS_RESOURCES;
     }
 
-  Adapter->NdisMiniportBlock.SystemAdapterObject = AdapterObject;
+  Adapter->SystemAdapterObject = AdapterObject;
 
   if(AvailableMapRegisters < MapRegistersPerBaseRegister)
     {
@@ -379,22 +380,22 @@ NdisMAllocateMapRegisters(
     }
 
   /* allocate & zero space in the miniport block for the registers */
-  Adapter->NdisMiniportBlock.MapRegisters = ExAllocatePool(NonPagedPool, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
-  if(!Adapter->NdisMiniportBlock.MapRegisters)
+  Adapter->MapRegisters = ExAllocatePool(NonPagedPool, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
+  if(!Adapter->MapRegisters)
     {
       NDIS_DbgPrint(MIN_TRACE, ("insufficient resources.\n"));
       return NDIS_STATUS_RESOURCES;
     }
 
-  memset(Adapter->NdisMiniportBlock.MapRegisters, 0, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
-  Adapter->NdisMiniportBlock.BaseMapRegistersNeeded = (USHORT)BaseMapRegistersNeeded;
+  memset(Adapter->MapRegisters, 0, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
+  Adapter->BaseMapRegistersNeeded = (USHORT)BaseMapRegistersNeeded;
 
   while(BaseMapRegistersNeeded)
     {
       NDIS_DbgPrint(MAX_TRACE, ("iterating, basemapregistersneeded = %d\n", BaseMapRegistersNeeded));
 
       BaseMapRegistersNeeded--;
-      Adapter->NdisMiniportBlock.CurrentMapRegister = (USHORT)BaseMapRegistersNeeded;
+      Adapter->CurrentMapRegister = (USHORT)BaseMapRegistersNeeded;
       KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
         {
           NtStatus = AdapterObject->DmaOperations->AllocateAdapterChannel(
@@ -411,7 +412,7 @@ NdisMAllocateMapRegisters(
 
       NDIS_DbgPrint(MAX_TRACE, ("waiting on event\n"));
 
-      NtStatus = KeWaitForSingleObject(&Adapter->DmaEvent, Executive, KernelMode, FALSE, 0);
+      NtStatus = KeWaitForSingleObject(&AllocationEvent, Executive, KernelMode, FALSE, 0);
 
       if(!NT_SUCCESS(NtStatus))
         {
@@ -421,7 +422,7 @@ NdisMAllocateMapRegisters(
 
       NDIS_DbgPrint(MAX_TRACE, ("resetting event\n"));
 
-      KeResetEvent(&Adapter->DmaEvent);
+      KeResetEvent(&AllocationEvent);
     }
 
   NDIS_DbgPrint(MAX_TRACE, ("returning success\n"));
@@ -458,7 +459,7 @@ NdisMStartBufferPhysicalMapping(
  *     - The caller supplies storage for the physical address array.
  */
 {
-  PLOGICAL_ADAPTER Adapter = 0;
+  PNDIS_MINIPORT_BLOCK Adapter;
   PVOID CurrentVa;
   ULONG TotalLength;
   PHYSICAL_ADDRESS ReturnedAddress;
@@ -467,7 +468,7 @@ NdisMStartBufferPhysicalMapping(
   ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
   ASSERT(MiniportAdapterHandle && Buffer && PhysicalAddressArray && ArraySize);
 
-  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
+  Adapter = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
   CurrentVa = MmGetMdlVirtualAddress(Buffer);
   TotalLength = MmGetMdlByteCount(Buffer);
 
@@ -475,12 +476,12 @@ NdisMStartBufferPhysicalMapping(
     {
       ULONG Length = TotalLength;
 
-      ReturnedAddress = Adapter->NdisMiniportBlock.SystemAdapterObject->DmaOperations->MapTransfer(
-          Adapter->NdisMiniportBlock.SystemAdapterObject, Buffer,
-          Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].MapRegister,
+      ReturnedAddress = Adapter->SystemAdapterObject->DmaOperations->MapTransfer(
+          Adapter->SystemAdapterObject, Buffer,
+          Adapter->MapRegisters[PhysicalMapRegister].MapRegister,
           CurrentVa, &Length, WriteToDevice);
 
-      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].WriteToDevice = WriteToDevice;
+      Adapter->MapRegisters[PhysicalMapRegister].WriteToDevice = WriteToDevice;
 
       PhysicalAddressArray[LoopCount].PhysicalAddress = ReturnedAddress;
       PhysicalAddressArray[LoopCount].Length = Length;
@@ -514,22 +515,22 @@ NdisMCompleteBufferPhysicalMapping(
  *     - May be called at IRQL <= DISPATCH_LEVEL
  */
 {
-  PLOGICAL_ADAPTER Adapter = 0;
+  PNDIS_MINIPORT_BLOCK Adapter;
   VOID *CurrentVa;
   ULONG Length;
 
   ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
   ASSERT(MiniportAdapterHandle && Buffer);
 
-  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
+  Adapter = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
   CurrentVa = MmGetMdlVirtualAddress(Buffer);
   Length = MmGetMdlByteCount(Buffer);
 
-  Adapter->NdisMiniportBlock.SystemAdapterObject->DmaOperations->FlushAdapterBuffers(
-      Adapter->NdisMiniportBlock.SystemAdapterObject, Buffer,
-      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].MapRegister,
+  Adapter->SystemAdapterObject->DmaOperations->FlushAdapterBuffers(
+      Adapter->SystemAdapterObject, Buffer,
+      Adapter->MapRegisters[PhysicalMapRegister].MapRegister,
       CurrentVa, Length,
-      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].WriteToDevice);
+      Adapter->MapRegisters[PhysicalMapRegister].WriteToDevice);
 }
 
 \f
@@ -600,42 +601,42 @@ NdisMFreeMapRegisters(
  * NOTES:
  */
 {
-  KIRQL            OldIrql;
-  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
-  PDMA_ADAPTER     AdapterObject;
-  UINT             MapRegistersPerBaseRegister;
-  UINT             i;
+  KIRQL                OldIrql;
+  PNDIS_MINIPORT_BLOCK Adapter = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
+  PDMA_ADAPTER         AdapterObject;
+  UINT                 MapRegistersPerBaseRegister;
+  UINT                 i;
 
   NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
 
   ASSERT(Adapter);
 
   /* only bus masters may call this routine */
-  ASSERT(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER);
-  if(!(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER) ||
-     Adapter->NdisMiniportBlock.SystemAdapterObject == NULL)
+  ASSERT(Adapter->Flags & NDIS_ATTRIBUTE_BUS_MASTER);
+  if(!(Adapter->Flags & NDIS_ATTRIBUTE_BUS_MASTER) ||
+     Adapter->SystemAdapterObject == NULL)
     return;
 
-  MapRegistersPerBaseRegister = ((Adapter->NdisMiniportBlock.MaximumPhysicalMapping - 2) / PAGE_SIZE) + 2;
+  MapRegistersPerBaseRegister = ((Adapter->MaximumPhysicalMapping - 2) / PAGE_SIZE) + 2;
 
-  AdapterObject = Adapter->NdisMiniportBlock.SystemAdapterObject;
+  AdapterObject = Adapter->SystemAdapterObject;
 
   KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
     {
-      for(i = 0; i < Adapter->NdisMiniportBlock.BaseMapRegistersNeeded; i++)
+      for(i = 0; i < Adapter->BaseMapRegistersNeeded; i++)
         {
           AdapterObject->DmaOperations->FreeMapRegisters(
-              Adapter->NdisMiniportBlock.SystemAdapterObject,
-              Adapter->NdisMiniportBlock.MapRegisters[i].MapRegister,
+              Adapter->SystemAdapterObject,
+              Adapter->MapRegisters[i].MapRegister,
               MapRegistersPerBaseRegister);
         }
     }
  KeLowerIrql(OldIrql);
 
  AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
- Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;
+ Adapter->SystemAdapterObject = NULL;
 
- ExFreePool(Adapter->NdisMiniportBlock.MapRegisters);
+ ExFreePool(Adapter->MapRegisters);
 }
 
 \f
@@ -771,7 +772,7 @@ NdisMRegisterInterrupt(
   ULONG MappedIRQ;
   KIRQL DIrql;
   KAFFINITY Affinity;
-  PLOGICAL_ADAPTER Adapter = GET_LOGICAL_ADAPTER(MiniportAdapterHandle);
+  PNDIS_MINIPORT_BLOCK Adapter = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
 
   NDIS_DbgPrint(MAX_TRACE, ("Called. InterruptVector (0x%X)  InterruptLevel (0x%X)  "
       "SharedInterrupt (%d)  InterruptMode (0x%X)\n",
@@ -787,10 +788,9 @@ NdisMRegisterInterrupt(
 
   Interrupt->SharedInterrupt = SharedInterrupt;
 
-  Adapter->NdisMiniportBlock.Interrupt = Interrupt;
+  Adapter->Interrupt = Interrupt;
 
-  MappedIRQ = HalGetInterruptVector(Adapter->NdisMiniportBlock.BusType,
-                                    Adapter->NdisMiniportBlock.BusNumber,
+  MappedIRQ = HalGetInterruptVector(Adapter->BusType, Adapter->BusNumber,
                                     InterruptLevel, InterruptVector, &DIrql,
                                     &Affinity);
 
@@ -837,9 +837,9 @@ NdisMRegisterIoPortRange(
  *     Status of operation
  */
 {
-  PHYSICAL_ADDRESS PortAddress, TranslatedAddress;
-  PLOGICAL_ADAPTER Adapter  = GET_LOGICAL_ADAPTER(MiniportAdapterHandle);
-  ULONG            AddressSpace = 1;    /* FIXME The HAL handles this wrong atm */
+  PHYSICAL_ADDRESS     PortAddress, TranslatedAddress;
+  PNDIS_MINIPORT_BLOCK Adapter  = (PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
+  ULONG                AddressSpace = 1;    /* FIXME The HAL handles this wrong atm */
 
   NDIS_DbgPrint(MAX_TRACE, ("Called - InitialPort 0x%x, NumberOfPorts 0x%x\n", InitialPort, NumberOfPorts));
 
@@ -858,8 +858,7 @@ NdisMRegisterIoPortRange(
 
   NDIS_DbgPrint(MAX_TRACE, ("Translating address 0x%x 0x%x\n", PortAddress.u.HighPart, PortAddress.u.LowPart));
 
-  if(!HalTranslateBusAddress(Adapter->NdisMiniportBlock.BusType,
-                             Adapter->NdisMiniportBlock.BusNumber,
+  if(!HalTranslateBusAddress(Adapter->BusType, Adapter->BusNumber,
                              PortAddress, &AddressSpace, &TranslatedAddress))
     {
       NDIS_DbgPrint(MIN_TRACE, ("Unable to translate address\n"));