/*---------------------------------------------------------------------------*/ static void pollhandler(void) { #define BUF ((struct uip_eth_hdr *)&uip_buf[0]) /* Poll Ethernet device to see if there is a frame avaliable. */ uip_len = cs8900a_poll(); if(uip_len > 0) { /* A frame was avaliable (and is now read into the uip_buf), so we process it. */ if(BUF->type == HTONS(UIP_ETHTYPE_IP)) { uip_arp_ipin(); uip_len -= sizeof(struct uip_eth_hdr); tcpip_input(); } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) { uip_arp_arpin(); /* If the above function invocation resulted in data that should be sent out on the network, the global variable uip_len is set to a value > 0. */ if(uip_len > 0) { cs8900a_send(); } } } }
/*---------------------------------------------------------------------------*/ static u8_t output(void) { uip_arp_out(); cs8900a_send(); return 0; }
/*---------------------------------------------------------------------------*/ static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen) { uip_arp_out(); cs8900a_send(); }