Annotated Report

0004589c <_API_Mutex_Unlock>:                                         
#include <rtems/score/apimutex.h>                                     
                                                                      
void _API_Mutex_Unlock(                                               
  API_Mutex_Control *the_mutex                                        
)                                                                     
{                                                                     
   4589c:	4e56 0000      	linkw %fp,#0                                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   458a0:	2039 0005 cd08 	movel 5cd08 <_Thread_Dispatch_disable_level>,%d0
   458a6:	5280           	addql #1,%d0                                
   458a8:	206e 0008      	moveal %fp@(8),%a0                          
   458ac:	23c0 0005 cd08 	movel %d0,5cd08 <_Thread_Dispatch_disable_level>
  _Thread_Disable_dispatch();                                         
    _CORE_mutex_Surrender(                                            
   458b2:	42a7           	clrl %sp@-                                  
   458b4:	2f28 0008      	movel %a0@(8),%sp@-                         
   458b8:	4868 0010      	pea %a0@(16)                                
   458bc:	4eb9 0004 5ac8 	jsr 45ac8 <_CORE_mutex_Surrender>           
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   458c2:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   458c6:	4e5e           	unlk %fp                                    
    _CORE_mutex_Surrender(                                            
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   458c8:	4ef9 0004 6ce2 	jmp 46ce2 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      
0004bfe8 <_CORE_barrier_Wait>:                                        
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
   4bfe8:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4bfee:	4e56 fff4      	linkw %fp,#-12                              
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
   4bff2:	2279 0005 cdc2 	moveal 5cdc2 <_Thread_Executing>,%a1        
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4bff8:	48d7 001c      	moveml %d2-%d4,%sp@                         
   4bffc:	242e 000c      	movel %fp@(12),%d2                          
   4c000:	262e 0014      	movel %fp@(20),%d3                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
   4c004:	42a9 0034      	clrl %a1@(52)                               
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4c008:	206e 0008      	moveal %fp@(8),%a0                          
   4c00c:	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 );                                              
   4c010:	40c1           	movew %sr,%d1                               
   4c012:	8081           	orl %d1,%d0                                 
   4c014:	46c0           	movew %d0,%sr                               
  the_barrier->number_of_waiting_threads++;                           
   4c016:	2028 0048      	movel %a0@(72),%d0                          
   4c01a:	5280           	addql #1,%d0                                
   4c01c:	2140 0048      	movel %d0,%a0@(72)                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
   4c020:	4aa8 0040      	tstl %a0@(64)                               
   4c024:	6626           	bnes 4c04c <_CORE_barrier_Wait+0x64>        
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
   4c026:	b0a8 0044      	cmpl %a0@(68),%d0                           
   4c02a:	6620           	bnes 4c04c <_CORE_barrier_Wait+0x64>        
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
   4c02c:	7001           	moveq #1,%d0                                
   4c02e:	2340 0034      	movel %d0,%a1@(52)                          
      _ISR_Enable( level );                                           
   4c032:	46c1           	movew %d1,%sr                               
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   4c034:	2d44 0010      	movel %d4,%fp@(16)                          
   4c038:	2d42 000c      	movel %d2,%fp@(12)                          
   4c03c:	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 );         
}                                                                     
   4c040:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4c044:	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 );
   4c046:	4ef9 0004 bfb4 	jmp 4bfb4 <_CORE_barrier_Release>           
   4c04c:	7001           	moveq #1,%d0                                
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
   4c04e:	2342 0020      	movel %d2,%a1@(32)                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
   4c052:	2348 0044      	movel %a0,%a1@(68)                          
   4c056:	2140 0030      	movel %d0,%a0@(48)                          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
   4c05a:	46c1           	movew %d1,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   4c05c:	2d43 000c      	movel %d3,%fp@(12)                          
   4c060:	203c 0004 7468 	movel #291944,%d0                           
   4c066:	2d48 0008      	movel %a0,%fp@(8)                           
   4c06a:	2d40 0010      	movel %d0,%fp@(16)                          
}                                                                     
   4c06e:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4c072:	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 );         
   4c074:	4ef9 0004 717c 	jmp 4717c <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      
00052088 <_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                    
)                                                                     
{                                                                     
   52088:	4e56 ffe0      	linkw %fp,#-32                              
   5208c:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   52090:	246e 0008      	moveal %fp@(8),%a2                          
   52094:	2a2e 000c      	movel %fp@(12),%d5                          
   52098:	262e 0010      	movel %fp@(16),%d3                          
   5209c:	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 ) {             
   520a0:	b6aa 004c      	cmpl %a2@(76),%d3                           
   520a4:	6304           	blss 520aa <_CORE_message_queue_Broadcast+0x22>
   520a6:	7001           	moveq #1,%d0                                <== NOT EXECUTED
   520a8:	6042           	bras 520ec <_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 ) {         
   520aa:	4aaa 0048      	tstl %a2@(72)                               
   520ae:	6610           	bnes 520c0 <_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))) {   
   520b0:	4282           	clrl %d2                                    
   520b2:	283c 0005 439c 	movel #344988,%d4                           
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   520b8:	4bf9 0005 a3f4 	lea 5a3f4 <memcpy>,%a5                      
   520be:	601a           	bras 520da <_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;                                                       
   520c0:	4294           	clrl %a4@                                   
   520c2:	6026           	bras 520ea <_CORE_message_queue_Broadcast+0x62>
   520c4:	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;                                          
   520c6:	5282           	addql #1,%d2                                
   520c8:	2f05           	movel %d5,%sp@-                             
   520ca:	2f2b 002c      	movel %a3@(44),%sp@-                        
   520ce:	4e95           	jsr %a5@                                    
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
   520d0:	206b 0028      	moveal %a3@(40),%a0                         
   520d4:	4fef 000c      	lea %sp@(12),%sp                            
   520d8:	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))) {   
   520da:	2f0a           	movel %a2,%sp@-                             
   520dc:	2044           	moveal %d4,%a0                              
   520de:	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 =                                                
   520e0:	588f           	addql #4,%sp                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   520e2:	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 =                                                
   520e4:	4a80           	tstl %d0                                    
   520e6:	66dc           	bnes 520c4 <_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;                                        
   520e8:	2882           	movel %d2,%a4@                              
   520ea:	4280           	clrl %d0                                    
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
   520ec:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   520f2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
0004dd08 <_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 );                                              
   4dd08:	223c 0000 0700 	movel #1792,%d1                             
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dd0e:	4e56 ffe0      	linkw %fp,#-32                              
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
   4dd12:	2079 0006 6396 	moveal 66396 <_Thread_Executing>,%a0        
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dd18:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4dd1c:	282e 000c      	movel %fp@(12),%d4                          
   4dd20:	242e 001c      	movel %fp@(28),%d2                          
   4dd24:	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; 
   4dd28:	42a8 0034      	clrl %a0@(52)                               
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4dd2c:	262e 0010      	movel %fp@(16),%d3                          
   4dd30:	226e 0014      	moveal %fp@(20),%a1                         
   4dd34:	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 );                                              
   4dd38:	40c0           	movew %sr,%d0                               
   4dd3a:	8280           	orl %d0,%d1                                 
   4dd3c:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4dd3e:	220a           	movel %a2,%d1                               
   4dd40:	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));                
   4dd46:	266a 0050      	moveal %a2@(80),%a3                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4dd4a:	b28b           	cmpl %a3,%d1                                
   4dd4c:	6700 00a6      	beqw 4ddf4 <_CORE_message_queue_Seize+0xec> 
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   4dd50:	2853           	moveal %a3@,%a4                             
  the_chain->first    = new_first;                                    
  new_first->previous = _Chain_Head(the_chain);                       
   4dd52:	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;                                    
   4dd56:	254c 0050      	movel %a4,%a2@(80)                          
  new_first->previous = _Chain_Head(the_chain);                       
   4dd5a:	294d 0004      	movel %a5,%a4@(4)                           
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   4dd5e:	4a8b           	tstl %a3                                    
   4dd60:	6700 0092      	beqw 4ddf4 <_CORE_message_queue_Seize+0xec> 
    the_message_queue->number_of_pending_messages -= 1;               
   4dd64:	53aa 0048      	subql #1,%a2@(72)                           
    _ISR_Enable( level );                                             
   4dd68:	46c0           	movew %d0,%sr                               
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count =                                   
   4dd6a:	2079 0006 6396 	moveal 66396 <_Thread_Executing>,%a0        
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
   4dd70:	22ab 000c      	movel %a3@(12),%a1@                         
    _Thread_Executing->Wait.count =                                   
      _CORE_message_queue_Get_message_priority( the_message );        
    _CORE_message_queue_Copy_buffer(                                  
      the_message->Contents.buffer,                                   
   4dd74:	240b           	movel %a3,%d2                               
   4dd76:	0682 0000 0010 	addil #16,%d2                               
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count =                                   
   4dd7c:	216b 0008 0024 	movel %a3@(8),%a0@(36)                      
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4dd82:	49f9 0005 55d0 	lea 555d0 <memcpy>,%a4                      
   4dd88:	2f11           	movel %a1@,%sp@-                            
   4dd8a:	2f02           	movel %d2,%sp@-                             
   4dd8c:	2f03           	movel %d3,%sp@-                             
   4dd8e:	4e94           	jsr %a4@                                    
       *  is not, then we can go ahead and free the buffer.           
       *                                                              
       *  NOTE: If we note that the queue was not full before this receive,
       *  then we can avoid this dequeue.                             
       */                                                             
      the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
   4dd90:	2f0a           	movel %a2,%sp@-                             
   4dd92:	4eb9 0004 f7b0 	jsr 4f7b0 <_Thread_queue_Dequeue>           
      if ( !the_thread ) {                                            
   4dd98:	4fef 0010      	lea %sp@(16),%sp                            
       *  is not, then we can go ahead and free the buffer.           
       *                                                              
       *  NOTE: If we note that the queue was not full before this receive,
       *  then we can avoid this dequeue.                             
       */                                                             
      the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
   4dd9c:	2040           	moveal %d0,%a0                              
      if ( !the_thread ) {                                            
   4dd9e:	4a80           	tstl %d0                                    
   4dda0:	661a           	bnes 4ddbc <_CORE_message_queue_Seize+0xb4> 
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 );
   4dda2:	45ea 0068      	lea %a2@(104),%a2                           
   4dda6:	2d4b 000c      	movel %a3,%fp@(12)                          
   4ddaa:	2d4a 0008      	movel %a2,%fp@(8)                           
  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 );   
}                                                                     
   4ddae:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4ddb4:	4e5e           	unlk %fp                                    
   4ddb6:	4ef9 0004 db88 	jmp 4db88 <_Chain_Append>                   
       */                                                             
      _CORE_message_queue_Set_message_priority(                       
        the_message,                                                  
        the_thread->Wait.count                                        
      );                                                              
      the_message->Contents.size = (size_t) the_thread->Wait.option;  
   4ddbc:	2028 0030      	movel %a0@(48),%d0                          
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
   4ddc0:	2768 0024 0008 	movel %a0@(36),%a3@(8)                      
   4ddc6:	2740 000c      	movel %d0,%a3@(12)                          
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4ddca:	2f00           	movel %d0,%sp@-                             
   4ddcc:	2f28 002c      	movel %a0@(44),%sp@-                        
   4ddd0:	2f02           	movel %d2,%sp@-                             
   4ddd2:	4e94           	jsr %a4@                                    
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
   4ddd4:	2d6b 0008 0010 	movel %a3@(8),%fp@(16)                      
   4ddda:	4fef 000c      	lea %sp@(12),%sp                            
   4ddde:	2d4b 000c      	movel %a3,%fp@(12)                          
   4dde2:	2d4a 0008      	movel %a2,%fp@(8)                           
  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 );   
}                                                                     
   4dde6:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4ddec:	4e5e           	unlk %fp                                    
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
   4ddee:	4ef9 0005 25f8 	jmp 525f8 <_CORE_message_queue_Insert_message>
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   4ddf4:	4a05           	tstb %d5                                    
   4ddf6:	6612           	bnes 4de0a <_CORE_message_queue_Seize+0x102>
    _ISR_Enable( level );                                             
   4ddf8:	46c0           	movew %d0,%sr                               
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4ddfa:	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 );   
}                                                                     
   4ddfc:	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;
   4de02:	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 );   
}                                                                     
   4de06:	4e5e           	unlk %fp                                    
   4de08:	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;
   4de0a:	7201           	moveq #1,%d1                                
   4de0c:	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;                           
   4de10:	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;     
   4de14:	2143 002c      	movel %d3,%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;                                            
   4de18:	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;             
   4de1c:	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 );                                               
   4de20:	46c0           	movew %d0,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4de22:	4bf9 0004 fbdc 	lea 4fbdc <_Thread_queue_Timeout>,%a5       
   4de28:	2d42 000c      	movel %d2,%fp@(12)                          
   4de2c:	2d4d 0010      	movel %a5,%fp@(16)                          
   4de30:	2d4a 0008      	movel %a2,%fp@(8)                           
}                                                                     
   4de34:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4de3a:	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 );   
   4de3c:	4ef9 0004 f8f0 	jmp 4f8f0 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      
