+void
+ao_wake_task(__xdata struct ao_task *task)
+{
+ task->wchan = NULL;
+}
+
+void
+ao_exit(void)
+{
+ uint8_t i;
+ ao_num_tasks--;
+ for (i = ao_cur_task_index; i < ao_num_tasks; i++)
+ ao_tasks[i] = ao_tasks[i+1];
+ ao_cur_task_index = AO_NO_TASK_INDEX;
+ ao_yield();
+ /* we'll never get back here */
+}
+