OSDN Git Service

update libMiMic
[mimic/MiMicSDK.git] / lib / src / driver / ethernet / lpc17xx / EthDev_LPC17xx.c
index 9f3fc37..56cd9da 100644 (file)
@@ -10,6 +10,7 @@
 #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
@@ -68,14 +69,14 @@ static NyLPC_TUInt32 waitForTxEthFrameEmpty(void)
        {\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
@@ -89,15 +90,15 @@ void EthDev_LPC17xx_processTx(void)
 \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
@@ -109,11 +110,11 @@ void EthDev_LPC17xx_sendTxEthFrame(struct NyLPC_TTxBufferHeader* i_buf,unsigned
        //送信対象のメモリブロックを送信中に設定。\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
@@ -122,7 +123,7 @@ void EthDev_LPC17xx_sendTxEthFrame(struct NyLPC_TTxBufferHeader* i_buf,unsigned
        }\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