altos: clear CPU port 1 interrupt flag when handled
[fw/altos] / src / ao.h
index 9b375894e0f20cd4c41aeaf110b88bbaed52324e..600c488a00f98aed631f5a717429690e162e4c57 100644 (file)
--- a/src/ao.h
+++ b/src/ao.h
@@ -107,6 +107,7 @@ ao_start_scheduler(void);
 #define AO_PANIC_REBOOT                8       /* Reboot failed */
 #define AO_PANIC_FLASH         9       /* Invalid flash part (or wrong blocksize) */
 #define AO_PANIC_USB           10      /* Trying to send USB packet while busy */
+#define AO_PANIC_BT            11      /* Communications with bluetooth device failed */
 
 /* Stop the operating system, beeping and blinking the reason */
 void
@@ -1193,7 +1194,7 @@ extern __xdata uint8_t ao_stdin_ready;
 uint8_t
 ao_echo(void);
 
-void
+int8_t
 ao_add_stdio(char (*pollchar)(void),
             void (*putchar)(char) __reentrant,
             void (*flush)(void)) __reentrant;
@@ -1366,6 +1367,18 @@ ao_packet_slave_init(uint8_t enable);
 
 /* ao_btm.c */
 
+/* If bt_link is on P2, this interrupt is shared by USB, so the USB
+ * code calls this function. Otherwise, it's a regular ISR.
+ */
+
+void
+ao_btm_isr(void)
+#if BT_LINK_ON_P1
+       __interrupt 15
+#endif
+       ;
+
+
 void
 ao_btm_init(void);