summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-08-28 15:30:29 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-08-28 15:30:29 +0000
commit7f6a24abdd1793e394e4d5d49de1f4ca0e00297a (patch)
treefbdb1ec31289dabb5bf41ed769d4b40ca8cf9a9a /cpukit/rtems/src
parentMoved _Thread_Information -> _RTEMS_tasks_Information. (diff)
downloadrtems-7f6a24abdd1793e394e4d5d49de1f4ca0e00297a.tar.bz2
Added unused priority ceiling parameter to rtems_semaphore_create.
Rearranged code to created thread handler routines to initialize, start, restart, and "close/delete" a thread. Made internal threads their own object class. This now uses the thread support routines for starting and initializing a thread. Insured deleted tasks are freed to the Inactive pool associated with the correct Information block. Added an RTEMS API specific data area to the thread control block. Beginnings of removing the word "rtems" from the core.
Diffstat (limited to 'cpukit/rtems/src')
-rw-r--r--cpukit/rtems/src/event.c6
-rw-r--r--cpukit/rtems/src/mp.c2
-rw-r--r--cpukit/rtems/src/msg.c12
-rw-r--r--cpukit/rtems/src/msgmp.c2
-rw-r--r--cpukit/rtems/src/part.c2
-rw-r--r--cpukit/rtems/src/partmp.c2
-rw-r--r--cpukit/rtems/src/region.c8
-rw-r--r--cpukit/rtems/src/regionmp.c2
-rw-r--r--cpukit/rtems/src/sem.c21
-rw-r--r--cpukit/rtems/src/semmp.c2
-rw-r--r--cpukit/rtems/src/signal.c21
-rw-r--r--cpukit/rtems/src/taskmp.c2
-rw-r--r--cpukit/rtems/src/tasks.c214
13 files changed, 157 insertions, 139 deletions
diff --git a/cpukit/rtems/src/event.c b/cpukit/rtems/src/event.c
index 4390d3ee08..ec14c2aaa9 100644
--- a/cpukit/rtems/src/event.c
+++ b/cpukit/rtems/src/event.c
@@ -56,7 +56,7 @@ rtems_status_code rtems_event_send(
)
);
case OBJECTS_LOCAL:
- _Event_sets_Post( event_in, &the_thread->pending_events );
+ _Event_sets_Post( event_in, &the_thread->RTEMS_API->pending_events );
_Event_Surrender( the_thread );
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
@@ -91,13 +91,13 @@ rtems_status_code rtems_event_receive(
)
{
if ( _Event_sets_Is_empty( event_in ) ) {
- *event_out = _Thread_Executing->pending_events;
+ *event_out = _Thread_Executing->RTEMS_API->pending_events;
return( RTEMS_SUCCESSFUL );
}
_Thread_Disable_dispatch();
_Event_Seize( event_in, option_set, ticks );
_Thread_Enable_dispatch();
- *event_out = _Thread_Executing->events_out;
+ *event_out = _Thread_Executing->RTEMS_API->events_out;
return( _Thread_Executing->Wait.return_code );
}
diff --git a/cpukit/rtems/src/mp.c b/cpukit/rtems/src/mp.c
index ffa53d1da7..c555ffb3f1 100644
--- a/cpukit/rtems/src/mp.c
+++ b/cpukit/rtems/src/mp.c
@@ -58,7 +58,7 @@ void rtems_multiprocessing_announce ( void )
_Thread_Disable_dispatch();
_Event_sets_Post(
RTEMS_EVENT_0,
- &_Internal_threads_System_initialization_thread->pending_events
+ &_Internal_threads_System_initialization_thread->RTEMS_API->pending_events
);
_Event_Surrender( _Internal_threads_System_initialization_thread );
_Thread_Enable_dispatch();
diff --git a/cpukit/rtems/src/msg.c b/cpukit/rtems/src/msg.c
index 6dfd26a8f0..ff4683f880 100644
--- a/cpukit/rtems/src/msg.c
+++ b/cpukit/rtems/src/msg.c
@@ -181,7 +181,7 @@ rtems_status_code rtems_message_queue_create(
}
if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Message_queue_Information, name,
+ !( _Objects_MP_Allocate_and_open( &_Message_queue_Information, name,
the_message_queue->Object.id, FALSE ) ) ) {
_Message_queue_Free( the_message_queue );
_Thread_Enable_dispatch();
@@ -195,8 +195,14 @@ rtems_status_code rtems_message_queue_create(
_Chain_Initialize_empty( &the_message_queue->Pending_messages );
- _Thread_queue_Initialize( &the_message_queue->Wait_queue, attribute_set,
- STATES_WAITING_FOR_MESSAGE );
+ _Thread_queue_Initialize(
+ &the_message_queue->Wait_queue,
+ OBJECTS_RTEMS_MESSAGE_QUEUES,
+ _Attributes_Is_priority( attribute_set ) ?
+ THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
+ STATES_WAITING_FOR_MESSAGE,
+ _Message_queue_MP_Send_extract_proxy
+ );
_Objects_Open(
&_Message_queue_Information,
diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c
index 37ce2c9453..48e572c43b 100644
--- a/cpukit/rtems/src/msgmp.c
+++ b/cpukit/rtems/src/msgmp.c
@@ -259,7 +259,7 @@ void _Message_queue_MP_Process_packet (
case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE:
- ignored = _Objects_MP_Open(
+ ignored = _Objects_MP_Allocate_and_open(
&_Message_queue_Information,
the_packet->name,
the_packet->Prefix.id,
diff --git a/cpukit/rtems/src/part.c b/cpukit/rtems/src/part.c
index a7e4308a13..3d21eed416 100644
--- a/cpukit/rtems/src/part.c
+++ b/cpukit/rtems/src/part.c
@@ -107,7 +107,7 @@ rtems_status_code rtems_partition_create(
}
if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Partition_Information, name,
+ !( _Objects_MP_Allocate_and_open( &_Partition_Information, name,
the_partition->Object.id, FALSE ) ) ) {
_Partition_Free( the_partition );
_Thread_Enable_dispatch();
diff --git a/cpukit/rtems/src/partmp.c b/cpukit/rtems/src/partmp.c
index 074165777b..0097844183 100644
--- a/cpukit/rtems/src/partmp.c
+++ b/cpukit/rtems/src/partmp.c
@@ -184,7 +184,7 @@ void _Partition_MP_Process_packet (
case PARTITION_MP_ANNOUNCE_CREATE:
- ignored = _Objects_MP_Open(
+ ignored = _Objects_MP_Allocate_and_open(
&_Partition_Information,
the_packet->name,
the_packet->Prefix.id,
diff --git a/cpukit/rtems/src/region.c b/cpukit/rtems/src/region.c
index b54493eec7..25aca9cda7 100644
--- a/cpukit/rtems/src/region.c
+++ b/cpukit/rtems/src/region.c
@@ -113,7 +113,13 @@ rtems_status_code rtems_region_create(
the_region->number_of_used_blocks = 0;
_Thread_queue_Initialize(
- &the_region->Wait_queue, attribute_set, STATES_WAITING_FOR_SEGMENT );
+ &the_region->Wait_queue,
+ OBJECTS_RTEMS_REGIONS,
+ _Attributes_Is_priority( attribute_set ) ?
+ THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
+ STATES_WAITING_FOR_SEGMENT,
+ _Region_MP_Send_extract_proxy
+ );
_Objects_Open( &_Region_Information, &the_region->Object, &name );
diff --git a/cpukit/rtems/src/regionmp.c b/cpukit/rtems/src/regionmp.c
index 07de556acc..b460e554fe 100644
--- a/cpukit/rtems/src/regionmp.c
+++ b/cpukit/rtems/src/regionmp.c
@@ -190,7 +190,7 @@ void _Region_MP_Process_packet (
case REGION_MP_ANNOUNCE_CREATE:
- ignored = _Objects_MP_Open(
+ ignored = _Objects_MP_Allocate_and_open(
&_Region_Information,
the_packet->name,
the_packet->Prefix.id,
diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c
index d810c205ee..9e87550c31 100644
--- a/cpukit/rtems/src/sem.c
+++ b/cpukit/rtems/src/sem.c
@@ -87,10 +87,11 @@ void _Semaphore_Manager_initialization(
*/
rtems_status_code rtems_semaphore_create(
- rtems_name name,
- unsigned32 count,
- rtems_attribute attribute_set,
- Objects_Id *id
+ rtems_name name,
+ unsigned32 count,
+ rtems_attribute attribute_set,
+ rtems_task_priority priority_ceiling,
+ Objects_Id *id
)
{
register Semaphore_Control *the_semaphore;
@@ -127,7 +128,7 @@ rtems_status_code rtems_semaphore_create(
}
if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Semaphore_Information, name,
+ !( _Objects_MP_Allocate_and_open( &_Semaphore_Information, name,
the_semaphore->Object.id, FALSE ) ) ) {
_Semaphore_Free( the_semaphore );
_Thread_Enable_dispatch();
@@ -148,8 +149,14 @@ rtems_status_code rtems_semaphore_create(
the_semaphore->holder_id = 0;
}
- _Thread_queue_Initialize( &the_semaphore->Wait_queue,
- attribute_set, STATES_WAITING_FOR_SEMAPHORE );
+ _Thread_queue_Initialize(
+ &the_semaphore->Wait_queue,
+ OBJECTS_RTEMS_SEMAPHORES,
+ _Attributes_Is_priority( attribute_set ) ?
+ THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
+ STATES_WAITING_FOR_SEMAPHORE,
+ _Semaphore_MP_Send_extract_proxy
+ );
_Objects_Open( &_Semaphore_Information, &the_semaphore->Object, &name );
diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c
index 3be9fafb5f..03ca51a228 100644
--- a/cpukit/rtems/src/semmp.c
+++ b/cpukit/rtems/src/semmp.c
@@ -187,7 +187,7 @@ void _Semaphore_MP_Process_packet (
case SEMAPHORE_MP_ANNOUNCE_CREATE:
- ignored = _Objects_MP_Open(
+ ignored = _Objects_MP_Allocate_and_open(
&_Semaphore_Information,
the_packet->name,
the_packet->Prefix.id,
diff --git a/cpukit/rtems/src/signal.c b/cpukit/rtems/src/signal.c
index 411df5d86c..8a300d2969 100644
--- a/cpukit/rtems/src/signal.c
+++ b/cpukit/rtems/src/signal.c
@@ -37,22 +37,23 @@
*/
rtems_status_code rtems_signal_catch(
- rtems_asr_entry handler,
- rtems_mode mode_set
+ rtems_asr_entry asr_handler,
+ rtems_mode mode_set
)
{
Thread_Control *executing;
+/* XXX normalize mode */
executing = _Thread_Executing;
_Thread_Disable_dispatch(); /* cannot reschedule while */
/* the thread is inconsistent */
- if ( ! _ASR_Is_null_handler( handler ) ) {
- executing->Signal.mode_set = mode_set;
- executing->Signal.handler = handler;
+ if ( !_ASR_Is_null_handler( asr_handler ) ) {
+ executing->RTEMS_API->Signal.mode_set = mode_set;
+ executing->RTEMS_API->Signal.handler = asr_handler;
}
else
- _ASR_Initialize( &executing->Signal );
+ _ASR_Initialize( &executing->RTEMS_API->Signal );
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}
@@ -91,11 +92,13 @@ rtems_status_code rtems_signal_send(
signal_set
);
case OBJECTS_LOCAL:
- if ( ! _ASR_Is_null_handler( the_thread->Signal.handler ) ) {
+ if ( ! _ASR_Is_null_handler( the_thread->RTEMS_API->Signal.handler ) ) {
if ( _Modes_Is_asr_disabled( the_thread->current_modes ) )
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_pending );
+ _ASR_Post_signals(
+ signal_set, &the_thread->RTEMS_API->Signal.signals_pending );
else {
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_posted );
+ _ASR_Post_signals(
+ signal_set, &the_thread->RTEMS_API->Signal.signals_posted );
if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
_ISR_Signals_to_thread_executing = TRUE;
}
diff --git a/cpukit/rtems/src/taskmp.c b/cpukit/rtems/src/taskmp.c
index 003c543c5a..2b7fb214c6 100644
--- a/cpukit/rtems/src/taskmp.c
+++ b/cpukit/rtems/src/taskmp.c
@@ -193,7 +193,7 @@ void _RTEMS_tasks_MP_Process_packet (
case RTEMS_TASKS_MP_ANNOUNCE_CREATE:
- ignored = _Objects_MP_Open(
+ ignored = _Objects_MP_Allocate_and_open(
&_RTEMS_tasks_Information,
the_packet->name,
the_packet->Prefix.id,
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index 5574a6633e..62bc8c1995 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/rtems/src/tasks.c
@@ -86,27 +86,35 @@ rtems_status_code rtems_task_create(
)
{
register Thread_Control *the_thread;
- unsigned32 actual_stack_size;
- unsigned32 memory_needed;
- void *memory;
+ Objects_MP_Control *the_global_object = NULL;
+ boolean is_fp;
+ boolean is_global;
rtems_attribute the_attribute_set;
+ Priority_Control core_priority;
+
if ( !rtems_is_name_valid( name ) )
return ( RTEMS_INVALID_NAME );
+ /*
+ * Core Thread Initialize insures we get the minimum amount of
+ * stack space.
+ */
+
#if 0
if ( !_Stack_Is_enough( stack_size ) )
return( RTEMS_INVALID_SIZE );
#endif
- if ( !_Stack_Is_enough( stack_size ) )
- actual_stack_size = RTEMS_MINIMUM_STACK_SIZE;
- else
- actual_stack_size = stack_size;
+ /*
+ * Validate the RTEMS API priority and convert it to the core priority range.
+ */
if ( !_Priority_Is_valid( initial_priority ) )
return( RTEMS_INVALID_PRIORITY );
+ core_priority = _RTEMS_Tasks_Priority_to_Core( initial_priority );
+
/*
* Fix the attribute set to match the attributes which
* this processor (1) requires and (2) is able to support.
@@ -120,11 +128,40 @@ rtems_status_code rtems_task_create(
the_attribute_set =
_Attributes_Clear( the_attribute_set, ATTRIBUTES_NOT_SUPPORTED );
- if ( _Attributes_Is_global( the_attribute_set ) &&
- !_Configuration_Is_multiprocessing() )
- return( RTEMS_MP_NOT_CONFIGURED );
+ if ( _Attributes_Is_floating_point( the_attribute_set ) )
+ is_fp = TRUE;
+ else
+ is_fp = FALSE;
+
+ if ( _Attributes_Is_global( the_attribute_set ) ) {
+
+ is_global = TRUE;
+
+ if ( !_Configuration_Is_multiprocessing() )
+ return( RTEMS_MP_NOT_CONFIGURED );
- _Thread_Disable_dispatch(); /* to prevent deletion */
+ } else
+ is_global = FALSE;
+
+ /*
+ * Make sure system is MP if this task is global
+ */
+
+ /*
+ * Disable dispatch for protection
+ */
+
+ _Thread_Disable_dispatch();
+
+ /*
+ * Allocate the thread control block and -- if the task is global --
+ * allocate a global object control block.
+ *
+ * NOTE: This routine does not use the combined allocate and open
+ * global object routine because this results in a lack of
+ * control over when memory is allocated and can be freed in
+ * the event of an error.
+ */
the_thread = _RTEMS_tasks_Allocate();
@@ -133,71 +170,71 @@ rtems_status_code rtems_task_create(
return( RTEMS_TOO_MANY );
}
- actual_stack_size = _Stack_Adjust_size( actual_stack_size );
- memory_needed = actual_stack_size;
+ if ( is_global ) {
+ the_global_object = _Objects_MP_Allocate_global_object();
- if ( _Attributes_Is_floating_point( the_attribute_set ) )
- memory_needed += CONTEXT_FP_SIZE;
+ if ( _Objects_MP_Is_null_global_object( the_global_object ) ) {
+ _RTEMS_tasks_Free( the_thread );
+ _Thread_Enable_dispatch();
+ return( RTEMS_TOO_MANY );
+ }
+ }
- memory = _Workspace_Allocate( memory_needed );
+#if 0
+ /*
+ * Allocate and initialize the RTEMS API specific information
+ */
+
+ the_thread->RTEMS_API = _Workspace_Allocate( sizeof( RTEMS_API_Control ) );
- if ( !memory ) {
+ if ( !the_thread->RTEMS_API ) {
_RTEMS_tasks_Free( the_thread );
+ if ( is_global )
+ _Objects_MP_Free_global_object( the_global_object );
_Thread_Enable_dispatch();
return( RTEMS_UNSATISFIED );
}
+ the_thread->RTEMS_API->pending_events = EVENT_SETS_NONE_PENDING;
+ _ASR_Initialize( &the_thread->RTEMS_API->Signal );
+#endif
+
/*
- * Stack is put in the lower address regions of the allocated memory.
- * The optional floating point context area goes into the higher part
- * of the allocated memory.
+ * Initialize the core thread for this task.
*/
- _Stack_Initialize(
- &the_thread->Start.Initial_stack, memory, actual_stack_size );
-
- if ( _Attributes_Is_floating_point( the_attribute_set ) )
- the_thread->fp_context = _Context_Fp_start( memory, actual_stack_size );
- else
- the_thread->fp_context = NULL;
-
- the_thread->Start.fp_context = the_thread->fp_context;
+/* XXX normalize mode */
- if ( _Attributes_Is_global( the_attribute_set ) &&
- !( _Objects_MP_Open( &_RTEMS_tasks_Information, name,
- the_thread->Object.id, FALSE ) ) ) {
+ if ( !_Thread_Initialize( &_RTEMS_tasks_Information, the_thread,
+ NULL, stack_size, is_fp, core_priority, initial_modes, &name ) ) {
+ if ( is_global )
+ _Objects_MP_Free_global_object( the_global_object );
_RTEMS_tasks_Free( the_thread );
- (void) _Workspace_Free( memory );
_Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
+ return( RTEMS_UNSATISFIED );
}
- the_thread->attribute_set = the_attribute_set;
- the_thread->current_state = STATES_DORMANT;
- the_thread->current_modes = initial_modes;
- the_thread->pending_events = EVENT_SETS_NONE_PENDING;
- the_thread->resource_count = 0;
- the_thread->real_priority = initial_priority;
- the_thread->Start.initial_priority = initial_priority;
- the_thread->Start.initial_modes = initial_modes;
-
- _Thread_Set_priority( the_thread, initial_priority );
-
- _ASR_Initialize( &the_thread->Signal );
+ *id = the_thread->Object.id;
- _Objects_Open( &_RTEMS_tasks_Information, &the_thread->Object, &name );
+ if ( is_global ) {
- *id = the_thread->Object.id;
+ the_thread->RTEMS_API->is_global = TRUE;
- _User_extensions_Task_create( the_thread );
+ _Objects_MP_Open(
+ &_RTEMS_tasks_Information,
+ the_global_object,
+ name,
+ the_thread->Object.id
+ );
- if ( _Attributes_Is_global( the_attribute_set ) )
_RTEMS_tasks_MP_Send_process_packet(
RTEMS_TASKS_MP_ANNOUNCE_CREATE,
the_thread->Object.id,
name
);
+ }
+
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}
@@ -252,9 +289,9 @@ rtems_status_code rtems_task_ident(
*/
rtems_status_code rtems_task_start(
- Objects_Id id,
+ rtems_id id,
rtems_task_entry entry_point,
- unsigned32 argument
+ unsigned32 argument
)
{
register Thread_Control *the_thread;
@@ -271,17 +308,8 @@ rtems_status_code rtems_task_start(
_Thread_Dispatch();
return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
case OBJECTS_LOCAL:
- if ( _States_Is_dormant( the_thread->current_state ) ) {
-
- the_thread->Start.entry_point = entry_point;
- the_thread->Start.initial_argument = argument;
-
- _Thread_Load_environment( the_thread );
-
- _Thread_Ready( the_thread );
-
- _User_extensions_Task_start( the_thread );
-
+ if ( _Thread_Start(
+ the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}
@@ -316,7 +344,7 @@ rtems_status_code rtems_task_restart(
)
{
register Thread_Control *the_thread;
- Objects_Locations location;
+ Objects_Locations location;
the_thread = _Thread_Get( id, &location );
switch ( location ) {
@@ -326,32 +354,11 @@ rtems_status_code rtems_task_restart(
_Thread_Dispatch();
return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
case OBJECTS_LOCAL:
- if ( !_States_Is_dormant( the_thread->current_state ) ) {
-
- _Thread_Set_transient( the_thread );
- _ASR_Initialize( &the_thread->Signal );
- the_thread->pending_events = EVENT_SETS_NONE_PENDING;
- the_thread->resource_count = 0;
- the_thread->current_modes = the_thread->Start.initial_modes;
- the_thread->Start.initial_argument = argument;
-
- _RTEMS_tasks_Cancel_wait( the_thread );
-
- if ( the_thread->current_priority !=
- the_thread->Start.initial_priority ) {
- the_thread->real_priority = the_thread->Start.initial_priority;
- _Thread_Set_priority( the_thread,
- the_thread->Start.initial_priority );
- }
-
- _Thread_Load_environment( the_thread );
+ if ( _Thread_Restart( the_thread, NULL, argument ) ) {
- _Thread_Ready( the_thread );
-
- _User_extensions_Task_restart( the_thread );
-
- if ( _Thread_Is_executing ( the_thread ) )
- _Thread_Restart_self();
+ /* XXX until these are in an API extension they are too late. */
+ _ASR_Initialize( &the_thread->RTEMS_API->Signal );
+ the_thread->RTEMS_API->pending_events = EVENT_SETS_NONE_PENDING;
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
@@ -396,25 +403,14 @@ rtems_status_code rtems_task_delete(
_Thread_Dispatch();
return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
case OBJECTS_LOCAL:
- _Objects_Close( &_RTEMS_tasks_Information, &the_thread->Object );
-
- _Thread_Set_state( the_thread, STATES_TRANSIENT );
-
- _User_extensions_Task_delete( the_thread );
-
-#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
- if ( _Thread_Is_allocated_fp( the_thread ) )
- _Thread_Deallocate_fp();
-#endif
- the_thread->fp_context = NULL;
-
- _RTEMS_tasks_Cancel_wait( the_thread );
+ _Thread_Close( &_RTEMS_tasks_Information, the_thread );
- (void) _Workspace_Free( the_thread->Start.Initial_stack.area );
+ /* XXX */
+ (void) _Workspace_Free( the_thread->RTEMS_API );
_RTEMS_tasks_Free( the_thread );
- if ( _Attributes_Is_global( the_thread->attribute_set ) ) {
+ if ( _Attributes_Is_global( the_thread->RTEMS_API->is_global ) ) {
_Objects_MP_Close( &_RTEMS_tasks_Information, the_thread->Object.id );
@@ -551,7 +547,7 @@ rtems_status_code rtems_task_resume(
*/
rtems_status_code rtems_task_set_priority(
- Objects_Id id,
+ Objects_Id id,
rtems_task_priority new_priority,
rtems_task_priority *old_priority
)
@@ -662,7 +658,7 @@ rtems_status_code rtems_task_get_note(
if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||
_Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) {
- *note = _Thread_Executing->Notepads[ notepad ];
+ *note = _Thread_Executing->RTEMS_API->Notepads[ notepad ];
return( RTEMS_SUCCESSFUL );
}
@@ -681,7 +677,7 @@ rtems_status_code rtems_task_get_note(
0 /* Not used */
);
case OBJECTS_LOCAL:
- *note= the_thread->Notepads[ notepad ];
+ *note= the_thread->RTEMS_API->Notepads[ notepad ];
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}
@@ -729,7 +725,7 @@ rtems_status_code rtems_task_set_note(
if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||
_Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) {
- _Thread_Executing->Notepads[ notepad ] = note;
+ _Thread_Executing->RTEMS_API->Notepads[ notepad ] = note;
return( RTEMS_SUCCESSFUL );
}
@@ -747,7 +743,7 @@ rtems_status_code rtems_task_set_note(
);
case OBJECTS_LOCAL:
- the_thread->Notepads[ notepad ] = note;
+ the_thread->RTEMS_API->Notepads[ notepad ] = note;
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}