2013-01-08 22:40:58 +08:00
|
|
|
#include "rtdef.h"
|
|
|
|
#include "uip-conf.h"
|
|
|
|
#include "uip.h"
|
|
|
|
#include "uip_netif.h"
|
|
|
|
#include "uip_arp.h"
|
|
|
|
#include "rtconfig.h"
|
|
|
|
#include "uip_pbuf.h"
|
|
|
|
|
|
|
|
void netif_set_default(struct netif *netif)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
void netif_set_addr(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
|
|
|
|
struct ip_addr *gw)
|
|
|
|
{
|
|
|
|
uip_ipaddr_t hipaddr;
|
|
|
|
uip_ipaddr(hipaddr, RT_LWIP_IPADDR0,RT_LWIP_IPADDR1,RT_LWIP_IPADDR2,RT_LWIP_IPADDR3);
|
|
|
|
uip_sethostaddr(hipaddr);
|
|
|
|
uip_ipaddr(hipaddr, RT_LWIP_GWADDR0,RT_LWIP_GWADDR1,RT_LWIP_GWADDR2,RT_LWIP_GWADDR3);
|
|
|
|
uip_setdraddr(hipaddr);
|
|
|
|
uip_ipaddr(hipaddr, RT_LWIP_MSKADDR0,RT_LWIP_MSKADDR1,RT_LWIP_MSKADDR2,RT_LWIP_MSKADDR3);
|
|
|
|
uip_setnetmask(hipaddr);
|
|
|
|
return ;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct netif *
|
|
|
|
netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
|
|
|
|
struct ip_addr *gw,
|
|
|
|
void *state,
|
|
|
|
err_t (* init)(struct netif *netif),
|
|
|
|
err_t (* input)(struct pbuf *p, struct netif *netif))
|
|
|
|
{
|
|
|
|
//if (netif_add(netif, IP_ADDR_ANY, IP_ADDR_BROADCAST, IP_ADDR_ANY, dev,
|
|
|
|
//eth_init, eth_input) == RT_NULL)
|
|
|
|
// netif->uip_hostaddr = ipaddr;
|
|
|
|
//netif->uip_draddr = netmask;
|
|
|
|
// netif->uip_netmask = gw;
|
|
|
|
// netif_set_addr(netif,ipaddr,netmask,gw);
|
|
|
|
|
|
|
|
// call user specified initialization function for netif
|
|
|
|
if (init(netif) != 0) {
|
|
|
|
return RT_NULL;
|
|
|
|
}
|
|
|
|
netif->input = input;
|
|
|
|
netif->state = state;
|
|
|
|
netif_set_addr(netif,ipaddr,netmask,gw);
|
|
|
|
return netif;
|
|
|
|
|
|
|
|
}
|
|
|
|
err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|