diff options
| author | Keith Packard <keithp@keithp.com> | 2009-10-30 23:46:21 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2009-10-30 23:46:21 -0700 | 
| commit | 73db30b2f9128c37dc7fa075793a8862814ce044 (patch) | |
| tree | a8ebcf7ee51f18592d87c249adfaed8508a7b5b3 /src/ao.h | |
| parent | 251b0971f049cbf2f8db79a32729d47441ce65f3 (diff) | |
Add ao_alarm
Diffstat (limited to 'src/ao.h')
| -rw-r--r-- | src/ao.h | 13 | 
1 files changed, 11 insertions, 2 deletions
| @@ -40,6 +40,7 @@  /* An AltOS task */  struct ao_task {  	__xdata void *wchan;		/* current wait channel (NULL if running) */ +	uint16_t alarm;			/* abort ao_sleep time */  	uint8_t	stack_count;		/* amount of saved stack */  	uint8_t task_id;		/* index in the task array */  	__code char *name;		/* task name */ @@ -55,8 +56,12 @@ extern __xdata struct ao_task *__data ao_cur_task;   ao_task.c   */ -/* Suspend the current task until wchan is awoken */ -void +/* Suspend the current task until wchan is awoken. + * returns: + *  0 on normal wake + *  1 on alarm + */ +uint8_t  ao_sleep(__xdata void *wchan);  /* Wake all tasks sleeping on wchan */ @@ -67,6 +72,10 @@ ao_wakeup(__xdata void *wchan);  void  ao_wake_task(__xdata struct ao_task *task); +/* set an alarm to go off in 'delay' ticks */ +void +ao_alarm(uint16_t delay); +  /* Yield the processor to another task */  void  ao_yield(void) _naked; | 
