NT4/private/ntos/ndis/pcimac/adapter.h
2020-09-30 17:12:29 +02:00

231 lines
4.2 KiB
C

/*
* ADAPTER.H - NDIS Adapter Interface, main include file
*/
#ifndef _ADAPTER_
#define _ADAPTER_
#define PCIMAC_KEY_BOARDTYPE "BoardType"
#define PCIMAC_KEY_BASEIO "IOBaseAddress"
#define PCIMAC_KEY_BASEMEM "MemoryMappedBaseAddress"
#define PCIMAC_KEY_BOARDNAME "BoardName"
#define PCIMAC_KEY_LINENAME "LineName"
#define PCIMAC_KEY_NUMLINES "NumberOfLines"
#define PCIMAC_KEY_IDPFILENAME "IDPImageFileName"
#define PCIMAC_KEY_SWITCHSTYLE "SwitchStyle"
#define PCIMAC_KEY_TERMINALMANAGEMENT "TerminalManagement"
#define PCIMAC_KEY_NUMLTERMS "LogicalTerminals"
#define PCIMAC_KEY_TEI "TEI"
#define PCIMAC_KEY_SPID "SPID"
#define PCIMAC_KEY_ADDRESS "Address"
#define PCIMAC_KEY_LINE "Line"
#define PCIMAC_KEY_LTERM "LTerm"
#define PCIMAC_KEY_WAITFORL3 "WaitForL3"
#define PCIMAC_KEY_GENERICDEFINES "GenericDefines"
/* global driver obect */
typedef struct tagDRIVER_BLOCK
{
NDIS_HANDLE NdisMacHandle;
NDIS_HANDLE NdisWrapperHandle;
struct _ADAPTER* AdapterTbl[MAX_ADAPTERS_IN_SYSTEM];
ULONG InDriverFlag;
ULONG NumberOfAdaptersInSystem;
ULONG NextAdapterToPoll;
struct _ADAPTER* CurrentAdapter;
NDIS_SPIN_LOCK lock;
} DRIVER_BLOCK;
typedef struct _ADAPTER
{
NDIS_HANDLE Handle;
// ULONG InDriverFlag;
// NDIS_SPIN_LOCK InDriverLock;
CHAR Name[64];
ULONG BaseIO;
PVOID VBaseIO;
ULONG BaseMem;
PVOID VBaseMem;
ULONG BoardType;
ULONG TapiBaseID;
ULONG NumberOfIddOnAdapter;
ULONG LastIddPolled;
VOID *TapiLineInfo[MAX_CM_PER_ADAPTER]; // 8
VOID *IddTbl[MAX_IDD_PER_ADAPTER]; // 4
VOID *CmTbl[MAX_CM_PER_ADAPTER]; // 8
VOID *MtlTbl[MAX_MTL_PER_ADAPTER]; // 8
NDIS_MINIPORT_TIMER IddPollTimer; // idd polling timer
NDIS_MINIPORT_TIMER MtlPollTimer; // mtl polling timer
NDIS_MINIPORT_TIMER CmPollTimer; // cm polling timer
}ADAPTER;
typedef struct _CONFIGPARAM
{
INT ParamType;
CHAR String[512];
ULONG StringLen;
ULONG Value;
ULONG MustBePresent;
NDIS_HANDLE ConfigHandle;
NDIS_HANDLE AdapterHandle;
} CONFIGPARAM;
VOID StopTimers(ADAPTER* Adapter);
VOID StartTimers(ADAPTER* Adapter);
//VOID
//SetInDriverFlag(
// ADAPTER *Adapter
// );
//
//VOID
//ClearInDriverFlag(
// ADAPTER *Adapter
// );
//
//ULONG
//CheckInDriverFlag(
// ADAPTER *Adapter
// );
VOID
SetInDriverFlag(
ADAPTER *Adapter
);
VOID
ClearInDriverFlag(
ADAPTER *Adapter
);
ULONG
CheckInDriverFlag(
ADAPTER *Adapter
);
BOOLEAN
PcimacCheckForHang(
NDIS_HANDLE AdapterContext
);
VOID
PcimacDisableInterrupts(
NDIS_HANDLE AdapterContext
);
VOID
PcimacEnableInterrupts(
NDIS_HANDLE AdapterContext
);
VOID
PcimacHalt(
NDIS_HANDLE AdapterContext
);
VOID
PcimacHandleInterrupt(
NDIS_HANDLE AdapterContext
);
NDIS_STATUS
PcimacInitialize(
PNDIS_STATUS OpenErrorStatus,
PUINT SelectMediumIndex,
PNDIS_MEDIUM MediumArray,
UINT MediumArraySize,
NDIS_HANDLE AdapterHandle,
NDIS_HANDLE WrapperConfigurationContext
);
VOID
PcimacISR(
PBOOLEAN InterruptRecognized,
PBOOLEAN QueueMiniportHandleInterrupt,
NDIS_HANDLE AdapterContext
);
NDIS_STATUS
PcimacSetQueryInfo(
NDIS_HANDLE AdapterContext,
NDIS_OID Oid,
PVOID InfoBuffer,
ULONG InfoBufferLen,
PULONG BytesWritten,
PULONG BytesNeeded
);
NDIS_STATUS
PcimacReconfigure(
PNDIS_STATUS OpenErrorStatus,
NDIS_HANDLE AdapterContext,
NDIS_HANDLE WrapperConfigurationContext
);
NDIS_STATUS
PcimacReset(
PBOOLEAN AddressingReset,
NDIS_HANDLE AdapterContext
);
NDIS_STATUS
PcimacSend(
NDIS_HANDLE MacBindingHandle,
NDIS_HANDLE LinkContext,
PNDIS_WAN_PACKET WanPacket
);
INT
IoEnumAdapter(
VOID *cmd_1
);
ULONG
EnumAdaptersInSystem(
VOID
);
ADAPTER*
GetNextAdapter(
ADAPTER *Adapter
);
VOID
AdapterDestroy(
ADAPTER *Adapter
);
NDIS_STATUS
WanOidProc(
NDIS_HANDLE AdapterContext,
NDIS_OID Oid,
PVOID InfoBuffer,
ULONG InfoBufferLen,
PULONG BytesReadWritten,
PULONG BytesNeeded
);
NDIS_STATUS
TapiOidProc(
NDIS_HANDLE AdapterContext,
NDIS_OID Oid,
PVOID InfoBuffer,
ULONG InfoBufferLen,
PULONG BytesWritten,
PULONG BytesNeeded
);
NDIS_STATUS
LanOidProc(
NDIS_HANDLE AdapterContext,
NDIS_OID Oid,
PVOID InfoBuffer,
ULONG InfoBufferLen,
PULONG BytesReadWritten,
PULONG BytesNeeded
);
#endif /* _ADAPTER_ */