altos/ao_stdio: use uint8_t for stdio index
[fw/altos] / src / kernel / ao.h
index fb7af24dac350c717c8620e425ce81bd1a6644f8..806b4946fecb57bf891826750b3b79f7a6884c53 100644 (file)
@@ -42,6 +42,11 @@ extern char ao_getchar(void);
 
 typedef AO_PORT_TYPE ao_port_t;
 
+#ifndef AO_TICK_TYPE
+#define AO_TICK_TYPE uint32_t
+#define AO_TICK_SIGNED int32_t
+#endif
+
 #if HAS_TASK
 #include <ao_task.h>
 #else
@@ -81,7 +86,7 @@ typedef AO_PORT_TYPE ao_port_t;
 
 /* Stop the operating system, beeping and blinking the reason */
 void
-ao_panic(uint8_t reason);
+ao_panic(uint8_t reason) __attribute__((noreturn));
 
 /*
  * ao_romconfig.c
@@ -100,11 +105,6 @@ extern AO_ROMCONFIG_SYMBOL uint32_t ao_radio_cal;
  * ao_timer.c
  */
 
-#ifndef AO_TICK_TYPE
-#define AO_TICK_TYPE   uint32_t
-#define AO_TICK_SIGNED int32_t
-#endif
-
 extern volatile AO_TICK_TYPE ao_tick_count;
 
 /* Our timer runs at 100Hz */
@@ -112,7 +112,7 @@ extern volatile AO_TICK_TYPE ao_tick_count;
 #define AO_HERTZ               100
 #endif
 #define AO_MS_TO_TICKS(ms)     ((ms) / (1000 / AO_HERTZ))
-#define AO_SEC_TO_TICKS(s)     ((s) * AO_HERTZ)
+#define AO_SEC_TO_TICKS(s)     ((AO_TICK_TYPE) (s) * AO_HERTZ)
 
 /* Returns the current time in ticks */
 AO_TICK_TYPE
@@ -124,7 +124,7 @@ ao_time_ns(void);
 
 /* Suspend the current task until ticks time has passed */
 void
-ao_delay(uint16_t ticks);
+ao_delay(AO_TICK_TYPE ticks);
 
 /* Set the ADC interval */
 void
@@ -389,7 +389,7 @@ ao_spi_slave(void);
 #define AO_GPS_NEW_TRACKING    2
 
 extern uint8_t ao_gps_new;
-extern uint16_t ao_gps_tick;
+extern AO_TICK_TYPE ao_gps_tick;
 extern uint8_t ao_gps_mutex;
 extern struct ao_telemetry_location ao_gps_data;
 extern struct ao_telemetry_satellite ao_gps_tracking_data;
@@ -603,7 +603,7 @@ ao_radio_send(const void *d, uint8_t size);
 
 #if HAS_RADIO_RECV
 uint8_t
-ao_radio_recv(void *d, uint8_t size, uint8_t timeout);
+ao_radio_recv(void *d, uint8_t size, AO_TICK_TYPE timeout);
 
 void
 ao_radio_recv_abort(void);
@@ -724,8 +724,8 @@ struct ao_stdio {
 };
 
 extern struct ao_stdio ao_stdios[];
-extern int8_t ao_cur_stdio;
-extern int8_t ao_num_stdios;
+extern uint8_t ao_cur_stdio;
+extern uint8_t ao_num_stdios;
 
 void
 flush(void);
@@ -735,7 +735,7 @@ extern uint8_t ao_stdin_ready;
 uint8_t
 ao_echo(void);
 
-int8_t
+uint8_t
 ao_add_stdio(int (*pollchar)(void),
             void (*putchar)(char) ,
             void (*flush)(void));
@@ -749,9 +749,6 @@ enum ao_igniter {
        ao_igniter_main = 1
 };
 
-void
-ao_ignite(enum ao_igniter igniter);
-
 enum ao_igniter_status {
        ao_igniter_unknown,     /* unknown status (ambiguous voltage) */
        ao_igniter_ready,       /* continuity detected */