00045c14 <_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     
)                                                                     
{                                                                     
   45c14:	4e56 0000      	linkw %fp,#0                                
   45c18:	2f0a           	movel %a2,%sp@-                             
   45c1a:	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)) ) {
   45c1e:	2f0a           	movel %a2,%sp@-                             
   45c20:	4eb9 0004 703c 	jsr 4703c <_Thread_queue_Dequeue>           
   45c26:	588f           	addql #4,%sp                                
   45c28:	4a80           	tstl %d0                                    
   45c2a:	6704           	beqs 45c30 <_CORE_semaphore_Surrender+0x1c> 
   45c2c:	4280           	clrl %d0                                    
   45c2e:	6024           	bras 45c54 <_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 );                                            
   45c30:	203c 0000 0700 	movel #1792,%d0                             
   45c36:	40c1           	movew %sr,%d1                               
   45c38:	8081           	orl %d1,%d0                                 
   45c3a:	46c0           	movew %d0,%sr                               
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
   45c3c:	202a 0048      	movel %a2@(72),%d0                          
   45c40:	b0aa 0040      	cmpl %a2@(64),%d0                           
   45c44:	6504           	bcss 45c4a <_CORE_semaphore_Surrender+0x36> 
   45c46:	7004           	moveq #4,%d0                                <== NOT EXECUTED
   45c48:	6008           	bras 45c52 <_CORE_semaphore_Surrender+0x3e> <== NOT EXECUTED
        the_semaphore->count += 1;                                    
   45c4a:	5280           	addql #1,%d0                                
   45c4c:	2540 0048      	movel %d0,%a2@(72)                          
   45c50:	4280           	clrl %d0                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
   45c52:	46c1           	movew %d1,%sr                               
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
   45c54:	246e fffc      	moveal %fp@(-4),%a2                         
   45c58:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00045fd8 <_Internal_error_Occurred>:                                  
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45fd8:	4e56 0000      	linkw %fp,#0                                
   45fdc:	222e 000c      	movel %fp@(12),%d1                          
   45fe0:	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 );       
   45fe2:	4283           	clrl %d3                                    
   45fe4:	1601           	moveb %d1,%d3                               
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45fe6:	2f02           	movel %d2,%sp@-                             
   45fe8:	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 );       
   45fec:	2f02           	movel %d2,%sp@-                             
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   45fee:	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 );       
   45ff2:	2f03           	movel %d3,%sp@-                             
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   45ff4:	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 );       
   45ffa:	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;           
   45ffc:	13c1 0005 cdb2 	moveb %d1,5cdb2 <_Internal_errors_What_happened+0x4>
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
   46002:	23c0 0005 cdae 	movel %d0,5cdae <_Internal_errors_What_happened>
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
   46008:	23c2 0005 cdb4 	movel %d2,5cdb4 <_Internal_errors_What_happened+0x6>
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   4600e:	4eb9 0004 7b0a 	jsr 47b0a <_User_extensions_Fatal>          
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   46014:	40c0           	movew %sr,%d0                               
   46016:	8083           	orl %d3,%d0                                 
   46018:	46c0           	movew %d0,%sr                               
   4601a:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   4601c:	223c dead beef 	movel #-559038737,%d1                       <== NOT EXECUTED
   46022:	4ac8           	halt                                        <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
   46024:	7005           	moveq #5,%d0                                
   46026:	4fef 000c      	lea %sp@(12),%sp                            
   4602a:	23c0 0005 ce90 	movel %d0,5ce90 <_System_state_Current>     
   46030:	60fe           	bras 46030 <_Internal_error_Occurred+0x58>  
	...                                                                  
                                                                      
0004609c <_Objects_Allocate>:                                         
 */                                                                   
                                                                      
Objects_Control *_Objects_Allocate(                                   
  Objects_Information *information                                    
)                                                                     
{                                                                     
   4609c:	4e56 fff0      	linkw %fp,#-16                              
   460a0:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   460a4:	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 )                                       
   460a8:	4aaa 0014      	tstl %a2@(20)                               
   460ac:	6604           	bnes 460b2 <_Objects_Allocate+0x16>         
   460ae:	4280           	clrl %d0                                    <== NOT EXECUTED
   460b0:	605e           	bras 46110 <_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 );
   460b2:	240a           	movel %a2,%d2                               
   460b4:	0682 0000 001c 	addil #28,%d2                               
   460ba:	47f9 0004 a070 	lea 4a070 <_Chain_Get>,%a3                  
   460c0:	2f02           	movel %d2,%sp@-                             
   460c2:	4e93           	jsr %a3@                                    
                                                                      
  if ( information->auto_extend ) {                                   
   460c4:	588f           	addql #4,%sp                                
   460c6:	4a2a 0010      	tstb %a2@(16)                               
   460ca:	6744           	beqs 46110 <_Objects_Allocate+0x74>         
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
   460cc:	4a80           	tstl %d0                                    
   460ce:	6612           	bnes 460e2 <_Objects_Allocate+0x46>         
      _Objects_Extend_information( information );                     
   460d0:	2f0a           	movel %a2,%sp@-                             
   460d2:	4eb9 0004 6148 	jsr 46148 <_Objects_Extend_information>     
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
   460d8:	2f02           	movel %d2,%sp@-                             
   460da:	4e93           	jsr %a3@                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
   460dc:	508f           	addql #8,%sp                                
   460de:	4a80           	tstl %d0                                    
   460e0:	672e           	beqs 46110 <_Objects_Allocate+0x74>         
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   460e2:	2040           	moveal %d0,%a0                              
   460e4:	4281           	clrl %d1                                    
   460e6:	4283           	clrl %d3                                    
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460e8:	4282           	clrl %d2                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   460ea:	362a 0008      	movew %a2@(8),%d3                           
   460ee:	3228 000a      	movew %a0@(10),%d1                          
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460f2:	342a 0012      	movew %a2@(18),%d2                          
      information->inactive--;                                        
   460f6:	306a 0028      	moveaw %a2@(40),%a0                         
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   460fa:	9283           	subl %d3,%d1                                
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   460fc:	4c42 1001      	remul %d2,%d1,%d1                           
      information->inactive--;                                        
   46100:	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 ]--;                     
   46102:	e589           	lsll #2,%d1                                 
      information->inactive--;                                        
   46104:	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 ]--;                     
   46108:	206a 002a      	moveal %a2@(42),%a0                         
   4610c:	d1c1           	addal %d1,%a0                               
   4610e:	5390           	subql #1,%a0@                               
      information->inactive--;                                        
    }                                                                 
  }                                                                   
                                                                      
  return the_object;                                                  
}                                                                     
   46110:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   46116:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
0004611c <_Objects_Close>:                                            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   4611c:	4280           	clrl %d0                                    
                                                                      
void _Objects_Close(                                                  
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
   4611e:	4e56 0000      	linkw %fp,#0                                
   46122:	226e 000c      	moveal %fp@(12),%a1                         
   46126:	206e 0008      	moveal %fp@(8),%a0                          
   4612a:	2f0a           	movel %a2,%sp@-                             
   4612c:	2468 0018      	moveal %a0@(24),%a2                         
   46130:	3029 000a      	movew %a1@(10),%d0                          
   46134:	42b2 0c00      	clrl %a2@(00000000,%d0:l:4)                 
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46138:	2d49 000c      	movel %a1,%fp@(12)                          
}                                                                     
   4613c:	245f           	moveal %sp@+,%a2                            
   4613e:	4e5e           	unlk %fp                                    
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46140:	4ef9 0004 6640 	jmp 46640 <_Objects_Namespace_remove>       
	...                                                                  
                                                                      
00049e80 <_Objects_Id_to_name>:                                       
 */                                                                   
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
   49e80:	4e56 fffc      	linkw %fp,#-4                               
   49e84:	222e 0008      	movel %fp@(8),%d1                           
   49e88:	2f02           	movel %d2,%sp@-                             
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
   49e8a:	4a81           	tstl %d1                                    
   49e8c:	660a           	bnes 49e98 <_Objects_Id_to_name+0x18>       
   49e8e:	2079 0006 863a 	moveal 6863a <_Thread_Executing>,%a0        
   49e94:	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);
   49e98:	7418           	moveq #24,%d2                               
   49e9a:	2001           	movel %d1,%d0                               
   49e9c:	e4a8           	lsrl %d2,%d0                                
   49e9e:	143c 0007      	moveb #7,%d2                                
   49ea2:	c082           	andl %d2,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
   49ea4:	143c 0003      	moveb #3,%d2                                
   49ea8:	2040           	moveal %d0,%a0                              
   49eaa:	5388           	subql #1,%a0                                
   49eac:	b488           	cmpl %a0,%d2                                
   49eae:	6540           	bcss 49ef0 <_Objects_Id_to_name+0x70>       
   49eb0:	6048           	bras 49efa <_Objects_Id_to_name+0x7a>       
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
   49eb2:	2001           	movel %d1,%d0                               
   49eb4:	741b           	moveq #27,%d2                               
   49eb6:	e4a8           	lsrl %d2,%d0                                
   49eb8:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
  if ( !information )                                                 
   49ebc:	4a88           	tstl %a0                                    
   49ebe:	6730           	beqs 49ef0 <_Objects_Id_to_name+0x70>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
   49ec0:	4a28 0032      	tstb %a0@(50)                               
   49ec4:	662a           	bnes 49ef0 <_Objects_Id_to_name+0x70>       
      return OBJECTS_INVALID_ID;                                      
  #endif                                                              
                                                                      
  the_object = _Objects_Get( information, tmpId, &ignored_location ); 
   49ec6:	486e fffc      	pea %fp@(-4)                                
   49eca:	2f01           	movel %d1,%sp@-                             
   49ecc:	2f08           	movel %a0,%sp@-                             
   49ece:	4eb9 0004 9e20 	jsr 49e20 <_Objects_Get>                    
  if ( !the_object )                                                  
   49ed4:	4fef 000c      	lea %sp@(12),%sp                            
   49ed8:	4a80           	tstl %d0                                    
   49eda:	6714           	beqs 49ef0 <_Objects_Id_to_name+0x70>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
   49edc:	206e 000c      	moveal %fp@(12),%a0                         
   49ee0:	2240           	moveal %d0,%a1                              
   49ee2:	20a9 000c      	movel %a1@(12),%a0@                         
  _Thread_Enable_dispatch();                                          
   49ee6:	4eb9 0004 a71e 	jsr 4a71e <_Thread_Enable_dispatch>         
   49eec:	4280           	clrl %d0                                    
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
   49eee:	6002           	bras 49ef2 <_Objects_Id_to_name+0x72>       
   49ef0:	7003           	moveq #3,%d0                                
}                                                                     
   49ef2:	242e fff8      	movel %fp@(-8),%d2                          
   49ef6:	4e5e           	unlk %fp                                    
   49ef8:	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 ] )                       
   49efa:	41f9 0006 8538 	lea 68538 <_Objects_Information_table>,%a0  
   49f00:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
   49f04:	4a88           	tstl %a0                                    
   49f06:	66aa           	bnes 49eb2 <_Objects_Id_to_name+0x32>       
   49f08:	60e6           	bras 49ef0 <_Objects_Id_to_name+0x70>       
	...                                                                  
                                                                      
