Newer
Older
ubixos / src / sys / net / net / init.c
@reddawg reddawg on 4 May 2004 1 KB Ok Mark Cleaned Up Boot This
#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
 ***/