/** * The SLIP input thread * * Feed the IP layer with incoming packets */ static void slipif_loop(void *nf) { struct pbuf *p; struct netif *netif = (struct netif *)nf; while (1) { p = slipif_input(netif); netif->input(p, netif); } }
/** * The SLIP input thread. * * Feed the IP layer with incoming packets * * @param nf the lwip network interface structure for this slipif */ static void slipif_loop_thread(void *nf) { struct pbuf *p; struct netif *netif = (struct netif *)nf; while (1) { p = slipif_input(netif, SLIP_BLOCK); if (p != NULL) { if (netif->input(p, netif) != ERR_OK) { pbuf_free(p); p = NULL; } } } }
/** * Polls the serial device and feeds the IP layer with incoming packets. * * @param netif The lwip network interface structure for this slipif */ void slipif_poll(struct netif *netif) { struct pbuf *p; struct slipif_priv *priv; LWIP_ASSERT("netif != NULL", (netif != NULL)); LWIP_ASSERT("netif->state != NULL", (netif->state != NULL)); priv = netif->state; while ((p = slipif_input(netif, SLIP_DONTBLOCK)) != NULL) { if (netif->input(p, netif) != ERR_OK) { pbuf_free(p); } } }