00046a50 <_Objects_Set_name>:                                         
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   46a50:	4280           	clrl %d0                                    
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   46a52:	4e56 ffe0      	linkw %fp,#-32                              
   46a56:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   46a5a:	2a6e 0008      	moveal %fp@(8),%a5                          
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   46a5e:	302d 0034      	movew %a5@(52),%d0                          
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   46a62:	246e 0010      	moveal %fp@(16),%a2                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   46a66:	2f00           	movel %d0,%sp@-                             
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   46a68:	286e 000c      	moveal %fp@(12),%a4                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   46a6c:	2f0a           	movel %a2,%sp@-                             
   46a6e:	4eb9 0004 e5c0 	jsr 4e5c0 <strnlen>                         
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
   46a74:	508f           	addql #8,%sp                                
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   46a76:	2640           	moveal %d0,%a3                              
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
   46a78:	4a2d 0032      	tstb %a5@(50)                               
   46a7c:	6748           	beqs 46ac6 <_Objects_Set_name+0x76>         
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
   46a7e:	486b 0001      	pea %a3@(1)                                 
   46a82:	4eb9 0004 82dc 	jsr 482dc <_Workspace_Allocate>             
    if ( !d )                                                         
   46a88:	588f           	addql #4,%sp                                
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
   46a8a:	2a40           	moveal %d0,%a5                              
    if ( !d )                                                         
   46a8c:	4a80           	tstl %d0                                    
   46a8e:	6604           	bnes 46a94 <_Objects_Set_name+0x44>         
   46a90:	4200           	clrb %d0                                    <== NOT EXECUTED
   46a92:	6076           	bras 46b0a <_Objects_Set_name+0xba>         <== NOT EXECUTED
      return false;                                                   
                                                                      
    if ( the_object->name.name_p ) {                                  
   46a94:	202c 000c      	movel %a4@(12),%d0                          
   46a98:	670e           	beqs 46aa8 <_Objects_Set_name+0x58>         
      _Workspace_Free( (void *)the_object->name.name_p );             
   46a9a:	2f00           	movel %d0,%sp@-                             
   46a9c:	4eb9 0004 82f8 	jsr 482f8 <_Workspace_Free>                 
      the_object->name.name_p = NULL;                                 
   46aa2:	588f           	addql #4,%sp                                
   46aa4:	42ac 000c      	clrl %a4@(12)                               
    }                                                                 
                                                                      
    strncpy( d, name, length );                                       
   46aa8:	2f0b           	movel %a3,%sp@-                             
   46aaa:	2f0a           	movel %a2,%sp@-                             
   46aac:	2f0d           	movel %a5,%sp@-                             
   46aae:	4eb9 0004 e538 	jsr 4e538 <strncpy>                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
   46ab4:	4fef 000c      	lea %sp@(12),%sp                            
      _Workspace_Free( (void *)the_object->name.name_p );             
      the_object->name.name_p = NULL;                                 
    }                                                                 
                                                                      
    strncpy( d, name, length );                                       
    d[length] = '\0';                                                 
   46ab8:	4200           	clrb %d0                                    
   46aba:	1b80 b800      	moveb %d0,%a5@(00000000,%a3:l)              
    the_object->name.name_p = d;                                      
   46abe:	7001           	moveq #1,%d0                                
   46ac0:	294d 000c      	movel %a5,%a4@(12)                          
   46ac4:	6044           	bras 46b0a <_Objects_Set_name+0xba>         
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   46ac6:	7201           	moveq #1,%d1                                
   46ac8:	1012           	moveb %a2@,%d0                              
   46aca:	b28b           	cmpl %a3,%d1                                
   46acc:	6446           	bccs 46b14 <_Objects_Set_name+0xc4>         
   46ace:	7602           	moveq #2,%d3                                
   46ad0:	142a 0001      	moveb %a2@(1),%d2                           
   46ad4:	49c2           	extbl %d2                                   
   46ad6:	4842           	swap %d2                                    
   46ad8:	4242           	clrw %d2                                    
   46ada:	b68b           	cmpl %a3,%d3                                
   46adc:	643a           	bccs 46b18 <_Objects_Set_name+0xc8>         
   46ade:	7a03           	moveq #3,%d5                                
   46ae0:	122a 0002      	moveb %a2@(2),%d1                           
   46ae4:	49c1           	extbl %d1                                   
   46ae6:	e189           	lsll #8,%d1                                 
   46ae8:	ba8b           	cmpl %a3,%d5                                
   46aea:	6506           	bcss 46af2 <_Objects_Set_name+0xa2>         
   46aec:	163c 0020      	moveb #32,%d3                               
   46af0:	6006           	bras 46af8 <_Objects_Set_name+0xa8>         
   46af2:	162a 0003      	moveb %a2@(3),%d3                           
   46af6:	49c3           	extbl %d3                                   
   46af8:	2800           	movel %d0,%d4                               
   46afa:	7a18           	moveq #24,%d5                               
   46afc:	ebac           	lsll %d5,%d4                                
   46afe:	7001           	moveq #1,%d0                                
   46b00:	8484           	orl %d4,%d2                                 
   46b02:	8481           	orl %d1,%d2                                 
   46b04:	8483           	orl %d3,%d2                                 
   46b06:	2942 000c      	movel %d2,%a4@(12)                          
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   46b0a:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   46b10:	4e5e           	unlk %fp                                    
   46b12:	4e75           	rts                                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   46b14:	7420           	moveq #32,%d2                               
   46b16:	4842           	swap %d2                                    
   46b18:	223c 0000 2000 	movel #8192,%d1                             
   46b1e:	7620           	moveq #32,%d3                               
   46b20:	60d6           	bras 46af8 <_Objects_Set_name+0xa8>         
	...                                                                  
                                                                      
0004948c <_POSIX_Message_queue_Receive_support>:                      
  size_t              msg_len,                                        
  unsigned int       *msg_prio,                                       
  bool                wait,                                           
  Watchdog_Interval   timeout                                         
)                                                                     
{                                                                     
   4948c:	4e56 ffe4      	linkw %fp,#-28                              
   49490:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
  mqd_t              id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control_fd *) _Objects_Get(             
   49494:	486e fffc      	pea %fp@(-4)                                
   49498:	242e 0008      	movel %fp@(8),%d2                           
   4949c:	2f02           	movel %d2,%sp@-                             
   4949e:	4879 0006 5070 	pea 65070 <_POSIX_Message_queue_Information_fds>
   494a4:	246e 0014      	moveal %fp@(20),%a2                         
   494a8:	262e 0018      	movel %fp@(24),%d3                          
   494ac:	4eb9 0004 c188 	jsr 4c188 <_Objects_Get>                    
  Objects_Locations                location;                          
  size_t                           length_out;                        
  bool                             do_wait;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
   494b2:	4fef 000c      	lea %sp@(12),%sp                            
   494b6:	4aae fffc      	tstl %fp@(-4)                               
   494ba:	6600 00c4      	bnew 49580 <_POSIX_Message_queue_Receive_support+0xf4>
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) {             
   494be:	2040           	moveal %d0,%a0                              
   494c0:	7803           	moveq #3,%d4                                
   494c2:	7a01           	moveq #1,%d5                                
   494c4:	2228 0014      	movel %a0@(20),%d1                          
   494c8:	c881           	andl %d1,%d4                                
   494ca:	ba84           	cmpl %d4,%d5                                
   494cc:	660a           	bnes 494d8 <_POSIX_Message_queue_Receive_support+0x4c>
        _Thread_Enable_dispatch();                                    
   494ce:	4eb9 0004 c9da 	jsr 4c9da <_Thread_Enable_dispatch>         
   494d4:	6000 00aa      	braw 49580 <_POSIX_Message_queue_Receive_support+0xf4>
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
   494d8:	2240           	moveal %d0,%a1                              
   494da:	2069 0010      	moveal %a1@(16),%a0                         
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
   494de:	2028 0066      	movel %a0@(102),%d0                         
   494e2:	b0ae 0010      	cmpl %fp@(16),%d0                           
   494e6:	6318           	blss 49500 <_POSIX_Message_queue_Receive_support+0x74>
        _Thread_Enable_dispatch();                                    
   494e8:	4eb9 0004 c9da 	jsr 4c9da <_Thread_Enable_dispatch>         
        rtems_set_errno_and_return_minus_one( EMSGSIZE );             
   494ee:	747a           	moveq #122,%d2                              
   494f0:	4eb9 0005 28c4 	jsr 528c4 <__errno>                         
   494f6:	72ff           	moveq #-1,%d1                               
   494f8:	2040           	moveal %d0,%a0                              
   494fa:	2082           	movel %d2,%a0@                              
   494fc:	6000 0090      	braw 4958e <_POSIX_Message_queue_Receive_support+0x102>
      length_out = -1;                                                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
   49500:	4a03           	tstb %d3                                    
   49502:	6604           	bnes 49508 <_POSIX_Message_queue_Receive_support+0x7c>
   49504:	4200           	clrb %d0                                    <== NOT EXECUTED
   49506:	600c           	bras 49514 <_POSIX_Message_queue_Receive_support+0x88><== NOT EXECUTED
        do_wait = (the_mq_fd->oflag & O_NONBLOCK) ? false : true;     
   49508:	2001           	movel %d1,%d0                               
   4950a:	760e           	moveq #14,%d3                               
   4950c:	7a01           	moveq #1,%d5                                
   4950e:	e6a8           	lsrl %d3,%d0                                
   49510:	bb80           	eorl %d5,%d0                                
   49512:	c085           	andl %d5,%d0                                
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
   49514:	2f2e 001c      	movel %fp@(28),%sp@-                        
   49518:	7201           	moveq #1,%d1                                
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
   4951a:	76ff           	moveq #-1,%d3                               
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
   4951c:	c280           	andl %d0,%d1                                
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
   4951e:	2d43 fff8      	movel %d3,%fp@(-8)                          
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
   49522:	2f01           	movel %d1,%sp@-                             
   49524:	486e fff8      	pea %fp@(-8)                                
   49528:	2f2e 000c      	movel %fp@(12),%sp@-                        
   4952c:	2f02           	movel %d2,%sp@-                             
   4952e:	4868 001a      	pea %a0@(26)                                
   49532:	4eb9 0004 b2d0 	jsr 4b2d0 <_CORE_message_queue_Seize>       
        &length_out,                                                  
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
   49538:	4eb9 0004 c9da 	jsr 4c9da <_Thread_Enable_dispatch>         
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
   4953e:	2079 0006 4cee 	moveal 64cee <_Thread_Executing>,%a0        
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
   49544:	24a8 0024      	movel %a0@(36),%a2@                         
   49548:	6c06           	bges 49550 <_POSIX_Message_queue_Receive_support+0xc4>
   4954a:	2a12           	movel %a2@,%d5                              
   4954c:	4485           	negl %d5                                    
   4954e:	2485           	movel %d5,%a2@                              
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
   49550:	4fef 0018      	lea %sp@(24),%sp                            
   49554:	4aa8 0034      	tstl %a0@(52)                               
   49558:	6606           	bnes 49560 <_POSIX_Message_queue_Receive_support+0xd4>
        return length_out;                                            
   4955a:	222e fff8      	movel %fp@(-8),%d1                          
   4955e:	602e           	bras 4958e <_POSIX_Message_queue_Receive_support+0x102>
                                                                      
      rtems_set_errno_and_return_minus_one(                           
   49560:	4eb9 0005 28c4 	jsr 528c4 <__errno>                         
   49566:	2079 0006 4cee 	moveal 64cee <_Thread_Executing>,%a0        
   4956c:	2440           	moveal %d0,%a2                              
   4956e:	2f28 0034      	movel %a0@(52),%sp@-                        
   49572:	4eb9 0004 97b8 	jsr 497b8 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
   49578:	588f           	addql #4,%sp                                
   4957a:	72ff           	moveq #-1,%d1                               
   4957c:	2480           	movel %d0,%a2@                              
   4957e:	600e           	bras 4958e <_POSIX_Message_queue_Receive_support+0x102>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
   49580:	4eb9 0005 28c4 	jsr 528c4 <__errno>                         
   49586:	72ff           	moveq #-1,%d1                               
   49588:	2040           	moveal %d0,%a0                              
   4958a:	7009           	moveq #9,%d0                                
   4958c:	2080           	movel %d0,%a0@                              
}                                                                     
   4958e:	2001           	movel %d1,%d0                               
   49590:	4cee 043c ffe4 	moveml %fp@(-28),%d2-%d5/%a2                
   49596:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
00044e70 <_POSIX_Timer_TSR>:                                          
 *  This is the operation that is run when a timer expires            
 */                                                                   
void _POSIX_Timer_TSR(                                                
  Objects_Id timer __attribute__((unused)),                           
  void *data)                                                         
{                                                                     
   44e70:	4e56 0000      	linkw %fp,#0                                
   44e74:	2f0a           	movel %a2,%sp@-                             
   44e76:	246e 000c      	moveal %fp@(12),%a2                         
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
   44e7a:	52aa 0066      	addql #1,%a2@(102)                          
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
   44e7e:	4aaa 0052      	tstl %a2@(82)                               
   44e82:	6606           	bnes 44e8a <_POSIX_Timer_TSR+0x1a>          
       ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) {            
   44e84:	4aaa 0056      	tstl %a2@(86)                               
   44e88:	6732           	beqs 44ebc <_POSIX_Timer_TSR+0x4c>          
    activated = _POSIX_Timer_Insert_helper(                           
   44e8a:	2f0a           	movel %a2,%sp@-                             
   44e8c:	4879 0004 4e70 	pea 44e70 <_POSIX_Timer_TSR>                
   44e92:	2f2a 0008      	movel %a2@(8),%sp@-                         
   44e96:	2f2a 0062      	movel %a2@(98),%sp@-                        
   44e9a:	486a 0010      	pea %a2@(16)                                
   44e9e:	4eb9 0004 a408 	jsr 4a408 <_POSIX_Timer_Insert_helper>      
      ptimer->ticks,                                                  
      ptimer->Object.id,                                              
      _POSIX_Timer_TSR,                                               
      ptimer                                                          
    );                                                                
    if ( !activated )                                                 
   44ea4:	4fef 0014      	lea %sp@(20),%sp                            
   44ea8:	4a00           	tstb %d0                                    
   44eaa:	672a           	beqs 44ed6 <_POSIX_Timer_TSR+0x66>          
      return;                                                         
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
   44eac:	486a 006a      	pea %a2@(106)                               
   44eb0:	4eb9 0004 6348 	jsr 46348 <_TOD_Get>                        
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
   44eb6:	588f           	addql #4,%sp                                
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
   44eb8:	7003           	moveq #3,%d0                                
   44eba:	6002           	bras 44ebe <_POSIX_Timer_TSR+0x4e>          
  } else {                                                            
   /* Indicates that the timer is stopped */                          
   ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;                     
   44ebc:	7004           	moveq #4,%d0                                <== NOT EXECUTED
   44ebe:	1540 003c      	moveb %d0,%a2@(60)                          
  /*                                                                  
   * The sending of the signal to the process running the handling function
   * specified for that signal is simulated                           
   */                                                                 
                                                                      
  if ( pthread_kill ( ptimer->thread_id, ptimer->inf.sigev_signo ) ) {
   44ec2:	2f2a 0042      	movel %a2@(66),%sp@-                        
   44ec6:	2f2a 0038      	movel %a2@(56),%sp@-                        
   44eca:	4eb9 0004 9fe8 	jsr 49fe8 <pthread_kill>                    
  }                                                                   
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
   44ed0:	508f           	addql #8,%sp                                
   44ed2:	42aa 0066      	clrl %a2@(102)                              
}                                                                     
   44ed6:	246e fffc      	moveal %fp@(-4),%a2                         
   44eda:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
00044e4c <_POSIX_signals_Ualarm_TSR>:                                 
                                                                      
void _POSIX_signals_Ualarm_TSR(                                       
  Objects_Id      id __attribute__((unused)),                         
  void           *argument __attribute__((unused))                    
)                                                                     
{                                                                     
   44e4c:	4e56 0000      	linkw %fp,#0                                
  /*                                                                  
   * Send a SIGALRM but if there is a problem, ignore it.             
   * It's OK, there isn't a way this should fail.                     
   */                                                                 
  (void) kill( getpid(), SIGALRM );                                   
   44e50:	4eb9 0004 24e8 	jsr 424e8 <getpid>                          
   44e56:	4878 000e      	pea e <OPER1+0x2>                           
   44e5a:	2f00           	movel %d0,%sp@-                             
   44e5c:	4eb9 0004 4b6c 	jsr 44b6c <kill>                            
RTEMS_INLINE_ROUTINE void _Watchdog_Reset(                            
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  (void) _Watchdog_Remove( the_watchdog );                            
   44e62:	4879 0005 ecde 	pea 5ecde <_POSIX_signals_Ualarm_timer>     
   44e68:	4eb9 0004 8338 	jsr 48338 <_Watchdog_Remove>                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   44e6e:	4fef 000c      	lea %sp@(12),%sp                            
   44e72:	203c 0005 ecde 	movel #388318,%d0                           
   44e78:	2d40 000c      	movel %d0,%fp@(12)                          
   44e7c:	203c 0005 e590 	movel #386448,%d0                           
   44e82:	2d40 0008      	movel %d0,%fp@(8)                           
                                                                      
  /*                                                                  
   * If the reset interval is non-zero, reschedule ourselves.         
   */                                                                 
  _Watchdog_Reset( &_POSIX_signals_Ualarm_timer );                    
}                                                                     
   44e86:	4e5e           	unlk %fp                                    
   44e88:	4ef9 0004 821c 	jmp 4821c <_Watchdog_Insert>                
	...                                                                  
                                                                      
00057360 <_Region_Process_queue>:                                     
 */                                                                   
                                                                      
void _Region_Process_queue(                                           
  Region_Control *the_region                                          
)                                                                     
{                                                                     
   57360:	4e56 ffe4      	linkw %fp,#-28                              
   57364:	2039 0007 545c 	movel 7545c <_Thread_Dispatch_disable_level>,%d0
   5736a:	5280           	addql #1,%d0                                
   5736c:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   57370:	266e 0008      	moveal %fp@(8),%a3                          
   57374:	23c0 0007 545c 	movel %d0,7545c <_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();                                          
   5737a:	2f39 0007 550e 	movel 7550e <_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 );      
   57380:	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 );                 
   57382:	280b           	movel %a3,%d4                               
   57384:	0682 0000 0010 	addil #16,%d2                               
   5738a:	0684 0000 0068 	addil #104,%d4                              
   57390:	4bf9 0005 2a14 	lea 52a14 <_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 );     
   57396:	49f9 0005 7a6c 	lea 57a6c <_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();                                          
   5739c:	4eb9 0005 1fa8 	jsr 51fa8 <_API_Mutex_Unlock>               
   573a2:	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 );      
   573a4:	263c 0005 7b70 	movel #359280,%d3                           
   573aa:	2f02           	movel %d2,%sp@-                             
   573ac:	2043           	moveal %d3,%a0                              
   573ae:	4e90           	jsr %a0@                                    
                                                                      
    if ( the_thread == NULL )                                         
   573b0:	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 );      
   573b2:	2440           	moveal %d0,%a2                              
                                                                      
    if ( the_thread == NULL )                                         
   573b4:	4a80           	tstl %d0                                    
   573b6:	672c           	beqs 573e4 <_Region_Process_queue+0x84>     
   573b8:	42a7           	clrl %sp@-                                  
   573ba:	42a7           	clrl %sp@-                                  
   573bc:	2f2a 0024      	movel %a2@(36),%sp@-                        
   573c0:	2f04           	movel %d4,%sp@-                             
   573c2:	4e95           	jsr %a5@                                    
    the_segment = (void **) _Region_Allocate_segment(                 
      the_region,                                                     
      the_thread->Wait.count                                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
   573c4:	4fef 0010      	lea %sp@(16),%sp                            
   573c8:	4a80           	tstl %d0                                    
   573ca:	6718           	beqs 573e4 <_Region_Process_queue+0x84>     
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   573cc:	206a 0028      	moveal %a2@(40),%a0                         
    the_region->number_of_used_blocks += 1;                           
   573d0:	52ab 0064      	addql #1,%a3@(100)                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   573d4:	2080           	movel %d0,%a0@                              
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   573d6:	2f0a           	movel %a2,%sp@-                             
   573d8:	2f02           	movel %d2,%sp@-                             
   573da:	4e94           	jsr %a4@                                    
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
   573dc:	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;                  
   573de:	42aa 0034      	clrl %a2@(52)                               
  }                                                                   
   573e2:	60c6           	bras 573aa <_Region_Process_queue+0x4a>     
  _Thread_Enable_dispatch();                                          
}                                                                     
   573e4:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   573ea:	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();                                          
   573ec:	4ef9 0005 4012 	jmp 54012 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      
