summaryrefslogtreecommitdiff
path: root/src/ao_packet_master.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-11-04 21:42:51 -0800
committerKeith Packard <keithp@keithp.com>2009-11-04 21:42:51 -0800
commit036400a2db303f3db3be7cc0426f88359c6bd2b1 (patch)
treeea31afcdca2dd039638f6d416b62a4022aabaf0c /src/ao_packet_master.c
parent3ece984f4d72b4f720a5efdfaad7cff77a93d676 (diff)
Explicitly use USB I/O routines in packet code
Using the implicit stdio functions (putchar/getchar/flush) would result in essentially random redirection of each, depending on whether the packet code had characters available when getchar was called. This would cause lockups in putchar. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_packet_master.c')
-rw-r--r--src/ao_packet_master.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ao_packet_master.c b/src/ao_packet_master.c
index d03899d1..f3a024ca 100644
--- a/src/ao_packet_master.c
+++ b/src/ao_packet_master.c
@@ -27,7 +27,7 @@ ao_packet_getchar(void)
break;
if (ao_packet_master_sleeping)
ao_wake_task(&ao_packet_task);
- flush();
+ ao_usb_flush();
ao_sleep(&ao_stdin_ready);
}
return c;
@@ -40,7 +40,7 @@ ao_packet_echo(void) __reentrant
while (ao_packet_enable) {
c = ao_packet_getchar();
if (ao_packet_enable)
- putchar(c);
+ ao_usb_putchar(c);
}
ao_exit();
}
@@ -114,7 +114,7 @@ ao_packet_forward(void) __reentrant
ao_set_monitor(0);
ao_add_task(&ao_packet_task, ao_packet_master, "master");
ao_add_task(&ao_packet_echo_task, ao_packet_echo, "echo");
- while ((c = getchar()) != '~') {
+ while ((c = ao_usb_getchar()) != '~') {
if (c == '\r') c = '\n';
ao_packet_putchar(c);
}