X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_notask.c;h=a5bdc8a7c65e5d81dbc6e0ad8b7bcf9ff54261d8;hb=188f9efadd480de872f86a8eb741e8738db84c6b;hp=00fe1ed61fc78d150dcf4e22102415e999d9d948;hpb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;p=fw%2Faltos diff --git a/src/kernel/ao_notask.c b/src/kernel/ao_notask.c index 00fe1ed6..a5bdc8a7 100644 --- a/src/kernel/ao_notask.c +++ b/src/kernel/ao_notask.c @@ -21,7 +21,7 @@ static volatile void *ao_wchan; uint8_t -ao_sleep(__xdata void *wchan) +ao_sleep(void *wchan) { #if 1 ao_wchan = wchan; @@ -39,8 +39,23 @@ ao_sleep(__xdata void *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;