00046d94 <_Thread_Initialize>:                                        
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46d94:	4e56 ffe8      	linkw %fp,#-24                              
   46d98:	222e 0010      	movel %fp@(16),%d1                          
   46d9c:	48d7 047c      	moveml %d2-%d6/%a2,%sp@                     
   46da0:	246e 000c      	moveal %fp@(12),%a2                         
   46da4:	242e 0014      	movel %fp@(20),%d2                          
   46da8:	282e 001c      	movel %fp@(28),%d4                          
   46dac:	2a2e 0024      	movel %fp@(36),%d5                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46db0:	42aa 010a      	clrl %a2@(266)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46db4:	162e 001b      	moveb %fp@(27),%d3                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46db8:	42aa 010e      	clrl %a2@(270)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   46dbc:	1c2e 0023      	moveb %fp@(35),%d6                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   46dc0:	42aa 0112      	clrl %a2@(274)                              
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
   46dc4:	42aa 0106      	clrl %a2@(262)                              
    if ( !actual_stack_size || actual_stack_size < stack_size )       
      return false;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
  #else                                                               
    if ( !stack_area ) {                                              
   46dc8:	4a81           	tstl %d1                                    
   46dca:	6620           	bnes 46dec <_Thread_Initialize+0x58>        
      actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
   46dcc:	2f02           	movel %d2,%sp@-                             
   46dce:	2f0a           	movel %a2,%sp@-                             
   46dd0:	4eb9 0004 7674 	jsr 47674 <_Thread_Stack_Allocate>          
      if ( !actual_stack_size || actual_stack_size < stack_size )     
   46dd6:	508f           	addql #8,%sp                                
   46dd8:	4a80           	tstl %d0                                    
   46dda:	6700 0176      	beqw 46f52 <_Thread_Initialize+0x1be>       
   46dde:	b480           	cmpl %d0,%d2                                
   46de0:	6200 0170      	bhiw 46f52 <_Thread_Initialize+0x1be>       
        return false;                     /* stack allocation failed */
                                                                      
      stack = the_thread->Start.stack;                                
   46de4:	222a 00ca      	movel %a2@(202),%d1                         
      the_thread->Start.core_allocated_stack = true;                  
   46de8:	7401           	moveq #1,%d2                                
   46dea:	6004           	bras 46df0 <_Thread_Initialize+0x5c>        
    } else {                                                          
      stack = stack_area;                                             
      actual_stack_size = stack_size;                                 
      the_thread->Start.core_allocated_stack = false;                 
   46dec:	2002           	movel %d2,%d0                               
   46dee:	4202           	clrb %d2                                    
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
   46df0:	2541 00c2      	movel %d1,%a2@(194)                         
   46df4:	1542 00bc      	moveb %d2,%a2@(188)                         
  the_stack->size = size;                                             
   46df8:	2540 00be      	movel %d0,%a2@(190)                         
                                                                      
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
   46dfc:	4a03           	tstb %d3                                    
   46dfe:	6604           	bnes 46e04 <_Thread_Initialize+0x70>        
   46e00:	4283           	clrl %d3                                    
   46e02:	6016           	bras 46e1a <_Thread_Initialize+0x86>        
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
   46e04:	4878 001c      	pea 1c <OPER2+0x8>                          
   46e08:	4eb9 0004 7e98 	jsr 47e98 <_Workspace_Allocate>             
      if ( !fp_area )                                                 
   46e0e:	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 );               
   46e10:	2600           	movel %d0,%d3                               
      if ( !fp_area )                                                 
   46e12:	6606           	bnes 46e1a <_Thread_Initialize+0x86>        
   46e14:	4282           	clrl %d2                                    
   46e16:	6000 00d4      	braw 46eec <_Thread_Initialize+0x158>       
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   46e1a:	2039 0005 cda6 	movel 5cda6 <_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;                           
   46e20:	2543 0102      	movel %d3,%a2@(258)                         
    the_thread->Start.fp_context = fp_area;                           
   46e24:	2543 00c6      	movel %d3,%a2@(198)                         
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   46e28:	42aa 0050      	clrl %a2@(80)                               
  the_watchdog->routine   = routine;                                  
   46e2c:	42aa 0064      	clrl %a2@(100)                              
  the_watchdog->id        = id;                                       
   46e30:	42aa 0068      	clrl %a2@(104)                              
  the_watchdog->user_data = user_data;                                
   46e34:	42aa 006c      	clrl %a2@(108)                              
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   46e38:	4a80           	tstl %d0                                    
   46e3a:	6604           	bnes 46e40 <_Thread_Initialize+0xac>        
   46e3c:	4282           	clrl %d2                                    
   46e3e:	6016           	bras 46e56 <_Thread_Initialize+0xc2>        
    extensions_area = _Workspace_Allocate(                            
   46e40:	e588           	lsll #2,%d0                                 
   46e42:	2040           	moveal %d0,%a0                              
   46e44:	4868 0004      	pea %a0@(4)                                 
   46e48:	4eb9 0004 7e98 	jsr 47e98 <_Workspace_Allocate>             
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   46e4e:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
    extensions_area = _Workspace_Allocate(                            
   46e50:	2400           	movel %d0,%d2                               
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   46e52:	6700 0098      	beqw 46eec <_Thread_Initialize+0x158>       
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
   46e56:	2542 0116      	movel %d2,%a2@(278)                         
   * 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 ) {                                     
   46e5a:	6718           	beqs 46e74 <_Thread_Initialize+0xe0>        
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
   46e5c:	2239 0005 cda6 	movel 5cda6 <_Thread_Maximum_extensions>,%d1
   46e62:	4280           	clrl %d0                                    
   46e64:	600a           	bras 46e70 <_Thread_Initialize+0xdc>        
      the_thread->extensions[i] = NULL;                               
   46e66:	206a 0116      	moveal %a2@(278),%a0                        
   46e6a:	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++ )              
   46e6e:	5280           	addql #1,%d0                                
   46e70:	b280           	cmpl %d0,%d1                                
   46e72:	64f2           	bccs 46e66 <_Thread_Initialize+0xd2>        
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
   46e74:	2545 00ac      	movel %d5,%a2@(172)                         
  the_thread->Start.budget_callout   = budget_callout;                
                                                                      
  switch ( budget_algorithm ) {                                       
   46e78:	7002           	moveq #2,%d0                                
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
  the_thread->Start.budget_callout   = budget_callout;                
   46e7a:	256e 0028 00b0 	movel %fp@(40),%a2@(176)                    
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
   46e80:	1546 00aa      	moveb %d6,%a2@(170)                         
  the_thread->Start.budget_algorithm = budget_algorithm;              
  the_thread->Start.budget_callout   = budget_callout;                
                                                                      
  switch ( budget_algorithm ) {                                       
   46e84:	b085           	cmpl %d5,%d0                                
   46e86:	660a           	bnes 46e92 <_Thread_Initialize+0xfe>        
    case THREAD_CPU_BUDGET_ALGORITHM_NONE:                            
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
      break;                                                          
    #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)          
      case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:             
        the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;    
   46e88:	41f9 0005 ccb8 	lea 5ccb8 <_Thread_Ticks_per_timeslice>,%a0 
   46e8e:	2550 0076      	movel %a0@,%a2@(118)                        
  #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 );                       
   46e92:	2f04           	movel %d4,%sp@-                             
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	break;                                                               
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
   46e94:	256e 002c 00b4 	movel %fp@(44),%a2@(180)                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   46e9a:	7001           	moveq #1,%d0                                
  #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 );                       
   46e9c:	2f0a           	movel %a2,%sp@-                             
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   46e9e:	2540 0010      	movel %d0,%a2@(16)                          
  the_thread->Wait.queue              = NULL;                         
   46ea2:	42aa 0044      	clrl %a2@(68)                               
  the_thread->resource_count          = 0;                            
   46ea6:	42aa 001c      	clrl %a2@(28)                               
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
   46eaa:	2544 0018      	movel %d4,%a2@(24)                          
  the_thread->Start.initial_priority  = priority;                     
   46eae:	2544 00b8      	movel %d4,%a2@(184)                         
  _Thread_Set_priority( the_thread, priority );                       
   46eb2:	4eb9 0004 74a0 	jsr 474a0 <_Thread_Set_priority>            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46eb8:	206e 0008      	moveal %fp@(8),%a0                          
   46ebc:	4280           	clrl %d0                                    
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
   46ebe:	256e 0030 000c 	movel %fp@(48),%a2@(12)                     
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46ec4:	2068 0018      	moveal %a0@(24),%a0                         
   46ec8:	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 );             
   46ecc:	42aa 0082      	clrl %a2@(130)                              
   46ed0:	218a 0c00      	movel %a2,%a0@(00000000,%d0:l:4)            
   46ed4:	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 );    
   46ed8:	2f0a           	movel %a2,%sp@-                             
   46eda:	4eb9 0004 7b54 	jsr 47b54 <_User_extensions_Thread_create>  
  if ( extension_status )                                             
   46ee0:	4fef 000c      	lea %sp@(12),%sp                            
   46ee4:	4a00           	tstb %d0                                    
   46ee6:	6704           	beqs 46eec <_Thread_Initialize+0x158>       
   46ee8:	7001           	moveq #1,%d0                                
   46eea:	6068           	bras 46f54 <_Thread_Initialize+0x1c0>       
    return true;                                                      
                                                                      
failed:                                                               
  if ( the_thread->libc_reent )                                       
   46eec:	202a 0106      	movel %a2@(262),%d0                         
   46ef0:	670a           	beqs 46efc <_Thread_Initialize+0x168>       
    _Workspace_Free( the_thread->libc_reent );                        
   46ef2:	2f00           	movel %d0,%sp@-                             
   46ef4:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 
   46efa:	588f           	addql #4,%sp                                
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   46efc:	202a 010a      	movel %a2@(266),%d0                         
   46f00:	670a           	beqs 46f0c <_Thread_Initialize+0x178>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46f02:	2f00           	movel %d0,%sp@-                             
   46f04:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 
   46f0a:	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] )                              
   46f0c:	202a 010e      	movel %a2@(270),%d0                         
   46f10:	670a           	beqs 46f1c <_Thread_Initialize+0x188>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46f12:	2f00           	movel %d0,%sp@-                             
   46f14:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 
   46f1a:	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] )                              
   46f1c:	202a 0112      	movel %a2@(274),%d0                         
   46f20:	670a           	beqs 46f2c <_Thread_Initialize+0x198>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   46f22:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   46f24:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 <== NOT EXECUTED
   46f2a:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
  if ( extensions_area )                                              
   46f2c:	4a82           	tstl %d2                                    
   46f2e:	670a           	beqs 46f3a <_Thread_Initialize+0x1a6>       
    (void) _Workspace_Free( extensions_area );                        
   46f30:	2f02           	movel %d2,%sp@-                             
   46f32:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 
   46f38:	588f           	addql #4,%sp                                
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( fp_area )                                                    
   46f3a:	4a83           	tstl %d3                                    
   46f3c:	670a           	beqs 46f48 <_Thread_Initialize+0x1b4>       
      (void) _Workspace_Free( fp_area );                              
   46f3e:	2f03           	movel %d3,%sp@-                             
   46f40:	4eb9 0004 7eb4 	jsr 47eb4 <_Workspace_Free>                 
   46f46:	588f           	addql #4,%sp                                
  #endif                                                              
                                                                      
   _Thread_Stack_Free( the_thread );                                  
   46f48:	2f0a           	movel %a2,%sp@-                             
   46f4a:	4eb9 0004 76c0 	jsr 476c0 <_Thread_Stack_Free>              
  return false;                                                       
   46f50:	588f           	addql #4,%sp                                
   46f52:	4200           	clrb %d0                                    
                                                                      
                                                                      
}                                                                     
   46f54:	4cee 047c ffe8 	moveml %fp@(-24),%d2-%d6/%a2                
   46f5a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
