Allow the USB system to be disabled/enabled at run-time
[fw/altos] / ao.h
diff --git a/ao.h b/ao.h
index cbb6b26f4d630c89f6ae33d6bd57918a2187ad32..d5669ae90fa1a1d268e5b96b496167bfff97a9c8 100644 (file)
--- a/ao.h
+++ b/ao.h
@@ -65,7 +65,7 @@ ao_yield(void) _naked;
 
 /* Add a task to the run queue */
 void
-ao_add_task(__xdata struct ao_task * task, void (*start)(void), __code char *name);
+ao_add_task(__xdata struct ao_task * task, void (*start)(void), __code char *name) __reentrant;
 
 /* Dump task info to console */
 void
@@ -215,7 +215,7 @@ ao_beep(uint8_t beep);
 
 /* Turn on the beeper for the specified time */
 void
-ao_beep_for(uint8_t beep, uint16_t ticks);
+ao_beep_for(uint8_t beep, uint16_t ticks) __reentrant;
 
 /* Initialize the beeper */
 void
@@ -241,13 +241,17 @@ ao_led_off(uint8_t colors);
 void
 ao_led_set(uint8_t colors);
 
+/* Toggle the specified LEDs */
+void
+ao_led_toggle(uint8_t colors);
+
 /* Turn on the specified LEDs for the indicated interval */
 void
-ao_led_for(uint8_t colors, uint16_t ticks);
+ao_led_for(uint8_t colors, uint16_t ticks) __reentrant;
 
 /* Initialize the LEDs */
 void
-ao_led_init(void);
+ao_led_init(uint8_t enable);
 
 /*
  * ao_usb.c
@@ -269,6 +273,14 @@ ao_usb_flush(void);
 void
 ao_usb_isr(void) interrupt 6;
 
+/* Enable the USB controller */
+void
+ao_usb_enable(void);
+
+/* Disable the USB controller */
+void
+ao_usb_disable(void);
+
 /* Initialize the USB system */
 void
 ao_usb_init(void);
@@ -729,7 +741,7 @@ void
 ao_monitor(void);
 
 void
-ao_monitor_init(void);
+ao_monitor_init(uint8_t led);
 
 /*
  * ao_stdio.c