int linux_tstc(int fd) { struct timeval tv = { .tv_usec = 100, }; fd_set rfds; int ret; FD_ZERO(&rfds); FD_SET(fd, &rfds); /* * We set the timeout here to 100us, because otherwise * barebox would eat all cpu resources while waiting * for input. */ ret = select(fd + 1, &rfds, NULL, NULL, &tv); if (ret) return 1; return 0; } int ctrlc(void) { char chr; if (linux_read_nonblock(0, &chr, 1) == 1 && chr == 3) return 1; return 0; }
int tap_eth_rx (struct eth_device *edev) { struct tap_priv *priv = edev->priv; int length; length = linux_read_nonblock(priv->fd, NetRxPackets[0], PKTSIZE); if (length > 0) net_receive(NetRxPackets[0], length); return 0; }