Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

221 lines
6.9 KiB

#ifndef _IEPRO_
#define _IEPRO_
#define EPRO_DRIVER_VER_MAJOR 1
#define EPRO_DRIVER_VER_MINOR 0
#include "eprosw.h"
///////////////////////////////////////////////////////////////////
//epro.c:
///////////////////////////////////////////////////////////////////
NDIS_STATUS EProSelReset(PEPRO_ADAPTER adapter);
VOID EProInitializeAdapterData(PEPRO_ADAPTER adapter);
VOID EProEnableInterrupts(IN NDIS_HANDLE miniportAdapterContext);
VOID EProDisableInterrupts(IN NDIS_HANDLE miniportAdapterContext);
BOOLEAN EProVerifyRoundRobin(UCHAR *buf);
BOOLEAN EProPowerupBoard(PEPRO_ADAPTER adapter);
extern VOID EProHalt(IN NDIS_HANDLE miniportAdapterContext);
NDIS_STATUS EProReset(OUT PBOOLEAN fAddressingReset,
IN NDIS_HANDLE miniportAdapterContext);
BOOLEAN EProCheckForHang(IN NDIS_HANDLE miniportAdapterContext);
VOID EProHandleInterrupt(IN NDIS_HANDLE miniportAdapterContext);
VOID EProISR(OUT PBOOLEAN interruptRecognized,
OUT PBOOLEAN queueMiniportHandleInterrupt,
IN NDIS_HANDLE miniportAdapterContext);
BOOLEAN EProCardReadEthernetAddress(PEPRO_ADAPTER adapter);
BOOLEAN EProAltIOCHRDYTest(PEPRO_ADAPTER adapter);
BOOLEAN EProSyncSetInterruptMask(PVOID context);
// This is implemented via a macro
//VOID EProSetInterruptMask(PEPRO_ADAPTER adapter, UCHAR newMask);
#define EProSetInterruptMask(_adapter, _newMask) { \
EPRO_SETINTERRUPT_CONTEXT _context; \
_context.Adapter = _adapter; \
_context.NewMask = _newMask; \
NdisMSynchronizeWithInterrupt(&_adapter->Interrupt, \
&EProSyncSetInterruptMask, \
&_context); \
}
BOOLEAN EProWaitForExeDma(PEPRO_ADAPTER adapter);
BOOLEAN EProReceiveEnable(PEPRO_ADAPTER adapter);
BOOLEAN EProReceiveDisable(PEPRO_ADAPTER adapter);
VOID EProMyLog(char *s);
//VOID EProTimerFunc(IN PVOID foo1, IN PVOID context, IN PVOID foo2, IN PVOID foo3);
#if DBG
VOID EProLogStr(char *s);
VOID EProLogLong(ULONG l);
VOID EProLogBuffer(UCHAR *s, ULONG len);
#else
#define EProLogStr(a)
#define EProLogLong(a)
#define EProLogBuffer(a, b)
#endif
///////////////////////////////////////////////////////////////////
// init.c
///////////////////////////////////////////////////////////////////
NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject_,
IN PUNICODE_STRING RegistryPath_);
NDIS_STATUS EProInitialize(OUT PNDIS_STATUS openErrorStatus,
OUT PUINT selectedMedumIndex,
IN PNDIS_MEDIUM medumArray,
IN UINT mediumArraySize,
IN NDIS_HANDLE miniportAdapterHandle,
IN NDIS_HANDLE configurationHandle);
NDIS_STATUS EProReadConfiguration(IN PEPRO_ADAPTER adapterxo,
IN NDIS_HANDLE configurationHandle);
NDIS_STATUS EProRegisterAdapterHW(IN PEPRO_ADAPTER adapter);
NDIS_STATUS EProInitialReset(IN PEPRO_ADAPTER adapter);
NDIS_STATUS EProHWInitialize(IN PEPRO_ADAPTER adapter);
VOID EProUpdateEEProm(IN PEPRO_ADAPTER adapter);
NDIS_STATUS EProHWConfigure(IN PEPRO_ADAPTER adapter);
//////////////////////////////////////////////////////////////////////
// request.c:
//////////////////////////////////////////////////////////////////////
NDIS_STATUS EProSetInformation(IN NDIS_HANDLE miniportAdapterContext,
IN NDIS_OID oid,
IN PVOID informationBuffer,
IN ULONG informationLength,
OUT PULONG bytesRead,
OUT PULONG bytesNeeded);
NDIS_STATUS EProQueryInformation(IN NDIS_HANDLE miniportAdapterContext,
IN NDIS_OID oid,
IN PVOID informationBuffer,
IN ULONG informationBuffrLength,
OUT PULONG bytesWritten,
OUT PULONG bytesNeeded);
BOOLEAN EProSetEthernetAddress(PEPRO_ADAPTER adapter);
NDIS_STATUS EProSetPacketFilter(PEPRO_ADAPTER adapter, ULONG newFilter);
BOOLEAN EProSyncBroadcastPromiscuousChange(PVOID context);
// Implemented via a macro
//VOID EProBroadcastPromiscuousChange(PEPRO_ADAPTER adapter, UCHAR reg2flags);
#define EProBroadcastPromiscuousChange(_adapter, _reg2Flags) { \
EPRO_BRDPROM_CONTEXT _context; \
_context.Adapter =_adapter; \
_context.Reg2Flags = _reg2Flags; \
NdisMSynchronizeWithInterrupt(&adapter->Interrupt, \
&EProSyncBroadcastPromiscuousChange, \
(PVOID)&_context); \
}
//////////////////////////////////////////////////////////////////////
// eeprom.c:
//////////////////////////////////////////////////////////////////////
// EEProm Routines
VOID EProEECleanup(PEPRO_ADAPTER adapter);
VOID EProEEUpdateChecksum(PEPRO_ADAPTER adapter);
VOID EProEEStandBy(PEPRO_ADAPTER adapter);
VOID EProEERead(PEPRO_ADAPTER adapter, USHORT address, PUSHORT data);
VOID EProEEWrite(PEPRO_ADAPTER adapter, USHORT address, USHORT data);
VOID EProEEReverseRead(PEPRO_ADAPTER adapter, USHORT address, PUSHORT data);
VOID EProEEShiftOutBits(PEPRO_ADAPTER adapter, USHORT data, SHORT count);
VOID EProEEShiftInBits(PEPRO_ADAPTER adapter, PUSHORT data, SHORT count);
VOID EProEEReverseShiftInBits(PEPRO_ADAPTER adapter, PUSHORT data, SHORT count);
VOID EProEERaiseClock(PEPRO_ADAPTER adapter, PUCHAR result);
VOID EProEELowerClock(PEPRO_ADAPTER adapter, PUCHAR result);
BOOLEAN EProEEWaitCmdDone(PEPRO_ADAPTER adapter);
//////////////////////////////////////////////////////////////////////
// sndrcv.c
//////////////////////////////////////////////////////////////////////
BOOLEAN EProSyncReadBufferFromNicUlong(PVOID context);
BOOLEAN EProSyncWriteBufferToNicUlong(PVOID context);
NDIS_STATUS EProSend(IN NDIS_HANDLE miniportAdapterContext,
IN PNDIS_PACKET packet,
IN UINT flags);
VOID EProCopyPacketToCard(PEPRO_ADAPTER adapter, PNDIS_PACKET packet);
BOOLEAN EProCheckTransmitCompletion(PEPRO_ADAPTER adapter,
PEPRO_TRANSMIT_BUFFER txBuf);
UINT EProHandleReceive(PEPRO_ADAPTER adapter);
NDIS_STATUS EProTransferData(OUT PNDIS_PACKET packet,
OUT PUINT bytesTransferred,
IN NDIS_HANDLE miniportAdapterContext,
IN NDIS_HANDLE miniportReceivedContext,
IN UINT byteOffset,
IN UINT bytesToTransfer);
BOOLEAN EProChangeMulticastList(PEPRO_ADAPTER adapter,
UINT addressCount,
UCHAR addresses[][EPRO_LENGTH_OF_ADDRESS]);
#define EPRO_SET_CARD_MC 0
#define EPRO_CLEAR_CARD_MC 1
BOOLEAN EProSetCardMulticastList(PEPRO_ADAPTER adapter, int operation);
BOOLEAN EProSyncCopyBufferToNicUlong(PVOID context);
#define EPRO_READ_BUFFER_FROM_NIC_ULONG(adapter, buffer, len) \
{ \
EPRO_COPYBUF_CONTEXT _context; \
_context.Adapter = adapter; \
_context.Buffer = buffer; \
_context.Len = len; \
NdisMSynchronizeWithInterrupt(&adapter->Interrupt, \
&EProSyncReadBufferFromNicUlong, \
(PVOID)&_context); \
}
#define EPRO_COPY_BUFFER_TO_NIC_ULONG(adapter, buffer, len) \
{ \
EPRO_COPYBUF_CONTEXT _context; \
_context.Adapter = adapter; \
_context.Buffer = buffer; \
_context.Len = len; \
NdisMSynchronizeWithInterrupt(&adapter->Interrupt, \
&EProSyncCopyBufferToNicUlong, \
(PVOID)&_context); \
}
#endif _IEPRO_