summaryrefslogtreecommitdiff
path: root/src/core/ao_serial.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-11-30 16:01:07 -0800
committerKeith Packard <keithp@keithp.com>2012-11-30 16:01:07 -0800
commit0b65402361f36a0c722977bcb63edb26fda0db28 (patch)
tree435d23c147829f11aac67fd6c30c74dd96f76e8e /src/core/ao_serial.h
parent0fa9ce23dd63846337872d6d666a469512614d07 (diff)
altos: Make stdio 8-bit clean by making pollchar return int
We were stealing one value (0xff) in the return value from pollchar to indicate 'not ready yet'. Instead of doing that, use the integer value -1 and have pollchar return an int instead of a char. That necessitated cleaning a few other bits to make sure that 0xff wouldn't get promoted to -1 on accident. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core/ao_serial.h')
-rw-r--r--src/core/ao_serial.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/core/ao_serial.h b/src/core/ao_serial.h
index 53aa8a89..a799bf2c 100644
--- a/src/core/ao_serial.h
+++ b/src/core/ao_serial.h
@@ -22,6 +22,7 @@
#define AO_SERIAL_SPEED_9600 1
#define AO_SERIAL_SPEED_19200 2
#define AO_SERIAL_SPEED_57600 3
+#define AO_SERIAL_SPEED_115200 4
#if HAS_SERIAL_0
extern volatile __xdata struct ao_fifo ao_serial0_rx_fifo;
@@ -30,6 +31,9 @@ extern volatile __xdata struct ao_fifo ao_serial0_tx_fifo;
char
ao_serial0_getchar(void);
+int
+ao_serial0_pollchar(void);
+
void
ao_serial0_putchar(char c);
@@ -47,7 +51,7 @@ extern volatile __xdata struct ao_fifo ao_serial1_tx_fifo;
char
ao_serial1_getchar(void);
-char
+int
ao_serial1_pollchar(void);
void
@@ -67,7 +71,7 @@ extern volatile __xdata struct ao_fifo ao_serial2_tx_fifo;
char
ao_serial2_getchar(void);
-char
+int
ao_serial2_pollchar(void);
void
@@ -80,6 +84,26 @@ void
ao_serial2_set_speed(uint8_t speed);
#endif
+#if HAS_SERIAL_3
+extern volatile __xdata struct ao_fifo ao_serial3_rx_fifo;
+extern volatile __xdata struct ao_fifo ao_serial3_tx_fifo;
+
+char
+ao_serial3_getchar(void);
+
+int
+ao_serial3_pollchar(void);
+
+void
+ao_serial3_putchar(char c);
+
+void
+ao_serial3_drain(void);
+
+void
+ao_serial3_set_speed(uint8_t speed);
+#endif
+
void
ao_serial_init(void);