Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/mambo/mambo_console.c
Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | if (OF_finddevice("/mambo") == -1) | ||||
return; | return; | ||||
tp = tty_alloc(&mambo_ttydevsw, NULL); | tp = tty_alloc(&mambo_ttydevsw, NULL); | ||||
tty_init_console(tp, 0); | tty_init_console(tp, 0); | ||||
tty_makedev(tp, NULL, "%s", "mambocons"); | tty_makedev(tp, NULL, "%s", "mambocons"); | ||||
polltime = 1; | polltime = 1; | ||||
callout_init(&mambo_callout, 1); | callout_init_mtx(&mambo_callout, ttydisc_getlock(tp), 0); | ||||
ttydisc_lock(tp); | |||||
callout_reset(&mambo_callout, polltime, mambo_timeout, NULL); | callout_reset(&mambo_callout, polltime, mambo_timeout, NULL); | ||||
ttydisc_unlock(tp); | |||||
} | } | ||||
} | } | ||||
SYSINIT(cndev, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE, cn_drvinit, NULL); | SYSINIT(cndev, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE, cn_drvinit, NULL); | ||||
static void | static void | ||||
mambotty_outwakeup(struct tty *tp) | mambotty_outwakeup(struct tty *tp) | ||||
{ | { | ||||
int len; | int len; | ||||
u_char buf[MAMBOBURSTLEN]; | u_char buf[MAMBOBURSTLEN]; | ||||
for (;;) { | for (;;) { | ||||
len = ttydisc_getc(tp, buf, sizeof buf); | len = ttydisc_getc(tp, buf, sizeof buf); | ||||
if (len == 0) | if (len == 0) | ||||
break; | break; | ||||
mambocall(MAMBO_CONSOLE_WRITE, buf, (register_t)len, 1UL); | mambocall(MAMBO_CONSOLE_WRITE, buf, (register_t)len, 1UL); | ||||
} | } | ||||
} | } | ||||
static void | static void | ||||
mambo_timeout(void *v) | mambo_timeout(void *v) | ||||
{ | { | ||||
int c; | int c; | ||||
tty_lock(tp); | |||||
while ((c = mambo_cngetc(NULL)) != -1) | while ((c = mambo_cngetc(NULL)) != -1) | ||||
ttydisc_rint(tp, c, 0); | ttydisc_rint(tp, c, 0); | ||||
ttydisc_rint_done(tp); | ttydisc_rint_done(tp); | ||||
tty_unlock(tp); | |||||
callout_reset(&mambo_callout, polltime, mambo_timeout, NULL); | callout_reset(&mambo_callout, polltime, mambo_timeout, NULL); | ||||
} | } | ||||
static void | static void | ||||
mambo_cnprobe(struct consdev *cp) | mambo_cnprobe(struct consdev *cp) | ||||
{ | { | ||||
if (OF_finddevice("/mambo") == -1) { | if (OF_finddevice("/mambo") == -1) { | ||||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |