static volatile void *ao_wchan;
uint8_t
-ao_sleep(__xdata void *wchan)
+ao_sleep(void *wchan)
{
#if 1
ao_wchan = wchan;
return 0;
}
+#if HAS_AO_DELAY
void
-ao_wakeup(__xdata void *wchan)
+ao_delay(uint16_t ticks)
+{
+ AO_TICK_TYPE target;
+
+ if (!ticks)
+ ticks = 1;
+ target = ao_tick_count + ticks;
+ do {
+ ao_sleep(&ao_time);
+ } while ((int16_t) (target - ao_tick_count) > 0);
+}
+#endif
+
+void
+ao_wakeup(void *wchan)
{
(void) wchan;
ao_wchan = 0;