summaryrefslogtreecommitdiffstats
path: root/c/src/exec/rtems/src/tasks.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/rtems/src/tasks.c')
-rw-r--r--c/src/exec/rtems/src/tasks.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/c/src/exec/rtems/src/tasks.c b/c/src/exec/rtems/src/tasks.c
index e05aecca3f..d49236cadf 100644
--- a/c/src/exec/rtems/src/tasks.c
+++ b/c/src/exec/rtems/src/tasks.c
@@ -56,7 +56,7 @@ boolean _RTEMS_tasks_Create_extension(
api->pending_events = EVENT_SETS_NONE_PENDING;
_ASR_Initialize( &api->Signal );
- api->task_variables = NULL;
+ created->task_variables = NULL;
return TRUE;
}
@@ -94,17 +94,14 @@ User_extensions_routine _RTEMS_tasks_Delete_extension(
Thread_Control *deleted
)
{
- RTEMS_API_Control *api;
rtems_task_variable_t *tvp, *next;
- api = executing->API_Extensions[ THREAD_API_RTEMS ];
-
/*
* Free per task variable memory
*/
- tvp = api->task_variables;
- api->task_variables = NULL;
+ tvp = deleted->task_variables;
+ deleted->task_variables = NULL;
while (tvp) {
next = tvp->next;
_Workspace_Free( tvp );
@@ -115,8 +112,7 @@ User_extensions_routine _RTEMS_tasks_Delete_extension(
* Free API specific memory
*/
- (void) _Workspace_Free( api );
-
+ (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] );
deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL;
}
@@ -132,23 +128,19 @@ void _RTEMS_tasks_Switch_extension(
Thread_Control *heir
)
{
- RTEMS_API_Control *api;
rtems_task_variable_t *tvp;
/*
* Per Task Variables
*/
-
- api = executing->API_Extensions[ THREAD_API_RTEMS ];
- tvp = api->task_variables;
+ tvp = executing->task_variables;
while (tvp) {
tvp->var = *tvp->ptr;
tvp = tvp->next;
}
- api = heir->API_Extensions[ THREAD_API_RTEMS ];
- tvp = api->task_variables;
+ tvp = heir->task_variables;
while (tvp) {
*tvp->ptr = tvp->var;
tvp = tvp->next;