Exemple #1
0
static void
dcons_timeout(void *v)
{
	struct	tty *tp;
	struct dcons_softc *dc;
	int i, c, polltime;

	for (i = 0; i < DCONS_NPORT; i ++) {
		dc = &sc[i];
		tp = dc->tty;

		tty_lock(tp);
		while ((c = dcons_os_checkc_nopoll(dc)) != -1) {
			ttydisc_rint(tp, c, 0);
			poll_idle = 0;
		}
		ttydisc_rint_done(tp);
		tty_unlock(tp);
	}
	poll_idle++;
	polltime = hz;
	if (poll_idle <= (poll_hz * DCONS_POLL_IDLE))
		polltime /= poll_hz;
	callout_reset(&dcons_callout, polltime, dcons_timeout, tp);
}
Exemple #2
0
static int
dcons_os_checkc(struct dcons_softc *dc)
{
	EVENTHANDLER_INVOKE(dcons_poll, 0);
	return (dcons_os_checkc_nopoll(dc));
}