*
* $WIZ$ module_name = "eth"
* $WIZ$ module_configuration = "bertos/cfg/cfg_eth.h"
- * $WIZ$ module_supports = "at91sam7x"
+ * $WIZ$ module_supports = "at91sam7x or sam3x"
+ * $WIZ$ module_hw = "bertos/hw/hw_eth.h", "bertos/hw/hw_eth.c"
*/
#ifndef DRV_ETH_H
#define DRV_ETH_H
+#include "hw/hw_eth.h"
+#include "cfg/cfg_eth.h"
+
+#include <drv/phy.h>
+
#include <cpu/types.h>
+
#define ETH_ADDR_LEN 6
#define ETH_HEAD_LEN 14
#define ETH_DATA_LEN 1500
#define ETH_FRAME_LEN (ETH_HEAD_LEN + ETH_DATA_LEN)
-
-#define ETH_TYPE_IP 0x0800
+#define ETH_TYPE_IP 0x0800
typedef union Ethernet
{
(addr1[5] ^ addr2[5]));
}
+ssize_t eth_putFrame(const uint8_t *buf, size_t len);
+void eth_sendFrame(void);
+
+size_t eth_getFrameLen(void);
+ssize_t eth_getFrame(uint8_t *buf, size_t len);
+
ssize_t eth_send(const uint8_t *buf, size_t len);
ssize_t eth_recv(uint8_t *buf, size_t len);
-int eth_init(void);
-extern uint8_t mac_addr[ETH_ADDR_LEN];
+int eth_init(void);
#endif /* DRV_ETH_H */