summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/src')
-rw-r--r--cpukit/rtems/src/tasks.c20
-rw-r--r--cpukit/rtems/src/taskvariableadd.c8
-rw-r--r--cpukit/rtems/src/taskvariabledelete.c6
3 files changed, 11 insertions, 23 deletions
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index e05aecca3f..d49236cadf 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/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;
diff --git a/cpukit/rtems/src/taskvariableadd.c b/cpukit/rtems/src/taskvariableadd.c
index 1bc38bdf46..8928f6d7d7 100644
--- a/cpukit/rtems/src/taskvariableadd.c
+++ b/cpukit/rtems/src/taskvariableadd.c
@@ -30,7 +30,6 @@ rtems_status_code rtems_task_variable_add(
{
Thread_Control *the_thread;
Objects_Locations location;
- RTEMS_API_Control *api;
rtems_task_variable_t *tvp, *new;
the_thread = _Thread_Get (tid, &location);
@@ -48,13 +47,12 @@ rtems_status_code rtems_task_variable_add(
return RTEMS_INTERNAL_ERROR;
case OBJECTS_LOCAL:
- api = the_thread->API_Extensions[ THREAD_API_RTEMS ];
/*
* Figure out if the variable is already in this task's list.
*/
- tvp = api->task_variables;
+ tvp = the_thread->task_variables;
while (tvp) {
if (tvp->ptr == ptr) {
_Thread_Enable_dispatch();
@@ -76,8 +74,8 @@ rtems_status_code rtems_task_variable_add(
new->var = 0;
new->ptr = ptr;
- new->next = api->task_variables;
- api->task_variables = new;
+ new->next = the_thread->task_variables;
+ the_thread->task_variables = new;
_Thread_Enable_dispatch();
return RTEMS_SUCCESSFUL;
}
diff --git a/cpukit/rtems/src/taskvariabledelete.c b/cpukit/rtems/src/taskvariabledelete.c
index 551e7057a9..82fd444bd8 100644
--- a/cpukit/rtems/src/taskvariabledelete.c
+++ b/cpukit/rtems/src/taskvariabledelete.c
@@ -30,7 +30,6 @@ rtems_status_code rtems_task_variable_delete(
{
Thread_Control *the_thread;
Objects_Locations location;
- RTEMS_API_Control *api;
rtems_task_variable_t *tvp, *prev;
prev = NULL;
@@ -50,12 +49,11 @@ rtems_status_code rtems_task_variable_delete(
return RTEMS_INTERNAL_ERROR;
case OBJECTS_LOCAL:
- api = the_thread->API_Extensions[ THREAD_API_RTEMS ];
- tvp = api->task_variables;
+ tvp = the_thread->task_variables;
while (tvp) {
if (tvp->ptr == ptr) {
if (prev) prev->next = tvp->next;
- else api->task_variables = tvp->next;
+ else the_thread->task_variables = tvp->next;
_Thread_Enable_dispatch();
_Workspace_Free(tvp);
return RTEMS_SUCCESSFUL;