00047c14 <_Thread_Restart>:                                           
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   47c14:	7001           	moveq #1,%d0                                
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
   47c16:	4e56 0000      	linkw %fp,#0                                
   47c1a:	2f0a           	movel %a2,%sp@-                             
   47c1c:	246e 0008      	moveal %fp@(8),%a2                          
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   47c20:	c0aa 0010      	andl %a2@(16),%d0                           
   47c24:	4a00           	tstb %d0                                    
   47c26:	6704           	beqs 47c2c <_Thread_Restart+0x18>           
   47c28:	4200           	clrb %d0                                    
   47c2a:	6064           	bras 47c90 <_Thread_Restart+0x7c>           
                                                                      
    _Thread_Set_transient( the_thread );                              
   47c2c:	2f0a           	movel %a2,%sp@-                             
   47c2e:	4eb9 0004 7df0 	jsr 47df0 <_Thread_Set_transient>           
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
   47c34:	2f2e 0010      	movel %fp@(16),%sp@-                        
   47c38:	2f2e 000c      	movel %fp@(12),%sp@-                        
   47c3c:	2f0a           	movel %a2,%sp@-                             
   47c3e:	4eb9 0004 b1ac 	jsr 4b1ac <_Thread_Reset>                   
                                                                      
    _Thread_Load_environment( the_thread );                           
   47c44:	2f0a           	movel %a2,%sp@-                             
   47c46:	4eb9 0004 ae48 	jsr 4ae48 <_Thread_Load_environment>        
                                                                      
    _Thread_Ready( the_thread );                                      
   47c4c:	2f0a           	movel %a2,%sp@-                             
   47c4e:	4eb9 0004 b0ec 	jsr 4b0ec <_Thread_Ready>                   
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
   47c54:	2f0a           	movel %a2,%sp@-                             
   47c56:	4eb9 0004 83d0 	jsr 483d0 <_User_extensions_Thread_restart> 
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
   47c5c:	4fef 001c      	lea %sp@(28),%sp                            
   47c60:	b5f9 0005 d89a 	cmpal 5d89a <_Thread_Executing>,%a2         
   47c66:	6626           	bnes 47c8e <_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 )                        
   47c68:	4aaa 0102      	tstl %a2@(258)                              
   47c6c:	670c           	beqs 47c7a <_Thread_Restart+0x66>           
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
   47c6e:	486a 0102      	pea %a2@(258)                               
   47c72:	4eb9 0004 88c0 	jsr 488c0 <_CPU_Context_restore_fp>         
   47c78:	588f           	addql #4,%sp                                
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
   47c7a:	2079 0005 d89a 	moveal 5d89a <_Thread_Executing>,%a0        
   47c80:	41e8 00ce      	lea %a0@(206),%a0                           
   47c84:	2f08           	movel %a0,%sp@-                             
   47c86:	4eb9 0004 877e 	jsr 4877e <_CPU_Context_Restart_self>       
   47c8c:	588f           	addql #4,%sp                                <== NOT EXECUTED
   47c8e:	7001           	moveq #1,%d0                                
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   47c90:	246e fffc      	moveal %fp@(-4),%a2                         
   47c94:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
00046798 <_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 ) ) {                  
   46798:	7202           	moveq #2,%d1                                
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
   4679a:	4e56 0000      	linkw %fp,#0                                
   4679e:	202e 0010      	movel %fp@(16),%d0                          
   467a2:	2f0a           	movel %a2,%sp@-                             
   467a4:	246e 000c      	moveal %fp@(12),%a2                         
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
   467a8:	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 ) ) {                  
   467ac:	b2aa 0050      	cmpl %a2@(80),%d1                           
   467b0:	6618           	bnes 467ca <_Thread_blocking_operation_Cancel+0x32>
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   467b2:	123c 0003      	moveb #3,%d1                                
   467b6:	2541 0050      	movel %d1,%a2@(80)                          
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   467ba:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   467bc:	486a 0048      	pea %a2@(72)                                
   467c0:	4eb9 0004 7d6c 	jsr 47d6c <_Watchdog_Remove>                
   467c6:	588f           	addql #4,%sp                                
   467c8:	6002           	bras 467cc <_Thread_blocking_operation_Cancel+0x34>
  } else                                                              
    _ISR_Enable( level );                                             
   467ca:	46c0           	movew %d0,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   467cc:	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                                                                
                                                                      
}                                                                     
   467d0:	246e fffc      	moveal %fp@(-4),%a2                         
   467d4:	203c 1003 fff8 	movel #268697592,%d0                        
   467da:	2d40 000c      	movel %d0,%fp@(12)                          
   467de:	4e5e           	unlk %fp                                    
   467e0:	4ef9 0004 6928 	jmp 46928 <_Thread_Clear_state>             
	...                                                                  
                                                                      
00047214 <_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                                       
)                                                                     
{                                                                     
   47214:	4e56 ffe4      	linkw %fp,#-28                              
   47218:	206e 000c      	moveal %fp@(12),%a0                         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   4721c:	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;                        
   47220:	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                                       
)                                                                     
{                                                                     
   47224:	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 ];  
   47228:	2400           	movel %d0,%d2                               
   4722a:	ec8a           	lsrl #6,%d2                                 
   4722c:	2202           	movel %d2,%d1                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
   4722e:	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 ];  
   47234:	e989           	lsll #4,%d1                                 
   47236:	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                                       
)                                                                     
{                                                                     
   47238:	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 ];  
   4723c:	9282           	subl %d2,%d1                                
   4723e:	47f2 1800      	lea %a2@(00000000,%d1:l),%a3                
   47242:	2149 0038      	movel %a1,%a0@(56)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   47246:	43e8 0038      	lea %a0@(56),%a1                            
  block_state  = the_thread_queue->state;                             
   4724a:	2a2a 0038      	movel %a2@(56),%d5                          
   4724e:	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;                                   
   47252:	42a8 003c      	clrl %a0@(60)                               
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
   47256:	0800 0005      	btst #5,%d0                                 
   4725a:	6660           	bnes 472bc <_Thread_queue_Enqueue_priority+0xa8>
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4725c:	2c0b           	movel %a3,%d6                               
   4725e:	5886           	addql #4,%d6                                
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
   47260:	2404           	movel %d4,%d2                               
   47262:	40c1           	movew %sr,%d1                               
   47264:	8481           	orl %d1,%d2                                 
   47266:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->first;                   
   47268:	2253           	moveal %a3@,%a1                             
   4726a:	76ff           	moveq #-1,%d3                               
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   4726c:	601e           	bras 4728c <_Thread_queue_Enqueue_priority+0x78>
    search_priority = search_thread->current_priority;                
   4726e:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority <= search_priority )                                
   47272:	b680           	cmpl %d0,%d3                                
   47274:	641a           	bccs 47290 <_Thread_queue_Enqueue_priority+0x7c>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47276:	2404           	movel %d4,%d2                               
   47278:	46c1           	movew %d1,%sr                               
   4727a:	8481           	orl %d1,%d2                                 
   4727c:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   4727e:	2405           	movel %d5,%d2                               
   47280:	c4a9 0010      	andl %a1@(16),%d2                           
   47284:	6604           	bnes 4728a <_Thread_queue_Enqueue_priority+0x76>
      _ISR_Enable( level );                                           
   47286:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
      goto restart_forward_search;                                    
   47288:	60d6           	bras 47260 <_Thread_queue_Enqueue_priority+0x4c><== NOT EXECUTED
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
   4728a:	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 ) ) {  
   4728c:	bc89           	cmpl %a1,%d6                                
   4728e:	66de           	bnes 4726e <_Thread_queue_Enqueue_priority+0x5a>
   47290:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47292:	7801           	moveq #1,%d4                                
   47294:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47298:	6600 00a4      	bnew 4733e <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   4729c:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   472a0:	b680           	cmpl %d0,%d3                                
   472a2:	677e           	beqs 47322 <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
   472a4:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   472a8:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   472aa:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   472ae:	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;                                  
   472b2:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   472b4:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   472b8:	46c1           	movew %d1,%sr                               
   472ba:	6062           	bras 4731e <_Thread_queue_Enqueue_priority+0x10a>
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   472bc:	4283           	clrl %d3                                    
   472be:	1639 0005 b552 	moveb 5b552 <rtems_maximum_priority>,%d3    
                                                                      
  _ISR_Disable( level );                                              
   472c4:	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;                         
   472c6:	5283           	addql #1,%d3                                
                                                                      
  _ISR_Disable( level );                                              
   472c8:	40c1           	movew %sr,%d1                               
   472ca:	8481           	orl %d1,%d2                                 
   472cc:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->last;                    
   472ce:	226b 0008      	moveal %a3@(8),%a1                          
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   472d2:	6020           	bras 472f4 <_Thread_queue_Enqueue_priority+0xe0>
    search_priority = search_thread->current_priority;                
   472d4:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority >= search_priority )                                
   472d8:	b680           	cmpl %d0,%d3                                
   472da:	631c           	blss 472f8 <_Thread_queue_Enqueue_priority+0xe4>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   472dc:	2404           	movel %d4,%d2                               
   472de:	46c1           	movew %d1,%sr                               
   472e0:	8481           	orl %d1,%d2                                 
   472e2:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   472e4:	2405           	movel %d5,%d2                               
   472e6:	c4a9 0010      	andl %a1@(16),%d2                           
   472ea:	6604           	bnes 472f0 <_Thread_queue_Enqueue_priority+0xdc>
      _ISR_Enable( level );                                           
   472ec:	46c1           	movew %d1,%sr                               
      goto restart_reverse_search;                                    
   472ee:	60cc           	bras 472bc <_Thread_queue_Enqueue_priority+0xa8>
    }                                                                 
    search_thread = (Thread_Control *)                                
   472f0:	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 ) ) {  
   472f4:	b7c9           	cmpal %a1,%a3                               
   472f6:	66dc           	bnes 472d4 <_Thread_queue_Enqueue_priority+0xc0>
   472f8:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   472fa:	7801           	moveq #1,%d4                                
   472fc:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47300:	663c           	bnes 4733e <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   47302:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   47306:	b680           	cmpl %d0,%d3                                
   47308:	6718           	beqs 47322 <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
   4730a:	2651           	moveal %a1@,%a3                             
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
   4730c:	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;                                
   47310:	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;                          
   47312:	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;                                 
   47316:	2288           	movel %a0,%a1@                              
  next_node->previous    = the_node;                                  
   47318:	2748 0004      	movel %a0,%a3@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   4731c:	46c1           	movew %d1,%sr                               
   4731e:	7001           	moveq #1,%d0                                
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
   47320:	6026           	bras 47348 <_Thread_queue_Enqueue_priority+0x134>
   47322:	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;                              
   47326:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   4732a:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   4732c:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47330:	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;                                  
   47334:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   47336:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   4733a:	46c2           	movew %d2,%sr                               
   4733c:	60e0           	bras 4731e <_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;                                                   
   4733e:	206e 0010      	moveal %fp@(16),%a0                         
  return the_thread_queue->sync_state;                                
   47342:	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;                                                   
   47346:	2082           	movel %d2,%a0@                              
  return the_thread_queue->sync_state;                                
}                                                                     
   47348:	4cd7 0c7c      	moveml %sp@,%d2-%d6/%a2-%a3                 
   4734c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      
