Title: reply_thr_get() / reply_thr_put() / eth


reply_thr_get() and reply_thr_put() are wrappers for the ethernet port's ef_get_userdata field and ef_put_userdata.

If the ethernet file descriptor was opened by the ip code, ef_get_userdata is get_eth_data(). If this is the case and reply_thr_get() is called, get_eth_data() simply sets de_frame to null and calls ipeth_restart_send() if there are any ethernet packets that the ip code is waiting to send.

If the ethernet file descriptor was opened by the ip code, ef_put_userdata is put_eth_data(). If there are no ethernet packets waiting to be delivered to the ip port, put_eth_data() simply clears the IEF_READ_IP flag. If data is null and there are ethernet packets waiting to be delivered to the ip port, put_eth_data() calls do_eth_read() to process the packets.