void tcpip_thread (void *arg) { struct tcpip_msg *msg; //while(1) { sys_arch_mbox_fetch(mbox, (void *)&msg,1); if(msg != NULL) { switch (msg->type) { case TCPIP_MSG_API: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); api_msg_input(msg->msg.apimsg); break; case TCPIP_MSG_INPUT: break; case TCPIP_MSG_CALLBACK: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); msg->msg.cb.f(msg->msg.cb.ctx); break; default: break; } memp_free(MEMP_TCPIP_MSG, msg); } } }
static void tcpip_thread(void *arg) { struct tcpip_msg *msg; (void)arg; ip_init(); #if LWIP_UDP udp_init(); #endif #if LWIP_TCP tcp_init(); #endif #if IP_REASSEMBLY sys_timeout(1000, ip_timer, NULL); #endif if (tcpip_init_done != NULL) { tcpip_init_done(tcpip_init_done_arg); } while (1) { /* MAIN Loop */ sys_mbox_fetch(mbox, (void *)&msg); switch (msg->type) { case TCPIP_MSG_API: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); api_msg_input(msg->msg.apimsg); break; case TCPIP_MSG_INPUT: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: IP packet %p\n", (void *)msg)); ip_input(msg->msg.inp.p, msg->msg.inp.netif); break; case TCPIP_MSG_CALLBACK: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); msg->msg.cb.f(msg->msg.cb.ctx); break; default: break; } #ifdef VBOX if (msg->type == TCPIP_MSG_TERM) { memp_free(MEMP_TCPIP_MSG, msg); break; } #endif memp_free(MEMP_TCPIP_MSG, msg); } #ifdef VBOX if (tcpip_init_done != NULL) { tcpip_init_done(tcpip_init_done_arg); } #endif }
static void tcpip_thread(void *arg) { struct tcpip_msg *msg; (void)arg; ip_init(); #if LWIP_UDP udp_init(); #endif #if LWIP_TCP tcp_init(); #endif if (tcpip_init_done != NULL) { tcpip_init_done(tcpip_init_done_arg); } sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL); //ZOT716u2 Network_TCPIP_ON = 1; while (1) { /* MAIN Loop */ sys_mbox_fetch(tcp_mbox, (void *)&msg); switch (msg->type) { case TCPIP_MSG_API: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); api_msg_input(msg->msg.apimsg); break; case TCPIP_MSG_INPUT: cli(); Lanrecvcnt --; sti(); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: IP packet %p\n", (void *)msg)); ip_input(msg->msg.inp.p, msg->msg.inp.netif); break; case TCPIP_MSG_CALLBACK: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); msg->msg.cb.f(msg->msg.cb.ctx); break; default: break; } memp_free(MEMP_TCPIP_MSG, msg); } }
static void tcpip_thread(void *arg) { struct tcpip_msg *msg; ip_init(); udp_init(); tcp_init(); sys_timeout(TCP_TMR_INTERVAL, (sys_timeout_handler)tcpip_tcp_timer, NULL); if(tcpip_init_done != NULL) { tcpip_init_done(tcpip_init_done_arg); } while(1) { /* MAIN Loop */ sys_mbox_fetch(mbox, (void *)&msg); switch(msg->type) { case TCPIP_MSG_API: DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", msg)); api_msg_input(msg->msg.apimsg); break; case TCPIP_MSG_INPUT: DEBUGF(TCPIP_DEBUG, ("tcpip_thread: IP packet %p\n", msg)); ip_input(msg->msg.inp.p, msg->msg.inp.netif); break; case TCP_SHIM_MSG_INPUT: DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TCP shim packet %p\n", msg)); tcp_input(msg->msg.inp.p, msg->msg.inp.netif); break; default: break; } memp_freep(MEMP_TCPIP_MSG, msg); } }