projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Allow application-specific prompts for ao_cmd_readline
[fw/altos]
/
src
/
kernel
/
ao_notask.c
diff --git
a/src/kernel/ao_notask.c
b/src/kernel/ao_notask.c
index 6f967e6d2201db4d520f5410c33f7a038f00491d..a5bdc8a7c65e5d81dbc6e0ad8b7bcf9ff54261d8 100644
(file)
--- a/
src/kernel/ao_notask.c
+++ b/
src/kernel/ao_notask.c
@@
-3,7
+3,8
@@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-20,7
+21,7
@@
static volatile void *ao_wchan;
uint8_t
static volatile void *ao_wchan;
uint8_t
-ao_sleep(
__xdata
void *wchan)
+ao_sleep(void *wchan)
{
#if 1
ao_wchan = wchan;
{
#if 1
ao_wchan = wchan;
@@
-38,8
+39,23
@@
ao_sleep(__xdata void *wchan)
return 0;
}
return 0;
}
+#if HAS_AO_DELAY
void
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;
{
(void) wchan;
ao_wchan = 0;