Beispiel #1
0
struct dbginterface* tcpip_init(struct uip_ip_addr *localip,struct uip_ip_addr *netmask,struct uip_ip_addr *gateway,u16 port)
{
	uipdev_s hbba;
	struct uip_netif *pnet ;
	struct sockaddr_in name;
	socklen_t namelen = sizeof(struct sockaddr);

	memr_init();
	uip_ipinit();
	uip_pbuf_init();
	uip_netif_init();
	uip_tcp_init();

	UIP_MEMSET(tcpip_socks,0,(UIP_TCPIP_SOCKS*sizeof(struct tcpip_sock)));

	hbba = uip_bba_create(&netif);
	pnet = uip_netif_add(&netif,localip,netmask,gateway,hbba,uip_bba_init,uip_ipinput);
	if(pnet) {
		uip_netif_setdefault(pnet);

		listensock = tcpip_socket();
		if(listensock<0) return NULL;

		name.sin_addr.s_addr = INADDR_ANY;
		name.sin_port = htons(port);
		name.sin_family = AF_INET;

		if(tcpip_bind(listensock,(struct sockaddr*)&name,&namelen)<0){
			tcpip_close(listensock);
			listensock = -1;
			return NULL;
		}
		if(tcpip_listen(listensock,1)<0) {
			tcpip_close(listensock);
			listensock = -1;
			return NULL;
		}

		netif_device.fhndl = -1;
		netif_device.wait = waittcpip;
		netif_device.open = opentcpip;
		netif_device.close = closetcpip;
		netif_device.read = readtcpip;
		netif_device.write = writetcpip;

		return &netif_device;
	}
	return NULL;
}
Beispiel #2
0
static int closetcpip(struct dbginterface *device)
{
	tcpip_stoptimer(device->fhndl);
	tcpip_close(device->fhndl);
	device->fhndl = -1;
	return 0;
}
Beispiel #3
0
int
cable_close ()
{
  return tcpip_close ();
}