Make some functions reentrant to save DSEG space
authorKeith Packard <keithp@keithp.com>
Sat, 25 Apr 2009 20:13:24 +0000 (13:13 -0700)
committerKeith Packard <keithp@keithp.com>
Sat, 25 Apr 2009 20:13:24 +0000 (13:13 -0700)
ao.h
ao_beep.c
ao_led.c
ao_task.c

diff --git a/ao.h b/ao.h
index cbb6b26..2cad762 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
@@ -243,7 +243,7 @@ ao_led_set(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
index 93c2e89..3642f4c 100644 (file)
--- a/ao_beep.c
+++ b/ao_beep.c
@@ -32,7 +32,7 @@ ao_beep(uint8_t beep)
 }
 
 void
-ao_beep_for(uint8_t beep, uint16_t ticks)
+ao_beep_for(uint8_t beep, uint16_t ticks) __reentrant
 {
        ao_beep(beep);
        ao_delay(ticks);
index f2bc179..1268ff6 100644 (file)
--- a/ao_led.c
+++ b/ao_led.c
@@ -36,7 +36,7 @@ ao_led_set(uint8_t colors)
 }
 
 void
-ao_led_for(uint8_t colors, uint16_t ticks)
+ao_led_for(uint8_t colors, uint16_t ticks) __reentrant
 {
        ao_led_on(colors);
        ao_delay(ticks);
index 47db127..81a71dd 100644 (file)
--- a/ao_task.c
+++ b/ao_task.c
@@ -25,7 +25,7 @@ __data uint8_t ao_cur_task_index;
 __xdata struct ao_task *__data ao_cur_task;
 
 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
 {
        uint8_t __xdata *stack;
        if (ao_num_tasks == AO_NUM_TASKS)