#include "EthDev_LPC17xx.h"\r
#include "NyLPC_os.h"\r
#include "LPC17xx.h"\r
+#include "../NyLPC_cEthernetMM.h"\r
/* If no buffers are available, then wait this long before looking again.... */\r
#define emacBUFFER_WAIT_DELAY_MS 3\r
#define emacBUFFER_WAIT_EMPTY_DELAY_MS 10\r
{\r
p=(void*)TX_DESC_PACKET(i);\r
if(p!=NULL){\r
- b=((struct NyLPC_TTxBufferHeader*)p)-1;\r
+ b=NyLPC_TTxBufferHeader_getBufferHeaderAddr(p);\r
b->is_lock=NyLPC_TUInt8_FALSE;\r
TX_DESC_PACKET(i)=0;\r
}\r
}\r
p=(void*)TX_DESC_PACKET(i);\r
if(p!=NULL){\r
- b=((struct NyLPC_TTxBufferHeader*)p)-1;\r
+ b=NyLPC_TTxBufferHeader_getBufferHeaderAddr(p);\r
b->is_lock=NyLPC_TUInt8_FALSE;\r
TX_DESC_PACKET(i)=0;\r
}\r
\r
/**\r
* Ethernetパケットを送信します。\r
- * allocTxBufã\81§å¾\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\80\81NyLPC_TTxBufferHeaderã\81®ã\83\9aã\82¤ã\83ã\83¼ã\83\89é\83¨å\88\86ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\80\82\r
+ * allocTxBufで得たバッファを指定すること。\r
* <p>関数仕様</p>\r
* この関数は、i_bufが\r
* </div>\r
*/\r
-void EthDev_LPC17xx_sendTxEthFrame(struct NyLPC_TTxBufferHeader* i_buf,unsigned short i_size)\r
+void EthDev_LPC17xx_sendTxEthFrame(void* i_buf,unsigned short i_size)\r
{\r
NyLPC_TUInt32 IndexNext,Index;\r
-\r
+ struct NyLPC_TTxBufferHeader* bh=NyLPC_TTxBufferHeader_getBufferHeaderAddr(i_buf);\r
//サイズ0なら送信の必要なし\r
if(i_size == 0)\r
{\r
//送信対象のメモリブロックを送信中に設定。\r
// b=(i_buf+1);\r
//送信中のメモリブロックなら無視\r
- if(i_buf->is_lock){\r
+ if(bh->is_lock){\r
return;\r
}\r
//送信中にセット\r
- i_buf->is_lock=NyLPC_TUInt8_TRUE;\r
+ bh->is_lock=NyLPC_TUInt8_TRUE;\r
\r
//送信データのセット\r
Index = LPC_EMAC->TxProduceIndex;\r
}\r
\r
//送信処理\r
- TX_DESC_PACKET( Index ) = ( unsigned long )(i_buf+1);\r
+ TX_DESC_PACKET( Index ) = ( unsigned long )i_buf;\r
//See UM10360.pdf Table 181. Transmit descriptor control word\r
TX_DESC_CTRL( Index ) = ((i_size-1) | TCTRL_LAST | TCTRL_INT );\r
LPC_EMAC->TxProduceIndex = IndexNext;\r