Ejemplo n.º 1
0
/*-----------------------------------------------------------------------------------*/
err_t
delif_init(struct netif *netif)
{
  struct delif *del;
  
  del = malloc(sizeof(struct delif));
  if (!del)
      return ERR_MEM;
  netif->state = del;
  netif->name[0] = 'd';
  netif->name[1] = 'e';
  netif->output = delif_output;

  del->netif = malloc(sizeof(struct netif));  
  if (!del->netif) {
      free(del);
      return ERR_MEM;
  }
#ifdef LWIP_UNIX_LINUX
  /*  tapif_init(del->netif);*/
  tunif_init(del->netif);
#else /* LWIP_UNIX_LINUX */
  tunif_init(del->netif);
#endif /* LWIP_UNIX_LINUX */
  del->input = netif->input;
  del->netif->input = delif_input;
  sys_timeout(DELIF_TIMEOUT, delif_input_timeout, netif);
  sys_timeout(DELIF_TIMEOUT, delif_output_timeout, netif);
  return ERR_OK;
}
Ejemplo n.º 2
0
/*-----------------------------------------------------------------------------------*/
static void 
delif_thread(void *arg)
{
  struct netif *netif = (struct netif*)arg;
  struct delif *del;
  sys_sem_t sem;

  del = (struct delif*)netif->state;
#ifdef LWIP_UNIX_LINUX
  tapif_init(del->netif);
#else /* LWIP_UNIX_LINUX */
  tunif_init(del->netif);
#endif /* LWIP_UNIX_LINUX */

  sys_timeout(DELIF_TIMEOUT, delif_input_timeout,  netif);
  sys_timeout(DELIF_TIMEOUT, delif_output_timeout, netif);

  if(sys_sem_new(&sem, 0) != ERR_OK) {
    LWIP_ASSERT("Failed to create semaphore", 0);
  }
  sys_sem_wait(&sem);
}