#include <ubixos/types.h> #include <ubixos/sched.h> #include <net/sys.h> #include <net/mem.h> #include <net/memp.h> #include <net/tcpip.h> #include <netif/loopif.h> #include <netif/tcpdump.h> #include <netif/ethernetif.h> #include <ubixos/exec.h> #include <lib/kmalloc.h> #include <lib/kprintf.h> void netMainThread(); static void tcpip_init_done(void *arg); int netInit() { sys_init(); mem_init(); memp_init(); pbuf_init(); sys_thread_new((void *)(netMainThread), NULL); return(0); } void netMainThread() { struct ip_addr ipaddr, netmask, gw; sys_sem_t sem; netif_init(); sem = sys_sem_new(0); tcpip_init(tcpip_init_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); kprintf("TCP/IP initialized.\n"); /* IP4_ADDR(&gw, 192,168,0,1); IP4_ADDR(&ipaddr, 192,168,0,69); */ IP4_ADDR(&gw, 10,4,0,1); IP4_ADDR(&ipaddr, 10,4,0,69); IP4_ADDR(&netmask, 255,255,255,0); netif_set_default(netif_add(&ipaddr, &netmask, &gw, ethernetif_init, tcpip_input)); IP4_ADDR(&gw, 127,0,0,1); IP4_ADDR(&ipaddr, 127,0,0,1); IP4_ADDR(&netmask, 255,0,0,0); netif_add(&ipaddr, &netmask, &gw, loopif_init, tcpip_input); //udpecho_init(); //shell_init(); //bot_init(); kprintf("Application Started\n"); _current->state = DEAD; while (1); } static void tcpip_init_done(void *arg) { sys_sem_t *sem = 0x0; sem = arg; sys_sem_signal(*sem); } /*** END ***/