Changeset 5250ff39 in rtems
- Timestamp:
- 08/23/95 21:06:31 (28 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 7f6a24ab
- Parents:
- 3235ad9
- Files:
-
- 73 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/rtems/headers/tasks.h
r3235ad9 r5250ff39 63 63 64 64 /* 65 * The following defines the information control block used to 66 * manage this class of objects. 67 */ 68 69 EXTERN Objects_Information _RTEMS_tasks_Information; 70 71 /* 72 * _RTEMS_tasks_Manager_initialization 73 * 74 * DESCRIPTION: 75 * 76 * This routine initializes all Task Manager related data structures. 77 */ 78 79 void _RTEMS_tasks_Manager_initialization( 80 unsigned32 maximum_tasks 81 ); 82 83 /* 65 84 * rtems_task_create 66 85 * -
c/src/exec/rtems/include/rtems/rtems/tasks.h
r3235ad9 r5250ff39 63 63 64 64 /* 65 * The following defines the information control block used to 66 * manage this class of objects. 67 */ 68 69 EXTERN Objects_Information _RTEMS_tasks_Information; 70 71 /* 72 * _RTEMS_tasks_Manager_initialization 73 * 74 * DESCRIPTION: 75 * 76 * This routine initializes all Task Manager related data structures. 77 */ 78 79 void _RTEMS_tasks_Manager_initialization( 80 unsigned32 maximum_tasks 81 ); 82 83 /* 65 84 * rtems_task_create 66 85 * -
c/src/exec/rtems/inline/rtems/rtems/tasks.inl
r3235ad9 r5250ff39 31 31 STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) 32 32 { 33 return (Thread_Control *) _Objects_Allocate( &_ Thread_Information );33 return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ); 34 34 } 35 35 … … 44 44 ) 45 45 { 46 _Objects_Free( &_ Thread_Information, &the_task->Object );46 _Objects_Free( &_RTEMS_tasks_Information, &the_task->Object ); 47 47 } 48 48 -
c/src/exec/rtems/inline/tasks.inl
r3235ad9 r5250ff39 31 31 STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) 32 32 { 33 return (Thread_Control *) _Objects_Allocate( &_ Thread_Information );33 return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ); 34 34 } 35 35 … … 44 44 ) 45 45 { 46 _Objects_Free( &_ Thread_Information, &the_task->Object );46 _Objects_Free( &_RTEMS_tasks_Information, &the_task->Object ); 47 47 } 48 48 -
c/src/exec/rtems/macros/rtems/rtems/tasks.inl
r3235ad9 r5250ff39 30 30 31 31 #define _RTEMS_tasks_Allocate() \ 32 (Thread_Control *) _Objects_Allocate( &_ Thread_Information )32 (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ) 33 33 34 34 /*PAGE … … 39 39 40 40 #define _RTEMS_tasks_Free( _the_task ) \ 41 _Objects_Free( &_ Thread_Information, &(_the_task)->Object )41 _Objects_Free( &_RTEMS_tasks_Information, &(_the_task)->Object ) 42 42 43 43 /*PAGE -
c/src/exec/rtems/macros/tasks.inl
r3235ad9 r5250ff39 30 30 31 31 #define _RTEMS_tasks_Allocate() \ 32 (Thread_Control *) _Objects_Allocate( &_ Thread_Information )32 (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ) 33 33 34 34 /*PAGE … … 39 39 40 40 #define _RTEMS_tasks_Free( _the_task ) \ 41 _Objects_Free( &_ Thread_Information, &(_the_task)->Object )41 _Objects_Free( &_RTEMS_tasks_Information, &(_the_task)->Object ) 42 42 43 43 /*PAGE -
c/src/exec/rtems/src/dpmem.c
r3235ad9 r5250ff39 44 44 sizeof( Dual_ported_memory_Control ), 45 45 FALSE, 46 RTEMS_MAXIMUM_NAME_LENGTH 46 RTEMS_MAXIMUM_NAME_LENGTH, 47 FALSE 47 48 ); 48 49 } -
c/src/exec/rtems/src/msg.c
r3235ad9 r5250ff39 52 52 sizeof( Message_queue_Control ), 53 53 FALSE, 54 RTEMS_MAXIMUM_NAME_LENGTH 54 RTEMS_MAXIMUM_NAME_LENGTH, 55 FALSE 55 56 ); 56 57 } -
c/src/exec/rtems/src/part.c
r3235ad9 r5250ff39 46 46 sizeof( Partition_Control ), 47 47 FALSE, 48 RTEMS_MAXIMUM_NAME_LENGTH 48 RTEMS_MAXIMUM_NAME_LENGTH, 49 FALSE 49 50 ); 50 51 -
c/src/exec/rtems/src/ratemon.c
r3235ad9 r5250ff39 48 48 sizeof( Rate_monotonic_Control ), 49 49 FALSE, 50 RTEMS_MAXIMUM_NAME_LENGTH 50 RTEMS_MAXIMUM_NAME_LENGTH, 51 FALSE 51 52 ); 52 53 } -
c/src/exec/rtems/src/region.c
r3235ad9 r5250ff39 46 46 sizeof( Region_Control ), 47 47 FALSE, 48 RTEMS_MAXIMUM_NAME_LENGTH 48 RTEMS_MAXIMUM_NAME_LENGTH, 49 FALSE 49 50 ); 50 51 } -
c/src/exec/rtems/src/rtemstimer.c
r3235ad9 r5250ff39 45 45 sizeof( Timer_Control ), 46 46 FALSE, 47 RTEMS_MAXIMUM_NAME_LENGTH 47 RTEMS_MAXIMUM_NAME_LENGTH, 48 FALSE 48 49 ); 49 50 } -
c/src/exec/rtems/src/sem.c
r3235ad9 r5250ff39 63 63 sizeof( Semaphore_Control ), 64 64 FALSE, 65 RTEMS_MAXIMUM_NAME_LENGTH 65 RTEMS_MAXIMUM_NAME_LENGTH, 66 FALSE 66 67 ); 67 68 } -
c/src/exec/rtems/src/taskmp.c
r3235ad9 r5250ff39 195 195 196 196 ignored = _Objects_MP_Open( 197 &_ Thread_Information,197 &_RTEMS_tasks_Information, 198 198 the_packet->name, 199 199 the_packet->Prefix.id, … … 206 206 case RTEMS_TASKS_MP_ANNOUNCE_DELETE: 207 207 208 _Objects_MP_Close( &_ Thread_Information, the_packet->Prefix.id );208 _Objects_MP_Close( &_RTEMS_tasks_Information, the_packet->Prefix.id ); 209 209 210 210 _MPCI_Return_packet( the_packet_prefix ); -
c/src/exec/rtems/src/tasks.c
r3235ad9 r5250ff39 29 29 /*PAGE 30 30 * 31 * _RTEMS_tasks_Manager_initialization 32 * 33 * This routine initializes all Task Manager related data structures. 34 * 35 * Input parameters: 36 * maximum_tasks - number of tasks to initialize 37 * 38 * Output parameters: NONE 39 */ 40 41 void _RTEMS_tasks_Manager_initialization( 42 unsigned32 maximum_tasks 43 ) 44 { 45 _Objects_Initialize_information( 46 &_RTEMS_tasks_Information, 47 OBJECTS_RTEMS_TASKS, 48 TRUE, 49 maximum_tasks, 50 sizeof( Thread_Control ), 51 FALSE, 52 RTEMS_MAXIMUM_NAME_LENGTH, 53 TRUE 54 ); 55 } 56 57 /*PAGE 58 * 31 59 * rtems_task_create 32 60 * … … 137 165 138 166 if ( _Attributes_Is_global( the_attribute_set ) && 139 !( _Objects_MP_Open( &_ Thread_Information, name,167 !( _Objects_MP_Open( &_RTEMS_tasks_Information, name, 140 168 the_thread->Object.id, FALSE ) ) ) { 141 169 _RTEMS_tasks_Free( the_thread ); … … 158 186 _ASR_Initialize( &the_thread->Signal ); 159 187 160 _Objects_Open( &_ Thread_Information, &the_thread->Object, &name );188 _Objects_Open( &_RTEMS_tasks_Information, &the_thread->Object, &name ); 161 189 162 190 *id = the_thread->Object.id; … … 200 228 { 201 229 if ( name != OBJECTS_ID_OF_SELF ) 202 return( _Objects_Name_to_id( &_ Thread_Information, &name, node, id ) );230 return( _Objects_Name_to_id( &_RTEMS_tasks_Information, &name, node, id ) ); 203 231 204 232 *id = _Thread_Executing->Object.id; … … 369 397 return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); 370 398 case OBJECTS_LOCAL: 371 _Objects_Close( &_ Thread_Information, &the_thread->Object );399 _Objects_Close( &_RTEMS_tasks_Information, &the_thread->Object ); 372 400 373 401 _Thread_Set_state( the_thread, STATES_TRANSIENT ); … … 389 417 if ( _Attributes_Is_global( the_thread->attribute_set ) ) { 390 418 391 _Objects_MP_Close( &_ Thread_Information, the_thread->Object.id );419 _Objects_MP_Close( &_RTEMS_tasks_Information, the_thread->Object.id ); 392 420 393 421 _RTEMS_tasks_MP_Send_process_packet( -
c/src/exec/rtems/src/timer.c
r3235ad9 r5250ff39 45 45 sizeof( Timer_Control ), 46 46 FALSE, 47 RTEMS_MAXIMUM_NAME_LENGTH 47 RTEMS_MAXIMUM_NAME_LENGTH, 48 FALSE 48 49 ); 49 50 } -
c/src/exec/sapi/src/exinit.c
r3235ad9 r5250ff39 153 153 154 154 _Thread_Handler_initialization( 155 configuration_table->maximum_tasks,156 155 configuration_table->ticks_per_timeslice, 157 156 multiprocessing_table->maximum_proxies … … 165 164 166 165 _Multiprocessing_Manager_initialization(); 166 167 _RTEMS_tasks_Manager_initialization( configuration_table->maximum_tasks ); 167 168 168 169 _Timer_Manager_initialization( configuration_table->maximum_timers ); -
c/src/exec/sapi/src/extension.c
r3235ad9 r5250ff39 43 43 sizeof( Extension_Control ), 44 44 FALSE, 45 RTEMS_MAXIMUM_NAME_LENGTH 45 RTEMS_MAXIMUM_NAME_LENGTH, 46 FALSE 46 47 ); 47 48 } -
c/src/exec/score/headers/object.h
r3235ad9 r5250ff39 79 79 typedef enum { 80 80 OBJECTS_NO_CLASS = 0, 81 OBJECTS_RTEMS_TASKS = 1, 82 OBJECTS_RTEMS_TIMERS = 2, 83 OBJECTS_RTEMS_SEMAPHORES = 3, 84 OBJECTS_RTEMS_MESSAGE_QUEUES = 4, 85 OBJECTS_RTEMS_PARTITIONS = 5, 86 OBJECTS_RTEMS_REGIONS = 6, 87 OBJECTS_RTEMS_PORTS = 7, 88 OBJECTS_RTEMS_PERIODS = 8, 89 OBJECTS_RTEMS_EXTENSIONS = 9 81 OBJECTS_INTERNAL_THREADS = 1, 82 OBJECTS_RTEMS_TASKS = 2, 83 OBJECTS_RTEMS_TIMERS = 3, 84 OBJECTS_RTEMS_SEMAPHORES = 4, 85 OBJECTS_RTEMS_MESSAGE_QUEUES = 5, 86 OBJECTS_RTEMS_PARTITIONS = 6, 87 OBJECTS_RTEMS_REGIONS = 7, 88 OBJECTS_RTEMS_PORTS = 8, 89 OBJECTS_RTEMS_PERIODS = 9, 90 OBJECTS_RTEMS_EXTENSIONS = 10 90 91 } Objects_Classes; 92 93 #define OBJECTS_CLASSES_FIRST OBJECTS_NO_CLASS 94 #define OBJECTS_CLASSES_LAST OBJECTS_RTEMS_EXTENSIONS 91 95 92 96 /* … … 129 133 boolean is_string; /* TRUE if names are strings */ 130 134 unsigned32 name_length; /* maximum length of names */ 135 boolean is_thread; /* TRUE if these are threads */ 136 /* irregardless of API */ 131 137 } Objects_Information; 132 138 … … 137 143 138 144 EXTERN unsigned32 _Objects_Local_node; 145 146 /* 147 * The following is the list of information blocks for each object 148 * class. From the ID, we can go to one of these information blocks, 149 * and obtain a pointer to the appropriate object control block. 150 */ 151 152 EXTERN Objects_Information 153 *_Objects_Information_table[OBJECTS_CLASSES_LAST + 1]; 139 154 140 155 /* … … 202 217 unsigned32 size, 203 218 boolean is_string, 204 unsigned32 maximum_name_length 219 unsigned32 maximum_name_length, 220 boolean is_task 205 221 ); 206 222 -
c/src/exec/score/headers/thread.h
r3235ad9 r5250ff39 230 230 231 231 /* 232 * The following defines the information control block used to233 * manage this class of objects.234 */235 236 EXTERN Objects_Information _Thread_Information;237 238 /*239 232 * The following context area contains the context of the "thread" 240 233 * which invoked rtems_initialize_executive. This context is restored … … 255 248 256 249 void _Thread_Handler_initialization ( 257 unsigned32 maximum_tasks,258 250 unsigned32 ticks_per_timeslice, 259 251 unsigned32 maximum_proxies -
c/src/exec/score/include/rtems/score/object.h
r3235ad9 r5250ff39 79 79 typedef enum { 80 80 OBJECTS_NO_CLASS = 0, 81 OBJECTS_RTEMS_TASKS = 1, 82 OBJECTS_RTEMS_TIMERS = 2, 83 OBJECTS_RTEMS_SEMAPHORES = 3, 84 OBJECTS_RTEMS_MESSAGE_QUEUES = 4, 85 OBJECTS_RTEMS_PARTITIONS = 5, 86 OBJECTS_RTEMS_REGIONS = 6, 87 OBJECTS_RTEMS_PORTS = 7, 88 OBJECTS_RTEMS_PERIODS = 8, 89 OBJECTS_RTEMS_EXTENSIONS = 9 81 OBJECTS_INTERNAL_THREADS = 1, 82 OBJECTS_RTEMS_TASKS = 2, 83 OBJECTS_RTEMS_TIMERS = 3, 84 OBJECTS_RTEMS_SEMAPHORES = 4, 85 OBJECTS_RTEMS_MESSAGE_QUEUES = 5, 86 OBJECTS_RTEMS_PARTITIONS = 6, 87 OBJECTS_RTEMS_REGIONS = 7, 88 OBJECTS_RTEMS_PORTS = 8, 89 OBJECTS_RTEMS_PERIODS = 9, 90 OBJECTS_RTEMS_EXTENSIONS = 10 90 91 } Objects_Classes; 92 93 #define OBJECTS_CLASSES_FIRST OBJECTS_NO_CLASS 94 #define OBJECTS_CLASSES_LAST OBJECTS_RTEMS_EXTENSIONS 91 95 92 96 /* … … 129 133 boolean is_string; /* TRUE if names are strings */ 130 134 unsigned32 name_length; /* maximum length of names */ 135 boolean is_thread; /* TRUE if these are threads */ 136 /* irregardless of API */ 131 137 } Objects_Information; 132 138 … … 137 143 138 144 EXTERN unsigned32 _Objects_Local_node; 145 146 /* 147 * The following is the list of information blocks for each object 148 * class. From the ID, we can go to one of these information blocks, 149 * and obtain a pointer to the appropriate object control block. 150 */ 151 152 EXTERN Objects_Information 153 *_Objects_Information_table[OBJECTS_CLASSES_LAST + 1]; 139 154 140 155 /* … … 202 217 unsigned32 size, 203 218 boolean is_string, 204 unsigned32 maximum_name_length 219 unsigned32 maximum_name_length, 220 boolean is_task 205 221 ); 206 222 -
c/src/exec/score/include/rtems/score/thread.h
r3235ad9 r5250ff39 230 230 231 231 /* 232 * The following defines the information control block used to233 * manage this class of objects.234 */235 236 EXTERN Objects_Information _Thread_Information;237 238 /*239 232 * The following context area contains the context of the "thread" 240 233 * which invoked rtems_initialize_executive. This context is restored … … 255 248 256 249 void _Thread_Handler_initialization ( 257 unsigned32 maximum_tasks,258 250 unsigned32 ticks_per_timeslice, 259 251 unsigned32 maximum_proxies -
c/src/exec/score/inline/rtems/score/thread.inl
r3235ad9 r5250ff39 232 232 * _Thread_Get 233 233 * 234 * NOTE: XXX... This routine may be able to be optimized. 234 235 */ 235 236 … … 239 240 ) 240 241 { 242 Objects_Classes the_class; 243 Objects_Information *information; 244 241 245 if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 242 243 244 246 _Thread_Disable_dispatch(); 247 *location = OBJECTS_LOCAL; 248 return( _Thread_Executing ); 245 249 } 246 247 return (Thread_Control *) 248 _Objects_Get( &_Thread_Information, id, location ); 250 251 the_class = rtems_get_class( id ); 252 253 if ( the_class > OBJECTS_CLASSES_LAST ) { 254 *location = OBJECTS_ERROR; 255 return (Thread_Control *) 0; 256 } 257 258 information = _Objects_Information_table[ the_class ]; 259 260 if ( !information || !information->is_thread ) { 261 *location = OBJECTS_ERROR; 262 return (Thread_Control *) 0; 263 } 264 265 return (Thread_Control *) _Objects_Get( information, id, location ); 249 266 } 250 267 -
c/src/exec/score/inline/thread.inl
r3235ad9 r5250ff39 232 232 * _Thread_Get 233 233 * 234 * NOTE: XXX... This routine may be able to be optimized. 234 235 */ 235 236 … … 239 240 ) 240 241 { 242 Objects_Classes the_class; 243 Objects_Information *information; 244 241 245 if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 242 243 244 246 _Thread_Disable_dispatch(); 247 *location = OBJECTS_LOCAL; 248 return( _Thread_Executing ); 245 249 } 246 247 return (Thread_Control *) 248 _Objects_Get( &_Thread_Information, id, location ); 250 251 the_class = rtems_get_class( id ); 252 253 if ( the_class > OBJECTS_CLASSES_LAST ) { 254 *location = OBJECTS_ERROR; 255 return (Thread_Control *) 0; 256 } 257 258 information = _Objects_Information_table[ the_class ]; 259 260 if ( !information || !information->is_thread ) { 261 *location = OBJECTS_ERROR; 262 return (Thread_Control *) 0; 263 } 264 265 return (Thread_Control *) _Objects_Get( information, id, location ); 249 266 } 250 267 -
c/src/exec/score/src/object.c
r3235ad9 r5250ff39 69 69 unsigned32 size, 70 70 boolean is_string, 71 unsigned32 maximum_name_length 71 unsigned32 maximum_name_length, 72 boolean is_thread 72 73 ) 73 74 { … … 81 82 information->the_class = the_class; 82 83 information->is_string = is_string; 84 information->is_thread = is_thread; 85 86 /* 87 * Set the entry in the object information table. 88 */ 89 90 _Objects_Information_table[ the_class ] = information; 83 91 84 92 /* … … 380 388 Objects_Control *_Objects_Get( 381 389 Objects_Information *information, 382 Objects_Id 383 Objects_Locations 390 Objects_Id id, 391 Objects_Locations *location 384 392 ) 385 393 { -
c/src/exec/score/src/thread.c
r3235ad9 r5250ff39 36 36 * 37 37 * Input parameters: 38 * maximum_tasks - number of tasks to initialize39 38 * ticks_per_timeslice - clock ticks per quantum 39 * maximum_proxies - number of proxies to initialize 40 40 * 41 41 * Output parameters: NONE … … 43 43 44 44 void _Thread_Handler_initialization( 45 unsigned32 maximum_tasks,46 45 unsigned32 ticks_per_timeslice, 47 46 unsigned32 maximum_proxies … … 57 56 _Thread_Ticks_remaining_in_timeslice = ticks_per_timeslice; 58 57 _Thread_Ticks_per_timeslice = ticks_per_timeslice; 59 60 _Objects_Initialize_information(61 &_Thread_Information,62 OBJECTS_RTEMS_TASKS,63 TRUE,64 maximum_tasks,65 sizeof( Thread_Control ),66 FALSE,67 RTEMS_MAXIMUM_NAME_LENGTH68 );69 58 70 59 _Thread_Ready_chain = _Workspace_Allocate_or_fatal_error( … … 790 779 * NOTE: If we are not using static inlines, this must be a real 791 780 * subroutine call. 781 * 782 * NOTE: XXX... This routine may be able to be optimized. 792 783 */ 793 784 … … 795 786 796 787 STATIC INLINE Thread_Control *_Thread_Get ( 797 Objects_Id id, 798 Objects_Locations *location 799 ) 800 { 788 Objects_Id id, 789 Objects_Locations *location 790 ) 791 { 792 Objects_Classes the_class; 793 Objects_Information *information; 794 801 795 if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 802 _Thread_Disable_dispatch(); 803 *location = OBJECTS_LOCAL; 804 return( _Thread_Executing ); 805 } 806 807 return (Thread_Control *) _Objects_Get( &_Thread_Information, id, location ); 796 _Thread_Disable_dispatch(); 797 *location = OBJECTS_LOCAL; 798 return( _Thread_Executing ); 799 } 800 801 the_class = rtems_get_class( id ); 802 803 if ( the_class > OBJECTS_CLASSES_LAST ) { 804 *location = OBJECTS_ERROR; 805 return (Thread_Control *) 0; 806 } 807 808 information = _Objects_Information_table[ the_class ]; 809 810 if ( !information || !information->is_thread ) { 811 *location = OBJECTS_ERROR; 812 return (Thread_Control *) 0; 813 } 814 815 return (Thread_Control *) _Objects_Get( information, id, location ); 808 816 } 809 817 #endif 810 -
c/src/lib/libmisc/monitor/mon-object.c
r3235ad9 r5250ff39 61 61 }, 62 62 { RTEMS_OBJECT_TASK, 63 (void *) &_ Thread_Information,63 (void *) &_RTEMS_tasks_Information, 64 64 sizeof(rtems_monitor_task_t), 65 65 (rtems_monitor_object_next_fn) rtems_monitor_manager_next, -
c/src/lib/libmisc/stackchk/check.c
r3235ad9 r5250ff39 416 416 void Stack_check_Dump_usage( void ) 417 417 { 418 unsigned32 i; 419 Thread_Control *the_thread; 420 unsigned32 hit_running = 0; 418 unsigned32 i; 419 unsigned32 class_index; 420 Thread_Control *the_thread; 421 unsigned32 hit_running = 0; 422 Objects_Information *information; 421 423 422 424 if (stack_check_initialized == 0) … … 426 428 " ID NAME LOW HIGH AVAILABLE USED\n" 427 429 ); 428 for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { 429 the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; 430 Stack_check_Dump_threads_usage( the_thread ); 431 if ( the_thread == _Thread_Executing ) 432 hit_running = 1; 430 431 for ( class_index = OBJECTS_CLASSES_FIRST ; 432 class_index <= OBJECTS_CLASSES_LAST ; 433 class_index++ ) { 434 information = _Objects_Information_table[ class_index ]; 435 if ( information && information->is_thread ) { 436 for ( i=1 ; i < information->maximum ; i++ ) { 437 the_thread = (Thread_Control *)information->local_table[ i ]; 438 Stack_check_Dump_threads_usage( the_thread ); 439 if ( the_thread == _Thread_Executing ) 440 hit_running = 1; 441 } 442 } 433 443 } 434 444 -
c/src/libmisc/monitor/mon-object.c
r3235ad9 r5250ff39 61 61 }, 62 62 { RTEMS_OBJECT_TASK, 63 (void *) &_ Thread_Information,63 (void *) &_RTEMS_tasks_Information, 64 64 sizeof(rtems_monitor_task_t), 65 65 (rtems_monitor_object_next_fn) rtems_monitor_manager_next, -
c/src/libmisc/stackchk/check.c
r3235ad9 r5250ff39 416 416 void Stack_check_Dump_usage( void ) 417 417 { 418 unsigned32 i; 419 Thread_Control *the_thread; 420 unsigned32 hit_running = 0; 418 unsigned32 i; 419 unsigned32 class_index; 420 Thread_Control *the_thread; 421 unsigned32 hit_running = 0; 422 Objects_Information *information; 421 423 422 424 if (stack_check_initialized == 0) … … 426 428 " ID NAME LOW HIGH AVAILABLE USED\n" 427 429 ); 428 for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { 429 the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; 430 Stack_check_Dump_threads_usage( the_thread ); 431 if ( the_thread == _Thread_Executing ) 432 hit_running = 1; 430 431 for ( class_index = OBJECTS_CLASSES_FIRST ; 432 class_index <= OBJECTS_CLASSES_LAST ; 433 class_index++ ) { 434 information = _Objects_Information_table[ class_index ]; 435 if ( information && information->is_thread ) { 436 for ( i=1 ; i < information->maximum ; i++ ) { 437 the_thread = (Thread_Control *)information->local_table[ i ]; 438 Stack_check_Dump_threads_usage( the_thread ); 439 if ( the_thread == _Thread_Executing ) 440 hit_running = 1; 441 } 442 } 433 443 } 434 444 -
c/src/tests/sptests/sp02/sp02.scn
r3235ad9 r5250ff39 6 6 TA2 - rtems_task_wake_after - sleep 1 minute 7 7 TA3 - rtems_task_wake_after - sleep 5 seconds 8 TA1 - rtems_task_ident - tid of TA2 (0x0 4010007)9 TA1 - rtems_task_ident - tid of TA3 (0x0 4010008)8 TA1 - rtems_task_ident - tid of TA2 (0x08010007) 9 TA1 - rtems_task_ident - tid of TA3 (0x08010008) 10 10 TA1 - rtems_task_set_priority - set TA3's priority to 2 11 11 TA1 - rtems_task_suspend - suspend TA2 -
c/src/tests/sptests/sp12/sp12.scn
r3235ad9 r5250ff39 36 36 PRI5 - priority of PRI5 is 68 37 37 <pause> 38 TA1 - rtems_semaphore_ident - smid => 0c01000138 TA1 - rtems_semaphore_ident - smid => 10010001 39 39 TA1 - rtems_semaphore_obtain - wait forever on SM2 40 40 TA1 - got SM2 -
c/src/tests/sptests/sp13/sp13.scn
r3235ad9 r5250ff39 1 1 *** TEST 13 *** 2 TA1 - rtems_message_queue_ident - qid => 1 00100012 TA1 - rtems_message_queue_ident - qid => 14010001 3 3 TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 4 4 TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 -
c/src/tests/sptests/sp15/sp15.scn
r3235ad9 r5250ff39 2 2 INIT - rtems_partition_create - partition 1 3 3 INIT - rtems_partition_create - partition 2 4 TA1 - rtems_partition_ident - partition 1 id = 1 40100015 TA1 - rtems_partition_ident - partition 2 id = 1 40100024 TA1 - rtems_partition_ident - partition 1 id = 18010001 5 TA1 - rtems_partition_ident - partition 2 id = 18010002 6 6 TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - 0x00000000 7 7 TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - 0x00000200 -
c/src/tests/sptests/sp16/sp16.scn
r3235ad9 r5250ff39 1 1 *** TEST 16 *** 2 TA1 - rtems_region_ident - rnid => 1 80100022 TA1 - rtems_region_ident - rnid => 1c010002 3 3 TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2 4 4 TA1 - got segment from region 2 - 0x00000f78 -
c/src/tests/sptests/sp20/sp20.scn
r3235ad9 r5250ff39 1 1 *** TEST 20 *** 2 TA1 - rtems_rate_monotonic_create id = 0x2 00100013 TA1 - rtems_rate_monotonic_ident id = 0x2 00100014 TA1 - (0x2 0010001) period 25 TA2 - rtems_rate_monotonic_create id = 0x2 00100026 TA2 - rtems_rate_monotonic_ident id = 0x2 00100027 TA2 - (0x2 0010002) period 28 TA3 - rtems_rate_monotonic_create id = 0x2 00100039 TA3 - rtems_rate_monotonic_ident id = 0x2 001000310 TA3 - (0x2 0010003) period 211 TA4 - rtems_rate_monotonic_create id = 0x2 001000412 TA4 - rtems_rate_monotonic_ident id = 0x2 001000413 TA4 - (0x2 0010004) period 214 TA5 - rtems_rate_monotonic_create id = 0x2 001000515 TA5 - rtems_rate_monotonic_ident id = 0x2 001000516 TA5 - (0x2 0010005) period 1002 TA1 - rtems_rate_monotonic_create id = 0x24010001 3 TA1 - rtems_rate_monotonic_ident id = 0x24010001 4 TA1 - (0x24010001) period 2 5 TA2 - rtems_rate_monotonic_create id = 0x24010002 6 TA2 - rtems_rate_monotonic_ident id = 0x24010002 7 TA2 - (0x24010002) period 2 8 TA3 - rtems_rate_monotonic_create id = 0x24010003 9 TA3 - rtems_rate_monotonic_ident id = 0x24010003 10 TA3 - (0x24010003) period 2 11 TA4 - rtems_rate_monotonic_create id = 0x24010004 12 TA4 - rtems_rate_monotonic_ident id = 0x24010004 13 TA4 - (0x24010004) period 2 14 TA5 - rtems_rate_monotonic_create id = 0x24010005 15 TA5 - rtems_rate_monotonic_ident id = 0x24010005 16 TA5 - (0x24010005) period 100 17 17 TA5 - PERIODS CHECK OK (1) 18 18 TA5 - PERIODS CHECK OK (2) -
c/src/tests/sptests/sp22/sp22.scn
r3235ad9 r5250ff39 1 1 *** TEST 22 *** 2 2 INIT - rtems_timer_create - creating timer 1 3 INIT - timer 1 has id (0x 8010001)3 INIT - timer 1 has id (0xc010001) 4 4 TA1 - rtems_timer_ident - identing timer 1 5 TA1 - timer 1 has id (0x 8010001)5 TA1 - timer 1 has id (0xc010001) 6 6 TA1 - rtems_clock_get - 09:00:00 12/31/1988 7 7 TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -
c/src/tests/sptests/sp23/sp23.scn
r3235ad9 r5250ff39 1 1 *** TEST 23 *** 2 2 INIT - rtems_port_create - DP1 - int = 0x00001000 ext = 0x00002000 3 TA1 - rtems_port_ident - 0 00100013 TA1 - rtems_port_ident - 0x20010001 4 4 TA1 - rtems_port_external_to_internal - 0x0000200e => 0x0000100e 5 5 TA1 - rtems_port_internal_to_external - 0x0000100e => 0x0000200e -
c/src/tests/sptests/sp23/task1.c
r3235ad9 r5250ff39 34 34 status = rtems_port_ident( Port_name[ 1 ], &dpid ); 35 35 directive_failed( status, "rtems_port_ident" ); 36 printf( "TA1 - rtems_port_ident - %08x\n", dpid );36 printf( "TA1 - rtems_port_ident - 0x%08x\n", dpid ); 37 37 38 38 to_be_converted = &External_port_area[ 0xe ]; -
c/src/tests/sptests/sp25/sp25.scn
r3235ad9 r5250ff39 1 1 *** TEST 25 *** 2 TA1 - rtems_region_ident - 0x1 80100022 TA1 - rtems_region_ident - 0x1c010002 3 3 TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1 4 4 TA1 - got segment from region 1 - 0x0000f9b8 -
c/src/tests/sptests/spsize/size.c
r3235ad9 r5250ff39 296 296 /*taskmp.h*/ 0 + 297 297 298 /*tasks.h*/ 0+298 /*tasks.h*/ (sizeof _RTEMS_tasks_Information) + 299 299 300 300 /*thread.h*/ (sizeof _Thread_Dispatch_disable_level) + … … 305 305 (sizeof _Thread_Heir) + 306 306 (sizeof _Thread_Allocated_fp) + 307 (sizeof _Thread_Information) +308 307 (sizeof _Thread_BSP_context) + 309 308 -
cpukit/libmisc/monitor/mon-object.c
r3235ad9 r5250ff39 61 61 }, 62 62 { RTEMS_OBJECT_TASK, 63 (void *) &_ Thread_Information,63 (void *) &_RTEMS_tasks_Information, 64 64 sizeof(rtems_monitor_task_t), 65 65 (rtems_monitor_object_next_fn) rtems_monitor_manager_next, -
cpukit/libmisc/stackchk/check.c
r3235ad9 r5250ff39 416 416 void Stack_check_Dump_usage( void ) 417 417 { 418 unsigned32 i; 419 Thread_Control *the_thread; 420 unsigned32 hit_running = 0; 418 unsigned32 i; 419 unsigned32 class_index; 420 Thread_Control *the_thread; 421 unsigned32 hit_running = 0; 422 Objects_Information *information; 421 423 422 424 if (stack_check_initialized == 0) … … 426 428 " ID NAME LOW HIGH AVAILABLE USED\n" 427 429 ); 428 for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { 429 the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; 430 Stack_check_Dump_threads_usage( the_thread ); 431 if ( the_thread == _Thread_Executing ) 432 hit_running = 1; 430 431 for ( class_index = OBJECTS_CLASSES_FIRST ; 432 class_index <= OBJECTS_CLASSES_LAST ; 433 class_index++ ) { 434 information = _Objects_Information_table[ class_index ]; 435 if ( information && information->is_thread ) { 436 for ( i=1 ; i < information->maximum ; i++ ) { 437 the_thread = (Thread_Control *)information->local_table[ i ]; 438 Stack_check_Dump_threads_usage( the_thread ); 439 if ( the_thread == _Thread_Executing ) 440 hit_running = 1; 441 } 442 } 433 443 } 434 444 -
cpukit/rtems/include/rtems/rtems/tasks.h
r3235ad9 r5250ff39 63 63 64 64 /* 65 * The following defines the information control block used to 66 * manage this class of objects. 67 */ 68 69 EXTERN Objects_Information _RTEMS_tasks_Information; 70 71 /* 72 * _RTEMS_tasks_Manager_initialization 73 * 74 * DESCRIPTION: 75 * 76 * This routine initializes all Task Manager related data structures. 77 */ 78 79 void _RTEMS_tasks_Manager_initialization( 80 unsigned32 maximum_tasks 81 ); 82 83 /* 65 84 * rtems_task_create 66 85 * -
cpukit/rtems/inline/rtems/rtems/tasks.inl
r3235ad9 r5250ff39 31 31 STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) 32 32 { 33 return (Thread_Control *) _Objects_Allocate( &_ Thread_Information );33 return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ); 34 34 } 35 35 … … 44 44 ) 45 45 { 46 _Objects_Free( &_ Thread_Information, &the_task->Object );46 _Objects_Free( &_RTEMS_tasks_Information, &the_task->Object ); 47 47 } 48 48 -
cpukit/rtems/macros/rtems/rtems/tasks.inl
r3235ad9 r5250ff39 30 30 31 31 #define _RTEMS_tasks_Allocate() \ 32 (Thread_Control *) _Objects_Allocate( &_ Thread_Information )32 (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ) 33 33 34 34 /*PAGE … … 39 39 40 40 #define _RTEMS_tasks_Free( _the_task ) \ 41 _Objects_Free( &_ Thread_Information, &(_the_task)->Object )41 _Objects_Free( &_RTEMS_tasks_Information, &(_the_task)->Object ) 42 42 43 43 /*PAGE -
cpukit/rtems/src/dpmem.c
r3235ad9 r5250ff39 44 44 sizeof( Dual_ported_memory_Control ), 45 45 FALSE, 46 RTEMS_MAXIMUM_NAME_LENGTH 46 RTEMS_MAXIMUM_NAME_LENGTH, 47 FALSE 47 48 ); 48 49 } -
cpukit/rtems/src/msg.c
r3235ad9 r5250ff39 52 52 sizeof( Message_queue_Control ), 53 53 FALSE, 54 RTEMS_MAXIMUM_NAME_LENGTH 54 RTEMS_MAXIMUM_NAME_LENGTH, 55 FALSE 55 56 ); 56 57 } -
cpukit/rtems/src/part.c
r3235ad9 r5250ff39 46 46 sizeof( Partition_Control ), 47 47 FALSE, 48 RTEMS_MAXIMUM_NAME_LENGTH 48 RTEMS_MAXIMUM_NAME_LENGTH, 49 FALSE 49 50 ); 50 51 -
cpukit/rtems/src/ratemon.c
r3235ad9 r5250ff39 48 48 sizeof( Rate_monotonic_Control ), 49 49 FALSE, 50 RTEMS_MAXIMUM_NAME_LENGTH 50 RTEMS_MAXIMUM_NAME_LENGTH, 51 FALSE 51 52 ); 52 53 } -
cpukit/rtems/src/region.c
r3235ad9 r5250ff39 46 46 sizeof( Region_Control ), 47 47 FALSE, 48 RTEMS_MAXIMUM_NAME_LENGTH 48 RTEMS_MAXIMUM_NAME_LENGTH, 49 FALSE 49 50 ); 50 51 } -
cpukit/rtems/src/rtemstimer.c
r3235ad9 r5250ff39 45 45 sizeof( Timer_Control ), 46 46 FALSE, 47 RTEMS_MAXIMUM_NAME_LENGTH 47 RTEMS_MAXIMUM_NAME_LENGTH, 48 FALSE 48 49 ); 49 50 } -
cpukit/rtems/src/sem.c
r3235ad9 r5250ff39 63 63 sizeof( Semaphore_Control ), 64 64 FALSE, 65 RTEMS_MAXIMUM_NAME_LENGTH 65 RTEMS_MAXIMUM_NAME_LENGTH, 66 FALSE 66 67 ); 67 68 } -
cpukit/rtems/src/taskmp.c
r3235ad9 r5250ff39 195 195 196 196 ignored = _Objects_MP_Open( 197 &_ Thread_Information,197 &_RTEMS_tasks_Information, 198 198 the_packet->name, 199 199 the_packet->Prefix.id, … … 206 206 case RTEMS_TASKS_MP_ANNOUNCE_DELETE: 207 207 208 _Objects_MP_Close( &_ Thread_Information, the_packet->Prefix.id );208 _Objects_MP_Close( &_RTEMS_tasks_Information, the_packet->Prefix.id ); 209 209 210 210 _MPCI_Return_packet( the_packet_prefix ); -
cpukit/rtems/src/tasks.c
r3235ad9 r5250ff39 29 29 /*PAGE 30 30 * 31 * _RTEMS_tasks_Manager_initialization 32 * 33 * This routine initializes all Task Manager related data structures. 34 * 35 * Input parameters: 36 * maximum_tasks - number of tasks to initialize 37 * 38 * Output parameters: NONE 39 */ 40 41 void _RTEMS_tasks_Manager_initialization( 42 unsigned32 maximum_tasks 43 ) 44 { 45 _Objects_Initialize_information( 46 &_RTEMS_tasks_Information, 47 OBJECTS_RTEMS_TASKS, 48 TRUE, 49 maximum_tasks, 50 sizeof( Thread_Control ), 51 FALSE, 52 RTEMS_MAXIMUM_NAME_LENGTH, 53 TRUE 54 ); 55 } 56 57 /*PAGE 58 * 31 59 * rtems_task_create 32 60 * … … 137 165 138 166 if ( _Attributes_Is_global( the_attribute_set ) && 139 !( _Objects_MP_Open( &_ Thread_Information, name,167 !( _Objects_MP_Open( &_RTEMS_tasks_Information, name, 140 168 the_thread->Object.id, FALSE ) ) ) { 141 169 _RTEMS_tasks_Free( the_thread ); … … 158 186 _ASR_Initialize( &the_thread->Signal ); 159 187 160 _Objects_Open( &_ Thread_Information, &the_thread->Object, &name );188 _Objects_Open( &_RTEMS_tasks_Information, &the_thread->Object, &name ); 161 189 162 190 *id = the_thread->Object.id; … … 200 228 { 201 229 if ( name != OBJECTS_ID_OF_SELF ) 202 return( _Objects_Name_to_id( &_ Thread_Information, &name, node, id ) );230 return( _Objects_Name_to_id( &_RTEMS_tasks_Information, &name, node, id ) ); 203 231 204 232 *id = _Thread_Executing->Object.id; … … 369 397 return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); 370 398 case OBJECTS_LOCAL: 371 _Objects_Close( &_ Thread_Information, &the_thread->Object );399 _Objects_Close( &_RTEMS_tasks_Information, &the_thread->Object ); 372 400 373 401 _Thread_Set_state( the_thread, STATES_TRANSIENT ); … … 389 417 if ( _Attributes_Is_global( the_thread->attribute_set ) ) { 390 418 391 _Objects_MP_Close( &_ Thread_Information, the_thread->Object.id );419 _Objects_MP_Close( &_RTEMS_tasks_Information, the_thread->Object.id ); 392 420 393 421 _RTEMS_tasks_MP_Send_process_packet( -
cpukit/sapi/src/exinit.c
r3235ad9 r5250ff39 153 153 154 154 _Thread_Handler_initialization( 155 configuration_table->maximum_tasks,156 155 configuration_table->ticks_per_timeslice, 157 156 multiprocessing_table->maximum_proxies … … 165 164 166 165 _Multiprocessing_Manager_initialization(); 166 167 _RTEMS_tasks_Manager_initialization( configuration_table->maximum_tasks ); 167 168 168 169 _Timer_Manager_initialization( configuration_table->maximum_timers ); -
cpukit/sapi/src/extension.c
r3235ad9 r5250ff39 43 43 sizeof( Extension_Control ), 44 44 FALSE, 45 RTEMS_MAXIMUM_NAME_LENGTH 45 RTEMS_MAXIMUM_NAME_LENGTH, 46 FALSE 46 47 ); 47 48 } -
cpukit/score/include/rtems/score/object.h
r3235ad9 r5250ff39 79 79 typedef enum { 80 80 OBJECTS_NO_CLASS = 0, 81 OBJECTS_RTEMS_TASKS = 1, 82 OBJECTS_RTEMS_TIMERS = 2, 83 OBJECTS_RTEMS_SEMAPHORES = 3, 84 OBJECTS_RTEMS_MESSAGE_QUEUES = 4, 85 OBJECTS_RTEMS_PARTITIONS = 5, 86 OBJECTS_RTEMS_REGIONS = 6, 87 OBJECTS_RTEMS_PORTS = 7, 88 OBJECTS_RTEMS_PERIODS = 8, 89 OBJECTS_RTEMS_EXTENSIONS = 9 81 OBJECTS_INTERNAL_THREADS = 1, 82 OBJECTS_RTEMS_TASKS = 2, 83 OBJECTS_RTEMS_TIMERS = 3, 84 OBJECTS_RTEMS_SEMAPHORES = 4, 85 OBJECTS_RTEMS_MESSAGE_QUEUES = 5, 86 OBJECTS_RTEMS_PARTITIONS = 6, 87 OBJECTS_RTEMS_REGIONS = 7, 88 OBJECTS_RTEMS_PORTS = 8, 89 OBJECTS_RTEMS_PERIODS = 9, 90 OBJECTS_RTEMS_EXTENSIONS = 10 90 91 } Objects_Classes; 92 93 #define OBJECTS_CLASSES_FIRST OBJECTS_NO_CLASS 94 #define OBJECTS_CLASSES_LAST OBJECTS_RTEMS_EXTENSIONS 91 95 92 96 /* … … 129 133 boolean is_string; /* TRUE if names are strings */ 130 134 unsigned32 name_length; /* maximum length of names */ 135 boolean is_thread; /* TRUE if these are threads */ 136 /* irregardless of API */ 131 137 } Objects_Information; 132 138 … … 137 143 138 144 EXTERN unsigned32 _Objects_Local_node; 145 146 /* 147 * The following is the list of information blocks for each object 148 * class. From the ID, we can go to one of these information blocks, 149 * and obtain a pointer to the appropriate object control block. 150 */ 151 152 EXTERN Objects_Information 153 *_Objects_Information_table[OBJECTS_CLASSES_LAST + 1]; 139 154 140 155 /* … … 202 217 unsigned32 size, 203 218 boolean is_string, 204 unsigned32 maximum_name_length 219 unsigned32 maximum_name_length, 220 boolean is_task 205 221 ); 206 222 -
cpukit/score/include/rtems/score/thread.h
r3235ad9 r5250ff39 230 230 231 231 /* 232 * The following defines the information control block used to233 * manage this class of objects.234 */235 236 EXTERN Objects_Information _Thread_Information;237 238 /*239 232 * The following context area contains the context of the "thread" 240 233 * which invoked rtems_initialize_executive. This context is restored … … 255 248 256 249 void _Thread_Handler_initialization ( 257 unsigned32 maximum_tasks,258 250 unsigned32 ticks_per_timeslice, 259 251 unsigned32 maximum_proxies -
cpukit/score/inline/rtems/score/thread.inl
r3235ad9 r5250ff39 232 232 * _Thread_Get 233 233 * 234 * NOTE: XXX... This routine may be able to be optimized. 234 235 */ 235 236 … … 239 240 ) 240 241 { 242 Objects_Classes the_class; 243 Objects_Information *information; 244 241 245 if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 242 243 244 246 _Thread_Disable_dispatch(); 247 *location = OBJECTS_LOCAL; 248 return( _Thread_Executing ); 245 249 } 246 247 return (Thread_Control *) 248 _Objects_Get( &_Thread_Information, id, location ); 250 251 the_class = rtems_get_class( id ); 252 253 if ( the_class > OBJECTS_CLASSES_LAST ) { 254 *location = OBJECTS_ERROR; 255 return (Thread_Control *) 0; 256 } 257 258 information = _Objects_Information_table[ the_class ]; 259 260 if ( !information || !information->is_thread ) { 261 *location = OBJECTS_ERROR; 262 return (Thread_Control *) 0; 263 } 264 265 return (Thread_Control *) _Objects_Get( information, id, location ); 249 266 } 250 267 -
cpukit/score/src/object.c
r3235ad9 r5250ff39 69 69 unsigned32 size, 70 70 boolean is_string, 71 unsigned32 maximum_name_length 71 unsigned32 maximum_name_length, 72 boolean is_thread 72 73 ) 73 74 { … … 81 82 information->the_class = the_class; 82 83 information->is_string = is_string; 84 information->is_thread = is_thread; 85 86 /* 87 * Set the entry in the object information table. 88 */ 89 90 _Objects_Information_table[ the_class ] = information; 83 91 84 92 /* … … 380 388 Objects_Control *_Objects_Get( 381 389 Objects_Information *information, 382 Objects_Id 383 Objects_Locations 390 Objects_Id id, 391 Objects_Locations *location 384 392 ) 385 393 { -
cpukit/score/src/thread.c
r3235ad9 r5250ff39 36 36 * 37 37 * Input parameters: 38 * maximum_tasks - number of tasks to initialize39 38 * ticks_per_timeslice - clock ticks per quantum 39 * maximum_proxies - number of proxies to initialize 40 40 * 41 41 * Output parameters: NONE … … 43 43 44 44 void _Thread_Handler_initialization( 45 unsigned32 maximum_tasks,46 45 unsigned32 ticks_per_timeslice, 47 46 unsigned32 maximum_proxies … … 57 56 _Thread_Ticks_remaining_in_timeslice = ticks_per_timeslice; 58 57 _Thread_Ticks_per_timeslice = ticks_per_timeslice; 59 60 _Objects_Initialize_information(61 &_Thread_Information,62 OBJECTS_RTEMS_TASKS,63 TRUE,64 maximum_tasks,65 sizeof( Thread_Control ),66 FALSE,67 RTEMS_MAXIMUM_NAME_LENGTH68 );69 58 70 59 _Thread_Ready_chain = _Workspace_Allocate_or_fatal_error( … … 790 779 * NOTE: If we are not using static inlines, this must be a real 791 780 * subroutine call. 781 * 782 * NOTE: XXX... This routine may be able to be optimized. 792 783 */ 793 784 … … 795 786 796 787 STATIC INLINE Thread_Control *_Thread_Get ( 797 Objects_Id id, 798 Objects_Locations *location 799 ) 800 { 788 Objects_Id id, 789 Objects_Locations *location 790 ) 791 { 792 Objects_Classes the_class; 793 Objects_Information *information; 794 801 795 if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 802 _Thread_Disable_dispatch(); 803 *location = OBJECTS_LOCAL; 804 return( _Thread_Executing ); 805 } 806 807 return (Thread_Control *) _Objects_Get( &_Thread_Information, id, location ); 796 _Thread_Disable_dispatch(); 797 *location = OBJECTS_LOCAL; 798 return( _Thread_Executing ); 799 } 800 801 the_class = rtems_get_class( id ); 802 803 if ( the_class > OBJECTS_CLASSES_LAST ) { 804 *location = OBJECTS_ERROR; 805 return (Thread_Control *) 0; 806 } 807 808 information = _Objects_Information_table[ the_class ]; 809 810 if ( !information || !information->is_thread ) { 811 *location = OBJECTS_ERROR; 812 return (Thread_Control *) 0; 813 } 814 815 return (Thread_Control *) _Objects_Get( information, id, location ); 808 816 } 809 817 #endif 810 -
testsuites/sptests/sp02/sp02.scn
r3235ad9 r5250ff39 6 6 TA2 - rtems_task_wake_after - sleep 1 minute 7 7 TA3 - rtems_task_wake_after - sleep 5 seconds 8 TA1 - rtems_task_ident - tid of TA2 (0x0 4010007)9 TA1 - rtems_task_ident - tid of TA3 (0x0 4010008)8 TA1 - rtems_task_ident - tid of TA2 (0x08010007) 9 TA1 - rtems_task_ident - tid of TA3 (0x08010008) 10 10 TA1 - rtems_task_set_priority - set TA3's priority to 2 11 11 TA1 - rtems_task_suspend - suspend TA2 -
testsuites/sptests/sp12/sp12.scn
r3235ad9 r5250ff39 36 36 PRI5 - priority of PRI5 is 68 37 37 <pause> 38 TA1 - rtems_semaphore_ident - smid => 0c01000138 TA1 - rtems_semaphore_ident - smid => 10010001 39 39 TA1 - rtems_semaphore_obtain - wait forever on SM2 40 40 TA1 - got SM2 -
testsuites/sptests/sp13/sp13.scn
r3235ad9 r5250ff39 1 1 *** TEST 13 *** 2 TA1 - rtems_message_queue_ident - qid => 1 00100012 TA1 - rtems_message_queue_ident - qid => 14010001 3 3 TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 4 4 TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 -
testsuites/sptests/sp15/sp15.scn
r3235ad9 r5250ff39 2 2 INIT - rtems_partition_create - partition 1 3 3 INIT - rtems_partition_create - partition 2 4 TA1 - rtems_partition_ident - partition 1 id = 1 40100015 TA1 - rtems_partition_ident - partition 2 id = 1 40100024 TA1 - rtems_partition_ident - partition 1 id = 18010001 5 TA1 - rtems_partition_ident - partition 2 id = 18010002 6 6 TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - 0x00000000 7 7 TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - 0x00000200 -
testsuites/sptests/sp16/sp16.scn
r3235ad9 r5250ff39 1 1 *** TEST 16 *** 2 TA1 - rtems_region_ident - rnid => 1 80100022 TA1 - rtems_region_ident - rnid => 1c010002 3 3 TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2 4 4 TA1 - got segment from region 2 - 0x00000f78 -
testsuites/sptests/sp20/sp20.scn
r3235ad9 r5250ff39 1 1 *** TEST 20 *** 2 TA1 - rtems_rate_monotonic_create id = 0x2 00100013 TA1 - rtems_rate_monotonic_ident id = 0x2 00100014 TA1 - (0x2 0010001) period 25 TA2 - rtems_rate_monotonic_create id = 0x2 00100026 TA2 - rtems_rate_monotonic_ident id = 0x2 00100027 TA2 - (0x2 0010002) period 28 TA3 - rtems_rate_monotonic_create id = 0x2 00100039 TA3 - rtems_rate_monotonic_ident id = 0x2 001000310 TA3 - (0x2 0010003) period 211 TA4 - rtems_rate_monotonic_create id = 0x2 001000412 TA4 - rtems_rate_monotonic_ident id = 0x2 001000413 TA4 - (0x2 0010004) period 214 TA5 - rtems_rate_monotonic_create id = 0x2 001000515 TA5 - rtems_rate_monotonic_ident id = 0x2 001000516 TA5 - (0x2 0010005) period 1002 TA1 - rtems_rate_monotonic_create id = 0x24010001 3 TA1 - rtems_rate_monotonic_ident id = 0x24010001 4 TA1 - (0x24010001) period 2 5 TA2 - rtems_rate_monotonic_create id = 0x24010002 6 TA2 - rtems_rate_monotonic_ident id = 0x24010002 7 TA2 - (0x24010002) period 2 8 TA3 - rtems_rate_monotonic_create id = 0x24010003 9 TA3 - rtems_rate_monotonic_ident id = 0x24010003 10 TA3 - (0x24010003) period 2 11 TA4 - rtems_rate_monotonic_create id = 0x24010004 12 TA4 - rtems_rate_monotonic_ident id = 0x24010004 13 TA4 - (0x24010004) period 2 14 TA5 - rtems_rate_monotonic_create id = 0x24010005 15 TA5 - rtems_rate_monotonic_ident id = 0x24010005 16 TA5 - (0x24010005) period 100 17 17 TA5 - PERIODS CHECK OK (1) 18 18 TA5 - PERIODS CHECK OK (2) -
testsuites/sptests/sp22/sp22.scn
r3235ad9 r5250ff39 1 1 *** TEST 22 *** 2 2 INIT - rtems_timer_create - creating timer 1 3 INIT - timer 1 has id (0x 8010001)3 INIT - timer 1 has id (0xc010001) 4 4 TA1 - rtems_timer_ident - identing timer 1 5 TA1 - timer 1 has id (0x 8010001)5 TA1 - timer 1 has id (0xc010001) 6 6 TA1 - rtems_clock_get - 09:00:00 12/31/1988 7 7 TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -
testsuites/sptests/sp23/sp23.scn
r3235ad9 r5250ff39 1 1 *** TEST 23 *** 2 2 INIT - rtems_port_create - DP1 - int = 0x00001000 ext = 0x00002000 3 TA1 - rtems_port_ident - 0 00100013 TA1 - rtems_port_ident - 0x20010001 4 4 TA1 - rtems_port_external_to_internal - 0x0000200e => 0x0000100e 5 5 TA1 - rtems_port_internal_to_external - 0x0000100e => 0x0000200e -
testsuites/sptests/sp23/task1.c
r3235ad9 r5250ff39 34 34 status = rtems_port_ident( Port_name[ 1 ], &dpid ); 35 35 directive_failed( status, "rtems_port_ident" ); 36 printf( "TA1 - rtems_port_ident - %08x\n", dpid );36 printf( "TA1 - rtems_port_ident - 0x%08x\n", dpid ); 37 37 38 38 to_be_converted = &External_port_area[ 0xe ]; -
testsuites/sptests/sp25/sp25.scn
r3235ad9 r5250ff39 1 1 *** TEST 25 *** 2 TA1 - rtems_region_ident - 0x1 80100022 TA1 - rtems_region_ident - 0x1c010002 3 3 TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1 4 4 TA1 - got segment from region 1 - 0x0000f9b8 -
testsuites/sptests/spsize/size.c
r3235ad9 r5250ff39 296 296 /*taskmp.h*/ 0 + 297 297 298 /*tasks.h*/ 0+298 /*tasks.h*/ (sizeof _RTEMS_tasks_Information) + 299 299 300 300 /*thread.h*/ (sizeof _Thread_Dispatch_disable_level) + … … 305 305 (sizeof _Thread_Heir) + 306 306 (sizeof _Thread_Allocated_fp) + 307 (sizeof _Thread_Information) +308 307 (sizeof _Thread_BSP_context) + 309 308
Note: See TracChangeset
for help on using the changeset viewer.