0004c16c <_Thread_queue_Extract_fifo>:                                
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4c16c:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
void _Thread_queue_Extract_fifo(                                      
  Thread_queue_Control *the_thread_queue __attribute__((unused)),     
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
   4c172:	4e56 0000      	linkw %fp,#0                                
   4c176:	2f0a           	movel %a2,%sp@-                             
   4c178:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4c17c:	40c0           	movew %sr,%d0                               
   4c17e:	8280           	orl %d0,%d1                                 
   4c180:	46c1           	movew %d1,%sr                               
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   4c182:	222a 0010      	movel %a2@(16),%d1                          
   4c186:	0281 0003 bee0 	andil #245472,%d1                           
   4c18c:	660a           	bnes 4c198 <_Thread_queue_Extract_fifo+0x2c>
    _ISR_Enable( level );                                             
   4c18e:	46c0           	movew %d0,%sr                               
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4c190:	246e fffc      	moveal %fp@(-4),%a2                         
   4c194:	4e5e           	unlk %fp                                    
   4c196:	4e75           	rts                                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4c198:	2052           	moveal %a2@,%a0                             
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4c19a:	7202           	moveq #2,%d1                                
  previous       = the_node->previous;                                
   4c19c:	226a 0004      	moveal %a2@(4),%a1                          
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
   4c1a0:	42aa 0044      	clrl %a2@(68)                               
  next->previous = previous;                                          
  previous->next = next;                                              
   4c1a4:	2288           	movel %a0,%a1@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   4c1a6:	2149 0004      	movel %a1,%a0@(4)                           
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4c1aa:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4c1ae:	6704           	beqs 4c1b4 <_Thread_queue_Extract_fifo+0x48>
    _ISR_Enable( level );                                             
   4c1b0:	46c0           	movew %d0,%sr                               
   4c1b2:	6014           	bras 4c1c8 <_Thread_queue_Extract_fifo+0x5c>
   4c1b4:	7203           	moveq #3,%d1                                
   4c1b6:	2541 0050      	movel %d1,%a2@(80)                          
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4c1ba:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4c1bc:	486a 0048      	pea %a2@(72)                                
   4c1c0:	4eb9 0004 7d6c 	jsr 47d6c <_Watchdog_Remove>                
   4c1c6:	588f           	addql #4,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4c1c8:	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                                                                
                                                                      
}                                                                     
   4c1cc:	246e fffc      	moveal %fp@(-4),%a2                         
   4c1d0:	203c 1003 fff8 	movel #268697592,%d0                        
   4c1d6:	2d40 000c      	movel %d0,%fp@(12)                          
   4c1da:	4e5e           	unlk %fp                                    
   4c1dc:	4ef9 0004 6928 	jmp 46928 <_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 51fc 	lea 551fc <_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 528c 	lea 5528c <_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 55a0 	movel 755a0 <_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 54ee 	movel 754ee <_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 517c 	jsr 5517c <_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 2014 	jsr 52014 <_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 545c 	movel 7545c <_Thread_Dispatch_disable_level>,%d0
   517c6:	5280           	addql #1,%d0                                
   517c8:	23c0 0007 545c 	movel %d0,7545c <_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 53a8 	lea 553a8 <_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 499c 	jsr 5499c <_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 4012 	jsr 54012 <_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 545c 	movel 7545c <_Thread_Dispatch_disable_level>,%d0
   5182a:	5280           	addql #1,%d0                                
   5182c:	23c0 0007 545c 	movel %d0,7545c <_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 55a0 	movel 755a0 <_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 528c 	jsr 5528c <_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 54ee 	movel 754ee <_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 528c 	jsr 5528c <_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 4012 	jmp 54012 <_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 1fdc 	jmp 51fdc <_Chain_Append>                   <== NOT EXECUTED
                                                                      
0004ba98 <pthread_exit>:                                              
}                                                                     
                                                                      
void pthread_exit(                                                    
  void  *value_ptr                                                    
)                                                                     
{                                                                     
   4ba98:	4e56 0000      	linkw %fp,#0                                
  _POSIX_Thread_Exit( _Thread_Executing, value_ptr );                 
   4ba9c:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4baa0:	2f39 0005 cdc2 	movel 5cdc2 <_Thread_Executing>,%sp@-       
   4baa6:	4eb9 0004 ba28 	jsr 4ba28 <_POSIX_Thread_Exit>              
   4baac:	508f           	addql #8,%sp                                <== NOT EXECUTED
}                                                                     
   4baae:	4e5e           	unlk %fp                                    <== NOT EXECUTED
	...                                                                  
                                                                      
00045420 <pthread_testcancel>:                                        
 *                                                                    
 *  18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183     
 */                                                                   
                                                                      
void pthread_testcancel( void )                                       
{                                                                     
   45420:	4e56 0000      	linkw %fp,#0                                
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
   45424:	2039 0005 dcde 	movel 5dcde <_ISR_Nest_level>,%d0           
 *                                                                    
 *  18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183     
 */                                                                   
                                                                      
void pthread_testcancel( void )                                       
{                                                                     
   4542a:	2f02           	movel %d2,%sp@-                             
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
   4542c:	4a80           	tstl %d0                                    
   4542e:	6646           	bnes 45476 <pthread_testcancel+0x56>        
    return;                                                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
   45430:	2079 0005 dcfe 	moveal 5dcfe <_Thread_Executing>,%a0        
   45436:	2039 0005 dc44 	movel 5dc44 <_Thread_Dispatch_disable_level>,%d0
   4543c:	5280           	addql #1,%d0                                
   4543e:	2068 010e      	moveal %a0@(270),%a0                        
   45442:	23c0 0005 dc44 	movel %d0,5dc44 <_Thread_Dispatch_disable_level>
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
   45448:	4aa8 00d4      	tstl %a0@(212)                              
   4544c:	6704           	beqs 45452 <pthread_testcancel+0x32>        
   4544e:	4202           	clrb %d2                                    <== NOT EXECUTED
   45450:	6008           	bras 4545a <pthread_testcancel+0x3a>        <== NOT EXECUTED
                                                                      
/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */          
                                                                      
int	_EXFUN(pthread_setcancelstate, (int __state, int *__oldstate));   
int	_EXFUN(pthread_setcanceltype, (int __type, int *__oldtype));      
void 	_EXFUN(pthread_testcancel, (void));                             
   45452:	4aa8 00dc      	tstl %a0@(220)                              
   45456:	56c2           	sne %d2                                     
   45458:	4482           	negl %d2                                    
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
   4545a:	4eb9 0004 772a 	jsr 4772a <_Thread_Enable_dispatch>         
                                                                      
  if ( cancel )                                                       
   45460:	4a02           	tstb %d2                                    
   45462:	6712           	beqs 45476 <pthread_testcancel+0x56>        
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
   45464:	4878 ffff      	pea ffffffff <LESS>                         
   45468:	2f39 0005 dcfe 	movel 5dcfe <_Thread_Executing>,%sp@-       
   4546e:	4eb9 0004 a5fc 	jsr 4a5fc <_POSIX_Thread_Exit>              
   45474:	508f           	addql #8,%sp                                <== NOT EXECUTED
}                                                                     
   45476:	242e fffc      	movel %fp@(-4),%d2                          
   4547a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      
000454b2 <rtems_initialize_data_structures>:                          
#endif                                                                
                                                                      
Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ];
                                                                      
void rtems_initialize_data_structures(void)                           
{                                                                     
   454b2:	4e56 0000      	linkw %fp,#0                                
   454b6:	42b9 0005 ce90 	clrl 5ce90 <_System_state_Current>          
  #endif                                                              
                                                                      
  /*                                                                  
   * Initialize any target architecture specific support as early as possible
   */                                                                 
  _CPU_Initialize();                                                  
   454bc:	4eb9 0004 7ff4 	jsr 47ff4 <_CPU_Initialize>                 
                                                                      
  /*                                                                  
   *  Do this as early as possible to ensure no debugging output      
   *  is even attempted to be printed.                                
   */                                                                 
  _Debug_Manager_initialization();                                    
   454c2:	4eb9 0004 9fa4 	jsr 49fa4 <_Debug_Manager_initialization>   
                                                                      
  _API_extensions_Initialization();                                   
   454c8:	4eb9 0004 5740 	jsr 45740 <_API_extensions_Initialization>  
 *  This routine initializes the thread dispatching subsystem.        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )     
{                                                                     
  _Thread_Dispatch_disable_level = 1;                                 
   454ce:	7001           	moveq #1,%d0                                
   454d0:	23c0 0005 cd08 	movel %d0,5cd08 <_Thread_Dispatch_disable_level>
                                                                      
  /*                                                                  
   *  Before this is called, we are not allowed to allocate memory    
   *  from the Workspace because it is not initialized.               
   */                                                                 
  _Workspace_Handler_initialization();                                
   454d6:	4eb9 0004 7ecc 	jsr 47ecc <_Workspace_Handler_initialization>
                                                                      
  _User_extensions_Handler_initialization();                          
   454dc:	4eb9 0004 79e8 	jsr 479e8 <_User_extensions_Handler_initialization>
  _ISR_Handler_initialization();                                      
   454e2:	4eb9 0004 6034 	jsr 46034 <_ISR_Handler_initialization>     
  /*                                                                  
   * Initialize the internal support API and allocator Mutex          
   */                                                                 
  _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects;
                                                                      
  _API_Mutex_Initialization( 1 );                                     
   454e8:	4878 0001      	pea 1 <ADD>                                 
  _ISR_Handler_initialization();                                      
                                                                      
  /*                                                                  
   * Initialize the internal support API and allocator Mutex          
   */                                                                 
  _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects;
   454ec:	203c 0005 cd1e 	movel #380190,%d0                           
   454f2:	23c0 0005 ccc4 	movel %d0,5ccc4 <_Objects_Information_table+0x4>
                                                                      
  _API_Mutex_Initialization( 1 );                                     
   454f8:	4eb9 0004 5870 	jsr 45870 <_API_Mutex_Initialization>       
  _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex );                     
   454fe:	4879 0005 cdba 	pea 5cdba <_RTEMS_Allocator_Mutex>          
   45504:	4eb9 0004 57d0 	jsr 457d0 <_API_Mutex_Allocate>             
  #include <rtems/itron/itronapi.h>                                   
#endif                                                                
                                                                      
Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ];
                                                                      
