📄 func00_t.cpp
字号:
// DM9013.cpp: implementation of the DM9013 class.
//
// Copyright (c) 2000-2007 Davicom Inc. All rights reserved.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "FUNC00_T.h"
#include "FUNC03.h"
#include "FUNC13.h"
//#include "ver.h" //[chip]
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DM9000_T::DM9000_T(NIC_DRIVER_OBJECT *pUpper,PVOID pVoid) : DM9000(pUpper,pVoid)
{
}
DM9000_T::~DM9000_T()
{
}
DWORD DM9000_T::GetDriverChipID()
{
return DM9000_T_CHIP_ID;
}
//---------------------
// Over Write Func
//---------------------
int DM9000_T::DeviceSend(PCQUEUE_GEN_HEADER pObject)
{
//#ifdef IMPL_STORE_AND_INDICATION
//..lkklvklnklfklbklbrtbtr.../ ,.;rnl;ml;m tnkl;rtnry..
//#endif
if(pObject) m_TQStandby.Enqueue(pObject);
m_nTxPendings++; /* increment counter */
PCQUEUE_GEN_HEADER pcurr;
m_TQWaiting.Enqueue(pcurr= m_TQStandby.Dequeue()); /* get first pkt in queue */
/* fill data : Check To TxPending # */
WPutChar('('); WPutChar(0x30+m_nTxPendings); // Fill-Data
nTxCnt++;
ISA_TxFIFO_Begin();
DeviceWriteData((PBYTE)CQueueGetUserPointer(pcurr), pcurr->usLength);
DeviceWritePort(DM9_TXLENH, HIGH_BYTE(pcurr->usLength));
DeviceWritePort(DM9_TXLENL, LOW_BYTE(pcurr->usLength));
DeviceWritePort(DM9_TXCR, MAKE_MASK(0)); // TXCR<0>, issue TX request
ISA_TxFIFO_End();
//JJ-DBG.CPP
WPutChar(')'); // TX-complete
//{
nTxSramReadPoint= (((U16)DeviceReadPort(DM9_TRAH) << 8 ) | (U16)DeviceReadPort(DM9_TRAL));
if (nTxSramReadPoint != nTxMemoryWrAddr) //ERROR;
WPrintf(WSTR("(%d(%d,%d))\r\n"), nToWrAddr%1000, nTxMemoryWrAddr%1000, nTxSramReadPoint%1000);
WPrintf(WSTR("[TC=%d]\r\n"), nTxCnt);
//}
return 0;
} // pcurr
void DM9000_T::ISA_TxFIFO_Begin()
{
//JJ-DBG.CPP
nTxMemoryWrAddr= (((U16)DeviceReadPort(DM9_MDWAH) << 8 ) | (U16)DeviceReadPort(DM9_MDWAL));
nTxSramReadPoint= (((U16)DeviceReadPort(DM9_TRAH) << 8 ) | (U16)DeviceReadPort(DM9_TRAL));
// [NextLine, Only for DM9003,D9013]
if (((m_pUpper->m_Bag.m_pLowerId==DM9003_CHIP_ID)||
(m_pUpper->m_Bag.m_pLowerId==DM9013_CHIP_ID)))
; //WNextLine();
else
WPrintf(TEXT("[TC=%d S%d,%d]"), nTxCnt, nTxMemoryWrAddr%100, nTxSramReadPoint%100); // "\r\n"
}
void DM9000_T::ISA_TxFIFO_End()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -