Annotated Report

00045840 <_API_Mutex_Unlock>:                                         
#include <rtems/score/apimutex.h>                                     
                                                                      
void _API_Mutex_Unlock(                                               
  API_Mutex_Control *the_mutex                                        
)                                                                     
{                                                                     
   45840:	4e56 0000      	linkw %fp,#0                                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   45844:	2039 0005 ba78 	movel 5ba78 <_Thread_Dispatch_disable_level>,%d0
   4584a:	5280           	addql #1,%d0                                
   4584c:	206e 0008      	moveal %fp@(8),%a0                          
   45850:	23c0 0005 ba78 	movel %d0,5ba78 <_Thread_Dispatch_disable_level>
  _Thread_Disable_dispatch();                                         
    _CORE_mutex_Surrender(                                            
   45856:	42a7           	clrl %sp@-                                  
   45858:	2f28 0008      	movel %a0@(8),%sp@-                         
   4585c:	4868 0010      	pea %a0@(16)                                
   45860:	4eb9 0004 5a6c 	jsr 45a6c <_CORE_mutex_Surrender>           
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   45866:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   4586a:	4e5e           	unlk %fp                                    
    _CORE_mutex_Surrender(                                            
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   4586c:	4ef9 0004 6c62 	jmp 46c62 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      
0004b428 <_CORE_barrier_Wait>:                                        
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
   4b428:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4b42e:	4e56 fff4      	linkw %fp,#-12                              
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
   4b432:	2279 0005 bb32 	moveal 5bb32 <_Thread_Executing>,%a1        
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4b438:	48d7 001c      	moveml %d2-%d4,%sp@                         
   4b43c:	242e 000c      	movel %fp@(12),%d2                          
   4b440:	262e 0014      	movel %fp@(20),%d3                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
   4b444:	42a9 0034      	clrl %a1@(52)                               
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4b448:	206e 0008      	moveal %fp@(8),%a0                          
   4b44c:	282e 0018      	movel %fp@(24),%d4                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
   4b450:	40c1           	movew %sr,%d1                               
   4b452:	8081           	orl %d1,%d0                                 
   4b454:	46c0           	movew %d0,%sr                               
  the_barrier->number_of_waiting_threads++;                           
   4b456:	2028 0048      	movel %a0@(72),%d0                          
   4b45a:	5280           	addql #1,%d0                                
   4b45c:	2140 0048      	movel %d0,%a0@(72)                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
   4b460:	4aa8 0040      	tstl %a0@(64)                               
   4b464:	6626           	bnes 4b48c <_CORE_barrier_Wait+0x64>        
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
   4b466:	b0a8 0044      	cmpl %a0@(68),%d0                           
   4b46a:	6620           	bnes 4b48c <_CORE_barrier_Wait+0x64>        
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
   4b46c:	7001           	moveq #1,%d0                                
   4b46e:	2340 0034      	movel %d0,%a1@(52)                          
      _ISR_Enable( level );                                           
   4b472:	46c1           	movew %d1,%sr                               
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   4b474:	2d44 0010      	movel %d4,%fp@(16)                          
   4b478:	2d42 000c      	movel %d2,%fp@(12)                          
   4b47c:	2d48 0008      	movel %a0,%fp@(8)                           
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
}                                                                     
   4b480:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4b484:	4e5e           	unlk %fp                                    
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
      _ISR_Enable( level );                                           
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   4b486:	4ef9 0004 b3f4 	jmp 4b3f4 <_CORE_barrier_Release>           
   4b48c:	7001           	moveq #1,%d0                                
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
   4b48e:	2342 0020      	movel %d2,%a1@(32)                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
   4b492:	2348 0044      	movel %a0,%a1@(68)                          
   4b496:	2140 0030      	movel %d0,%a0@(48)                          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
   4b49a:	46c1           	movew %d1,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   4b49c:	2d43 000c      	movel %d3,%fp@(12)                          
   4b4a0:	203c 0004 73c0 	movel #291776,%d0                           
   4b4a6:	2d48 0008      	movel %a0,%fp@(8)                           
   4b4aa:	2d40 0010      	movel %d0,%fp@(16)                          
}                                                                     
   4b4ae:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4b4b2:	4e5e           	unlk %fp                                    
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   4b4b4:	4ef9 0004 70d4 	jmp 470d4 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      
0005202c <_CORE_message_queue_Broadcast>:                             
    Objects_Id                                 id __attribute__((unused)),
    CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support __attribute__((unused)),
  #endif                                                              
  uint32_t                                  *count                    
)                                                                     
{                                                                     
   5202c:	4e56 ffe0      	linkw %fp,#-32                              
   52030:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   52034:	246e 0008      	moveal %fp@(8),%a2                          
   52038:	2a2e 000c      	movel %fp@(12),%d5                          
   5203c:	262e 0010      	movel %fp@(16),%d3                          
   52040:	286e 001c      	moveal %fp@(28),%a4                         
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
   52044:	b6aa 004c      	cmpl %a2@(76),%d3                           
   52048:	6304           	blss 5204e <_CORE_message_queue_Broadcast+0x22>
   5204a:	7001           	moveq #1,%d0                                <== NOT EXECUTED
   5204c:	6042           	bras 52090 <_CORE_message_queue_Broadcast+0x64><== NOT EXECUTED
   *  NOTE: This check is critical because threads can block on       
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
   5204e:	4aaa 0048      	tstl %a2@(72)                               
   52052:	6610           	bnes 52064 <_CORE_message_queue_Broadcast+0x38>
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   52054:	4282           	clrl %d2                                    
   52056:	283c 0005 4228 	movel #344616,%d4                           
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   5205c:	4bf9 0005 9240 	lea 59240 <memcpy>,%a5                      
   52062:	601a           	bras 5207e <_CORE_message_queue_Broadcast+0x52>
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
    *count = 0;                                                       
   52064:	4294           	clrl %a4@                                   
   52066:	6026           	bras 5208e <_CORE_message_queue_Broadcast+0x62>
   52068:	2f03           	movel %d3,%sp@-                             
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
    waitp = &the_thread->Wait;                                        
    number_broadcasted += 1;                                          
   5206a:	5282           	addql #1,%d2                                
   5206c:	2f05           	movel %d5,%sp@-                             
   5206e:	2f2b 002c      	movel %a3@(44),%sp@-                        
   52072:	4e95           	jsr %a5@                                    
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
   52074:	206b 0028      	moveal %a3@(40),%a0                         
   52078:	4fef 000c      	lea %sp@(12),%sp                            
   5207c:	2083           	movel %d3,%a0@                              
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   5207e:	2f0a           	movel %a2,%sp@-                             
   52080:	2044           	moveal %d4,%a0                              
   52082:	4e90           	jsr %a0@                                    
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
   52084:	588f           	addql #4,%sp                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   52086:	2640           	moveal %d0,%a3                              
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
   52088:	4a80           	tstl %d0                                    
   5208a:	66dc           	bnes 52068 <_CORE_message_queue_Broadcast+0x3c>
      if ( !_Objects_Is_local_id( the_thread->Object.id ) )           
        (*api_message_queue_mp_support) ( the_thread, id );           
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
   5208c:	2882           	movel %d2,%a4@                              
   5208e:	4280           	clrl %d0                                    
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
   52090:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   52096:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
0004dca4 <_CORE_message_queue_Seize>:                                 
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
   4dca4:	223c 0000 0700 	movel #1792,%d1                             
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dcaa:	4e56 ffe0      	linkw %fp,#-32                              
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
   4dcae:	2079 0006 4fd6 	moveal 64fd6 <_Thread_Executing>,%a0        
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dcb4:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4dcb8:	282e 000c      	movel %fp@(12),%d4                          
   4dcbc:	262e 001c      	movel %fp@(28),%d3                          
   4dcc0:	246e 0008      	moveal %fp@(8),%a2                          
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
   4dcc4:	42a8 0034      	clrl %a0@(52)                               
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dcc8:	242e 0010      	movel %fp@(16),%d2                          
   4dccc:	226e 0014      	moveal %fp@(20),%a1                         
   4dcd0:	1a2e 001b      	moveb %fp@(27),%d5                          
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
   4dcd4:	40c0           	movew %sr,%d0                               
   4dcd6:	8280           	orl %d0,%d1                                 
   4dcd8:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4dcda:	220a           	movel %a2,%d1                               
   4dcdc:	0681 0000 0054 	addil #84,%d1                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   4dce2:	266a 0050      	moveal %a2@(80),%a3                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4dce6:	b28b           	cmpl %a3,%d1                                
   4dce8:	6752           	beqs 4dd3c <_CORE_message_queue_Seize+0x98> 
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   4dcea:	2853           	moveal %a3@,%a4                             
  the_chain->first    = new_first;                                    
  new_first->previous = _Chain_Head(the_chain);                       
   4dcec:	4bea 0050      	lea %a2@(80),%a5                            
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
  the_chain->first    = new_first;                                    
   4dcf0:	254c 0050      	movel %a4,%a2@(80)                          
  new_first->previous = _Chain_Head(the_chain);                       
   4dcf4:	294d 0004      	movel %a5,%a4@(4)                           
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   4dcf8:	4a8b           	tstl %a3                                    
   4dcfa:	6740           	beqs 4dd3c <_CORE_message_queue_Seize+0x98> 
    the_message_queue->number_of_pending_messages -= 1;               
   4dcfc:	53aa 0048      	subql #1,%a2@(72)                           
    _ISR_Enable( level );                                             
   4dd00:	46c0           	movew %d0,%sr                               
                                                                      
    *size_p = the_message->Contents.size;                             
   4dd02:	22ab 0008      	movel %a3@(8),%a1@                          
    _Thread_Executing->Wait.count =                                   
   4dd06:	2079 0006 4fd6 	moveal 64fd6 <_Thread_Executing>,%a0        
   4dd0c:	42a8 0024      	clrl %a0@(36)                               
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4dd10:	2f11           	movel %a1@,%sp@-                            
   4dd12:	486b 000c      	pea %a3@(12)                                
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (   
  CORE_message_queue_Control        *the_message_queue,               
  CORE_message_queue_Buffer_control *the_message                      
)                                                                     
{                                                                     
  _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
   4dd16:	45ea 0060      	lea %a2@(96),%a2                            
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4dd1a:	2f02           	movel %d2,%sp@-                             
   4dd1c:	4eb9 0005 4424 	jsr 54424 <memcpy>                          
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (   
  CORE_message_queue_Control        *the_message_queue,               
  CORE_message_queue_Buffer_control *the_message                      
)                                                                     
{                                                                     
  _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
   4dd22:	4fef 000c      	lea %sp@(12),%sp                            
   4dd26:	2d4a 0008      	movel %a2,%fp@(8)                           
   4dd2a:	2d4b 000c      	movel %a3,%fp@(12)                          
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4dd2e:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4dd34:	4e5e           	unlk %fp                                    
   4dd36:	4ef9 0004 db2c 	jmp 4db2c <_Chain_Append>                   
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   4dd3c:	4a05           	tstb %d5                                    
   4dd3e:	6612           	bnes 4dd52 <_CORE_message_queue_Seize+0xae> 
    _ISR_Enable( level );                                             
   4dd40:	46c0           	movew %d0,%sr                               
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4dd42:	7004           	moveq #4,%d0                                
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4dd44:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
    _ISR_Enable( level );                                             
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4dd4a:	2140 0034      	movel %d0,%a0@(52)                          
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4dd4e:	4e5e           	unlk %fp                                    
   4dd50:	4e75           	rts                                         
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   4dd52:	7201           	moveq #1,%d1                                
   4dd54:	2541 0030      	movel %d1,%a2@(48)                          
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
   4dd58:	2149 0028      	movel %a1,%a0@(40)                          
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
   4dd5c:	2142 002c      	movel %d2,%a0@(44)                          
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
   4dd60:	2144 0020      	movel %d4,%a0@(32)                          
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
   4dd64:	214a 0044      	movel %a2,%a0@(68)                          
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
   4dd68:	46c0           	movew %d0,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4dd6a:	4bf9 0004 fa70 	lea 4fa70 <_Thread_queue_Timeout>,%a5       
   4dd70:	2d43 000c      	movel %d3,%fp@(12)                          
   4dd74:	2d4d 0010      	movel %a5,%fp@(16)                          
   4dd78:	2d4a 0008      	movel %a2,%fp@(8)                           
}                                                                     
   4dd7c:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4dd82:	4e5e           	unlk %fp                                    
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4dd84:	4ef9 0004 f784 	jmp 4f784 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      
00049948 <_CORE_mutex_Seize_interrupt_trylock>:                       
#if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)                 
int _CORE_mutex_Seize_interrupt_trylock(                              
  CORE_mutex_Control  *the_mutex,                                     
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
   49948:	4e56 0000      	linkw %fp,#0                                
{                                                                     
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
   4994c:	2279 0005 bb32 	moveal 5bb32 <_Thread_Executing>,%a1        
   49952:	2f0b           	movel %a3,%sp@-                             
   49954:	206e 0008      	moveal %fp@(8),%a0                          
   49958:	2f0a           	movel %a2,%sp@-                             
   4995a:	246e 000c      	moveal %fp@(12),%a2                         
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
   4995e:	42a9 0034      	clrl %a1@(52)                               
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
   49962:	4aa8 004e      	tstl %a0@(78)                               
   49966:	6700 0098      	beqw 49a00 <_CORE_mutex_Seize_interrupt_trylock+0xb8>
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
   4996a:	42a8 004e      	clrl %a0@(78)                               
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
   4996e:	7201           	moveq #1,%d1                                
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
   49970:	2169 0008 005e 	movel %a1@(8),%a0@(94)                      
 */                                                                   
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(            
  CORE_mutex_Attributes *the_attribute                                
)                                                                     
{                                                                     
  return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
   49976:	2028 0046      	movel %a0@(70),%d0                          
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
   4997a:	2141 0052      	movel %d1,%a0@(82)                          
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
   4997e:	123c 0002      	moveb #2,%d1                                
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
   49982:	2149 005a      	movel %a1,%a0@(90)                          
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
   49986:	b280           	cmpl %d0,%d1                                
   49988:	6708           	beqs 49992 <_CORE_mutex_Seize_interrupt_trylock+0x4a>
   4998a:	123c 0003      	moveb #3,%d1                                
   4998e:	b280           	cmpl %d0,%d1                                
   49990:	660a           	bnes 4999c <_CORE_mutex_Seize_interrupt_trylock+0x54>
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
   49992:	52a9 001c      	addql #1,%a1@(28)                           
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
   49996:	7203           	moveq #3,%d1                                
   49998:	b280           	cmpl %d0,%d1                                
   4999a:	6706           	beqs 499a2 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
      _ISR_Enable( *level_p );                                        
   4999c:	2012           	movel %a2@,%d0                              
   4999e:	46c0           	movew %d0,%sr                               
   499a0:	607c           	bras 49a1e <_CORE_mutex_Seize_interrupt_trylock+0xd6>
       */                                                             
    {                                                                 
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
   499a2:	2028 004a      	movel %a0@(74),%d0                          
      current = executing->current_priority;                          
   499a6:	2229 0014      	movel %a1@(20),%d1                          
      if ( current == ceiling ) {                                     
   499aa:	b081           	cmpl %d1,%d0                                
   499ac:	6606           	bnes 499b4 <_CORE_mutex_Seize_interrupt_trylock+0x6c>
        _ISR_Enable( *level_p );                                      
   499ae:	2012           	movel %a2@,%d0                              
   499b0:	46c0           	movew %d0,%sr                               
   499b2:	606a           	bras 49a1e <_CORE_mutex_Seize_interrupt_trylock+0xd6>
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
   499b4:	b081           	cmpl %d1,%d0                                
   499b6:	642e           	bccs 499e6 <_CORE_mutex_Seize_interrupt_trylock+0x9e>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   499b8:	2039 0005 ba78 	movel 5ba78 <_Thread_Dispatch_disable_level>,%d0
   499be:	5280           	addql #1,%d0                                
   499c0:	23c0 0005 ba78 	movel %d0,5ba78 <_Thread_Dispatch_disable_level>
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( *level_p );                                      
   499c6:	2012           	movel %a2@,%d0                              
   499c8:	46c0           	movew %d0,%sr                               
        _Thread_Change_priority(                                      
   499ca:	42a7           	clrl %sp@-                                  
   499cc:	2f28 004a      	movel %a0@(74),%sp@-                        
   499d0:	2f28 005a      	movel %a0@(90),%sp@-                        
   499d4:	4eb9 0004 6768 	jsr 46768 <_Thread_Change_priority>         
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         false                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
   499da:	4eb9 0004 6c62 	jsr 46c62 <_Thread_Enable_dispatch>         
   499e0:	4fef 000c      	lea %sp@(12),%sp                            
   499e4:	6038           	bras 49a1e <_CORE_mutex_Seize_interrupt_trylock+0xd6>
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
   499e6:	7006           	moveq #6,%d0                                
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
   499e8:	7201           	moveq #1,%d1                                
        );                                                            
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
   499ea:	2340 0034      	movel %d0,%a1@(52)                          
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
        the_mutex->nest_count = 0;     /* undo locking above */       
   499ee:	42a8 0052      	clrl %a0@(82)                               
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
   499f2:	2141 004e      	movel %d1,%a0@(78)                          
        the_mutex->nest_count = 0;     /* undo locking above */       
        executing->resource_count--;   /* undo locking above */       
   499f6:	53a9 001c      	subql #1,%a1@(28)                           
        _ISR_Enable( *level_p );                                      
   499fa:	2012           	movel %a2@,%d0                              
   499fc:	46c0           	movew %d0,%sr                               
   499fe:	601e           	bras 49a1e <_CORE_mutex_Seize_interrupt_trylock+0xd6>
  /*                                                                  
   *  At this point, we know the mutex was not available.  If this thread
   *  is the thread that has locked the mutex, let's see if we are allowed
   *  to nest access.                                                 
   */                                                                 
  if ( _Thread_Is_executing( the_mutex->holder ) ) {                  
   49a00:	2668 005a      	moveal %a0@(90),%a3                         
   49a04:	b3cb           	cmpal %a3,%a1                               
   49a06:	6626           	bnes 49a2e <_CORE_mutex_Seize_interrupt_trylock+0xe6>
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
   49a08:	2028 0040      	movel %a0@(64),%d0                          
   49a0c:	6708           	beqs 49a16 <_CORE_mutex_Seize_interrupt_trylock+0xce>
   49a0e:	7201           	moveq #1,%d1                                
   49a10:	b280           	cmpl %d0,%d1                                
   49a12:	661a           	bnes 49a2e <_CORE_mutex_Seize_interrupt_trylock+0xe6>
   49a14:	600c           	bras 49a22 <_CORE_mutex_Seize_interrupt_trylock+0xda><== NOT EXECUTED
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
   49a16:	52a8 0052      	addql #1,%a0@(82)                           
        _ISR_Enable( *level_p );                                      
   49a1a:	2012           	movel %a2@,%d0                              
   49a1c:	46c0           	movew %d0,%sr                               
   49a1e:	4280           	clrl %d0                                    
   49a20:	600e           	bras 49a30 <_CORE_mutex_Seize_interrupt_trylock+0xe8>
        return 0;                                                     
      case CORE_MUTEX_NESTING_IS_ERROR:                               
        executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED;
   49a22:	7002           	moveq #2,%d0                                <== NOT EXECUTED
   49a24:	2740 0034      	movel %d0,%a3@(52)                          <== NOT EXECUTED
        _ISR_Enable( *level_p );                                      
   49a28:	2012           	movel %a2@,%d0                              <== NOT EXECUTED
   49a2a:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
   49a2c:	60f0           	bras 49a1e <_CORE_mutex_Seize_interrupt_trylock+0xd6><== NOT EXECUTED
   49a2e:	7001           	moveq #1,%d0                                
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
   49a30:	246e fff8      	moveal %fp@(-8),%a2                         
   49a34:	266e fffc      	moveal %fp@(-4),%a3                         
   49a38:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00045bb8 <_CORE_semaphore_Surrender>:                                 
CORE_semaphore_Status _CORE_semaphore_Surrender(                      
  CORE_semaphore_Control                *the_semaphore,               
  Objects_Id                             id,                          
  CORE_semaphore_API_mp_support_callout  api_semaphore_mp_support     
)                                                                     
{                                                                     
   45bb8:	4e56 0000      	linkw %fp,#0                                
   45bbc:	2f0a           	movel %a2,%sp@-                             
   45bbe:	246e 0008      	moveal %fp@(8),%a2                          
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
                                                                      
  if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) {
   45bc2:	2f0a           	movel %a2,%sp@-                             
   45bc4:	4eb9 0004 6f94 	jsr 46f94 <_Thread_queue_Dequeue>           
   45bca:	588f           	addql #4,%sp                                
   45bcc:	4a80           	tstl %d0                                    
   45bce:	6704           	beqs 45bd4 <_CORE_semaphore_Surrender+0x1c> 
   45bd0:	4280           	clrl %d0                                    
   45bd2:	6024           	bras 45bf8 <_CORE_semaphore_Surrender+0x40> 
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      (*api_semaphore_mp_support) ( the_thread, id );                 
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
   45bd4:	203c 0000 0700 	movel #1792,%d0                             
   45bda:	40c1           	movew %sr,%d1                               
   45bdc:	8081           	orl %d1,%d0                                 
   45bde:	46c0           	movew %d0,%sr                               
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
   45be0:	202a 0048      	movel %a2@(72),%d0                          
   45be4:	b0aa 0040      	cmpl %a2@(64),%d0                           
   45be8:	6504           	bcss 45bee <_CORE_semaphore_Surrender+0x36> 
   45bea:	7004           	moveq #4,%d0                                <== NOT EXECUTED
   45bec:	6008           	bras 45bf6 <_CORE_semaphore_Surrender+0x3e> <== NOT EXECUTED
        the_semaphore->count += 1;                                    
   45bee:	5280           	addql #1,%d0                                
   45bf0:	2540 0048      	movel %d0,%a2@(72)                          
   45bf4:	4280           	clrl %d0                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
   45bf6:	46c1           	movew %d1,%sr                               
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
   45bf8:	246e fffc      	moveal %fp@(-4),%a2                         
   45bfc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00045f7c <_Internal_error_Occurred>:                                  
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45f7c:	4e56 0000      	linkw %fp,#0                                
   45f80:	222e 000c      	movel %fp@(12),%d1                          
   45f84:	2f03           	movel %d3,%sp@-                             
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   45f86:	4283           	clrl %d3                                    
   45f88:	1601           	moveb %d1,%d3                               
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45f8a:	2f02           	movel %d2,%sp@-                             
   45f8c:	242e 0010      	movel %fp@(16),%d2                          
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   45f90:	2f02           	movel %d2,%sp@-                             
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45f92:	202e 0008      	movel %fp@(8),%d0                           
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   45f96:	2f03           	movel %d3,%sp@-                             
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   45f98:	263c 0000 0700 	movel #1792,%d3                             
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   45f9e:	2f00           	movel %d0,%sp@-                             
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
   45fa0:	13c1 0005 bb22 	moveb %d1,5bb22 <_Internal_errors_What_happened+0x4>
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
   45fa6:	23c0 0005 bb1e 	movel %d0,5bb1e <_Internal_errors_What_happened>
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
   45fac:	23c2 0005 bb24 	movel %d2,5bb24 <_Internal_errors_What_happened+0x6>
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   45fb2:	4eb9 0004 7a2e 	jsr 47a2e <_User_extensions_Fatal>          
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   45fb8:	40c0           	movew %sr,%d0                               
   45fba:	8083           	orl %d3,%d0                                 
   45fbc:	46c0           	movew %d0,%sr                               
   45fbe:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   45fc0:	223c dead beef 	movel #-559038737,%d1                       <== NOT EXECUTED
   45fc6:	4ac8           	halt                                        <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
   45fc8:	7005           	moveq #5,%d0                                
   45fca:	4fef 000c      	lea %sp@(12),%sp                            
   45fce:	23c0 0005 bbfa 	movel %d0,5bbfa <_System_state_Current>     
   45fd4:	60fe           	bras 45fd4 <_Internal_error_Occurred+0x58>  
	...                                                                  
                                                                      
00046040 <_Objects_Allocate>:                                         
 */                                                                   
                                                                      
Objects_Control *_Objects_Allocate(                                   
  Objects_Information *information                                    
)                                                                     
{                                                                     
   46040:	4e56 fff0      	linkw %fp,#-16                              
   46044:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   46048:	246e 0008      	moveal %fp@(8),%a2                          
   *  If the application is using the optional manager stubs and      
   *  still attempts to create the object, the information block      
   *  should be all zeroed out because it is in the BSS.  So let's    
   *  check that code for this manager is even present.               
   */                                                                 
  if ( information->size == 0 )                                       
   4604c:	4aaa 0014      	tstl %a2@(20)                               
   46050:	6604           	bnes 46056 <_Objects_Allocate+0x16>         
   46052:	4280           	clrl %d0                                    <== NOT EXECUTED
   46054:	605e           	bras 460b4 <_Objects_Allocate+0x74>         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  OK.  The manager should be initialized and configured to have objects.
   *  With any luck, it is safe to attempt to allocate an object.     
   */                                                                 
  the_object = (Objects_Control *) _Chain_Get( &information->Inactive );
   46056:	240a           	movel %a2,%d2                               
   46058:	0682 0000 001c 	addil #28,%d2                               
   4605e:	47f9 0004 98d4 	lea 498d4 <_Chain_Get>,%a3                  
   46064:	2f02           	movel %d2,%sp@-                             
   46066:	4e93           	jsr %a3@                                    
                                                                      
  if ( information->auto_extend ) {                                   
   46068:	588f           	addql #4,%sp                                
   4606a:	4a2a 0010      	tstb %a2@(16)                               
   4606e:	6744           	beqs 460b4 <_Objects_Allocate+0x74>         
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
   46070:	4a80           	tstl %d0                                    
   46072:	6612           	bnes 46086 <_Objects_Allocate+0x46>         
      _Objects_Extend_information( information );                     
   46074:	2f0a           	movel %a2,%sp@-                             
   46076:	4eb9 0004 60ec 	jsr 460ec <_Objects_Extend_information>     
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
   4607c:	2f02           	movel %d2,%sp@-                             
   4607e:	4e93           	jsr %a3@                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
   46080:	508f           	addql #8,%sp                                
   46082:	4a80           	tstl %d0                                    
   46084:	672e           	beqs 460b4 <_Objects_Allocate+0x74>         
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   46086:	2040           	moveal %d0,%a0                              
   46088:	4281           	clrl %d1                                    
   4608a:	4283           	clrl %d3                                    
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   4608c:	4282           	clrl %d2                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   4608e:	362a 0008      	movew %a2@(8),%d3                           
   46092:	3228 000a      	movew %a0@(10),%d1                          
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   46096:	342a 0012      	movew %a2@(18),%d2                          
      information->inactive--;                                        
   4609a:	306a 0028      	moveaw %a2@(40),%a0                         
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   4609e:	9283           	subl %d3,%d1                                
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460a0:	4c42 1001      	remul %d2,%d1,%d1                           
      information->inactive--;                                        
   460a4:	5388           	subql #1,%a0                                
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460a6:	e589           	lsll #2,%d1                                 
      information->inactive--;                                        
   460a8:	3548 0028      	movew %a0,%a2@(40)                          
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460ac:	206a 002a      	moveal %a2@(42),%a0                         
   460b0:	d1c1           	addal %d1,%a0                               
   460b2:	5390           	subql #1,%a0@                               
      information->inactive--;                                        
    }                                                                 
  }                                                                   
                                                                      
  return the_object;                                                  
}                                                                     
   460b4:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   460ba:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
000460c0 <_Objects_Close>:                                            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   460c0:	4280           	clrl %d0                                    
                                                                      
void _Objects_Close(                                                  
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
   460c2:	4e56 0000      	linkw %fp,#0                                
   460c6:	226e 000c      	moveal %fp@(12),%a1                         
   460ca:	206e 0008      	moveal %fp@(8),%a0                          
   460ce:	2f0a           	movel %a2,%sp@-                             
   460d0:	2468 0018      	moveal %a0@(24),%a2                         
   460d4:	3029 000a      	movew %a1@(10),%d0                          
   460d8:	42b2 0c00      	clrl %a2@(00000000,%d0:l:4)                 
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   460dc:	2d49 000c      	movel %a1,%fp@(12)                          
}                                                                     
   460e0:	245f           	moveal %sp@+,%a2                            
   460e2:	4e5e           	unlk %fp                                    
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   460e4:	4ef9 0004 65e0 	jmp 465e0 <_Objects_Namespace_remove>       
	...                                                                  
                                                                      
00049e24 <_Objects_Id_to_name>:                                       
 */                                                                   
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
   49e24:	4e56 fffc      	linkw %fp,#-4                               
   49e28:	222e 0008      	movel %fp@(8),%d1                           
   49e2c:	2f02           	movel %d2,%sp@-                             
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
   49e2e:	4a81           	tstl %d1                                    
   49e30:	660a           	bnes 49e3c <_Objects_Id_to_name+0x18>       
   49e32:	2079 0006 709a 	moveal 6709a <_Thread_Executing>,%a0        
   49e38:	2228 0008      	movel %a0@(8),%d1                           
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
   49e3c:	7418           	moveq #24,%d2                               
   49e3e:	2001           	movel %d1,%d0                               
   49e40:	e4a8           	lsrl %d2,%d0                                
   49e42:	143c 0007      	moveb #7,%d2                                
   49e46:	c082           	andl %d2,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
   49e48:	143c 0003      	moveb #3,%d2                                
   49e4c:	2040           	moveal %d0,%a0                              
   49e4e:	5388           	subql #1,%a0                                
   49e50:	b488           	cmpl %a0,%d2                                
   49e52:	6538           	bcss 49e8c <_Objects_Id_to_name+0x68>       
   49e54:	6040           	bras 49e96 <_Objects_Id_to_name+0x72>       
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
   49e56:	2001           	movel %d1,%d0                               
   49e58:	741b           	moveq #27,%d2                               
   49e5a:	e4a8           	lsrl %d2,%d0                                
   49e5c:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
  if ( !information )                                                 
   49e60:	672a           	beqs 49e8c <_Objects_Id_to_name+0x68>       
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
      return OBJECTS_INVALID_ID;                                      
  #endif                                                              
                                                                      
  the_object = _Objects_Get( information, tmpId, &ignored_location ); 
   49e62:	486e fffc      	pea %fp@(-4)                                
   49e66:	2f01           	movel %d1,%sp@-                             
   49e68:	2f00           	movel %d0,%sp@-                             
   49e6a:	4eb9 0004 9dc4 	jsr 49dc4 <_Objects_Get>                    
  if ( !the_object )                                                  
   49e70:	4fef 000c      	lea %sp@(12),%sp                            
   49e74:	4a80           	tstl %d0                                    
   49e76:	6714           	beqs 49e8c <_Objects_Id_to_name+0x68>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
   49e78:	206e 000c      	moveal %fp@(12),%a0                         
   49e7c:	2240           	moveal %d0,%a1                              
   49e7e:	20a9 000c      	movel %a1@(12),%a0@                         
  _Thread_Enable_dispatch();                                          
   49e82:	4eb9 0004 a696 	jsr 4a696 <_Thread_Enable_dispatch>         
   49e88:	4280           	clrl %d0                                    
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
   49e8a:	6002           	bras 49e8e <_Objects_Id_to_name+0x6a>       
   49e8c:	7003           	moveq #3,%d0                                
}                                                                     
   49e8e:	242e fff8      	movel %fp@(-8),%d2                          
   49e92:	4e5e           	unlk %fp                                    
   49e94:	4e75           	rts                                         
                                                                      
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
   49e96:	41f9 0006 6f98 	lea 66f98 <_Objects_Information_table>,%a0  
   49e9c:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
   49ea0:	4a88           	tstl %a0                                    
   49ea2:	66b2           	bnes 49e56 <_Objects_Id_to_name+0x32>       
   49ea4:	60e6           	bras 49e8c <_Objects_Id_to_name+0x68>       
	...                                                                  
                                                                      
000464ec <_Objects_Initialize_information>:                           
  information->maximum = 0;                                           
                                                                      
  /*                                                                  
   *  Register this Object Class in the Object Information Table.     
   */                                                                 
  _Objects_Information_table[ the_api ][ the_class ] = information;   
   464ec:	41f9 0005 ba30 	lea 5ba30 <_Objects_Information_table>,%a0  
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   464f2:	4e56 fff0      	linkw %fp,#-16                              
   464f6:	202e 000c      	movel %fp@(12),%d0                          
  information->maximum = 0;                                           
                                                                      
  /*                                                                  
   *  Register this Object Class in the Object Information Table.     
   */                                                                 
  _Objects_Information_table[ the_api ][ the_class ] = information;   
   464fa:	2270 0c00      	moveal %a0@(00000000,%d0:l:4),%a1           
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   464fe:	48d7 003c      	moveml %d2-%d5,%sp@                         
   46502:	222e 0014      	movel %fp@(20),%d1                          
   46506:	4285           	clrl %d5                                    
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
   46508:	2601           	movel %d1,%d3                               
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   4650a:	206e 0008      	moveal %fp@(8),%a0                          
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
  information->inactive_per_block = 0;                                
  information->object_blocks      = 0;                                
  information->inactive           = 0;                                
   4650e:	4242           	clrw %d2                                    
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46510:	3a2e 001a      	movew %fp@(26),%d5                          
   46514:	282e 0010      	movel %fp@(16),%d4                          
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
   46518:	d683           	addl %d3,%d3                                
   4651a:	9783           	subxl %d3,%d3                               
   4651c:	4483           	negl %d3                                    
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
  information->inactive_per_block = 0;                                
  information->object_blocks      = 0;                                
  information->inactive           = 0;                                
   4651e:	3142 0028      	movew %d2,%a0@(40)                          
                                                                      
  /*                                                                  
   *  Set the maximum value to 0. It will be updated when objects are 
   *  added to the inactive set from _Objects_Extend_information()    
   */                                                                 
  information->maximum = 0;                                           
   46522:	3142 000e      	movew %d2,%a0@(14)                          
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46526:	242e 0020      	movel %fp@(32),%d2                          
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
  information->the_class          = the_class;                        
   4652a:	3144 0004      	movew %d4,%a0@(4)                           
  _Objects_Information_table[ the_api ][ the_class ] = information;   
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
   4652e:	1143 0010      	moveb %d3,%a0@(16)                          
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
  information->the_class          = the_class;                        
  information->size               = size;                             
   46532:	2145 0014      	movel %d5,%a0@(20)                          
  information->maximum = 0;                                           
                                                                      
  /*                                                                  
   *  Register this Object Class in the Object Information Table.     
   */                                                                 
  _Objects_Information_table[ the_api ][ the_class ] = information;   
   46536:	2388 4c00      	movel %a0,%a1@(00000000,%d4:l:4)            
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
  maximum_per_allocation = maximum & ~OBJECTS_UNLIMITED_OBJECTS;      
   4653a:	0881 001f      	bclr #31,%d1                                
  uint32_t                maximum_per_allocation;                     
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
   4653e:	2080           	movel %d0,%a0@                              
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
   46540:	42a8 0018      	clrl %a0@(24)                               
  information->inactive_per_block = 0;                                
   46544:	42a8 002a      	clrl %a0@(42)                               
  information->object_blocks      = 0;                                
   46548:	42a8 002e      	clrl %a0@(46)                               
  maximum_per_allocation = maximum & ~OBJECTS_UNLIMITED_OBJECTS;      
                                                                      
  /*                                                                  
   *  Unlimited and maximum of zero is illogical.                     
   */                                                                 
  if ( information->auto_extend && maximum_per_allocation == 0) {     
   4654c:	4a03           	tstb %d3                                    
   4654e:	6714           	beqs 46564 <_Objects_Initialize_information+0x78>
   46550:	4a81           	tstl %d1                                    
   46552:	6610           	bnes 46564 <_Objects_Initialize_information+0x78>
    _Internal_error_Occurred(                                         
   46554:	4878 0014      	pea 14 <OPER2>                              
   46558:	4878 0001      	pea 1 <ADD>                                 
   4655c:	42a7           	clrl %sp@-                                  
   4655e:	4eb9 0004 5f7c 	jsr 45f7c <_Internal_error_Occurred>        
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46564:	7a18           	moveq #24,%d5                               
   46566:	4a81           	tstl %d1                                    
   46568:	56c3           	sne %d3                                     
   4656a:	eba8           	lsll %d5,%d0                                
   4656c:	1a3c 001b      	moveb #27,%d5                               
   46570:	49c3           	extbl %d3                                   
   46572:	4483           	negl %d3                                    
  information->allocation_size = maximum_per_allocation;              
                                                                      
  /*                                                                  
   *  Provide a null local table entry for the case of any empty table.
   */                                                                 
  information->local_table = &null_local_table;                       
   46574:	43f9 0005 b21c 	lea 5b21c <null_local_table.3444>,%a1       
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   4657a:	ebac           	lsll %d5,%d4                                
   4657c:	08c0 0010      	bset #16,%d0                                
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46580:	1a3c 0003      	moveb #3,%d5                                
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46584:	8084           	orl %d4,%d0                                 
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46586:	ca82           	andl %d2,%d5                                
  }                                                                   
                                                                      
  /*                                                                  
   *  The allocation unit is the maximum value                        
   */                                                                 
  information->allocation_size = maximum_per_allocation;              
   46588:	3141 0012      	movew %d1,%a0@(18)                          
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   4658c:	8083           	orl %d3,%d0                                 
  information->allocation_size = maximum_per_allocation;              
                                                                      
  /*                                                                  
   *  Provide a null local table entry for the case of any empty table.
   */                                                                 
  information->local_table = &null_local_table;                       
   4658e:	2149 0018      	movel %a1,%a0@(24)                          
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46592:	2140 0006      	movel %d0,%a0@(6)                           
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46596:	4a85           	tstl %d5                                    
   46598:	6604           	bnes 4659e <_Objects_Initialize_information+0xb2>
   4659a:	2002           	movel %d2,%d0                               
   4659c:	6008           	bras 465a6 <_Objects_Initialize_information+0xba>
    name_length = (name_length + OBJECTS_NAME_ALIGNMENT) &            
   4659e:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   465a0:	5880           	addql #4,%d0                                <== NOT EXECUTED
   465a2:	74fc           	moveq #-4,%d2                               <== NOT EXECUTED
   465a4:	c082           	andl %d2,%d0                                <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   465a6:	43e8 0020      	lea %a0@(32),%a1                            
   465aa:	2149 001c      	movel %a1,%a0@(28)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   465ae:	43e8 001c      	lea %a0@(28),%a1                            
                  ~(OBJECTS_NAME_ALIGNMENT-1);                        
                                                                      
  information->name_length = name_length;                             
   465b2:	3140 0032      	movew %d0,%a0@(50)                          
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
  the_chain->permanent_null = NULL;                                   
   465b6:	42a8 0020      	clrl %a0@(32)                               
  the_chain->last           = _Chain_Head(the_chain);                 
   465ba:	2149 0024      	movel %a1,%a0@(36)                          
  _Chain_Initialize_empty( &information->Inactive );                  
                                                                      
  /*                                                                  
   *  Initialize objects .. if there are any                          
   */                                                                 
  if ( maximum_per_allocation ) {                                     
   465be:	4a81           	tstl %d1                                    
   465c0:	6712           	beqs 465d4 <_Objects_Initialize_information+0xe8>
    /*                                                                
     *  Always have the maximum size available so the current performance
     *  figures are create are met.  If the user moves past the maximum
     *  number then a performance hit is taken.                       
     */                                                               
    _Objects_Extend_information( information );                       
   465c2:	2d48 0008      	movel %a0,%fp@(8)                           
	_Chain_Initialize_empty( &information->global_table[ index ] );      
     }                                                                
     else                                                             
       information->global_table = NULL;                              
  #endif                                                              
}                                                                     
   465c6:	4cee 003c fff0 	moveml %fp@(-16),%d2-%d5                    
   465cc:	4e5e           	unlk %fp                                    
    /*                                                                
     *  Always have the maximum size available so the current performance
     *  figures are create are met.  If the user moves past the maximum
     *  number then a performance hit is taken.                       
     */                                                               
    _Objects_Extend_information( information );                       
   465ce:	4ef9 0004 60ec 	jmp 460ec <_Objects_Extend_information>     
	_Chain_Initialize_empty( &information->global_table[ index ] );      
     }                                                                
     else                                                             
       information->global_table = NULL;                              
  #endif                                                              
}                                                                     
   465d4:	4cee 003c fff0 	moveml %fp@(-16),%d2-%d5                    
   465da:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
00048190 <_Objects_Set_name>:                                         
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   48190:	4280           	clrl %d0                                    
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   48192:	4e56 fff0      	linkw %fp,#-16                              
   48196:	206e 0008      	moveal %fp@(8),%a0                          
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   4819a:	3028 0032      	movew %a0@(50),%d0                          
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   4819e:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   481a2:	246e 0010      	moveal %fp@(16),%a2                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   481a6:	2f00           	movel %d0,%sp@-                             
   481a8:	2f0a           	movel %a2,%sp@-                             
   481aa:	4eb9 0004 e964 	jsr 4e964 <strnlen>                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   481b0:	508f           	addql #8,%sp                                
   481b2:	7201           	moveq #1,%d1                                
   481b4:	1812           	moveb %a2@,%d4                              
   481b6:	b280           	cmpl %d0,%d1                                
   481b8:	644a           	bccs 48204 <_Objects_Set_name+0x74>         
   481ba:	7602           	moveq #2,%d3                                
   481bc:	142a 0001      	moveb %a2@(1),%d2                           
   481c0:	49c2           	extbl %d2                                   
   481c2:	4842           	swap %d2                                    
   481c4:	4242           	clrw %d2                                    
   481c6:	b680           	cmpl %d0,%d3                                
   481c8:	643e           	bccs 48208 <_Objects_Set_name+0x78>         
   481ca:	163c 0003      	moveb #3,%d3                                
   481ce:	122a 0002      	moveb %a2@(2),%d1                           
   481d2:	49c1           	extbl %d1                                   
   481d4:	e189           	lsll #8,%d1                                 
   481d6:	b680           	cmpl %d0,%d3                                
   481d8:	6506           	bcss 481e0 <_Objects_Set_name+0x50>         
   481da:	163c 0020      	moveb #32,%d3                               
   481de:	6006           	bras 481e6 <_Objects_Set_name+0x56>         
   481e0:	162a 0003      	moveb %a2@(3),%d3                           
   481e4:	49c3           	extbl %d3                                   
   481e6:	7018           	moveq #24,%d0                               
   481e8:	e1ac           	lsll %d0,%d4                                
   481ea:	206e 000c      	moveal %fp@(12),%a0                         
   481ee:	8484           	orl %d4,%d2                                 
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   481f0:	7001           	moveq #1,%d0                                
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   481f2:	8481           	orl %d1,%d2                                 
   481f4:	8483           	orl %d3,%d2                                 
   481f6:	2142 000c      	movel %d2,%a0@(12)                          
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   481fa:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   48200:	4e5e           	unlk %fp                                    
   48202:	4e75           	rts                                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   48204:	7420           	moveq #32,%d2                               
   48206:	4842           	swap %d2                                    
   48208:	223c 0000 2000 	movel #8192,%d1                             
   4820e:	7620           	moveq #32,%d3                               
   48210:	60d4           	bras 481e6 <_Objects_Set_name+0x56>         
	...                                                                  
                                                                      
00056af8 <_Region_Process_queue>:                                     
 */                                                                   
                                                                      
void _Region_Process_queue(                                           
  Region_Control *the_region                                          
)                                                                     
{                                                                     
   56af8:	4e56 ffe4      	linkw %fp,#-28                              
   56afc:	2039 0007 4084 	movel 74084 <_Thread_Dispatch_disable_level>,%d0
   56b02:	5280           	addql #1,%d0                                
   56b04:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   56b08:	266e 0008      	moveal %fp@(8),%a3                          
   56b0c:	23c0 0007 4084 	movel %d0,74084 <_Thread_Dispatch_disable_level>
   *  NOTE: Be sure to disable dispatching before unlocking the mutex 
   *        since we do not want to open a window where a context     
   *        switch could occur.                                       
   */                                                                 
  _Thread_Disable_dispatch();                                         
  _RTEMS_Unlock_allocator();                                          
   56b12:	2f39 0007 4136 	movel 74136 <_RTEMS_Allocator_Mutex>,%sp@-  
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   56b18:	240b           	movel %a3,%d2                               
RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment (                 
  Region_Control *the_region,                                         
  uintptr_t       size                                                
)                                                                     
{                                                                     
  return _Heap_Allocate( &the_region->Memory, size );                 
   56b1a:	280b           	movel %a3,%d4                               
   56b1c:	0682 0000 0010 	addil #16,%d2                               
   56b22:	0684 0000 0068 	addil #104,%d4                              
   56b28:	4bf9 0005 28f4 	lea 528f4 <_Heap_Allocate_aligned_with_boundary>,%a5
    if ( the_segment == NULL )                                        
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   56b2e:	49f9 0005 718c 	lea 5718c <_Thread_queue_Extract>,%a4       
   *  NOTE: Be sure to disable dispatching before unlocking the mutex 
   *        since we do not want to open a window where a context     
   *        switch could occur.                                       
   */                                                                 
  _Thread_Disable_dispatch();                                         
  _RTEMS_Unlock_allocator();                                          
   56b34:	4eb9 0005 1f4c 	jsr 51f4c <_API_Mutex_Unlock>               
   56b3a:	588f           	addql #4,%sp                                
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   56b3c:	263c 0005 7290 	movel #357008,%d3                           
   56b42:	2f02           	movel %d2,%sp@-                             
   56b44:	2043           	moveal %d3,%a0                              
   56b46:	4e90           	jsr %a0@                                    
                                                                      
    if ( the_thread == NULL )                                         
   56b48:	588f           	addql #4,%sp                                
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   56b4a:	2440           	moveal %d0,%a2                              
                                                                      
    if ( the_thread == NULL )                                         
   56b4c:	4a80           	tstl %d0                                    
   56b4e:	672c           	beqs 56b7c <_Region_Process_queue+0x84>     
   56b50:	42a7           	clrl %sp@-                                  
   56b52:	42a7           	clrl %sp@-                                  
   56b54:	2f2a 0024      	movel %a2@(36),%sp@-                        
   56b58:	2f04           	movel %d4,%sp@-                             
   56b5a:	4e95           	jsr %a5@                                    
    the_segment = (void **) _Region_Allocate_segment(                 
      the_region,                                                     
      the_thread->Wait.count                                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
   56b5c:	4fef 0010      	lea %sp@(16),%sp                            
   56b60:	4a80           	tstl %d0                                    
   56b62:	6718           	beqs 56b7c <_Region_Process_queue+0x84>     
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   56b64:	206a 0028      	moveal %a2@(40),%a0                         
    the_region->number_of_used_blocks += 1;                           
   56b68:	52ab 0064      	addql #1,%a3@(100)                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   56b6c:	2080           	movel %d0,%a0@                              
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   56b6e:	2f0a           	movel %a2,%sp@-                             
   56b70:	2f02           	movel %d2,%sp@-                             
   56b72:	4e94           	jsr %a4@                                    
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
   56b74:	508f           	addql #8,%sp                                
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
   56b76:	42aa 0034      	clrl %a2@(52)                               
  }                                                                   
   56b7a:	60c6           	bras 56b42 <_Region_Process_queue+0x4a>     
  _Thread_Enable_dispatch();                                          
}                                                                     
   56b7c:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   56b82:	4e5e           	unlk %fp                                    
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
  _Thread_Enable_dispatch();                                          
   56b84:	4ef9 0005 3ec6 	jmp 53ec6 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      
00046d14 <_Thread_Initialize>:                                        
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46d14:	4e56 ffec      	linkw %fp,#-20                              
   46d18:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
   46d1c:	242e 0014      	movel %fp@(20),%d2                          
   46d20:	246e 000c      	moveal %fp@(12),%a2                         
                                                                      
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
  #if !defined(RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API) 
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
   46d24:	2f02           	movel %d2,%sp@-                             
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46d26:	262e 0018      	movel %fp@(24),%d3                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46d2a:	42aa 0108      	clrl %a2@(264)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46d2e:	282e 001c      	movel %fp@(28),%d4                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46d32:	42aa 010c      	clrl %a2@(268)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46d36:	1a2e 0023      	moveb %fp@(35),%d5                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46d3a:	42aa 0110      	clrl %a2@(272)                              
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
   46d3e:	42aa 0104      	clrl %a2@(260)                              
                                                                      
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
  #if !defined(RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API) 
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
   46d42:	2f0a           	movel %a2,%sp@-                             
   46d44:	4eb9 0004 75cc 	jsr 475cc <_Thread_Stack_Allocate>          
    if ( !actual_stack_size || actual_stack_size < stack_size )       
   46d4a:	508f           	addql #8,%sp                                
   46d4c:	4a80           	tstl %d0                                    
   46d4e:	6700 015a      	beqw 46eaa <_Thread_Initialize+0x196>       
   46d52:	b480           	cmpl %d0,%d2                                
   46d54:	6200 0154      	bhiw 46eaa <_Thread_Initialize+0x196>       
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
  the_stack->size = size;                                             
   46d58:	2540 00bc      	movel %d0,%a2@(188)                         
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
   46d5c:	256a 00c8 00c0 	movel %a2@(200),%a2@(192)                   
                                                                      
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
   46d62:	4a03           	tstb %d3                                    
   46d64:	6604           	bnes 46d6a <_Thread_Initialize+0x56>        
   46d66:	4283           	clrl %d3                                    
   46d68:	6016           	bras 46d80 <_Thread_Initialize+0x6c>        
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
   46d6a:	4878 001c      	pea 1c <OPER2+0x8>                          
   46d6e:	4eb9 0004 7dbc 	jsr 47dbc <_Workspace_Allocate>             
      if ( !fp_area )                                                 
   46d74:	588f           	addql #4,%sp                                
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
   46d76:	2600           	movel %d0,%d3                               
      if ( !fp_area )                                                 
   46d78:	6606           	bnes 46d80 <_Thread_Initialize+0x6c>        
   46d7a:	4282           	clrl %d2                                    
   46d7c:	6000 00c6      	braw 46e44 <_Thread_Initialize+0x130>       
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   46d80:	2039 0005 bb16 	movel 5bb16 <_Thread_Maximum_extensions>,%d0
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
      if ( !fp_area )                                                 
        goto failed;                                                  
      fp_area = _Context_Fp_start( fp_area, 0 );                      
    }                                                                 
    the_thread->fp_context       = fp_area;                           
   46d86:	2543 0100      	movel %d3,%a2@(256)                         
    the_thread->Start.fp_context = fp_area;                           
   46d8a:	2543 00c4      	movel %d3,%a2@(196)                         
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   46d8e:	42aa 0050      	clrl %a2@(80)                               
  the_watchdog->routine   = routine;                                  
   46d92:	42aa 0064      	clrl %a2@(100)                              
  the_watchdog->id        = id;                                       
   46d96:	42aa 0068      	clrl %a2@(104)                              
  the_watchdog->user_data = user_data;                                
   46d9a:	42aa 006c      	clrl %a2@(108)                              
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   46d9e:	4a80           	tstl %d0                                    
   46da0:	6604           	bnes 46da6 <_Thread_Initialize+0x92>        
   46da2:	4282           	clrl %d2                                    
   46da4:	6016           	bras 46dbc <_Thread_Initialize+0xa8>        
    extensions_area = _Workspace_Allocate(                            
   46da6:	e588           	lsll #2,%d0                                 
   46da8:	2040           	moveal %d0,%a0                              
   46daa:	4868 0004      	pea %a0@(4)                                 
   46dae:	4eb9 0004 7dbc 	jsr 47dbc <_Workspace_Allocate>             
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   46db4:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
    extensions_area = _Workspace_Allocate(                            
   46db6:	2400           	movel %d0,%d2                               
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   46db8:	6700 008a      	beqw 46e44 <_Thread_Initialize+0x130>       
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
   46dbc:	2542 0114      	movel %d2,%a2@(276)                         
   * if they are linked to the thread. An extension user may          
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
  if ( the_thread->extensions ) {                                     
   46dc0:	6718           	beqs 46dda <_Thread_Initialize+0xc6>        
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
   46dc2:	2239 0005 bb16 	movel 5bb16 <_Thread_Maximum_extensions>,%d1
   46dc8:	4280           	clrl %d0                                    
   46dca:	600a           	bras 46dd6 <_Thread_Initialize+0xc2>        
      the_thread->extensions[i] = NULL;                               
   46dcc:	206a 0114      	moveal %a2@(276),%a0                        
   46dd0:	42b0 0c00      	clrl %a0@(00000000,%d0:l:4)                 
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
  if ( the_thread->extensions ) {                                     
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
   46dd4:	5280           	addql #1,%d0                                
   46dd6:	b280           	cmpl %d0,%d1                                
   46dd8:	64f2           	bccs 46dcc <_Thread_Initialize+0xb8>        
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
  the_thread->Start.initial_priority  = priority;                     
  _Thread_Set_priority( the_thread, priority );                       
   46dda:	2f04           	movel %d4,%sp@-                             
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	break;                                                               
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
   46ddc:	256e 002c 00b4 	movel %fp@(44),%a2@(180)                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   46de2:	7001           	moveq #1,%d0                                
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
   46de4:	256e 0024 00ac 	movel %fp@(36),%a2@(172)                    
  the_thread->Start.budget_callout   = budget_callout;                
   46dea:	256e 0028 00b0 	movel %fp@(40),%a2@(176)                    
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
   46df0:	1545 00aa      	moveb %d5,%a2@(170)                         
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
  the_thread->Start.initial_priority  = priority;                     
  _Thread_Set_priority( the_thread, priority );                       
   46df4:	2f0a           	movel %a2,%sp@-                             
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   46df6:	2540 0010      	movel %d0,%a2@(16)                          
  the_thread->Wait.queue              = NULL;                         
   46dfa:	42aa 0044      	clrl %a2@(68)                               
  the_thread->resource_count          = 0;                            
   46dfe:	42aa 001c      	clrl %a2@(28)                               
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
   46e02:	2544 0018      	movel %d4,%a2@(24)                          
  the_thread->Start.initial_priority  = priority;                     
   46e06:	2544 00b8      	movel %d4,%a2@(184)                         
  _Thread_Set_priority( the_thread, priority );                       
   46e0a:	4eb9 0004 73f8 	jsr 473f8 <_Thread_Set_priority>            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46e10:	206e 0008      	moveal %fp@(8),%a0                          
   46e14:	4280           	clrl %d0                                    
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
   46e16:	256e 0030 000c 	movel %fp@(48),%a2@(12)                     
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46e1c:	2068 0018      	moveal %a0@(24),%a0                         
   46e20:	302a 000a      	movew %a2@(10),%d0                          
                                                                      
  /*                                                                  
   *  Initialize the CPU usage statistics                             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );             
   46e24:	42aa 0082      	clrl %a2@(130)                              
   46e28:	218a 0c00      	movel %a2,%a0@(00000000,%d0:l:4)            
   46e2c:	42aa 0086      	clrl %a2@(134)                              
   *  enabled when we get here.  We want to be able to run the        
   *  user extensions with dispatching enabled.  The Allocator        
   *  Mutex provides sufficient protection to let the user extensions 
   *  run safely.                                                     
   */                                                                 
  extension_status = _User_extensions_Thread_create( the_thread );    
   46e30:	2f0a           	movel %a2,%sp@-                             
   46e32:	4eb9 0004 7a78 	jsr 47a78 <_User_extensions_Thread_create>  
  if ( extension_status )                                             
   46e38:	4fef 000c      	lea %sp@(12),%sp                            
   46e3c:	4a00           	tstb %d0                                    
   46e3e:	6704           	beqs 46e44 <_Thread_Initialize+0x130>       
   46e40:	7001           	moveq #1,%d0                                
   46e42:	6068           	bras 46eac <_Thread_Initialize+0x198>       
    return true;                                                      
                                                                      
failed:                                                               
  if ( the_thread->libc_reent )                                       
   46e44:	202a 0104      	movel %a2@(260),%d0                         
   46e48:	670a           	beqs 46e54 <_Thread_Initialize+0x140>       
    _Workspace_Free( the_thread->libc_reent );                        
   46e4a:	2f00           	movel %d0,%sp@-                             
   46e4c:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 
   46e52:	588f           	addql #4,%sp                                
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   46e54:	202a 0108      	movel %a2@(264),%d0                         
   46e58:	670a           	beqs 46e64 <_Thread_Initialize+0x150>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46e5a:	2f00           	movel %d0,%sp@-                             
   46e5c:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 
   46e62:	588f           	addql #4,%sp                                
failed:                                                               
  if ( the_thread->libc_reent )                                       
    _Workspace_Free( the_thread->libc_reent );                        
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   46e64:	202a 010c      	movel %a2@(268),%d0                         
   46e68:	670a           	beqs 46e74 <_Thread_Initialize+0x160>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46e6a:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   46e6c:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 <== NOT EXECUTED
   46e72:	588f           	addql #4,%sp                                <== NOT EXECUTED
failed:                                                               
  if ( the_thread->libc_reent )                                       
    _Workspace_Free( the_thread->libc_reent );                        
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   46e74:	202a 0110      	movel %a2@(272),%d0                         
   46e78:	670a           	beqs 46e84 <_Thread_Initialize+0x170>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46e7a:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   46e7c:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 <== NOT EXECUTED
   46e82:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
  if ( extensions_area )                                              
   46e84:	4a82           	tstl %d2                                    
   46e86:	670a           	beqs 46e92 <_Thread_Initialize+0x17e>       
    (void) _Workspace_Free( extensions_area );                        
   46e88:	2f02           	movel %d2,%sp@-                             
   46e8a:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 
   46e90:	588f           	addql #4,%sp                                
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( fp_area )                                                    
   46e92:	4a83           	tstl %d3                                    
   46e94:	670a           	beqs 46ea0 <_Thread_Initialize+0x18c>       
      (void) _Workspace_Free( fp_area );                              
   46e96:	2f03           	movel %d3,%sp@-                             
   46e98:	4eb9 0004 7dd8 	jsr 47dd8 <_Workspace_Free>                 
   46e9e:	588f           	addql #4,%sp                                
  #endif                                                              
                                                                      
   _Thread_Stack_Free( the_thread );                                  
   46ea0:	2f0a           	movel %a2,%sp@-                             
   46ea2:	4eb9 0004 7618 	jsr 47618 <_Thread_Stack_Free>              
  return false;                                                       
   46ea8:	588f           	addql #4,%sp                                
   46eaa:	4200           	clrb %d0                                    
                                                                      
                                                                      
}                                                                     
   46eac:	4cee 043c ffec 	moveml %fp@(-20),%d2-%d5/%a2                
   46eb2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
00047b6c <_Thread_Restart>:                                           
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   47b6c:	7001           	moveq #1,%d0                                
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
   47b6e:	4e56 0000      	linkw %fp,#0                                
   47b72:	2f0a           	movel %a2,%sp@-                             
   47b74:	246e 0008      	moveal %fp@(8),%a2                          
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   47b78:	c0aa 0010      	andl %a2@(16),%d0                           
   47b7c:	4a00           	tstb %d0                                    
   47b7e:	6704           	beqs 47b84 <_Thread_Restart+0x18>           
   47b80:	4200           	clrb %d0                                    
   47b82:	6064           	bras 47be8 <_Thread_Restart+0x7c>           
                                                                      
    _Thread_Set_transient( the_thread );                              
   47b84:	2f0a           	movel %a2,%sp@-                             
   47b86:	4eb9 0004 7d48 	jsr 47d48 <_Thread_Set_transient>           
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
   47b8c:	2f2e 0010      	movel %fp@(16),%sp@-                        
   47b90:	2f2e 000c      	movel %fp@(12),%sp@-                        
   47b94:	2f0a           	movel %a2,%sp@-                             
   47b96:	4eb9 0004 aa10 	jsr 4aa10 <_Thread_Reset>                   
                                                                      
    _Thread_Load_environment( the_thread );                           
   47b9c:	2f0a           	movel %a2,%sp@-                             
   47b9e:	4eb9 0004 a6ac 	jsr 4a6ac <_Thread_Load_environment>        
                                                                      
    _Thread_Ready( the_thread );                                      
   47ba4:	2f0a           	movel %a2,%sp@-                             
   47ba6:	4eb9 0004 a950 	jsr 4a950 <_Thread_Ready>                   
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
   47bac:	2f0a           	movel %a2,%sp@-                             
   47bae:	4eb9 0004 82f4 	jsr 482f4 <_User_extensions_Thread_restart> 
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
   47bb4:	4fef 001c      	lea %sp@(28),%sp                            
   47bb8:	b5f9 0005 c61a 	cmpal 5c61a <_Thread_Executing>,%a2         
   47bbe:	6626           	bnes 47be6 <_Thread_Restart+0x7a>           
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void )                
{                                                                     
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
  if ( _Thread_Executing->fp_context != NULL )                        
   47bc0:	4aaa 0100      	tstl %a2@(256)                              
   47bc4:	670c           	beqs 47bd2 <_Thread_Restart+0x66>           
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
   47bc6:	486a 0100      	pea %a2@(256)                               
   47bca:	4eb9 0004 87e4 	jsr 487e4 <_CPU_Context_restore_fp>         
   47bd0:	588f           	addql #4,%sp                                
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
   47bd2:	2079 0005 c61a 	moveal 5c61a <_Thread_Executing>,%a0        
   47bd8:	41e8 00cc      	lea %a0@(204),%a0                           
   47bdc:	2f08           	movel %a0,%sp@-                             
   47bde:	4eb9 0004 86a2 	jsr 486a2 <_CPU_Context_Restart_self>       
   47be4:	588f           	addql #4,%sp                                <== NOT EXECUTED
   47be6:	7001           	moveq #1,%d0                                
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   47be8:	246e fffc      	moveal %fp@(-4),%a2                         
   47bec:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00047618 <_Thread_Stack_Free>:                                        
 */                                                                   
                                                                      
void _Thread_Stack_Free(                                              
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   47618:	4e56 0000      	linkw %fp,#0                                
   4761c:	206e 0008      	moveal %fp@(8),%a0                          
   * Call ONLY the CPU table stack free hook, or the                  
   * the RTEMS workspace free.  This is so the free                   
   * routine properly matches the allocation of the stack.            
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
   47620:	2279 0005 a368 	moveal 5a368 <Configuration+0x24>,%a1       
   47626:	4a89           	tstl %a1                                    
   47628:	670a           	beqs 47634 <_Thread_Stack_Free+0x1c>        
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
   4762a:	2d68 00c0 0008 	movel %a0@(192),%fp@(8)                     
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
   47630:	4e5e           	unlk %fp                                    
   * the RTEMS workspace free.  This is so the free                   
   * routine properly matches the allocation of the stack.            
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
   47632:	4ed1           	jmp %a1@                                    
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
   47634:	2d68 00c0 0008 	movel %a0@(192),%fp@(8)                     
}                                                                     
   4763a:	4e5e           	unlk %fp                                    
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
   4763c:	4ef9 0004 7dd8 	jmp 47dd8 <_Workspace_Free>                 
	...                                                                  
                                                                      
00046718 <_Thread_blocking_operation_Cancel>:                         
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
   46718:	7202           	moveq #2,%d1                                
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
   4671a:	4e56 0000      	linkw %fp,#0                                
   4671e:	202e 0010      	movel %fp@(16),%d0                          
   46722:	2f0a           	movel %a2,%sp@-                             
   46724:	246e 000c      	moveal %fp@(12),%a2                         
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
   46728:	42aa 0044      	clrl %a2@(68)                               
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
   4672c:	b2aa 0050      	cmpl %a2@(80),%d1                           
   46730:	6618           	bnes 4674a <_Thread_blocking_operation_Cancel+0x32>
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   46732:	123c 0003      	moveb #3,%d1                                
   46736:	2541 0050      	movel %d1,%a2@(80)                          
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4673a:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4673c:	486a 0048      	pea %a2@(72)                                
   46740:	4eb9 0004 7c90 	jsr 47c90 <_Watchdog_Remove>                
   46746:	588f           	addql #4,%sp                                
   46748:	6002           	bras 4674c <_Thread_blocking_operation_Cancel+0x34>
  } else                                                              
    _ISR_Enable( level );                                             
   4674a:	46c0           	movew %d0,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4674c:	2d4a 0008      	movel %a2,%fp@(8)                           
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   46750:	246e fffc      	moveal %fp@(-4),%a2                         
   46754:	203c 1003 fff8 	movel #268697592,%d0                        
   4675a:	2d40 000c      	movel %d0,%fp@(12)                          
   4675e:	4e5e           	unlk %fp                                    
   46760:	4ef9 0004 68a8 	jmp 468a8 <_Thread_Clear_state>             
	...                                                                  
                                                                      
0004716c <_Thread_queue_Enqueue_priority>:                            
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
   4716c:	4e56 ffe4      	linkw %fp,#-28                              
   47170:	206e 000c      	moveal %fp@(12),%a0                         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   47174:	43e8 003c      	lea %a0@(60),%a1                            
  Priority_Control     priority;                                      
  States_Control       block_state;                                   
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
   47178:	2028 0014      	movel %a0@(20),%d0                          
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
   4717c:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   47180:	2400           	movel %d0,%d2                               
   47182:	ec8a           	lsrl #6,%d2                                 
   47184:	2202           	movel %d2,%d1                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
   47186:	283c 0000 0700 	movel #1792,%d4                             
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   4718c:	e989           	lsll #4,%d1                                 
   4718e:	e58a           	lsll #2,%d2                                 
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
   47190:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   47194:	9282           	subl %d2,%d1                                
   47196:	47f2 1800      	lea %a2@(00000000,%d1:l),%a3                
   4719a:	2149 0038      	movel %a1,%a0@(56)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   4719e:	43e8 0038      	lea %a0@(56),%a1                            
  block_state  = the_thread_queue->state;                             
   471a2:	2a2a 0038      	movel %a2@(56),%d5                          
   471a6:	2149 0040      	movel %a1,%a0@(64)                          
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
  the_chain->permanent_null = NULL;                                   
   471aa:	42a8 003c      	clrl %a0@(60)                               
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
   471ae:	0800 0005      	btst #5,%d0                                 
   471b2:	6660           	bnes 47214 <_Thread_queue_Enqueue_priority+0xa8>
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   471b4:	2c0b           	movel %a3,%d6                               
   471b6:	5886           	addql #4,%d6                                
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
   471b8:	2404           	movel %d4,%d2                               
   471ba:	40c1           	movew %sr,%d1                               
   471bc:	8481           	orl %d1,%d2                                 
   471be:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->first;                   
   471c0:	2253           	moveal %a3@,%a1                             
   471c2:	76ff           	moveq #-1,%d3                               
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   471c4:	601e           	bras 471e4 <_Thread_queue_Enqueue_priority+0x78>
    search_priority = search_thread->current_priority;                
   471c6:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority <= search_priority )                                
   471ca:	b680           	cmpl %d0,%d3                                
   471cc:	641a           	bccs 471e8 <_Thread_queue_Enqueue_priority+0x7c>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   471ce:	2404           	movel %d4,%d2                               
   471d0:	46c1           	movew %d1,%sr                               
   471d2:	8481           	orl %d1,%d2                                 
   471d4:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   471d6:	2405           	movel %d5,%d2                               
   471d8:	c4a9 0010      	andl %a1@(16),%d2                           
   471dc:	6604           	bnes 471e2 <_Thread_queue_Enqueue_priority+0x76>
      _ISR_Enable( level );                                           
   471de:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
      goto restart_forward_search;                                    
   471e0:	60d6           	bras 471b8 <_Thread_queue_Enqueue_priority+0x4c><== NOT EXECUTED
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
   471e2:	2251           	moveal %a1@,%a1                             
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->first;                   
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   471e4:	bc89           	cmpl %a1,%d6                                
   471e6:	66de           	bnes 471c6 <_Thread_queue_Enqueue_priority+0x5a>
   471e8:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   471ea:	7801           	moveq #1,%d4                                
   471ec:	b8aa 0030      	cmpl %a2@(48),%d4                           
   471f0:	6600 00a4      	bnew 47296 <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   471f4:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   471f8:	b680           	cmpl %d0,%d3                                
   471fa:	677e           	beqs 4727a <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
   471fc:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   47200:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   47202:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47206:	214a 0044      	movel %a2,%a0@(68)                          
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
   4720a:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   4720c:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47210:	46c1           	movew %d1,%sr                               
   47212:	6062           	bras 47276 <_Thread_queue_Enqueue_priority+0x10a>
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   47214:	4283           	clrl %d3                                    
   47216:	1639 0005 a342 	moveb 5a342 <rtems_maximum_priority>,%d3    
                                                                      
  _ISR_Disable( level );                                              
   4721c:	2404           	movel %d4,%d2                               
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   4721e:	5283           	addql #1,%d3                                
                                                                      
  _ISR_Disable( level );                                              
   47220:	40c1           	movew %sr,%d1                               
   47222:	8481           	orl %d1,%d2                                 
   47224:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->last;                    
   47226:	226b 0008      	moveal %a3@(8),%a1                          
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   4722a:	6020           	bras 4724c <_Thread_queue_Enqueue_priority+0xe0>
    search_priority = search_thread->current_priority;                
   4722c:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority >= search_priority )                                
   47230:	b680           	cmpl %d0,%d3                                
   47232:	631c           	blss 47250 <_Thread_queue_Enqueue_priority+0xe4>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47234:	2404           	movel %d4,%d2                               
   47236:	46c1           	movew %d1,%sr                               
   47238:	8481           	orl %d1,%d2                                 
   4723a:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   4723c:	2405           	movel %d5,%d2                               
   4723e:	c4a9 0010      	andl %a1@(16),%d2                           
   47242:	6604           	bnes 47248 <_Thread_queue_Enqueue_priority+0xdc>
      _ISR_Enable( level );                                           
   47244:	46c1           	movew %d1,%sr                               
      goto restart_reverse_search;                                    
   47246:	60cc           	bras 47214 <_Thread_queue_Enqueue_priority+0xa8>
    }                                                                 
    search_thread = (Thread_Control *)                                
   47248:	2269 0004      	moveal %a1@(4),%a1                          
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->last;                    
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   4724c:	b7c9           	cmpal %a1,%a3                               
   4724e:	66dc           	bnes 4722c <_Thread_queue_Enqueue_priority+0xc0>
   47250:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47252:	7801           	moveq #1,%d4                                
   47254:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47258:	663c           	bnes 47296 <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   4725a:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   4725e:	b680           	cmpl %d0,%d3                                
   47260:	6718           	beqs 4727a <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
   47262:	2651           	moveal %a1@,%a3                             
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
   47264:	2149 0004      	movel %a1,%a0@(4)                           
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
   47268:	208b           	movel %a3,%a0@                              
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
  next_node->previous    = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   4726a:	214a 0044      	movel %a2,%a0@(68)                          
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
   4726e:	2288           	movel %a0,%a1@                              
  next_node->previous    = the_node;                                  
   47270:	2748 0004      	movel %a0,%a3@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47274:	46c1           	movew %d1,%sr                               
   47276:	7001           	moveq #1,%d0                                
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
   47278:	6026           	bras 472a0 <_Thread_queue_Enqueue_priority+0x134>
   4727a:	43e9 003c      	lea %a1@(60),%a1                            
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
  previous_node = search_node->previous;                              
   4727e:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   47282:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   47284:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47288:	214a 0044      	movel %a2,%a0@(68)                          
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
   4728c:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   4728e:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47292:	46c2           	movew %d2,%sr                               
   47294:	60e0           	bras 47276 <_Thread_queue_Enqueue_priority+0x10a>
   *  For example, the blocking thread could have been given          
   *  the mutex by an ISR or timed out.                               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
   47296:	206e 0010      	moveal %fp@(16),%a0                         
  return the_thread_queue->sync_state;                                
   4729a:	202a 0030      	movel %a2@(48),%d0                          
   *  For example, the blocking thread could have been given          
   *  the mutex by an ISR or timed out.                               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
   4729e:	2082           	movel %d2,%a0@                              
  return the_thread_queue->sync_state;                                
}                                                                     
   472a0:	4cd7 0c7c      	moveml %sp@,%d2-%d6/%a2-%a3                 
   472a4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
0004b588 <_Thread_queue_Extract_fifo>:                                
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4b588:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
void _Thread_queue_Extract_fifo(                                      
  Thread_queue_Control *the_thread_queue __attribute__((unused)),     
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
   4b58e:	4e56 0000      	linkw %fp,#0                                
   4b592:	2f0a           	movel %a2,%sp@-                             
   4b594:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4b598:	40c0           	movew %sr,%d0                               
   4b59a:	8280           	orl %d0,%d1                                 
   4b59c:	46c1           	movew %d1,%sr                               
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   4b59e:	222a 0010      	movel %a2@(16),%d1                          
   4b5a2:	0281 0003 bee0 	andil #245472,%d1                           
   4b5a8:	660a           	bnes 4b5b4 <_Thread_queue_Extract_fifo+0x2c>
    _ISR_Enable( level );                                             
   4b5aa:	46c0           	movew %d0,%sr                               
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4b5ac:	246e fffc      	moveal %fp@(-4),%a2                         
   4b5b0:	4e5e           	unlk %fp                                    
   4b5b2:	4e75           	rts                                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4b5b4:	2052           	moveal %a2@,%a0                             
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4b5b6:	7202           	moveq #2,%d1                                
  previous       = the_node->previous;                                
   4b5b8:	226a 0004      	moveal %a2@(4),%a1                          
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
   4b5bc:	42aa 0044      	clrl %a2@(68)                               
  next->previous = previous;                                          
  previous->next = next;                                              
   4b5c0:	2288           	movel %a0,%a1@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   4b5c2:	2149 0004      	movel %a1,%a0@(4)                           
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4b5c6:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4b5ca:	6704           	beqs 4b5d0 <_Thread_queue_Extract_fifo+0x48>
    _ISR_Enable( level );                                             
   4b5cc:	46c0           	movew %d0,%sr                               
   4b5ce:	6014           	bras 4b5e4 <_Thread_queue_Extract_fifo+0x5c>
   4b5d0:	7203           	moveq #3,%d1                                
   4b5d2:	2541 0050      	movel %d1,%a2@(80)                          
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4b5d6:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4b5d8:	486a 0048      	pea %a2@(72)                                
   4b5dc:	4eb9 0004 7c90 	jsr 47c90 <_Watchdog_Remove>                
   4b5e2:	588f           	addql #4,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4b5e4:	2d4a 0008      	movel %a2,%fp@(8)                           
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4b5e8:	246e fffc      	moveal %fp@(-4),%a2                         
   4b5ec:	203c 1003 fff8 	movel #268697592,%d0                        
   4b5f2:	2d40 000c      	movel %d0,%fp@(12)                          
   4b5f6:	4e5e           	unlk %fp                                    
   4b5f8:	4ef9 0004 68a8 	jmp 468a8 <_Thread_Clear_state>             
	...                                                                  
                                                                      
00051644 <_Timer_server_Body>:                                        
 *  @a arg points to the corresponding timer server control block.    
 */                                                                   
static rtems_task _Timer_server_Body(                                 
  rtems_task_argument arg                                             
)                                                                     
{                                                                     
   51644:	4e56 ffb4      	linkw %fp,#-76                              
   51648:	200e           	movel %fp,%d0                               
   5164a:	0680 ffff fff4 	addil #-12,%d0                              
   51650:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   51654:	246e 0008      	moveal %fp@(8),%a2                          
   51658:	240e           	movel %fp,%d2                               
   5165a:	2a0e           	movel %fp,%d5                               
   5165c:	260e           	movel %fp,%d3                               
   5165e:	0682 ffff ffe8 	addil #-24,%d2                              
   51664:	5185           	subql #8,%d5                                
   51666:	0683 ffff ffec 	addil #-20,%d3                              
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   5166c:	41ea 0008      	lea %a2@(8),%a0                             
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   51670:	4bea 0040      	lea %a2@(64),%a5                            
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51674:	2e0a           	movel %a2,%d7                               
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   51676:	280a           	movel %a2,%d4                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51678:	0687 0000 0030 	addil #48,%d7                               
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   5167e:	0684 0000 0068 	addil #104,%d4                              
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51684:	49f9 0005 5054 	lea 55054 <_Watchdog_Adjust_to_chain>,%a4   
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   5168a:	47f9 0005 50e4 	lea 550e4 <_Watchdog_Insert>,%a3            
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   51690:	2d48 ffe4      	movel %a0,%fp@(-28)                         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   51694:	2d45 fff4      	movel %d5,%fp@(-12)                         
  the_chain->permanent_null = NULL;                                   
   51698:	42ae fff8      	clrl %fp@(-8)                               
  the_chain->last           = _Chain_Head(the_chain);                 
   5169c:	2d40 fffc      	movel %d0,%fp@(-4)                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   516a0:	2d43 ffe8      	movel %d3,%fp@(-24)                         
  the_chain->permanent_null = NULL;                                   
   516a4:	42ae ffec      	clrl %fp@(-20)                              
  the_chain->last           = _Chain_Head(the_chain);                 
   516a8:	2d42 fff0      	movel %d2,%fp@(-16)                         
   516ac:	2d4d ffe0      	movel %a5,%fp@(-32)                         
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   516b0:	41ee fff4      	lea %fp@(-12),%a0                           
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   516b4:	3a7c 0700      	moveaw #1792,%a5                            
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   516b8:	2548 0078      	movel %a0,%a2@(120)                         
static void _Timer_server_Process_interval_watchdogs(                 
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
   516bc:	2039 0007 41c4 	movel 741c4 <_Watchdog_Ticks_since_boot>,%d0
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
   516c2:	222a 003c      	movel %a2@(60),%d1                          
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   516c6:	2540 003c      	movel %d0,%a2@(60)                          
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   516ca:	486e ffe8      	pea %fp@(-24)                               
   516ce:	9081           	subl %d1,%d0                                
   516d0:	2f00           	movel %d0,%sp@-                             
   516d2:	2f07           	movel %d7,%sp@-                             
   516d4:	4e94           	jsr %a4@                                    
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
   516d6:	2039 0007 4116 	movel 74116 <_TOD_Now>,%d0                  
  /*                                                                  
   *  Process the seconds chain.  Start by checking that the Time     
   *  of Day (TOD) has not been set backwards.  If it has then        
   *  we want to adjust the watchdogs->Chain to indicate this.        
   */                                                                 
  if ( snapshot > last_snapshot ) {                                   
   516dc:	4fef 000c      	lea %sp@(12),%sp                            
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
  Watchdog_Interval last_snapshot = watchdogs->last_snapshot;         
   516e0:	222a 0074      	movel %a2@(116),%d1                         
  /*                                                                  
   *  Process the seconds chain.  Start by checking that the Time     
   *  of Day (TOD) has not been set backwards.  If it has then        
   *  we want to adjust the watchdogs->Chain to indicate this.        
   */                                                                 
  if ( snapshot > last_snapshot ) {                                   
   516e4:	b280           	cmpl %d0,%d1                                
   516e6:	6414           	bccs 516fc <_Timer_server_Body+0xb8>        
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   516e8:	486e ffe8      	pea %fp@(-24)                               
   516ec:	2c00           	movel %d0,%d6                               
   516ee:	9c81           	subl %d1,%d6                                
   516f0:	2f06           	movel %d6,%sp@-                             
   516f2:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   516f6:	2f04           	movel %d4,%sp@-                             
   516f8:	4e94           	jsr %a4@                                    
   516fa:	6018           	bras 51714 <_Timer_server_Body+0xd0>        
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
   516fc:	b280           	cmpl %d0,%d1                                
   516fe:	631c           	blss 5171c <_Timer_server_Body+0xd8>        
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
   51700:	9280           	subl %d0,%d1                                
   51702:	2f01           	movel %d1,%sp@-                             
   51704:	4878 0001      	pea 1 <ADD>                                 
   51708:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   5170c:	2f04           	movel %d4,%sp@-                             
   5170e:	4eb9 0005 4fd4 	jsr 54fd4 <_Watchdog_Adjust>                
   51714:	202e ffdc      	movel %fp@(-36),%d0                         
   51718:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   5171c:	2540 0074      	movel %d0,%a2@(116)                         
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
   51720:	202a 0078      	movel %a2@(120),%d0                         
   51724:	2f00           	movel %d0,%sp@-                             
   51726:	4eb9 0005 1fb8 	jsr 51fb8 <_Chain_Get>                      
                                                                      
    if ( timer == NULL ) {                                            
   5172c:	588f           	addql #4,%sp                                
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
   5172e:	2040           	moveal %d0,%a0                              
                                                                      
    if ( timer == NULL ) {                                            
   51730:	4a80           	tstl %d0                                    
   51732:	6724           	beqs 51758 <_Timer_server_Body+0x114>       
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   51734:	2028 0038      	movel %a0@(56),%d0                          <== NOT EXECUTED
   51738:	7201           	moveq #1,%d1                                <== NOT EXECUTED
   5173a:	b280           	cmpl %d0,%d1                                <== NOT EXECUTED
   5173c:	6608           	bnes 51746 <_Timer_server_Body+0x102>       <== NOT EXECUTED
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   5173e:	4868 0010      	pea %a0@(16)                                <== NOT EXECUTED
   51742:	2f07           	movel %d7,%sp@-                             <== NOT EXECUTED
   51744:	600c           	bras 51752 <_Timer_server_Body+0x10e>       <== NOT EXECUTED
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   51746:	7c03           	moveq #3,%d6                                <== NOT EXECUTED
   51748:	bc80           	cmpl %d0,%d6                                <== NOT EXECUTED
   5174a:	66d4           	bnes 51720 <_Timer_server_Body+0xdc>        <== NOT EXECUTED
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   5174c:	4868 0010      	pea %a0@(16)                                <== NOT EXECUTED
   51750:	2f04           	movel %d4,%sp@-                             <== NOT EXECUTED
   51752:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   51754:	508f           	addql #8,%sp                                <== NOT EXECUTED
   51756:	60c8           	bras 51720 <_Timer_server_Body+0xdc>        <== NOT EXECUTED
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   51758:	200d           	movel %a5,%d0                               
   5175a:	40c1           	movew %sr,%d1                               
   5175c:	8081           	orl %d1,%d0                                 
   5175e:	46c0           	movew %d0,%sr                               
    if ( _Chain_Is_empty( insert_chain ) ) {                          
   51760:	baae fff4      	cmpl %fp@(-12),%d5                          
   51764:	6612           	bnes 51778 <_Timer_server_Body+0x134>       
      ts->insert_chain = NULL;                                        
   51766:	42aa 0078      	clrl %a2@(120)                              
      _ISR_Enable( level );                                           
   5176a:	46c1           	movew %d1,%sr                               
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
   5176c:	3a7c 0700      	moveaw #1792,%a5                            
  _Chain_Initialize_empty( &fire_chain );                             
                                                                      
  while ( true ) {                                                    
    _Timer_server_Get_watchdogs_that_fire_now( ts, &insert_chain, &fire_chain );
                                                                      
    if ( !_Chain_Is_empty( &fire_chain ) ) {                          
   51770:	b6ae ffe8      	cmpl %fp@(-24),%d3                          
   51774:	6608           	bnes 5177e <_Timer_server_Body+0x13a>       
   51776:	6042           	bras 517ba <_Timer_server_Body+0x176>       
      ts->insert_chain = NULL;                                        
      _ISR_Enable( level );                                           
                                                                      
      break;                                                          
    } else {                                                          
      _ISR_Enable( level );                                           
   51778:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
   5177a:	6000 ff40      	braw 516bc <_Timer_server_Body+0x78>        <== NOT EXECUTED
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
   5177e:	220d           	movel %a5,%d1                               
   51780:	40c0           	movew %sr,%d0                               
   51782:	8280           	orl %d0,%d1                                 
   51784:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   51786:	206e ffe8      	moveal %fp@(-24),%a0                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   5178a:	b688           	cmpl %a0,%d3                                
   5178c:	6726           	beqs 517b4 <_Timer_server_Body+0x170>       
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   5178e:	2250           	moveal %a0@,%a1                             
  the_chain->first    = new_first;                                    
   51790:	2d49 ffe8      	movel %a1,%fp@(-24)                         
  new_first->previous = _Chain_Head(the_chain);                       
   51794:	2342 0004      	movel %d2,%a1@(4)                           
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
   51798:	4a88           	tstl %a0                                    
   5179a:	6718           	beqs 517b4 <_Timer_server_Body+0x170>       
          watchdog->state = WATCHDOG_INACTIVE;                        
   5179c:	42a8 0008      	clrl %a0@(8)                                
          _ISR_Enable( level );                                       
   517a0:	46c0           	movew %d0,%sr                               
        /*                                                            
         *  The timer server may block here and wait for resources or time.
         *  The system watchdogs are inactive and will remain inactive since
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
   517a2:	2f28 0024      	movel %a0@(36),%sp@-                        
   517a6:	2f28 0020      	movel %a0@(32),%sp@-                        
   517aa:	2068 001c      	moveal %a0@(28),%a0                         
   517ae:	4e90           	jsr %a0@                                    
      }                                                               
   517b0:	508f           	addql #8,%sp                                
   517b2:	60ca           	bras 5177e <_Timer_server_Body+0x13a>       
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
   517b4:	46c0           	movew %d0,%sr                               
   517b6:	6000 fef8      	braw 516b0 <_Timer_server_Body+0x6c>        
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
   517ba:	4200           	clrb %d0                                    
   517bc:	1540 007c      	moveb %d0,%a2@(124)                         
   517c0:	2039 0007 4084 	movel 74084 <_Thread_Dispatch_disable_level>,%d0
   517c6:	5280           	addql #1,%d0                                
   517c8:	23c0 0007 4084 	movel %d0,74084 <_Thread_Dispatch_disable_level>
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   517ce:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   517d2:	4bf9 0005 5200 	lea 55200 <_Watchdog_Remove>,%a5            
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   517d8:	2f12           	movel %a2@,%sp@-                            
   517da:	4eb9 0005 4828 	jsr 54828 <_Thread_Set_state>               
        _Timer_server_Reset_interval_system_watchdog( ts );           
   517e0:	2f0a           	movel %a2,%sp@-                             
   517e2:	4eba fd9c      	jsr %pc@(51580 <_Timer_server_Reset_interval_system_watchdog>)
        _Timer_server_Reset_tod_system_watchdog( ts );                
   517e6:	2f0a           	movel %a2,%sp@-                             
   517e8:	4eba fdf6      	jsr %pc@(515e0 <_Timer_server_Reset_tod_system_watchdog>)
      _Thread_Enable_dispatch();                                      
   517ec:	4eb9 0005 3ec6 	jsr 53ec6 <_Thread_Enable_dispatch>         
                                                                      
      ts->active = true;                                              
   517f2:	7201           	moveq #1,%d1                                
   517f4:	1541 007c      	moveb %d1,%a2@(124)                         
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   517f8:	2f2e ffe4      	movel %fp@(-28),%sp@-                       
   517fc:	4e95           	jsr %a5@                                    
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   517fe:	2f2e ffe0      	movel %fp@(-32),%sp@-                       
   51802:	4e95           	jsr %a5@                                    
   51804:	4fef 0018      	lea %sp@(24),%sp                            
   51808:	6000 fea6      	braw 516b0 <_Timer_server_Body+0x6c>        
                                                                      
0005180c <_Timer_server_Schedule_operation_method>:                   
                                                                      
static void _Timer_server_Schedule_operation_method(                  
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
   5180c:	4e56 fff0      	linkw %fp,#-16                              
   51810:	206e 000c      	moveal %fp@(12),%a0                         
   51814:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   51818:	246e 0008      	moveal %fp@(8),%a2                          
  if ( ts->insert_chain == NULL ) {                                   
   5181c:	202a 0078      	movel %a2@(120),%d0                         
   51820:	6600 00f8      	bnew 5191a <_Timer_server_Schedule_operation_method+0x10e>
   51824:	2039 0007 4084 	movel 74084 <_Thread_Dispatch_disable_level>,%d0
   5182a:	5280           	addql #1,%d0                                
   5182c:	23c0 0007 4084 	movel %d0,74084 <_Thread_Dispatch_disable_level>
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   51832:	2028 0038      	movel %a0@(56),%d0                          
   51836:	7201           	moveq #1,%d1                                
   51838:	b280           	cmpl %d0,%d1                                
   5183a:	6660           	bnes 5189c <_Timer_server_Schedule_operation_method+0x90>
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   5183c:	203c 0000 0700 	movel #1792,%d0                             
   51842:	40c3           	movew %sr,%d3                               
   51844:	8083           	orl %d3,%d0                                 
   51846:	46c0           	movew %d0,%sr                               
    snapshot = _Watchdog_Ticks_since_boot;                            
   51848:	2039 0007 41c4 	movel 741c4 <_Watchdog_Ticks_since_boot>,%d0
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   5184e:	220a           	movel %a2,%d1                               
   51850:	0681 0000 0034 	addil #52,%d1                               
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
   51856:	242a 003c      	movel %a2@(60),%d2                          
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   5185a:	226a 0030      	moveal %a2@(48),%a1                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   5185e:	b289           	cmpl %a1,%d1                                
   51860:	6716           	beqs 51878 <_Timer_server_Schedule_operation_method+0x6c>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
   51862:	2800           	movel %d0,%d4                               
   51864:	9882           	subl %d2,%d4                                
                                                                      
      delta_interval = first_watchdog->delta_interval;                
   51866:	2229 0010      	movel %a1@(16),%d1                          
      if (delta_interval > delta) {                                   
   5186a:	b881           	cmpl %d1,%d4                                
   5186c:	6504           	bcss 51872 <_Timer_server_Schedule_operation_method+0x66>
   5186e:	4281           	clrl %d1                                    
   51870:	6002           	bras 51874 <_Timer_server_Schedule_operation_method+0x68>
        delta_interval -= delta;                                      
   51872:	9284           	subl %d4,%d1                                
      } else {                                                        
        delta_interval = 0;                                           
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   51874:	2341 0010      	movel %d1,%a1@(16)                          
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
   51878:	2540 003c      	movel %d0,%a2@(60)                          
    _ISR_Enable( level );                                             
   5187c:	46c3           	movew %d3,%sr                               
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   5187e:	4868 0010      	pea %a0@(16)                                
   51882:	486a 0030      	pea %a2@(48)                                
   51886:	4eb9 0005 50e4 	jsr 550e4 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   5188c:	508f           	addql #8,%sp                                
   5188e:	102a 007c      	moveb %a2@(124),%d0                         
   51892:	6678           	bnes 5190c <_Timer_server_Schedule_operation_method+0x100>
      _Timer_server_Reset_interval_system_watchdog( ts );             
   51894:	2f0a           	movel %a2,%sp@-                             
   51896:	4eba fce8      	jsr %pc@(51580 <_Timer_server_Reset_interval_system_watchdog>)
   5189a:	606e           	bras 5190a <_Timer_server_Schedule_operation_method+0xfe>
    }                                                                 
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   5189c:	7203           	moveq #3,%d1                                
   5189e:	b280           	cmpl %d0,%d1                                
   518a0:	666a           	bnes 5190c <_Timer_server_Schedule_operation_method+0x100>
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   518a2:	203c 0000 0700 	movel #1792,%d0                             
   518a8:	40c3           	movew %sr,%d3                               
   518aa:	8083           	orl %d3,%d0                                 
   518ac:	46c0           	movew %d0,%sr                               
   518ae:	200a           	movel %a2,%d0                               
   518b0:	0680 0000 006c 	addil #108,%d0                              
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
   518b6:	2239 0007 4116 	movel 74116 <_TOD_Now>,%d1                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
   518bc:	242a 0074      	movel %a2@(116),%d2                         
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   518c0:	226a 0068      	moveal %a2@(104),%a1                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   518c4:	b089           	cmpl %a1,%d0                                
   518c6:	6720           	beqs 518e8 <_Timer_server_Schedule_operation_method+0xdc>
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
   518c8:	2029 0010      	movel %a1@(16),%d0                          
      if ( snapshot > last_snapshot ) {                               
   518cc:	b481           	cmpl %d1,%d2                                
   518ce:	6410           	bccs 518e0 <_Timer_server_Schedule_operation_method+0xd4>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
   518d0:	2801           	movel %d1,%d4                               
   518d2:	9882           	subl %d2,%d4                                
        if (delta_interval > delta) {                                 
   518d4:	b880           	cmpl %d0,%d4                                
   518d6:	6504           	bcss 518dc <_Timer_server_Schedule_operation_method+0xd0>
   518d8:	4280           	clrl %d0                                    <== NOT EXECUTED
   518da:	6008           	bras 518e4 <_Timer_server_Schedule_operation_method+0xd8><== NOT EXECUTED
          delta_interval -= delta;                                    
   518dc:	9084           	subl %d4,%d0                                
   518de:	6004           	bras 518e4 <_Timer_server_Schedule_operation_method+0xd8>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
   518e0:	d082           	addl %d2,%d0                                
        delta_interval += delta;                                      
   518e2:	9081           	subl %d1,%d0                                
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   518e4:	2340 0010      	movel %d0,%a1@(16)                          
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
   518e8:	2541 0074      	movel %d1,%a2@(116)                         
    _ISR_Enable( level );                                             
   518ec:	46c3           	movew %d3,%sr                               
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   518ee:	4868 0010      	pea %a0@(16)                                
   518f2:	486a 0068      	pea %a2@(104)                               
   518f6:	4eb9 0005 50e4 	jsr 550e4 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   518fc:	508f           	addql #8,%sp                                
   518fe:	102a 007c      	moveb %a2@(124),%d0                         
   51902:	6608           	bnes 5190c <_Timer_server_Schedule_operation_method+0x100>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
   51904:	2f0a           	movel %a2,%sp@-                             
   51906:	4eba fcd8      	jsr %pc@(515e0 <_Timer_server_Reset_tod_system_watchdog>)
   5190a:	588f           	addql #4,%sp                                
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
  }                                                                   
}                                                                     
   5190c:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   51912:	4e5e           	unlk %fp                                    
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
   51914:	4ef9 0005 3ec6 	jmp 53ec6 <_Thread_Enable_dispatch>         
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   5191a:	202a 0078      	movel %a2@(120),%d0                         <== NOT EXECUTED
   5191e:	2d48 000c      	movel %a0,%fp@(12)                          <== NOT EXECUTED
  }                                                                   
}                                                                     
   51922:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                <== NOT EXECUTED
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   51928:	2d40 0008      	movel %d0,%fp@(8)                           <== NOT EXECUTED
  }                                                                   
}                                                                     
   5192c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   5192e:	4ef9 0005 1f80 	jmp 51f80 <_Chain_Append>                   <== NOT EXECUTED
                                                                      
00071008 <_Timespec_Greater_than>:                                    
                                                                      
bool _Timespec_Greater_than(                                          
  const struct timespec *lhs,                                         
  const struct timespec *rhs                                          
)                                                                     
{                                                                     
   71008:	4e56 0000      	linkw %fp,#0                                
   7100c:	226e 0008      	moveal %fp@(8),%a1                          
   71010:	206e 000c      	moveal %fp@(12),%a0                         
  if ( lhs->tv_sec > rhs->tv_sec )                                    
   71014:	2211           	movel %a1@,%d1                              
   71016:	2010           	movel %a0@,%d0                              
   71018:	b081           	cmpl %d1,%d0                                
   7101a:	6c04           	bges 71020 <_Timespec_Greater_than+0x18>    
   7101c:	7001           	moveq #1,%d0                                
   7101e:	6014           	bras 71034 <_Timespec_Greater_than+0x2c>    
    return true;                                                      
                                                                      
  if ( lhs->tv_sec < rhs->tv_sec )                                    
   71020:	b081           	cmpl %d1,%d0                                
   71022:	6f04           	bles 71028 <_Timespec_Greater_than+0x20>    
   71024:	4200           	clrb %d0                                    <== NOT EXECUTED
   71026:	600c           	bras 71034 <_Timespec_Greater_than+0x2c>    <== NOT EXECUTED
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Greater_than(                                          
   71028:	2068 0004      	moveal %a0@(4),%a0                          
   7102c:	b1e9 0004      	cmpal %a1@(4),%a0                           
   71030:	5dc0           	slt %d0                                     
   71032:	4480           	negl %d0                                    
  /* ASSERT: lhs->tv_sec == rhs->tv_sec */                            
  if ( lhs->tv_nsec > rhs->tv_nsec )                                  
    return true;                                                      
                                                                      
  return false;                                                       
}                                                                     
   71034:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
000479f4 <_User_extensions_Thread_exitted>:                           
                                                                      
void _User_extensions_Thread_exitted (                                
  Thread_Control *executing                                           
)                                                                     
{                                                                     
   479f4:	4e56 0000      	linkw %fp,#0                                
   479f8:	2f0a           	movel %a2,%sp@-                             
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
   479fa:	2479 0005 bc0e 	moveal 5bc0e <_User_extensions_List+0x8>,%a2
}                                                                     
                                                                      
void _User_extensions_Thread_exitted (                                
  Thread_Control *executing                                           
)                                                                     
{                                                                     
   47a00:	2f02           	movel %d2,%sp@-                             
   47a02:	242e 0008      	movel %fp@(8),%d2                           
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
   47a06:	6012           	bras 47a1a <_User_extensions_Thread_exitted+0x26>
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_exitted != NULL )             
   47a08:	206a 002c      	moveal %a2@(44),%a0                         
   47a0c:	4a88           	tstl %a0                                    
   47a0e:	6706           	beqs 47a16 <_User_extensions_Thread_exitted+0x22>
      (*the_extension->Callouts.thread_exitted)( executing );         
   47a10:	2f02           	movel %d2,%sp@-                             
   47a12:	4e90           	jsr %a0@                                    
   47a14:	588f           	addql #4,%sp                                <== NOT EXECUTED
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
   47a16:	246a 0004      	moveal %a2@(4),%a2                          
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
   47a1a:	b5fc 0005 bc06 	cmpal #375814,%a2                           
   47a20:	66e6           	bnes 47a08 <_User_extensions_Thread_exitted+0x14>
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_exitted != NULL )             
      (*the_extension->Callouts.thread_exitted)( executing );         
  }                                                                   
}                                                                     
   47a22:	242e fff8      	movel %fp@(-8),%d2                          
   47a26:	246e fffc      	moveal %fp@(-4),%a2                         
   47a2a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00046d58 <rtems_io_register_driver>:                                  
rtems_status_code rtems_io_register_driver(                           
  rtems_device_major_number         major,                            
  const rtems_driver_address_table *driver_table,                     
  rtems_device_major_number        *registered_major                  
)                                                                     
{                                                                     
   46d58:	4e56 0000      	linkw %fp,#0                                
   46d5c:	206e 000c      	moveal %fp@(12),%a0                         
   46d60:	2f0a           	movel %a2,%sp@-                             
   46d62:	226e 0010      	moveal %fp@(16),%a1                         
   46d66:	2f02           	movel %d2,%sp@-                             
   46d68:	242e 0008      	movel %fp@(8),%d2                           
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
   46d6c:	2039 0006 1026 	movel 61026 <_IO_Number_of_drivers>,%d0     
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
   46d72:	2239 0006 0e7a 	movel 60e7a <_ISR_Nest_level>,%d1           
   46d78:	6706           	beqs 46d80 <rtems_io_register_driver+0x28>  
   46d7a:	7012           	moveq #18,%d0                               
   46d7c:	6000 00d6      	braw 46e54 <rtems_io_register_driver+0xfc>  
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
   46d80:	4a89           	tstl %a1                                    
   46d82:	6700 00ce      	beqw 46e52 <rtems_io_register_driver+0xfa>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
   46d86:	2280           	movel %d0,%a1@                              
                                                                      
  if ( driver_table == NULL )                                         
   46d88:	4a88           	tstl %a0                                    
   46d8a:	6700 00c6      	beqw 46e52 <rtems_io_register_driver+0xfa>  
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46d8e:	4a90           	tstl %a0@                                   
   46d90:	6600 00ce      	bnew 46e60 <rtems_io_register_driver+0x108> 
   46d94:	4aa8 0004      	tstl %a0@(4)                                
   46d98:	6600 00c6      	bnew 46e60 <rtems_io_register_driver+0x108> 
   46d9c:	6000 00b4      	braw 46e52 <rtems_io_register_driver+0xfa>  
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46da0:	2039 0006 0de0 	movel 60de0 <_Thread_Dispatch_disable_level>,%d0
   46da6:	5280           	addql #1,%d0                                
   46da8:	23c0 0006 0de0 	movel %d0,60de0 <_Thread_Dispatch_disable_level>
  if ( major >= major_limit )                                         
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
   46dae:	4a82           	tstl %d2                                    
   46db0:	662c           	bnes 46dde <rtems_io_register_driver+0x86>  
                                                                      
static rtems_status_code rtems_io_obtain_major_number(                
  rtems_device_major_number *major                                    
)                                                                     
{                                                                     
  rtems_device_major_number n = _IO_Number_of_drivers;                
   46db2:	2039 0006 1026 	movel 61026 <_IO_Number_of_drivers>,%d0     
   46db8:	2479 0006 102a 	moveal 6102a <_IO_Driver_address_table>,%a2 
   46dbe:	6010           	bras 46dd0 <rtems_io_register_driver+0x78>  
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46dc0:	4a92           	tstl %a2@                                   
   46dc2:	6600 00a6      	bnew 46e6a <rtems_io_register_driver+0x112> 
   46dc6:	4aaa 0004      	tstl %a2@(4)                                
   46dca:	6600 009e      	bnew 46e6a <rtems_io_register_driver+0x112> 
   46dce:	6004           	bras 46dd4 <rtems_io_register_driver+0x7c>  
  rtems_device_major_number n = _IO_Number_of_drivers;                
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
   46dd0:	b082           	cmpl %d2,%d0                                
   46dd2:	62ec           	bhis 46dc0 <rtems_io_register_driver+0x68>  
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
   46dd4:	2282           	movel %d2,%a1@                              
                                                                      
  if ( m != n )                                                       
   46dd6:	b082           	cmpl %d2,%d0                                
   46dd8:	6634           	bnes 46e0e <rtems_io_register_driver+0xb6>  
   46dda:	6000 0098      	braw 46e74 <rtems_io_register_driver+0x11c> 
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
   46dde:	2202           	movel %d2,%d1                               
   46de0:	2002           	movel %d2,%d0                               
   46de2:	e789           	lsll #3,%d1                                 
   46de4:	eb88           	lsll #5,%d0                                 
   46de6:	2479 0006 102a 	moveal 6102a <_IO_Driver_address_table>,%a2 
   46dec:	9081           	subl %d1,%d0                                
   46dee:	d5c0           	addal %d0,%a2                               
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46df0:	4a92           	tstl %a2@                                   
   46df2:	660e           	bnes 46e02 <rtems_io_register_driver+0xaa>  
   46df4:	4aaa 0004      	tstl %a2@(4)                                
   46df8:	57c0           	seq %d0                                     
   46dfa:	49c0           	extbl %d0                                   
   46dfc:	4480           	negl %d0                                    
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
                                                                      
    if ( !rtems_io_is_empty_table( table ) ) {                        
   46dfe:	4a00           	tstb %d0                                    
   46e00:	660a           	bnes 46e0c <rtems_io_register_driver+0xb4>  
      _Thread_Enable_dispatch();                                      
   46e02:	4eb9 0004 8606 	jsr 48606 <_Thread_Enable_dispatch>         
   46e08:	700c           	moveq #12,%d0                               
      return RTEMS_RESOURCE_IN_USE;                                   
   46e0a:	6048           	bras 46e54 <rtems_io_register_driver+0xfc>  
    }                                                                 
                                                                      
    *registered_major = major;                                        
   46e0c:	2282           	movel %d2,%a1@                              
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
   46e0e:	4878 0018      	pea 18 <OPER2+0x4>                          
   46e12:	2202           	movel %d2,%d1                               
   46e14:	2002           	movel %d2,%d0                               
   46e16:	e789           	lsll #3,%d1                                 
   46e18:	eb88           	lsll #5,%d0                                 
   46e1a:	2f08           	movel %a0,%sp@-                             
   46e1c:	9081           	subl %d1,%d0                                
   46e1e:	d0b9 0006 102a 	addl 6102a <_IO_Driver_address_table>,%d0   
   46e24:	2f00           	movel %d0,%sp@-                             
   46e26:	4eb9 0005 0c28 	jsr 50c28 <memcpy>                          
                                                                      
  _Thread_Enable_dispatch();                                          
   46e2c:	4eb9 0004 8606 	jsr 48606 <_Thread_Enable_dispatch>         
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
   46e32:	246e fffc      	moveal %fp@(-4),%a2                         
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e36:	4fef 000c      	lea %sp@(12),%sp                            
   46e3a:	2d42 0008      	movel %d2,%fp@(8)                           
}                                                                     
   46e3e:	242e fff8      	movel %fp@(-8),%d2                          
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e42:	42ae 0010      	clrl %fp@(16)                               
   46e46:	42ae 000c      	clrl %fp@(12)                               
}                                                                     
   46e4a:	4e5e           	unlk %fp                                    
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e4c:	4ef9 0004 e11c 	jmp 4e11c <rtems_io_initialize>             
   46e52:	7009           	moveq #9,%d0                                
}                                                                     
   46e54:	242e fff8      	movel %fp@(-8),%d2                          
   46e58:	246e fffc      	moveal %fp@(-4),%a2                         
   46e5c:	4e5e           	unlk %fp                                    
   46e5e:	4e75           	rts                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
   46e60:	b082           	cmpl %d2,%d0                                
   46e62:	6200 ff3c      	bhiw 46da0 <rtems_io_register_driver+0x48>  
   46e66:	700a           	moveq #10,%d0                               
   46e68:	60ea           	bras 46e54 <rtems_io_register_driver+0xfc>  
  rtems_device_major_number n = _IO_Number_of_drivers;                
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
   46e6a:	5282           	addql #1,%d2                                
   46e6c:	45ea 0018      	lea %a2@(24),%a2                            
   46e70:	6000 ff5e      	braw 46dd0 <rtems_io_register_driver+0x78>  
                                                                      
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
   46e74:	4eb9 0004 8606 	jsr 48606 <_Thread_Enable_dispatch>         
   46e7a:	7005           	moveq #5,%d0                                
      return sc;                                                      
   46e7c:	60d6           	bras 46e54 <rtems_io_register_driver+0xfc>  
	...                                                                  
                                                                      
0004f390 <rtems_partition_return_buffer>:                             
                                                                      
rtems_status_code rtems_partition_return_buffer(                      
  rtems_id  id,                                                       
  void     *buffer                                                    
)                                                                     
{                                                                     
   4f390:	4e56 fffc      	linkw %fp,#-4                               
   4f394:	2f0a           	movel %a2,%sp@-                             
   4f396:	2f02           	movel %d2,%sp@-                             
RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get (              
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
   4f398:	486e fffc      	pea %fp@(-4)                                
   4f39c:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4f3a0:	4879 0007 3f18 	pea 73f18 <_Partition_Information>          
   4f3a6:	242e 000c      	movel %fp@(12),%d2                          
   4f3aa:	4eb9 0005 366c 	jsr 5366c <_Objects_Get>                    
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
   4f3b0:	4fef 000c      	lea %sp@(12),%sp                            
   4f3b4:	2440           	moveal %d0,%a2                              
   4f3b6:	4aae fffc      	tstl %fp@(-4)                               
   4f3ba:	6704           	beqs 4f3c0 <rtems_partition_return_buffer+0x30>
   4f3bc:	7004           	moveq #4,%d0                                
   4f3be:	603c           	bras 4f3fc <rtems_partition_return_buffer+0x6c>
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
   4f3c0:	202a 0010      	movel %a2@(16),%d0                          
  ending   = _Addresses_Add_offset( starting, the_partition->length );
   4f3c4:	222a 0014      	movel %a2@(20),%d1                          
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   4f3c8:	b082           	cmpl %d2,%d0                                
   4f3ca:	623c           	bhis 4f408 <rtems_partition_return_buffer+0x78>
   4f3cc:	d280           	addl %d0,%d1                                
   4f3ce:	b282           	cmpl %d2,%d1                                
   4f3d0:	6536           	bcss 4f408 <rtems_partition_return_buffer+0x78>
                                                                      
  return (                                                            
   4f3d2:	2202           	movel %d2,%d1                               
   4f3d4:	9280           	subl %d0,%d1                                
   4f3d6:	2001           	movel %d1,%d0                               
   4f3d8:	4c6a 0001 0018 	remul %a2@(24),%d1,%d0                      
   4f3de:	4a81           	tstl %d1                                    
   4f3e0:	6626           	bnes 4f408 <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void _Partition_Free_buffer (                    
  Partition_Control *the_partition,                                   
  Chain_Node        *the_buffer                                       
)                                                                     
{                                                                     
  _Chain_Append( &the_partition->Memory, the_buffer );                
   4f3e2:	2f02           	movel %d2,%sp@-                             
   4f3e4:	486a 0024      	pea %a2@(36)                                
   4f3e8:	4eb9 0005 1f80 	jsr 51f80 <_Chain_Append>                   
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
   4f3ee:	53aa 0020      	subql #1,%a2@(32)                           
        _Thread_Enable_dispatch();                                    
   4f3f2:	4eb9 0005 3ec6 	jsr 53ec6 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   4f3f8:	508f           	addql #8,%sp                                
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
   4f3fa:	4280           	clrl %d0                                    
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   4f3fc:	242e fff4      	movel %fp@(-12),%d2                         
   4f400:	246e fff8      	moveal %fp@(-8),%a2                         
   4f404:	4e5e           	unlk %fp                                    
   4f406:	4e75           	rts                                         
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
   4f408:	4eb9 0005 3ec6 	jsr 53ec6 <_Thread_Enable_dispatch>         
   4f40e:	7009           	moveq #9,%d0                                
      return RTEMS_INVALID_ADDRESS;                                   
   4f410:	60ea           	bras 4f3fc <rtems_partition_return_buffer+0x6c>
	...                                                                  
                                                                      
0007085c <rtems_rate_monotonic_period>:                               
                                                                      
rtems_status_code rtems_rate_monotonic_period(                        
  rtems_id       id,                                                  
  rtems_interval length                                               
)                                                                     
{                                                                     
   7085c:	4e56 ffec      	linkw %fp,#-20                              
   70860:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   70864:	486e fffc      	pea %fp@(-4)                                
   70868:	262e 0008      	movel %fp@(8),%d3                           
   7086c:	2f03           	movel %d3,%sp@-                             
   7086e:	4879 0009 ac86 	pea 9ac86 <_Rate_monotonic_Information>     
   70874:	242e 000c      	movel %fp@(12),%d2                          
   70878:	4eb9 0004 a870 	jsr 4a870 <_Objects_Get>                    
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
   7087e:	4fef 000c      	lea %sp@(12),%sp                            
   70882:	2440           	moveal %d0,%a2                              
   70884:	4aae fffc      	tstl %fp@(-4)                               
   70888:	6600 0138      	bnew 709c2 <rtems_rate_monotonic_period+0x166>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
   7088c:	2039 0009 a916 	movel 9a916 <_Thread_Executing>,%d0         
   70892:	b0aa 0040      	cmpl %a2@(64),%d0                           
   70896:	670c           	beqs 708a4 <rtems_rate_monotonic_period+0x48>
        _Thread_Enable_dispatch();                                    
   70898:	4eb9 0004 b106 	jsr 4b106 <_Thread_Enable_dispatch>         
   7089e:	7817           	moveq #23,%d4                               
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
   708a0:	6000 0122      	braw 709c4 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
   708a4:	4a82           	tstl %d2                                    
   708a6:	6622           	bnes 708ca <rtems_rate_monotonic_period+0x6e>
        switch ( the_period->state ) {                                
   708a8:	202a 0038      	movel %a2@(56),%d0                          
   708ac:	7204           	moveq #4,%d1                                
   708ae:	b280           	cmpl %d0,%d1                                
   708b0:	6404           	bccs 708b6 <rtems_rate_monotonic_period+0x5a>
   708b2:	4284           	clrl %d4                                    <== NOT EXECUTED
   708b4:	600a           	bras 708c0 <rtems_rate_monotonic_period+0x64><== NOT EXECUTED
   708b6:	41f9 0009 4904 	lea 94904 <CSWTCH.43>,%a0                   
   708bc:	2830 0c00      	movel %a0@(00000000,%d0:l:4),%d4            
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
   708c0:	4eb9 0004 b106 	jsr 4b106 <_Thread_Enable_dispatch>         
        return( return_value );                                       
   708c6:	6000 00fc      	braw 709c4 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
   708ca:	203c 0000 0700 	movel #1792,%d0                             
   708d0:	40c4           	movew %sr,%d4                               
   708d2:	8084           	orl %d4,%d0                                 
   708d4:	46c0           	movew %d0,%sr                               
      switch ( the_period->state ) {                                  
   708d6:	202a 0038      	movel %a2@(56),%d0                          
   708da:	7202           	moveq #2,%d1                                
   708dc:	b280           	cmpl %d0,%d1                                
   708de:	6740           	beqs 70920 <rtems_rate_monotonic_period+0xc4>
   708e0:	123c 0004      	moveb #4,%d1                                
   708e4:	b280           	cmpl %d0,%d1                                
   708e6:	6700 00a4      	beqw 7098c <rtems_rate_monotonic_period+0x130>
   708ea:	4a80           	tstl %d0                                    
   708ec:	6600 00d4      	bnew 709c2 <rtems_rate_monotonic_period+0x166>
        case RATE_MONOTONIC_INACTIVE: {                               
                                                                      
          _ISR_Enable( level );                                       
   708f0:	46c4           	movew %d4,%sr                               
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   708f2:	2f0a           	movel %a2,%sp@-                             
          );                                                          
                                                                      
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   708f4:	4284           	clrl %d4                                    
          _ISR_Enable( level );                                       
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   708f6:	4eb9 0007 0648 	jsr 70648 <_Rate_monotonic_Initiate_statistics>
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   708fc:	203c 0007 09d0 	movel #461264,%d0                           
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   70902:	7202           	moveq #2,%d1                                
   70904:	2540 002c      	movel %d0,%a2@(44)                          
  the_watchdog->id        = id;                                       
   70908:	2543 0030      	movel %d3,%a2@(48)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   7090c:	2542 001c      	movel %d2,%a2@(28)                          
   70910:	2541 0038      	movel %d1,%a2@(56)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   70914:	42aa 0018      	clrl %a2@(24)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   70918:	42aa 0034      	clrl %a2@(52)                               
   7091c:	6000 0084      	braw 709a2 <rtems_rate_monotonic_period+0x146>
        case RATE_MONOTONIC_ACTIVE:                                   
                                                                      
          /*                                                          
           *  Update statistics from the concluding period.           
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   70920:	2f0a           	movel %a2,%sp@-                             
   70922:	4eb9 0007 0768 	jsr 70768 <_Rate_monotonic_Update_statistics>
           *  This tells the _Rate_monotonic_Timeout that this task is
           *  in the process of blocking on the period and that we    
           *  may be changing the length of the next period.          
           */                                                         
          the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;       
          the_period->next_length = length;                           
   70928:	2542 003c      	movel %d2,%a2@(60)                          
          /*                                                          
           *  This tells the _Rate_monotonic_Timeout that this task is
           *  in the process of blocking on the period and that we    
           *  may be changing the length of the next period.          
           */                                                         
          the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;       
   7092c:	7401           	moveq #1,%d2                                
   7092e:	2542 0038      	movel %d2,%a2@(56)                          
          the_period->next_length = length;                           
                                                                      
          _ISR_Enable( level );                                       
   70932:	46c4           	movew %d4,%sr                               
                                                                      
          _Thread_Executing->Wait.id = the_period->Object.id;         
   70934:	2079 0009 a916 	moveal 9a916 <_Thread_Executing>,%a0        
   7093a:	216a 0008 0020 	movel %a2@(8),%a0@(32)                      
          _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   70940:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   70944:	2f08           	movel %a0,%sp@-                             
   70946:	4eb9 0004 b90c 	jsr 4b90c <_Thread_Set_state>               
                                                                      
          /*                                                          
           *  Did the watchdog timer expire while we were actually blocking
           *  on it?                                                  
           */                                                         
          _ISR_Disable( level );                                      
   7094c:	203c 0000 0700 	movel #1792,%d0                             
   70952:	40c1           	movew %sr,%d1                               
   70954:	8081           	orl %d1,%d0                                 
   70956:	46c0           	movew %d0,%sr                               
            local_state = the_period->state;                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   70958:	143c 0002      	moveb #2,%d2                                
          /*                                                          
           *  Did the watchdog timer expire while we were actually blocking
           *  on it?                                                  
           */                                                         
          _ISR_Disable( level );                                      
            local_state = the_period->state;                          
   7095c:	202a 0038      	movel %a2@(56),%d0                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   70960:	2542 0038      	movel %d2,%a2@(56)                          
          _ISR_Enable( level );                                       
   70964:	46c1           	movew %d1,%sr                               
                                                                      
          /*                                                          
           *  If it did, then we want to unblock ourself and continue as
           *  if nothing happen.  The period was reset in the timeout routine.
           */                                                         
          if ( local_state == RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING ) 
   70966:	7203           	moveq #3,%d1                                
   70968:	4fef 000c      	lea %sp@(12),%sp                            
   7096c:	b280           	cmpl %d0,%d1                                
   7096e:	6612           	bnes 70982 <rtems_rate_monotonic_period+0x126>
            _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   70970:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   70974:	2f39 0009 a916 	movel 9a916 <_Thread_Executing>,%sp@-       
   7097a:	4eb9 0004 ad4c 	jsr 4ad4c <_Thread_Clear_state>             
   70980:	508f           	addql #8,%sp                                
                                                                      
          _Thread_Enable_dispatch();                                  
   70982:	4eb9 0004 b106 	jsr 4b106 <_Thread_Enable_dispatch>         
   70988:	4284           	clrl %d4                                    
          return RTEMS_SUCCESSFUL;                                    
   7098a:	6038           	bras 709c4 <rtems_rate_monotonic_period+0x168>
        case RATE_MONOTONIC_EXPIRED:                                  
                                                                      
          /*                                                          
           *  Update statistics from the concluding period            
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   7098c:	2f0a           	movel %a2,%sp@-                             
   7098e:	4eb9 0007 0768 	jsr 70768 <_Rate_monotonic_Update_statistics>
                                                                      
          _ISR_Enable( level );                                       
   70994:	46c4           	movew %d4,%sr                               
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   70996:	7002           	moveq #2,%d0                                
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   70998:	7806           	moveq #6,%d4                                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   7099a:	2542 001c      	movel %d2,%a2@(28)                          
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
                                                                      
          _ISR_Enable( level );                                       
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   7099e:	2540 0038      	movel %d0,%a2@(56)                          
          the_period->next_length = length;                           
   709a2:	2542 003c      	movel %d2,%a2@(60)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   709a6:	486a 0010      	pea %a2@(16)                                
   709aa:	4879 0009 a934 	pea 9a934 <_Watchdog_Ticks_chain>           
   709b0:	4eb9 0004 c018 	jsr 4c018 <_Watchdog_Insert>                
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   709b6:	4eb9 0004 b106 	jsr 4b106 <_Thread_Enable_dispatch>         
          return RTEMS_TIMEOUT;                                       
   709bc:	4fef 000c      	lea %sp@(12),%sp                            
   709c0:	6002           	bras 709c4 <rtems_rate_monotonic_period+0x168>
   709c2:	7804           	moveq #4,%d4                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   709c4:	2004           	movel %d4,%d0                               
   709c6:	4cee 041c ffec 	moveml %fp@(-20),%d2-%d4/%a2                
   709cc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
0004ff88 <rtems_region_get_segment_size>:                             
rtems_status_code rtems_region_get_segment_size(                      
  rtems_id   id,                                                      
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
   4ff88:	4e56 fffc      	linkw %fp,#-4                               
   4ff8c:	2f03           	movel %d3,%sp@-                             
   4ff8e:	262e 0010      	movel %fp@(16),%d3                          
   4ff92:	2f02           	movel %d2,%sp@-                             
   4ff94:	242e 000c      	movel %fp@(12),%d2                          
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
   4ff98:	6766           	beqs 50000 <rtems_region_get_segment_size+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
   4ff9a:	4a83           	tstl %d3                                    
   4ff9c:	6762           	beqs 50000 <rtems_region_get_segment_size+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
   4ff9e:	2f39 0007 4136 	movel 74136 <_RTEMS_Allocator_Mutex>,%sp@-  
   4ffa4:	4eb9 0005 1eec 	jsr 51eec <_API_Mutex_Lock>                 
   4ffaa:	486e fffc      	pea %fp@(-4)                                
   4ffae:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4ffb2:	4879 0007 3f88 	pea 73f88 <_Region_Information>             
   4ffb8:	4eb9 0005 3634 	jsr 53634 <_Objects_Get_no_protection>      
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
   4ffbe:	222e fffc      	movel %fp@(-4),%d1                          
   4ffc2:	4fef 0010      	lea %sp@(16),%sp                            
   4ffc6:	670a           	beqs 4ffd2 <rtems_region_get_segment_size+0x4a>
   4ffc8:	7001           	moveq #1,%d0                                
   4ffca:	b081           	cmpl %d1,%d0                                
   4ffcc:	6620           	bnes 4ffee <rtems_region_get_segment_size+0x66>
   4ffce:	7404           	moveq #4,%d2                                
   4ffd0:	601e           	bras 4fff0 <rtems_region_get_segment_size+0x68>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
   4ffd2:	2f03           	movel %d3,%sp@-                             
   4ffd4:	2040           	moveal %d0,%a0                              
   4ffd6:	2f02           	movel %d2,%sp@-                             
   4ffd8:	4868 0068      	pea %a0@(104)                               
   4ffdc:	4eb9 0005 30b4 	jsr 530b4 <_Heap_Size_of_alloc_area>        
   4ffe2:	4fef 000c      	lea %sp@(12),%sp                            
   4ffe6:	4a00           	tstb %d0                                    
   4ffe8:	6604           	bnes 4ffee <rtems_region_get_segment_size+0x66>
   4ffea:	7409           	moveq #9,%d2                                <== NOT EXECUTED
   4ffec:	6002           	bras 4fff0 <rtems_region_get_segment_size+0x68><== NOT EXECUTED
   4ffee:	4282           	clrl %d2                                    
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
   4fff0:	2f39 0007 4136 	movel 74136 <_RTEMS_Allocator_Mutex>,%sp@-  
   4fff6:	4eb9 0005 1f4c 	jsr 51f4c <_API_Mutex_Unlock>               
  return return_status;                                               
   4fffc:	588f           	addql #4,%sp                                
   4fffe:	6002           	bras 50002 <rtems_region_get_segment_size+0x7a>
   50000:	7409           	moveq #9,%d2                                
}                                                                     
   50002:	2002           	movel %d2,%d0                               
   50004:	242e fff4      	movel %fp@(-12),%d2                         
   50008:	262e fff8      	movel %fp@(-8),%d3                          
   5000c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
0005132c <rtems_timer_server_fire_when>:                              
  rtems_id                           id,                              
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
   5132c:	4e56 ffe8      	linkw %fp,#-24                              
   51330:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   51334:	282e 0008      	movel %fp@(8),%d4                           
   51338:	262e 000c      	movel %fp@(12),%d3                          
   5133c:	242e 0010      	movel %fp@(16),%d2                          
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
   51340:	2679 0007 42de 	moveal 742de <_Timer_server>,%a3            
                                                                      
  if ( !timer_server )                                                
   51346:	4a8b           	tstl %a3                                    
   51348:	6606           	bnes 51350 <rtems_timer_server_fire_when+0x24>
   5134a:	700e           	moveq #14,%d0                               
   5134c:	6000 00a4      	braw 513f2 <rtems_timer_server_fire_when+0xc6>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   51350:	4a39 0007 4098 	tstb 74098 <_TOD_Is_set>                    
   51356:	6606           	bnes 5135e <rtems_timer_server_fire_when+0x32>
   51358:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   5135a:	6000 0096      	braw 513f2 <rtems_timer_server_fire_when+0xc6><== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
   5135e:	4a82           	tstl %d2                                    
   51360:	6606           	bnes 51368 <rtems_timer_server_fire_when+0x3c>
   51362:	7009           	moveq #9,%d0                                
   51364:	6000 008c      	braw 513f2 <rtems_timer_server_fire_when+0xc6>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
   51368:	2f03           	movel %d3,%sp@-                             
   5136a:	4eb9 0004 e7a8 	jsr 4e7a8 <_TOD_Validate>                   
   51370:	588f           	addql #4,%sp                                
   51372:	4a00           	tstb %d0                                    
   51374:	677a           	beqs 513f0 <rtems_timer_server_fire_when+0xc4>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   51376:	2f03           	movel %d3,%sp@-                             
   51378:	4eb9 0004 e708 	jsr 4e708 <_TOD_To_seconds>                 
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   5137e:	588f           	addql #4,%sp                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   51380:	2600           	movel %d0,%d3                               
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   51382:	b0b9 0007 4116 	cmpl 74116 <_TOD_Now>,%d0                   
   51388:	6366           	blss 513f0 <rtems_timer_server_fire_when+0xc4>
   5138a:	486e fffc      	pea %fp@(-4)                                
   5138e:	2f04           	movel %d4,%sp@-                             
   51390:	4879 0007 42a6 	pea 742a6 <_Timer_Information>              
   51396:	4eb9 0005 366c 	jsr 5366c <_Objects_Get>                    
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   5139c:	4fef 000c      	lea %sp@(12),%sp                            
   513a0:	2440           	moveal %d0,%a2                              
   513a2:	4aae fffc      	tstl %fp@(-4)                               
   513a6:	6704           	beqs 513ac <rtems_timer_server_fire_when+0x80>
   513a8:	7004           	moveq #4,%d0                                
   513aa:	6046           	bras 513f2 <rtems_timer_server_fire_when+0xc6>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   513ac:	486a 0010      	pea %a2@(16)                                
   513b0:	4eb9 0005 5200 	jsr 55200 <_Watchdog_Remove>                
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   513b6:	256e 0014 0034 	movel %fp@(20),%a2@(52)                     
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
   513bc:	7003           	moveq #3,%d0                                
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   513be:	2544 0030      	movel %d4,%a2@(48)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   513c2:	96b9 0007 4116 	subl 74116 <_TOD_Now>,%d3                   
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
   513c8:	2540 0038      	movel %d0,%a2@(56)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   513cc:	2543 001c      	movel %d3,%a2@(28)                          
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   513d0:	2542 002c      	movel %d2,%a2@(44)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   513d4:	42aa 0018      	clrl %a2@(24)                               
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
   513d8:	2f0a           	movel %a2,%sp@-                             
   513da:	2f0b           	movel %a3,%sp@-                             
   513dc:	206b 0004      	moveal %a3@(4),%a0                          
   513e0:	4e90           	jsr %a0@                                    
                                                                      
      _Thread_Enable_dispatch();                                      
   513e2:	4eb9 0005 3ec6 	jsr 53ec6 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   513e8:	4fef 000c      	lea %sp@(12),%sp                            
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
                                                                      
      _Thread_Enable_dispatch();                                      
   513ec:	4280           	clrl %d0                                    
      return RTEMS_SUCCESSFUL;                                        
   513ee:	6002           	bras 513f2 <rtems_timer_server_fire_when+0xc6>
   513f0:	7014           	moveq #20,%d0                               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   513f2:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            
   513f8:	4e5e           	unlk %fp                                    <== NOT EXECUTED