void rtems_initialize_data_structures(void)                           
   4550a:	508f           	addql #8,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void )    
{                                                                     
  int index;                                                          
                                                                      
  _Priority_Major_bit_map = 0;                                        
   4550c:	41f9 0005 ce28 	lea 5ce28 <_Priority_Bit_map>,%a0           
   45512:	4240           	clrw %d0                                    
   45514:	33c0 0005 cdb8 	movew %d0,5cdb8 <_Priority_Major_bit_map>   
  for ( index=0 ; index <16 ; index++ )                               
     _Priority_Bit_map[ index ] = 0;                                  
   4551a:	4258           	clrw %a0@+                                  
RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void )    
{                                                                     
  int index;                                                          
                                                                      
  _Priority_Major_bit_map = 0;                                        
  for ( index=0 ; index <16 ; index++ )                               
   4551c:	b1fc 0005 ce48 	cmpal #380488,%a0                           
   45522:	66f6           	bnes 4551a <rtems_initialize_data_structures+0x68>
                                                                      
  _API_Mutex_Initialization( 1 );                                     
  _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex );                     
                                                                      
  _Priority_Handler_initialization();                                 
  _Watchdog_Handler_initialization();                                 
   45524:	4eb9 0004 7d20 	jsr 47d20 <_Watchdog_Handler_initialization>
  _TOD_Handler_initialization();                                      
   4552a:	4eb9 0004 5c5c 	jsr 45c5c <_TOD_Handler_initialization>     
                                                                      
  _Thread_Handler_initialization();                                   
   45530:	4eb9 0004 6f60 	jsr 46f60 <_Thread_Handler_initialization>  
    _MPCI_Handler_initialization( RTEMS_TIMEOUT );                    
  #endif                                                              
                                                                      
/* MANAGERS */                                                        
                                                                      
  _RTEMS_API_Initialize();                                            
   45536:	4eb9 0004 56ec 	jsr 456ec <_RTEMS_API_Initialize>           
                                                                      
  _Extension_Manager_initialization();                                
   4553c:	4eb9 0004 558c 	jsr 4558c <_Extension_Manager_initialization>
                                                                      
  _IO_Manager_initialization();                                       
   45542:	4eb9 0004 5604 	jsr 45604 <_IO_Manager_initialization>      
                                                                      
  #ifdef RTEMS_POSIX_API                                              
    _POSIX_API_Initialize();                                          
   45548:	4eb9 0004 5698 	jsr 45698 <_POSIX_API_Initialize>           
  _Thread_Create_idle();                                              
                                                                      
  /*                                                                  
   *  Scheduling can properly occur now as long as we avoid dispatching.
   */                                                                 
}                                                                     
   4554e:	4e5e           	unlk %fp                                    
   45550:	7001           	moveq #1,%d0                                
   45552:	23c0 0005 ce90 	movel %d0,5ce90 <_System_state_Current>     
   *  _Thread_Executing and _Thread_Heir are not set.                 
   *                                                                  
   *  At this point all API extensions are in place.  After the call to
   *  _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set.
   */                                                                 
  _Thread_Create_idle();                                              
   45558:	4ef9 0004 6aa4 	jmp 46aa4 <_Thread_Create_idle>             
	...                                                                  
                                                                      
