451 lines
6.8 KiB
C
451 lines
6.8 KiB
C
//************************************************************************
|
|
//************************************************************************
|
|
//
|
|
// File Name: PROTOS.H
|
|
//
|
|
// Program Name: NetFlex NDIS 3.0 Miniport Driver
|
|
//
|
|
// Companion Files: All
|
|
//
|
|
// Function: This module contains the NetFlex Miniport Driver
|
|
// routine prototypes references.
|
|
//
|
|
// (c) Compaq Computer Corporation, 1992,1993,1994
|
|
//
|
|
// This file is licensed by Compaq Computer Corporation to Microsoft
|
|
// Corporation pursuant to the letter of August 20, 1992 from
|
|
// Gary Stimac to Mark Baber.
|
|
//
|
|
// History:
|
|
//
|
|
// 04/15/94 Robert Van Cleve - Converted from NDIS Mac Driver
|
|
//***********************************************************************
|
|
//***********************************************************************
|
|
|
|
|
|
#ifndef _PROTOS_
|
|
#define _PROTOS_
|
|
|
|
|
|
NDIS_STATUS
|
|
NetFlexBoardTest(
|
|
PACB acb,
|
|
NDIS_HANDLE NdisAdapterHandle
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexBoardInitandReg(
|
|
PACB acb,
|
|
PNDIS_EISA_FUNCTION_INFORMATION EisaData
|
|
);
|
|
|
|
|
|
VOID
|
|
NetFlexSetupNetType(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexGetBIA(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexDownload(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexReadConfigurationParameters(
|
|
PACB acb,
|
|
NDIS_HANDLE ConfigHandle
|
|
);
|
|
|
|
VOID
|
|
NetFlexGetUpstreamAddrPtr(
|
|
PACB acb
|
|
);
|
|
|
|
//++
|
|
|
|
NTSTATUS
|
|
DriverEntry(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN PUNICODE_STRING RegistryPath
|
|
);
|
|
|
|
BOOLEAN
|
|
NetFlexCheckForHang(
|
|
IN NDIS_HANDLE MiniportAdapterContext
|
|
);
|
|
|
|
VOID
|
|
NetFlexISR(
|
|
OUT PBOOLEAN InterruptRecognized,
|
|
OUT PBOOLEAN QueueDpc,
|
|
IN PVOID Context
|
|
);
|
|
|
|
VOID
|
|
NetFlexHandleInterrupt(
|
|
IN NDIS_HANDLE MiniportAdapterContext
|
|
);
|
|
|
|
VOID
|
|
NetFlexDeferredTimer(
|
|
IN PVOID SystemSpecific1,
|
|
IN PACB acb,
|
|
IN PVOID SystemSpecific2,
|
|
IN PVOID SystemSpecific3
|
|
);
|
|
|
|
VOID
|
|
NetFlexEnableInterrupt(
|
|
IN NDIS_HANDLE Context
|
|
);
|
|
|
|
VOID
|
|
NetFlexDisableInterrupt(
|
|
IN NDIS_HANDLE Context
|
|
);
|
|
|
|
VOID
|
|
NetFlexHalt(
|
|
IN NDIS_HANDLE MiniportAdapterContext
|
|
);
|
|
|
|
VOID
|
|
NetFlexShutdown(
|
|
IN NDIS_HANDLE MiniportAdapterContext
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexInitialize(
|
|
OUT PNDIS_STATUS OpenErrorStatus,
|
|
OUT PUINT SelectedMediumIndex,
|
|
IN PNDIS_MEDIUM MediumArray,
|
|
IN UINT MediumArraySize,
|
|
IN NDIS_HANDLE MiniportAdapterHandle,
|
|
IN NDIS_HANDLE ConfigurationHandle
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexSetInformation(
|
|
IN NDIS_HANDLE MiniportAdapterContext,
|
|
IN NDIS_OID Oid,
|
|
IN PVOID InformationBuffer,
|
|
IN ULONG InformationBufferLength,
|
|
OUT PULONG BytesRead,
|
|
OUT PULONG BytesNeeded
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexQueryInformation(
|
|
IN NDIS_HANDLE MiniportAdapterContext,
|
|
IN NDIS_OID Oid,
|
|
IN PVOID InformationBuffer,
|
|
IN ULONG InformationBufferLength,
|
|
OUT PULONG BytesWritten,
|
|
OUT PULONG BytesNeeded
|
|
);
|
|
|
|
VOID
|
|
NetFlexFinishQueryInformation(
|
|
PACB acb,
|
|
NDIS_STATUS Status
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexResetDispatch(
|
|
OUT PBOOLEAN AddressingReset,
|
|
IN NDIS_HANDLE MiniportAdapterContext
|
|
);
|
|
|
|
VOID
|
|
NetFlexResetHandler(
|
|
IN PVOID SystemSpecific1,
|
|
IN PACB acb,
|
|
IN PVOID SystemSpecific2,
|
|
IN PVOID SystemSpecific3
|
|
);
|
|
|
|
NDIS_STATUS NetFlexSend(
|
|
IN NDIS_HANDLE MiniportAdapterContext,
|
|
IN PNDIS_PACKET Packet,
|
|
IN UINT Flags
|
|
);
|
|
|
|
NDIS_STATUS NetFlexTransferData(
|
|
OUT PNDIS_PACKET Packet,
|
|
OUT PUINT BytesTransferred,
|
|
IN NDIS_HANDLE MiniportAdapterContext,
|
|
IN NDIS_HANDLE MiniportReceiveContext,
|
|
IN UINT ByteOffset,
|
|
IN UINT BytesToTransfer
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexRegisterAdapter(
|
|
PACB *acbp,
|
|
PACB FirstHeadsAcb,
|
|
NDIS_HANDLE ConfigurationHandle,
|
|
USHORT baseaddr,
|
|
NDIS_HANDLE MiniportAdapterHandle
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexInitializeAcb(
|
|
PACB acb
|
|
);
|
|
VOID
|
|
NetFlexDeallocateAcb(
|
|
PACB acb);
|
|
|
|
|
|
VOID
|
|
NetFlexSendNextSCB(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexRemoveRequests(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexDoResetIndications(
|
|
IN PACB acb,
|
|
IN NDIS_STATUS Status
|
|
);
|
|
|
|
VOID
|
|
NetFlexQueueSCB(
|
|
PACB acb,
|
|
PSCBREQ scbreq
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexAdapterReset(
|
|
PACB acb,
|
|
INT mode
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexBudWait(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexInitializeAdapter(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexProcessRequest(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexFinishUnloading(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
NetFlexDeregisterAdapter(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexAsciiToHex(
|
|
PNDIS_STRING src,
|
|
PUCHAR dst,
|
|
USHORT dst_length
|
|
);
|
|
|
|
VOID
|
|
FASTCALL
|
|
NetFlexProcessXmit(
|
|
PACB acb
|
|
);
|
|
|
|
USHORT
|
|
FASTCALL
|
|
NetFlexProcessTrRcv(
|
|
PACB acb
|
|
);
|
|
|
|
USHORT
|
|
FASTCALL
|
|
NetFlexProcessEthRcv(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexProcessSendQueue(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexProcessSend(
|
|
PACB acb,
|
|
PNDIS_PACKET Packet,
|
|
UINT PhysicalBufferCount,
|
|
UINT BufferCount,
|
|
PNDIS_BUFFER curbuf,
|
|
UINT TotalPacketLength
|
|
);
|
|
|
|
VOID
|
|
NetFlexGetUpstreamAddress(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexRingStatus(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexCommand(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
NetFlexTransmitStatus(
|
|
PACB acb
|
|
);
|
|
|
|
BOOLEAN
|
|
NetFlexReset_Test(
|
|
PACB acb,
|
|
PMACREQ *resetreq
|
|
);
|
|
|
|
VOID
|
|
NetFlexProcessMacReq(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexValidateMulticasts(
|
|
PUCHAR multiaddrs,
|
|
USHORT multinumber
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexOpenAdapter(
|
|
PACB acb
|
|
);
|
|
|
|
|
|
BOOLEAN
|
|
NetFlexCloseAdapter(
|
|
PACB acb
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexInitGlobals(
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexConstrainPacket(
|
|
PACB acb,
|
|
PXMIT xmitptr,
|
|
PNDIS_PACKET Packet,
|
|
UINT PhysicalBufferCount,
|
|
PNDIS_BUFFER curbuf,
|
|
UINT TotalPacketLength
|
|
);
|
|
|
|
BOOLEAN
|
|
NetFlexFindEntry(
|
|
PVOID head,
|
|
PVOID *back,
|
|
PVOID entry
|
|
);
|
|
VOID
|
|
NetFlexDequeue_OnePtrQ(
|
|
PVOID *head,
|
|
PVOID entry
|
|
);
|
|
|
|
VOID
|
|
NetFlexEnqueue_OnePtrQ_Head(
|
|
PVOID *head,
|
|
PVOID entry
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexDequeue_OnePtrQ_Head(
|
|
PVOID *head,
|
|
PVOID *entry
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexEnqueue_TwoPtrQ_Tail(
|
|
PVOID *head,
|
|
PVOID *tail,
|
|
PVOID entry
|
|
);
|
|
|
|
VOID
|
|
NetFlexDequeue_TwoPtrQ(
|
|
PVOID *head,
|
|
PVOID *tail,
|
|
PVOID entry
|
|
);
|
|
|
|
NDIS_STATUS
|
|
NetFlexDequeue_TwoPtrQ_Head(
|
|
PVOID *head,
|
|
PVOID *tail,
|
|
PVOID *entry
|
|
);
|
|
|
|
//
|
|
// Debug macros
|
|
//
|
|
|
|
#if (DBG || DBGPRINT)
|
|
extern ULONG DebugLevel;
|
|
|
|
|
|
VOID
|
|
_DebugPrint(
|
|
PCCHAR DebugMessage,
|
|
...
|
|
);
|
|
|
|
#define DebugPrint(level, msg) \
|
|
if ((ULONG) level <= DebugLevel) \
|
|
_DebugPrint msg
|
|
|
|
extern USHORT DisplayLists;
|
|
VOID
|
|
_DisplayXmitList(
|
|
PACB acb
|
|
);
|
|
|
|
VOID
|
|
_DisplayRcvList(
|
|
PACB acb
|
|
);
|
|
|
|
#define DisplayXmitList(_acb) \
|
|
if (DisplayLists) \
|
|
_DisplayXmitList(_acb)
|
|
|
|
#define DisplayRcvList(_acb) \
|
|
if (DisplayLists) \
|
|
_DisplayRcvList(_acb)
|
|
|
|
#else
|
|
|
|
#define DebugPrint(level, x)
|
|
#define DisplayXmitList(x)
|
|
#define DisplayRcvList(x)
|
|
#endif // DBG
|
|
|
|
|
|
#endif
|