rt-thread-official/components/net/uip/rt-thread/uip_netif.c

54 lines
1.6 KiB
C
Raw Normal View History

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;
}