windows-nt/Source/XPSP1/NT/drivers/net/ms/e100bex/mp_nic.h
2020-09-26 16:20:57 +08:00

182 lines
4.1 KiB
C

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
mp_nic.h
Abstract:
Function prototypes for mp_nic.c, mp_init.c and mp_req.c
Revision History:
Who When What
-------- -------- ----------------------------------------------
DChen 11-01-99 created
Notes:
--*/
#ifndef _MP_NIC_H
#define _MP_NIC_H
#define NIC_INTERRUPT_DISABLED(_adapter) \
(_adapter->CSRAddress->ScbCommandHigh & SCB_INT_MASK)
#define NIC_INTERRUPT_ACTIVE(_adapter) \
(_adapter->CSRAddress->ScbStatus & SCB_ACK_MASK)
#define NIC_ACK_INTERRUPT(_adapter, _value) { \
_value = _adapter->CSRAddress->ScbStatus & SCB_ACK_MASK; \
_adapter->CSRAddress->ScbStatus = _value; }
#define NIC_IS_RECV_READY(_adapter) \
((_adapter->CSRAddress->ScbStatus & SCB_RUS_MASK) == SCB_RUS_READY)
__inline VOID NICDisableInterrupt(
IN PMP_ADAPTER Adapter)
{
Adapter->CSRAddress->ScbCommandHigh = SCB_INT_MASK;
}
__inline VOID NICEnableInterrupt(
IN PMP_ADAPTER Adapter)
{
Adapter->CSRAddress->ScbCommandHigh = 0;
}
//
// MP_NIC.C
//
NDIS_STATUS MpSendPacket(
IN PMP_ADAPTER Adapter,
IN PNDIS_PACKET Packet,
IN BOOLEAN bFromQueue);
NDIS_STATUS NICSendPacket(
IN PMP_ADAPTER Adapter,
IN PMP_TCB pMpTcb,
IN PMP_FRAG_LIST pFragList);
ULONG MpCopyPacket(
IN PNDIS_BUFFER CurrBuffer,
IN PMP_TXBUF pMpTxbuf);
VOID MpStartPacketPhysicalMapping(
IN PMP_ADAPTER Adapter,
IN PNDIS_BUFFER CurrBuffer,
OUT PMP_FRAG_LIST pFragList);
NDIS_STATUS NICStartSend(
IN PMP_ADAPTER Adapter,
IN PMP_TCB pMpTcb);
NDIS_STATUS MpHandleSendInterrupt(
IN PMP_ADAPTER Adapter);
VOID MpHandleRecvInterrupt(
IN PMP_ADAPTER Adapter);
VOID NICReturnRFD(
IN PMP_ADAPTER Adapter,
IN PMP_RFD pMpRfd);
NDIS_STATUS NICStartRecv(
IN PMP_ADAPTER Adapter);
VOID MpFreeQueuedSendPackets(
IN PMP_ADAPTER Adapter);
void MpFreeBusySendPackets(
IN PMP_ADAPTER Adapter);
void NICResetRecv(
IN PMP_ADAPTER Adapter);
VOID MpLinkDetectionDpc(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3);
//
// MP_INIT.C
//
NDIS_STATUS MpFindAdapter(
IN PMP_ADAPTER Adapter,
IN NDIS_HANDLE WrapperConfigurationContext);
NDIS_STATUS NICReadAdapterInfo(
IN PMP_ADAPTER Adapter);
NDIS_STATUS MpAllocAdapterBlock(
OUT PMP_ADAPTER *pAdapter);
void MpFreeAdapter(
IN PMP_ADAPTER Adapter);
NDIS_STATUS NICReadRegParameters(
IN PMP_ADAPTER Adapter,
IN NDIS_HANDLE WrapperConfigurationContext);
NDIS_STATUS NICAllocAdapterMemory(
IN PMP_ADAPTER Adapter);
VOID NICInitSend(
IN PMP_ADAPTER Adapter);
NDIS_STATUS NICInitRecv(
IN PMP_ADAPTER Adapter);
ULONG NICAllocRfd(
IN PMP_ADAPTER Adapter,
IN PMP_RFD pMpRfd);
VOID NICFreeRfd(
IN PMP_ADAPTER Adapter,
IN PMP_RFD pMpRfd);
NDIS_STATUS NICSelfTest(
IN PMP_ADAPTER Adapter);
NDIS_STATUS NICInitializeAdapter(
IN PMP_ADAPTER Adapter);
VOID HwSoftwareReset(
IN PMP_ADAPTER Adapter);
NDIS_STATUS HwConfigure(
IN PMP_ADAPTER Adapter);
NDIS_STATUS HwSetupIAAddress(
IN PMP_ADAPTER Adapter);
NDIS_STATUS HwClearAllCounters(
IN PMP_ADAPTER Adapter);
//
// MP_REQ.C
//
NDIS_STATUS NICGetStatsCounters(
IN PMP_ADAPTER Adapter,
IN NDIS_OID Oid,
OUT PULONG64 pCounter);
NDIS_STATUS NICSetPacketFilter(
IN PMP_ADAPTER Adapter,
IN ULONG PacketFilter);
NDIS_STATUS NICSetMulticastList(
IN PMP_ADAPTER Adapter);
ULONG NICGetMediaConnectStatus(
IN PMP_ADAPTER Adapter);
#endif // MP_NIC_H