From 7f9734c8df2fc4bdfffd0ee42a0e7387a1d729e8 Mon Sep 17 00:00:00 2001 From: Vizzini Date: Thu, 4 Sep 2003 06:53:31 +0000 Subject: [PATCH] couple of new data structs and changes to LOGICAL_ADAPTER struct for resource tracking, dma, etc. svn path=/trunk/; revision=5977 --- reactos/drivers/net/ndis/include/miniport.h | 55 ++++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/reactos/drivers/net/ndis/include/miniport.h b/reactos/drivers/net/ndis/include/miniport.h index 8462ca4cb57..dfb050424be 100644 --- a/reactos/drivers/net/ndis/include/miniport.h +++ b/reactos/drivers/net/ndis/include/miniport.h @@ -47,12 +47,37 @@ typedef struct _MINIPORT_CONFIGURATION_CONTEXT { /* Bugcheck callback context */ typedef struct _MINIPORT_BUGCHECK_CONTEXT { PVOID DriverContext; - ADAPTER_SHUTDOWN_HANDLER ShutdownHandler; + ADAPTER_SHUTDOWN_HANDLER ShutdownHandler; PKBUGCHECK_CALLBACK_RECORD CallbackRecord; } MINIPORT_BUGCHECK_CONTEXT, *PMINIPORT_BUGCHECK_CONTEXT; +/* allocated map register list */ +typedef struct _ADAPTER_MAP_REGISTER_LIST { + LIST_ENTRY ListEntry; + UINT NumRegisters; + PVOID MapRegister; +} ADAPTER_MAP_REGISTER_LIST, *PADAPTER_MAP_REGISTER_LIST; + +/* a miniport's shared memory */ +typedef struct _MINIPORT_SHARED_MEMORY { + PADAPTER_OBJECT AdapterObject; + ULONG Length; + PHYSICAL_ADDRESS PhysicalAddress; + PVOID VirtualAddress; + BOOLEAN Cached; +} MINIPORT_SHARED_MEMORY, *PMINIPORT_SHARED_MEMORY; + #define GET_MINIPORT_DRIVER(Handle)((PMINIPORT_DRIVER)Handle) +/* detected adapters that are driverless */ +typedef struct _ORPHAN_ADATER { + LIST_ENTRY ListEntry; + NDIS_STRING RegistryPath; + INTERFACE_TYPE BusType; + ULONG BusNumber; + ULONG SlotNumber; +} ORPHAN_ADAPTER, *PORPHAN_ADAPTER; + /* Information about a logical adapter */ typedef struct _LOGICAL_ADAPTER { NDIS_MINIPORT_BLOCK NdisMiniportBlock; /* NDIS defined fields */ @@ -88,7 +113,23 @@ typedef struct _LOGICAL_ADAPTER { PNDIS_PACKET PacketQueueTail; /* Head of packet queue */ PNDIS_PACKET LoopPacket; /* Current packet beeing looped */ - PMINIPORT_BUGCHECK_CONTEXT BugcheckContext; /* Adapter's shutdown handler */ + PMINIPORT_BUGCHECK_CONTEXT BugcheckContext; /* Adapter's shutdown handler */ + UINT MapRegistersRequested; /* Number of outstanding map registers requested */ + PADAPTER_OBJECT AdapterObject; /* Adapter object for DMA ops */ + ADAPTER_MAP_REGISTER_LIST MapRegisterList; /* List of allocated map registers */ + KEVENT DmaEvent; /* Event to support DMA register allocation */ + KSPIN_LOCK DmaLock; /* Spinlock to protect the dma list */ + UINT BusNumber; + INTERFACE_TYPE BusType; + UINT SlotNumber; + ULONG Irql; + ULONG Vector; + KAFFINITY Affinity; + PHYSICAL_ADDRESS BaseIoAddress; + PHYSICAL_ADDRESS BaseMemoryAddress; /* multiple ranges? */ + ULONG DmaChannel; + ULONG DmaPort; + PNDIS_MINIPORT_TIMER Timer; } LOGICAL_ADAPTER, *PLOGICAL_ADAPTER; #define GET_LOGICAL_ADAPTER(Handle)((PLOGICAL_ADAPTER)Handle) @@ -152,6 +193,16 @@ MiniDoRequest( PLOGICAL_ADAPTER Adapter, PNDIS_REQUEST NdisRequest); +BOOLEAN +NdisFindDevice( + UINT VendorID, + UINT DeviceID, + PUINT BusNumber, + PUINT SlotNumber); + +VOID +NdisStartDevices(); + #endif /* __MINIPORT_H */ /* EOF */