Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/dcons/dcons_os.c
Show First 20 Lines • Show All 227 Lines • ▼ Show 20 Lines | dcons_timeout(void *v) | ||||
struct tty *tp; | struct tty *tp; | ||||
struct dcons_softc *dc; | struct dcons_softc *dc; | ||||
int i, c, polltime; | int i, c, polltime; | ||||
for (i = 0; i < DCONS_NPORT; i ++) { | for (i = 0; i < DCONS_NPORT; i ++) { | ||||
dc = &sc[i]; | dc = &sc[i]; | ||||
tp = dc->tty; | tp = dc->tty; | ||||
tty_lock(tp); | ttydisc_lock(tp); | ||||
while ((c = dcons_os_checkc_nopoll(dc)) != -1) { | while ((c = dcons_os_checkc_nopoll(dc)) != -1) { | ||||
ttydisc_rint(tp, c, 0); | ttydisc_rint(tp, c, 0); | ||||
poll_idle = 0; | poll_idle = 0; | ||||
} | } | ||||
ttydisc_rint_done(tp); | ttydisc_rint_done(tp); | ||||
tty_unlock(tp); | ttydisc_unlock(tp); | ||||
} | } | ||||
poll_idle++; | poll_idle++; | ||||
polltime = hz; | polltime = hz; | ||||
if (poll_idle <= (poll_hz * DCONS_POLL_IDLE)) | if (poll_idle <= (poll_hz * DCONS_POLL_IDLE)) | ||||
polltime /= poll_hz; | polltime /= poll_hz; | ||||
callout_reset(&dcons_callout, polltime, dcons_timeout, tp); | callout_reset(&dcons_callout, polltime, dcons_timeout, tp); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 263 Lines • Show Last 20 Lines |