doc: rtems_task_set_scheduler()

This commit is contained in:
Sebastian Huber
2014-04-16 16:06:05 +02:00
parent babb1a2ce8
commit f8300293ae
2 changed files with 80 additions and 0 deletions

View File

@@ -560,6 +560,9 @@ rtems_status_code rtems_task_get_scheduler(
/** /**
* @brief Sets the scheduler of a task. * @brief Sets the scheduler of a task.
* *
* The scheduler of a task is initialized to the scheduler of the task that
* created it.
*
* @param[in] id Identifier of the task. Use @ref RTEMS_SELF to select the * @param[in] id Identifier of the task. Use @ref RTEMS_SELF to select the
* executing task. * executing task.
* @param[in] scheduler_id Identifier of the scheduler. * @param[in] scheduler_id Identifier of the scheduler.

View File

@@ -19,6 +19,7 @@ The application level services currently provided are:
@item @code{rtems_scheduler_ident} - Get ID of a scheduler @item @code{rtems_scheduler_ident} - Get ID of a scheduler
@item @code{rtems_scheduler_get_processor_set} - Get processor set of a scheduler @item @code{rtems_scheduler_get_processor_set} - Get processor set of a scheduler
@item @code{rtems_task_get_scheduler} - Get scheduler of a task @item @code{rtems_task_get_scheduler} - Get scheduler of a task
@item @code{rtems_task_set_scheduler} - Set scheduler of a task
@item @code{rtems_task_get_affinity} - Get task processor affinity @item @code{rtems_task_get_affinity} - Get task processor affinity
@item @code{rtems_task_set_affinity} - Set task processor affinity @item @code{rtems_task_set_affinity} - Set task processor affinity
@end itemize @end itemize
@@ -408,6 +409,82 @@ Returns the scheduler identifier of a task in @code{scheduler_id}.
None. None.
@c
@c rtems_task_set_scheduler
@c
@page
@subsection TASK_SET_SCHEDULER - Set scheduler of a task
@subheading CALLING SEQUENCE:
@ifset is-C
@example
rtems_status_code rtems_task_set_scheduler(
rtems_id id,
rtems_id scheduler_id
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading DIRECTIVE STATUS CODES:
@code{@value{RPREFIX}SUCCESSFUL} - successful operation@*
@code{@value{RPREFIX}INVALID_ID} - invalid task or scheduler id@*
@code{@value{RPREFIX}INCORRECT_STATE} - the task is in the wrong state to
perform a scheduler change
@subheading DESCRIPTION:
Sets the scheduler of a task specified by @code{scheduler_id}. The scheduler
of a task is initialized to the scheduler of the task that created it.
@subheading NOTES:
None.
@subheading EXAMPLE:
@example
@group
#include <rtems.h>
#include <assert.h>
void task(rtems_task_argument arg);
void example(void)
@{
rtems_status_code sc;
rtems_id task_id;
rtems_id scheduler_id;
rtems_name scheduler_name;
scheduler_name = rtems_build_name('W', 'O', 'R', 'K');
sc = rtems_scheduler_ident(scheduler_name, &scheduler_id);
assert(sc == RTEMS_SUCCESSFUL);
sc = rtems_task_create(
rtems_build_name('T', 'A', 'S', 'K'),
1,
RTEMS_MINIMUM_STACK_SIZE,
RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES,
&task_id
);
assert(sc == RTEMS_SUCCESSFUL);
sc = rtems_task_set_scheduler(task_id, scheduler_id);
assert(sc == RTEMS_SUCCESSFUL);
sc = rtems_task_start(task_id, task, 0);
assert(sc == RTEMS_SUCCESSFUL);
@}
@end group
@end example
@c @c
@c rtems_task_get_affinity @c rtems_task_get_affinity
@c @c