00046d60 <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                  
)                                                                     
{                                                                     
   46d60:	4e56 0000      	linkw %fp,#0                                
   46d64:	206e 000c      	moveal %fp@(12),%a0                         
   46d68:	2f0a           	movel %a2,%sp@-                             
   46d6a:	226e 0010      	moveal %fp@(16),%a1                         
   46d6e:	2f02           	movel %d2,%sp@-                             
   46d70:	242e 0008      	movel %fp@(8),%d2                           
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
   46d74:	2039 0006 296a 	movel 6296a <_IO_Number_of_drivers>,%d0     
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
   46d7a:	2239 0006 214a 	movel 6214a <_ISR_Nest_level>,%d1           
   46d80:	6706           	beqs 46d88 <rtems_io_register_driver+0x28>  
   46d82:	7012           	moveq #18,%d0                               
   46d84:	6000 00d6      	braw 46e5c <rtems_io_register_driver+0xfc>  
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
   46d88:	4a89           	tstl %a1                                    
   46d8a:	6700 00ce      	beqw 46e5a <rtems_io_register_driver+0xfa>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
   46d8e:	2280           	movel %d0,%a1@                              
                                                                      
  if ( driver_table == NULL )                                         
   46d90:	4a88           	tstl %a0                                    
   46d92:	6700 00c6      	beqw 46e5a <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;
   46d96:	4a90           	tstl %a0@                                   
   46d98:	6600 00ce      	bnew 46e68 <rtems_io_register_driver+0x108> 
   46d9c:	4aa8 0004      	tstl %a0@(4)                                
   46da0:	6600 00c6      	bnew 46e68 <rtems_io_register_driver+0x108> 
   46da4:	6000 00b4      	braw 46e5a <rtems_io_register_driver+0xfa>  
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46da8:	2039 0006 20b0 	movel 620b0 <_Thread_Dispatch_disable_level>,%d0
   46dae:	5280           	addql #1,%d0                                
   46db0:	23c0 0006 20b0 	movel %d0,620b0 <_Thread_Dispatch_disable_level>
  if ( major >= major_limit )                                         
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
   46db6:	4a82           	tstl %d2                                    
   46db8:	662c           	bnes 46de6 <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;                
   46dba:	2039 0006 296a 	movel 6296a <_IO_Number_of_drivers>,%d0     
   46dc0:	2479 0006 296e 	moveal 6296e <_IO_Driver_address_table>,%a2 
   46dc6:	6010           	bras 46dd8 <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;
   46dc8:	4a92           	tstl %a2@                                   
   46dca:	6600 00a6      	bnew 46e72 <rtems_io_register_driver+0x112> 
   46dce:	4aaa 0004      	tstl %a2@(4)                                
   46dd2:	6600 009e      	bnew 46e72 <rtems_io_register_driver+0x112> 
   46dd6:	6004           	bras 46ddc <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 ) {                                         
   46dd8:	b082           	cmpl %d2,%d0                                
   46dda:	62ec           	bhis 46dc8 <rtems_io_register_driver+0x68>  
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
   46ddc:	2282           	movel %d2,%a1@                              
                                                                      
  if ( m != n )                                                       
   46dde:	b082           	cmpl %d2,%d0                                
   46de0:	6634           	bnes 46e16 <rtems_io_register_driver+0xb6>  
   46de2:	6000 0098      	braw 46e7c <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;
   46de6:	2202           	movel %d2,%d1                               
   46de8:	2002           	movel %d2,%d0                               
   46dea:	e789           	lsll #3,%d1                                 
   46dec:	eb88           	lsll #5,%d0                                 
   46dee:	2479 0006 296e 	moveal 6296e <_IO_Driver_address_table>,%a2 
   46df4:	9081           	subl %d1,%d0                                
   46df6:	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;
   46df8:	4a92           	tstl %a2@                                   
   46dfa:	660e           	bnes 46e0a <rtems_io_register_driver+0xaa>  
   46dfc:	4aaa 0004      	tstl %a2@(4)                                
   46e00:	57c0           	seq %d0                                     
   46e02:	49c0           	extbl %d0                                   
   46e04:	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 ) ) {                        
   46e06:	4a00           	tstb %d0                                    
   46e08:	660a           	bnes 46e14 <rtems_io_register_driver+0xb4>  
      _Thread_Enable_dispatch();                                      
   46e0a:	4eb9 0004 8686 	jsr 48686 <_Thread_Enable_dispatch>         
   46e10:	700c           	moveq #12,%d0                               
      return RTEMS_RESOURCE_IN_USE;                                   
   46e12:	6048           	bras 46e5c <rtems_io_register_driver+0xfc>  
    }                                                                 
                                                                      
    *registered_major = major;                                        
   46e14:	2282           	movel %d2,%a1@                              
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
   46e16:	4878 0018      	pea 18 <OPER2+0x4>                          
   46e1a:	2202           	movel %d2,%d1                               
   46e1c:	2002           	movel %d2,%d0                               
   46e1e:	e789           	lsll #3,%d1                                 
   46e20:	eb88           	lsll #5,%d0                                 
   46e22:	2f08           	movel %a0,%sp@-                             
   46e24:	9081           	subl %d1,%d0                                
   46e26:	d0b9 0006 296e 	addl 6296e <_IO_Driver_address_table>,%d0   
   46e2c:	2f00           	movel %d0,%sp@-                             
   46e2e:	4eb9 0005 1ccc 	jsr 51ccc <memcpy>                          
                                                                      
  _Thread_Enable_dispatch();                                          
   46e34:	4eb9 0004 8686 	jsr 48686 <_Thread_Enable_dispatch>         
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
   46e3a:	246e fffc      	moveal %fp@(-4),%a2                         
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e3e:	4fef 000c      	lea %sp@(12),%sp                            
   46e42:	2d42 0008      	movel %d2,%fp@(8)                           
}                                                                     
   46e46:	242e fff8      	movel %fp@(-8),%d2                          
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e4a:	42ae 0010      	clrl %fp@(16)                               
   46e4e:	42ae 000c      	clrl %fp@(12)                               
}                                                                     
   46e52:	4e5e           	unlk %fp                                    
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46e54:	4ef9 0004 e990 	jmp 4e990 <rtems_io_initialize>             
   46e5a:	7009           	moveq #9,%d0                                
}                                                                     
   46e5c:	242e fff8      	movel %fp@(-8),%d2                          
   46e60:	246e fffc      	moveal %fp@(-4),%a2                         
   46e64:	4e5e           	unlk %fp                                    
   46e66:	4e75           	rts                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
   46e68:	b082           	cmpl %d2,%d0                                
   46e6a:	6200 ff3c      	bhiw 46da8 <rtems_io_register_driver+0x48>  
   46e6e:	700a           	moveq #10,%d0                               
   46e70:	60ea           	bras 46e5c <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 ) {                                         
   46e72:	5282           	addql #1,%d2                                
   46e74:	45ea 0018      	lea %a2@(24),%a2                            
   46e78:	6000 ff5e      	braw 46dd8 <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();                                      
   46e7c:	4eb9 0004 8686 	jsr 48686 <_Thread_Enable_dispatch>         
   46e82:	7005           	moveq #5,%d0                                
      return sc;                                                      
   46e84:	60d6           	bras 46e5c <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 52e6 	pea 752e6 <_Partition_Information>          
   4f3a6:	242e 000c      	movel %fp@(12),%d2                          
   4f3aa:	4eb9 0005 378c 	jsr 5378c <_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 1fdc 	jsr 51fdc <_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 4012 	jsr 54012 <_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 4012 	jsr 54012 <_Thread_Enable_dispatch>         
   4f40e:	7009           	moveq #9,%d0                                
      return RTEMS_INVALID_ADDRESS;                                   
   4f410:	60ea           	bras 4f3fc <rtems_partition_return_buffer+0x6c>
	...                                                                  
                                                                      
000717f0 <rtems_rate_monotonic_period>:                               
                                                                      
rtems_status_code rtems_rate_monotonic_period(                        
  rtems_id       id,                                                  
  rtems_interval length                                               
)                                                                     
{                                                                     
   717f0:	4e56 ffec      	linkw %fp,#-20                              
   717f4:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   717f8:	486e fffc      	pea %fp@(-4)                                
   717fc:	262e 0008      	movel %fp@(8),%d3                           
   71800:	2f03           	movel %d3,%sp@-                             
   71802:	4879 0009 c770 	pea 9c770 <_Rate_monotonic_Information>     
   71808:	242e 000c      	movel %fp@(12),%d2                          
   7180c:	4eb9 0004 a8e0 	jsr 4a8e0 <_Objects_Get>                    
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
   71812:	4fef 000c      	lea %sp@(12),%sp                            
   71816:	2440           	moveal %d0,%a2                              
   71818:	4aae fffc      	tstl %fp@(-4)                               
   7181c:	6600 0138      	bnew 71956 <rtems_rate_monotonic_period+0x166>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
   71820:	2039 0009 bd86 	movel 9bd86 <_Thread_Executing>,%d0         
   71826:	b0aa 0040      	cmpl %a2@(64),%d0                           
   7182a:	670c           	beqs 71838 <rtems_rate_monotonic_period+0x48>
        _Thread_Enable_dispatch();                                    
   7182c:	4eb9 0004 b19a 	jsr 4b19a <_Thread_Enable_dispatch>         
   71832:	7817           	moveq #23,%d4                               
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
   71834:	6000 0122      	braw 71958 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
   71838:	4a82           	tstl %d2                                    
   7183a:	6622           	bnes 7185e <rtems_rate_monotonic_period+0x6e>
        switch ( the_period->state ) {                                
   7183c:	202a 0038      	movel %a2@(56),%d0                          
   71840:	7204           	moveq #4,%d1                                
   71842:	b280           	cmpl %d0,%d1                                
   71844:	6404           	bccs 7184a <rtems_rate_monotonic_period+0x5a>
   71846:	4284           	clrl %d4                                    <== NOT EXECUTED
   71848:	600a           	bras 71854 <rtems_rate_monotonic_period+0x64><== NOT EXECUTED
   7184a:	41f9 0009 5cfa 	lea 95cfa <CSWTCH.43>,%a0                   
   71850:	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();                                    
   71854:	4eb9 0004 b19a 	jsr 4b19a <_Thread_Enable_dispatch>         
        return( return_value );                                       
   7185a:	6000 00fc      	braw 71958 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
   7185e:	203c 0000 0700 	movel #1792,%d0                             
   71864:	40c4           	movew %sr,%d4                               
   71866:	8084           	orl %d4,%d0                                 
   71868:	46c0           	movew %d0,%sr                               
      switch ( the_period->state ) {                                  
   7186a:	202a 0038      	movel %a2@(56),%d0                          
   7186e:	7202           	moveq #2,%d1                                
   71870:	b280           	cmpl %d0,%d1                                
   71872:	6740           	beqs 718b4 <rtems_rate_monotonic_period+0xc4>
   71874:	123c 0004      	moveb #4,%d1                                
   71878:	b280           	cmpl %d0,%d1                                
   7187a:	6700 00a4      	beqw 71920 <rtems_rate_monotonic_period+0x130>
   7187e:	4a80           	tstl %d0                                    
   71880:	6600 00d4      	bnew 71956 <rtems_rate_monotonic_period+0x166>
        case RATE_MONOTONIC_INACTIVE: {                               
                                                                      
          _ISR_Enable( level );                                       
   71884:	46c4           	movew %d4,%sr                               
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   71886:	2f0a           	movel %a2,%sp@-                             
          );                                                          
                                                                      
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   71888:	4284           	clrl %d4                                    
          _ISR_Enable( level );                                       
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   7188a:	4eb9 0007 15dc 	jsr 715dc <_Rate_monotonic_Initiate_statistics>
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   71890:	203c 0007 1964 	movel #465252,%d0                           
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   71896:	7202           	moveq #2,%d1                                
   71898:	2540 002c      	movel %d0,%a2@(44)                          
  the_watchdog->id        = id;                                       
   7189c:	2543 0030      	movel %d3,%a2@(48)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   718a0:	2542 001c      	movel %d2,%a2@(28)                          
   718a4:	2541 0038      	movel %d1,%a2@(56)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   718a8:	42aa 0018      	clrl %a2@(24)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   718ac:	42aa 0034      	clrl %a2@(52)                               
   718b0:	6000 0084      	braw 71936 <rtems_rate_monotonic_period+0x146>
        case RATE_MONOTONIC_ACTIVE:                                   
                                                                      
          /*                                                          
           *  Update statistics from the concluding period.           
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   718b4:	2f0a           	movel %a2,%sp@-                             
   718b6:	4eb9 0007 16fc 	jsr 716fc <_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;                           
   718bc:	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;       
   718c0:	7401           	moveq #1,%d2                                
   718c2:	2542 0038      	movel %d2,%a2@(56)                          
          the_period->next_length = length;                           
                                                                      
          _ISR_Enable( level );                                       
   718c6:	46c4           	movew %d4,%sr                               
                                                                      
          _Thread_Executing->Wait.id = the_period->Object.id;         
   718c8:	2079 0009 bd86 	moveal 9bd86 <_Thread_Executing>,%a0        
   718ce:	216a 0008 0020 	movel %a2@(8),%a0@(32)                      
          _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   718d4:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   718d8:	2f08           	movel %a0,%sp@-                             
   718da:	4eb9 0004 b9c8 	jsr 4b9c8 <_Thread_Set_state>               
                                                                      
          /*                                                          
           *  Did the watchdog timer expire while we were actually blocking
           *  on it?                                                  
           */                                                         
          _ISR_Disable( level );                                      
   718e0:	203c 0000 0700 	movel #1792,%d0                             
   718e6:	40c1           	movew %sr,%d1                               
   718e8:	8081           	orl %d1,%d0                                 
   718ea:	46c0           	movew %d0,%sr                               
            local_state = the_period->state;                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   718ec:	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;                          
   718f0:	202a 0038      	movel %a2@(56),%d0                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   718f4:	2542 0038      	movel %d2,%a2@(56)                          
          _ISR_Enable( level );                                       
   718f8:	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 ) 
   718fa:	7203           	moveq #3,%d1                                
   718fc:	4fef 000c      	lea %sp@(12),%sp                            
   71900:	b280           	cmpl %d0,%d1                                
   71902:	6612           	bnes 71916 <rtems_rate_monotonic_period+0x126>
            _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   71904:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   71908:	2f39 0009 bd86 	movel 9bd86 <_Thread_Executing>,%sp@-       
   7190e:	4eb9 0004 ade0 	jsr 4ade0 <_Thread_Clear_state>             
   71914:	508f           	addql #8,%sp                                
                                                                      
          _Thread_Enable_dispatch();                                  
   71916:	4eb9 0004 b19a 	jsr 4b19a <_Thread_Enable_dispatch>         
   7191c:	4284           	clrl %d4                                    
          return RTEMS_SUCCESSFUL;                                    
   7191e:	6038           	bras 71958 <rtems_rate_monotonic_period+0x168>
        case RATE_MONOTONIC_EXPIRED:                                  
                                                                      
          /*                                                          
           *  Update statistics from the concluding period            
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   71920:	2f0a           	movel %a2,%sp@-                             
   71922:	4eb9 0007 16fc 	jsr 716fc <_Rate_monotonic_Update_statistics>
                                                                      
          _ISR_Enable( level );                                       
   71928:	46c4           	movew %d4,%sr                               
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   7192a:	7002           	moveq #2,%d0                                
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   7192c:	7806           	moveq #6,%d4                                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   7192e:	2542 001c      	movel %d2,%a2@(28)                          
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
                                                                      
          _ISR_Enable( level );                                       
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   71932:	2540 0038      	movel %d0,%a2@(56)                          
          the_period->next_length = length;                           
   71936:	2542 003c      	movel %d2,%a2@(60)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   7193a:	486a 0010      	pea %a2@(16)                                
   7193e:	4879 0009 bda4 	pea 9bda4 <_Watchdog_Ticks_chain>           
   71944:	4eb9 0004 c108 	jsr 4c108 <_Watchdog_Insert>                
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   7194a:	4eb9 0004 b19a 	jsr 4b19a <_Thread_Enable_dispatch>         
          return RTEMS_TIMEOUT;                                       
   71950:	4fef 000c      	lea %sp@(12),%sp                            
   71954:	6002           	bras 71958 <rtems_rate_monotonic_period+0x168>
   71956:	7804           	moveq #4,%d4                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   71958:	2004           	movel %d4,%d0                               
   7195a:	4cee 041c ffec 	moveml %fp@(-20),%d2-%d4/%a2                
   71960:	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 550e 	movel 7550e <_RTEMS_Allocator_Mutex>,%sp@-  
   4ffa4:	4eb9 0005 1f48 	jsr 51f48 <_API_Mutex_Lock>                 
   4ffaa:	486e fffc      	pea %fp@(-4)                                
   4ffae:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4ffb2:	4879 0007 535a 	pea 7535a <_Region_Information>             
   4ffb8:	4eb9 0005 3754 	jsr 53754 <_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 31d4 	jsr 531d4 <_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 550e 	movel 7550e <_RTEMS_Allocator_Mutex>,%sp@-  
   4fff6:	4eb9 0005 1fa8 	jsr 51fa8 <_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 5d2a 	moveal 75d2a <_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 5470 	tstb 75470 <_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 54ee 	cmpl 754ee <_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 5cf0 	pea 75cf0 <_Timer_Information>              
   51396:	4eb9 0005 378c 	jsr 5378c <_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 53a8 	jsr 553a8 <_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 54ee 	subl 754ee <_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 4012 	jsr 54012 <_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
                                                                      
00044d60 <ualarm>:                                                    
                                                                      
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
   44d60:	4e56 ffe8      	linkw %fp,#-24                              
   44d64:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   44d68:	262e 0008      	movel %fp@(8),%d3                           
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
   44d6c:	4ab9 0005 ecfa 	tstl 5ecfa <_POSIX_signals_Ualarm_timer+0x1c>
   44d72:	6622           	bnes 44d96 <ualarm+0x36>                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   44d74:	42b9 0005 ece6 	clrl 5ece6 <_POSIX_signals_Ualarm_timer+0x8>
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   44d7a:	4282           	clrl %d2                                    
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   44d7c:	203c 0004 4e4c 	movel #282188,%d0                           
  the_watchdog->id        = id;                                       
   44d82:	42b9 0005 ecfe 	clrl 5ecfe <_POSIX_signals_Ualarm_timer+0x20>
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   44d88:	23c0 0005 ecfa 	movel %d0,5ecfa <_POSIX_signals_Ualarm_timer+0x1c>
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   44d8e:	42b9 0005 ed02 	clrl 5ed02 <_POSIX_signals_Ualarm_timer+0x24>
   44d94:	6058           	bras 44dee <ualarm+0x8e>                    
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
   44d96:	4879 0005 ecde 	pea 5ecde <_POSIX_signals_Ualarm_timer>     
   44d9c:	4eb9 0004 8338 	jsr 48338 <_Watchdog_Remove>                
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
   44da2:	588f           	addql #4,%sp                                
   44da4:	7201           	moveq #1,%d1                                
   44da6:	5580           	subql #2,%d0                                
   44da8:	b280           	cmpl %d0,%d1                                
   44daa:	6404           	bccs 44db0 <ualarm+0x50>                    
   44dac:	4282           	clrl %d2                                    <== NOT EXECUTED
   44dae:	603e           	bras 44dee <ualarm+0x8e>                    <== NOT EXECUTED
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
   44db0:	2039 0005 ecf2 	movel 5ecf2 <_POSIX_signals_Ualarm_timer+0x14>,%d0
   44db6:	d0b9 0005 ecea 	addl 5ecea <_POSIX_signals_Ualarm_timer+0xc>,%d0
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
   44dbc:	486e fff8      	pea %fp@(-8)                                
   44dc0:	90b9 0005 ecf6 	subl 5ecf6 <_POSIX_signals_Ualarm_timer+0x18>,%d0
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
   44dc6:	283c 000f 4240 	movel #1000000,%d4                          
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
   44dcc:	2f00           	movel %d0,%sp@-                             
   44dce:	4eb9 0004 7e60 	jsr 47e60 <_Timespec_From_ticks>            
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
   44dd4:	202e fff8      	movel %fp@(-8),%d0                          
   44dd8:	4c04 0800      	mulsl %d4,%d0                               
      remaining += tp.tv_nsec / 1000;                                 
   44ddc:	283c 0000 03e8 	movel #1000,%d4                             
   44de2:	508f           	addql #8,%sp                                
   44de4:	242e fffc      	movel %fp@(-4),%d2                          
   44de8:	4c44 2802      	remsl %d4,%d2,%d2                           
   44dec:	d480           	addl %d0,%d2                                
  /*                                                                  
   *  If useconds is non-zero, then the caller wants to schedule      
   *  the alarm repeatedly at that interval.  If the interval is      
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
   44dee:	4a83           	tstl %d3                                    
   44df0:	674e           	beqs 44e40 <ualarm+0xe0>                    
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
   44df2:	280e           	movel %fp,%d4                               
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
   44df4:	223c 000f 4240 	movel #1000000,%d1                          
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
   44dfa:	5184           	subql #8,%d4                                
   44dfc:	45f9 0004 7ee4 	lea 47ee4 <_Timespec_To_ticks>,%a2          
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
   44e02:	4c41 3000      	remul %d1,%d0,%d3                           
   44e06:	4c41 3003      	remul %d1,%d3,%d3                           
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
   44e0a:	223c 0000 03e8 	movel #1000,%d1                             
   44e10:	4c00 1800      	mulsl %d0,%d1                               
    ticks = _Timespec_To_ticks( &tp );                                
   44e14:	2f04           	movel %d4,%sp@-                             
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
   44e16:	2d41 fffc      	movel %d1,%fp@(-4)                          
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
   44e1a:	2d43 fff8      	movel %d3,%fp@(-8)                          
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
   44e1e:	4e92           	jsr %a2@                                    
    if ( ticks == 0 )                                                 
      ticks = 1;                                                      
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
   44e20:	2f04           	movel %d4,%sp@-                             
   44e22:	4e92           	jsr %a2@                                    
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   44e24:	4879 0005 ecde 	pea 5ecde <_POSIX_signals_Ualarm_timer>     
   44e2a:	4879 0005 e590 	pea 5e590 <_Watchdog_Ticks_chain>           
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   44e30:	23c0 0005 ecea 	movel %d0,5ecea <_POSIX_signals_Ualarm_timer+0xc>
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   44e36:	4eb9 0004 821c 	jsr 4821c <_Watchdog_Insert>                
   44e3c:	4fef 0010      	lea %sp@(16),%sp                            
  }                                                                   
                                                                      
  return remaining;                                                   
}                                                                     
   44e40:	2002           	movel %d2,%d0                               
   44e42:	4cee 041c ffe8 	moveml %fp@(-24),%d2-%d4/%a2                
   44e48:	4e5e           	unlk %fp                                    <== NOT EXECUTED