| Xenomai API
    2.5.6.1
    | 
|   | 
| Typedefs | |
| typedef void(* | rtdm_task_proc_t )(void *arg) | 
| Real-time task procedure. | |
| Functions | |
| int | rtdm_task_init (rtdm_task_t *task, const char *name, rtdm_task_proc_t task_proc, void *arg, int priority, nanosecs_rel_t period) | 
| Intialise and start a real-time task. | |
| void | rtdm_task_destroy (rtdm_task_t *task) | 
| Destroy a real-time task. | |
| void | rtdm_task_set_priority (rtdm_task_t *task, int priority) | 
| Adjust real-time task priority. | |
| int | rtdm_task_set_period (rtdm_task_t *task, nanosecs_rel_t period) | 
| Adjust real-time task period. | |
| int | rtdm_task_wait_period (void) | 
| Wait on next real-time task period. | |
| int | rtdm_task_unblock (rtdm_task_t *task) | 
| Activate a blocked real-time task. | |
| rtdm_task_t * | rtdm_task_current (void) | 
| Get current real-time task. | |
| int | rtdm_task_sleep (nanosecs_rel_t delay) | 
| Sleep a specified amount of time. | |
| int | rtdm_task_sleep_until (nanosecs_abs_t wakeup_time) | 
| Sleep until a specified absolute time. | |
| int | rtdm_task_sleep_abs (nanosecs_abs_t wakeup_time, enum rtdm_timer_mode mode) | 
| Sleep until a specified absolute time. | |
| void | rtdm_task_join_nrt (rtdm_task_t *task, unsigned int poll_delay) | 
| Wait on a real-time task to terminate. | |
| void | rtdm_task_busy_sleep (nanosecs_rel_t delay) | 
| Busy-wait a specified amount of time. | |
| Task Priority Range | |
| #define | RTDM_TASK_LOWEST_PRIORITY XNSCHED_LOW_PRIO | 
| #define | RTDM_TASK_HIGHEST_PRIORITY XNSCHED_HIGH_PRIO | 
| Task Priority Modification | |
| #define | RTDM_TASK_RAISE_PRIORITY (+1) | 
| #define | RTDM_TASK_LOWER_PRIORITY (-1) | 
| typedef void(* rtdm_task_proc_t)(void *arg) | 
Real-time task procedure.
| [in,out] | arg | argument as passed to rtdm_task_init() | 
| void rtdm_task_busy_sleep | ( | nanosecs_rel_t | delay | ) | 
Busy-wait a specified amount of time.
| [in] | delay | Delay in nanoseconds. Note that a zero delay does not have the meaning of RTDM_TIMEOUT_INFINITEhere. | 
Environments:
This service can be called from:
Rescheduling: never (except due to external interruptions).
| rtdm_task_t* rtdm_task_current | ( | void | ) | 
Get current real-time task.
Environments:
This service can be called from:
Rescheduling: never.
| void rtdm_task_destroy | ( | rtdm_task_t * | task | ) | 
Destroy a real-time task.
| [in,out] | task | Task handle as returned by rtdm_task_init() | 
Environments:
This service can be called from:
Rescheduling: never.
| int rtdm_task_init | ( | rtdm_task_t * | task, | 
| const char * | name, | ||
| rtdm_task_proc_t | task_proc, | ||
| void * | arg, | ||
| int | priority, | ||
| nanosecs_rel_t | period | ||
| ) | 
Intialise and start a real-time task.
After initialising a task, the task handle remains valid and can be passed to RTDM services until either rtdm_task_destroy() or rtdm_task_join_nrt() was invoked.
| [in,out] | task | Task handle | 
| [in] | name | Optional task name | 
| [in] | task_proc | Procedure to be executed by the task | 
| [in] | arg | Custom argument passed to task_proc()on entry | 
| [in] | priority | Priority of the task, see also Task Priority Range | 
| [in] | period | Period in nanoseconds of a cyclic task, 0 for non-cyclic mode | 
Environments:
This service can be called from:
Rescheduling: possible.
References xnpod_delete_thread(), xnpod_init_thread(), xnpod_set_thread_periodic(), and xnpod_start_thread().
| void rtdm_task_join_nrt | ( | rtdm_task_t * | task, | 
| unsigned int | poll_delay | ||
| ) | 
Wait on a real-time task to terminate.
| [in,out] | task | Task handle as returned by rtdm_task_init() | 
| [in] | poll_delay | Delay in milliseconds between periodic tests for the state of the real-time task. This parameter is ignored if the termination is internally realised without polling. | 
Environments:
This service can be called from:
Rescheduling: possible.
References XNZOMBIE.
| int rtdm_task_set_period | ( | rtdm_task_t * | task, | 
| nanosecs_rel_t | period | ||
| ) | 
Adjust real-time task period.
| [in,out] | task | Task handle as returned by rtdm_task_init() | 
| [in] | period | New period in nanoseconds of a cyclic task, 0 for non-cyclic mode | 
Environments:
This service can be called from:
Rescheduling: possible.
| void rtdm_task_set_priority | ( | rtdm_task_t * | task, | 
| int | priority | ||
| ) | 
Adjust real-time task priority.
| [in,out] | task | Task handle as returned by rtdm_task_init() | 
| [in] | priority | New priority of the task, see also Task Priority Range | 
Environments:
This service can be called from:
Rescheduling: possible.
| int rtdm_task_sleep | ( | nanosecs_rel_t | delay | ) | 
Sleep a specified amount of time.
| [in] | delay | Delay in nanoseconds, see RTDM_TIMEOUT_xxx for special values. | 
Environments:
This service can be called from:
Rescheduling: always.
| int rtdm_task_sleep_abs | ( | nanosecs_abs_t | wakeup_time, | 
| enum rtdm_timer_mode | mode | ||
| ) | 
Sleep until a specified absolute time.
| [in] | wakeup_time | Absolute timeout in nanoseconds | 
| [in] | mode | Selects the timer mode, see RTDM_TIMERMODE_xxx for details | 
Environments:
This service can be called from:
Rescheduling: always, unless the specified time already passed.
| int rtdm_task_sleep_until | ( | nanosecs_abs_t | wakeup_time | ) | 
Sleep until a specified absolute time.
| [in] | wakeup_time | Absolute timeout in nanoseconds | 
Environments:
This service can be called from:
Rescheduling: always, unless the specified time already passed.
| int rtdm_task_unblock | ( | rtdm_task_t * | task | ) | 
Activate a blocked real-time task.
Environments:
This service can be called from:
Rescheduling: possible.
| int rtdm_task_wait_period | ( | void | ) | 
Wait on next real-time task period.
Environments:
This service can be called from:
Rescheduling: always, unless a timer overrun occured.