RTEMS 4.11
Annotated Report
Sat Mar 19 22:14:59 2011

0004617c <_API_Mutex_Unlock>:                                         
#include <rtems/score/apimutex.h>                                     
                                                                      
void _API_Mutex_Unlock(                                               
  API_Mutex_Control *the_mutex                                        
)                                                                     
{                                                                     
   4617c:	4e56 0000      	linkw %fp,#0                                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46180:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
   46186:	5280           	addql #1,%d0                                
   46188:	206e 0008      	moveal %fp@(8),%a0                          
   4618c:	23c0 0005 d558 	movel %d0,5d558 <_Thread_Dispatch_disable_level>
  _Thread_Disable_dispatch();                                         
    _CORE_mutex_Surrender(                                            
   46192:	42a7           	clrl %sp@-                                  
   46194:	2f28 0008      	movel %a0@(8),%sp@-                         
   46198:	4868 0010      	pea %a0@(16)                                
   4619c:	4eb9 0004 6400 	jsr 46400 <_CORE_mutex_Surrender>           
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   461a2:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   461a6:	4e5e           	unlk %fp                                    
    _CORE_mutex_Surrender(                                            
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   461a8:	4ef9 0004 7a36 	jmp 47a36 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

0004cbd0 <_CORE_barrier_Wait>: Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level );
   4cbd0:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4cbd6:	4e56 fff4      	linkw %fp,#-12                              
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
   4cbda:	2279 0005 f9b8 	moveal 5f9b8 <_Per_CPU_Information+0xc>,%a1 
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4cbe0:	48d7 001c      	moveml %d2-%d4,%sp@                         
   4cbe4:	206e 0008      	moveal %fp@(8),%a0                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
   4cbe8:	42a9 0034      	clrl %a1@(52)                               
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4cbec:	242e 000c      	movel %fp@(12),%d2                          
   4cbf0:	262e 0014      	movel %fp@(20),%d3                          
   4cbf4:	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 );                                              
   4cbf8:	40c1           	movew %sr,%d1                               
   4cbfa:	8081           	orl %d1,%d0                                 
   4cbfc:	46c0           	movew %d0,%sr                               
  the_barrier->number_of_waiting_threads++;                           
   4cbfe:	2028 0048      	movel %a0@(72),%d0                          
   4cc02:	5280           	addql #1,%d0                                
   4cc04:	2140 0048      	movel %d0,%a0@(72)                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
   4cc08:	4aa8 0040      	tstl %a0@(64)                               
   4cc0c:	6626           	bnes 4cc34 <_CORE_barrier_Wait+0x64>        
    if ( the_barrier->number_of_waiting_threads ==                    
   4cc0e:	b0a8 0044      	cmpl %a0@(68),%d0                           
   4cc12:	6620           	bnes 4cc34 <_CORE_barrier_Wait+0x64>        
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
   4cc14:	7001           	moveq #1,%d0                                
   4cc16:	2340 0034      	movel %d0,%a1@(52)                          
      _ISR_Enable( level );                                           
   4cc1a:	46c1           	movew %d1,%sr                               
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   4cc1c:	2d44 0010      	movel %d4,%fp@(16)                          
   4cc20:	2d42 000c      	movel %d2,%fp@(12)                          
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
}                                                                     
   4cc24:	4cd7 001c      	moveml %sp@,%d2-%d4                         
  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 );
   4cc28:	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 );         
}                                                                     
   4cc2c:	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 );
   4cc2e:	4ef9 0004 cb9c 	jmp 4cb9c <_CORE_barrier_Release>           
   4cc34:	7001           	moveq #1,%d0                                
   4cc36:	2140 0030      	movel %d0,%a0@(48)                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
   4cc3a:	2348 0044      	movel %a0,%a1@(68)                          
  executing->Wait.id             = id;                                
   4cc3e:	2342 0020      	movel %d2,%a1@(32)                          
  _ISR_Enable( level );                                               
   4cc42:	46c1           	movew %d1,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   4cc44:	2d43 000c      	movel %d3,%fp@(12)                          
   4cc48:	203c 0004 9cec 	movel #302316,%d0                           
   4cc4e:	2d48 0008      	movel %a0,%fp@(8)                           
}                                                                     
   4cc52:	4cd7 001c      	moveml %sp@,%d2-%d4                         
  _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 );         
   4cc56:	2d40 0010      	movel %d0,%fp@(16)                          
}                                                                     
   4cc5a:	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 );         
   4cc5c:	4ef9 0004 99d8 	jmp 499d8 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

0004e02c <_CORE_message_queue_Initialize>: /* * Round size up to multiple of a pointer for chain init and * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) {
   4e02c:	7003           	moveq #3,%d0                                
  CORE_message_queue_Control    *the_message_queue,                   
  CORE_message_queue_Attributes *the_message_queue_attributes,        
  uint32_t                       maximum_pending_messages,            
  size_t                         maximum_message_size                 
)                                                                     
{                                                                     
   4e02e:	4e56 fff4      	linkw %fp,#-12                              
   4e032:	222e 0014      	movel %fp@(20),%d1                          
   4e036:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4e03a:	246e 0008      	moveal %fp@(8),%a2                          
   4e03e:	242e 0010      	movel %fp@(16),%d2                          
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e042:	c081           	andl %d1,%d0                                
)                                                                     
{                                                                     
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
   4e044:	2542 0044      	movel %d2,%a2@(68)                          
  the_message_queue->number_of_pending_messages = 0;                  
   4e048:	42aa 0048      	clrl %a2@(72)                               
  the_message_queue->maximum_message_size       = maximum_message_size;
   4e04c:	2541 004c      	movel %d1,%a2@(76)                          
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e050:	4a80           	tstl %d0                                    
   4e052:	670e           	beqs 4e062 <_CORE_message_queue_Initialize+0x36>
    allocated_message_size += sizeof(uint32_t);                       
   4e054:	2001           	movel %d1,%d0                               
   4e056:	5880           	addql #4,%d0                                
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
   4e058:	76fc           	moveq #-4,%d3                               
   4e05a:	c083           	andl %d3,%d0                                
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
   4e05c:	b280           	cmpl %d0,%d1                                
   4e05e:	6272           	bhis 4e0d2 <_CORE_message_queue_Initialize+0xa6><== NEVER TAKEN
   4e060:	6002           	bras 4e064 <_CORE_message_queue_Initialize+0x38>
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e062:	2001           	movel %d1,%d0                               
  /*                                                                  
   *  Calculate how much total memory is required for message buffering and
   *  check for overflow on the multiplication.                       
   */                                                                 
  message_buffering_required = (size_t) maximum_pending_messages *    
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
   4e064:	2600           	movel %d0,%d3                               
   4e066:	0683 0000 0010 	addil #16,%d3                               
                                                                      
  /*                                                                  
   *  Calculate how much total memory is required for message buffering and
   *  check for overflow on the multiplication.                       
   */                                                                 
  message_buffering_required = (size_t) maximum_pending_messages *    
   4e06c:	2203           	movel %d3,%d1                               
   4e06e:	4c02 1800      	mulsl %d2,%d1                               
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
   4e072:	b081           	cmpl %d1,%d0                                
   4e074:	625c           	bhis 4e0d2 <_CORE_message_queue_Initialize+0xa6><== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
   4e076:	2f01           	movel %d1,%sp@-                             
   4e078:	4eb9 0005 0998 	jsr 50998 <_Workspace_Allocate>             
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e07e:	588f           	addql #4,%sp                                
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
   4e080:	2540 005c      	movel %d0,%a2@(92)                          
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e084:	674c           	beqs 4e0d2 <_CORE_message_queue_Initialize+0xa6>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
   4e086:	2f03           	movel %d3,%sp@-                             
   4e088:	2f02           	movel %d2,%sp@-                             
   4e08a:	2f00           	movel %d0,%sp@-                             
   4e08c:	486a 0060      	pea %a2@(96)                                
   4e090:	4eb9 0005 22f0 	jsr 522f0 <_Chain_Initialize>               
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   4e096:	41ea 0054      	lea %a2@(84),%a0                            
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
   4e09a:	7001           	moveq #1,%d0                                
   4e09c:	2548 0050      	movel %a0,%a2@(80)                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e0a0:	41ea 0050      	lea %a2@(80),%a0                            
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   4e0a4:	42aa 0054      	clrl %a2@(84)                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e0a8:	2548 0058      	movel %a0,%a2@(88)                          
   4e0ac:	4878 0006      	pea 6 <EXTENDSFDF>                          
   4e0b0:	206e 000c      	moveal %fp@(12),%a0                         
   4e0b4:	4878 0080      	pea 80 <DBL_MANT_DIG+0x4b>                  
   4e0b8:	b090           	cmpl %a0@,%d0                               
   4e0ba:	57c0           	seq %d0                                     
   4e0bc:	49c0           	extbl %d0                                   
   4e0be:	4480           	negl %d0                                    
   4e0c0:	2f00           	movel %d0,%sp@-                             
   4e0c2:	2f0a           	movel %a2,%sp@-                             
   4e0c4:	4eb9 0005 0128 	jsr 50128 <_Thread_queue_Initialize>        
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
   4e0ca:	4fef 0020      	lea %sp@(32),%sp                            
   4e0ce:	7001           	moveq #1,%d0                                
   4e0d0:	6002           	bras 4e0d4 <_CORE_message_queue_Initialize+0xa8>
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
    return false;                                                     
   4e0d2:	4200           	clrb %d0                                    
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
   4e0d4:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   4e0da:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004e0e0 <_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 );
   4e0e0:	223c 0000 0700 	movel #1792,%d1                             
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e0e6:	4e56 ffe0      	linkw %fp,#-32                              
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
   4e0ea:	2079 0006 61ac 	moveal 661ac <_Per_CPU_Information+0xc>,%a0 
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e0f0:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4e0f4:	246e 0008      	moveal %fp@(8),%a2                          
   4e0f8:	282e 000c      	movel %fp@(12),%d4                          
   4e0fc:	242e 0010      	movel %fp@(16),%d2                          
   4e100:	226e 0014      	moveal %fp@(20),%a1                         
   4e104:	262e 001c      	movel %fp@(28),%d3                          
   4e108:	1a2e 001b      	moveb %fp@(27),%d5                          
  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; 
   4e10c:	42a8 0034      	clrl %a0@(52)                               
  _ISR_Disable( level );                                              
   4e110:	40c0           	movew %sr,%d0                               
   4e112:	8280           	orl %d0,%d1                                 
   4e114:	46c1           	movew %d1,%sr                               
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   4e116:	220a           	movel %a2,%d1                               
   4e118:	0681 0000 0054 	addil #84,%d1                               
  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 );   
}                                                                     
   4e11e:	266a 0050      	moveal %a2@(80),%a3                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   4e122:	b28b           	cmpl %a3,%d1                                
   4e124:	6752           	beqs 4e178 <_CORE_message_queue_Seize+0x98> 
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
   4e126:	2853           	moveal %a3@,%a4                             
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e128:	4bea 0050      	lea %a2@(80),%a5                            
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
                                                                      
  head->next = new_first;                                             
   4e12c:	254c 0050      	movel %a4,%a2@(80)                          
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e130:	294d 0004      	movel %a5,%a4@(4)                           
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   4e134:	4a8b           	tstl %a3                                    
   4e136:	6740           	beqs 4e178 <_CORE_message_queue_Seize+0x98> <== NEVER TAKEN
    the_message_queue->number_of_pending_messages -= 1;               
   4e138:	53aa 0048      	subql #1,%a2@(72)                           
    _ISR_Enable( level );                                             
   4e13c:	46c0           	movew %d0,%sr                               
                                                                      
    *size_p = the_message->Contents.size;                             
   4e13e:	22ab 0008      	movel %a3@(8),%a1@                          
    _Thread_Executing->Wait.count =                                   
   4e142:	2079 0006 61ac 	moveal 661ac <_Per_CPU_Information+0xc>,%a0 
   4e148:	42a8 0024      	clrl %a0@(36)                               
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e14c:	2f11           	movel %a1@,%sp@-                            
   4e14e:	486b 000c      	pea %a3@(12)                                
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (   
  CORE_message_queue_Control        *the_message_queue,               
  CORE_message_queue_Buffer_control *the_message                      
)                                                                     
{                                                                     
  _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
   4e152:	45ea 0060      	lea %a2@(96),%a2                            
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e156:	2f02           	movel %d2,%sp@-                             
   4e158:	4eb9 0005 4654 	jsr 54654 <memcpy>                          
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (   
  CORE_message_queue_Control        *the_message_queue,               
  CORE_message_queue_Buffer_control *the_message                      
)                                                                     
{                                                                     
  _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
   4e15e:	4fef 000c      	lea %sp@(12),%sp                            
   4e162:	2d4b 000c      	movel %a3,%fp@(12)                          
   4e166:	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 );   
}                                                                     
   4e16a:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e170:	4e5e           	unlk %fp                                    
   4e172:	4ef9 0004 df68 	jmp 4df68 <_Chain_Append>                   
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   4e178:	4a05           	tstb %d5                                    
   4e17a:	6612           	bnes 4e18e <_CORE_message_queue_Seize+0xae> 
    _ISR_Enable( level );                                             
   4e17c:	46c0           	movew %d0,%sr                               
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4e17e:	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 );   
}                                                                     
   4e180:	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;
   4e186:	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 );   
}                                                                     
   4e18a:	4e5e           	unlk %fp                                    
   4e18c:	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;
   4e18e:	7201           	moveq #1,%d1                                
   4e190:	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;     
   4e194:	2142 002c      	movel %d2,%a0@(44)                          
    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;             
   4e198:	214a 0044      	movel %a2,%a0@(68)                          
  executing->Wait.id = id;                                            
   4e19c:	2144 0020      	movel %d4,%a0@(32)                          
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
   4e1a0:	2149 0028      	movel %a1,%a0@(40)                          
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
   4e1a4:	46c0           	movew %d0,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4e1a6:	4bf9 0005 01f8 	lea 501f8 <_Thread_queue_Timeout>,%a5       
   4e1ac:	2d43 000c      	movel %d3,%fp@(12)                          
   4e1b0:	2d4d 0010      	movel %a5,%fp@(16)                          
   4e1b4:	2d4a 0008      	movel %a2,%fp@(8)                           
}                                                                     
   4e1b8:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e1be:	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 );   
   4e1c0:	4ef9 0004 fee4 	jmp 4fee4 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

0004635c <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
   4635c:	4e56 0000      	linkw %fp,#0                                
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   46360:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
   46366:	2f0a           	movel %a2,%sp@-                             
   46368:	246e 0008      	moveal %fp@(8),%a2                          
   4636c:	2f02           	movel %d2,%sp@-                             
   4636e:	142e 0013      	moveb %fp@(19),%d2                          
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   46372:	4a80           	tstl %d0                                    
   46374:	671c           	beqs 46392 <_CORE_mutex_Seize+0x36>         
   46376:	4a02           	tstb %d2                                    
   46378:	6718           	beqs 46392 <_CORE_mutex_Seize+0x36>         <== NEVER TAKEN
   4637a:	7001           	moveq #1,%d0                                
   4637c:	b0b9 0005 d6a0 	cmpl 5d6a0 <_System_state_Current>,%d0      
   46382:	640e           	bccs 46392 <_CORE_mutex_Seize+0x36>         
   46384:	4878 0012      	pea 12 <INVALID_OPERATION+0x2>              
   46388:	42a7           	clrl %sp@-                                  
   4638a:	42a7           	clrl %sp@-                                  
   4638c:	4eb9 0004 69b0 	jsr 469b0 <_Internal_error_Occurred>        
   46392:	486e 0018      	pea %fp@(24)                                
   46396:	2f0a           	movel %a2,%sp@-                             
   46398:	4eb9 0004 a274 	jsr 4a274 <_CORE_mutex_Seize_interrupt_trylock>
   4639e:	508f           	addql #8,%sp                                
   463a0:	4a80           	tstl %d0                                    
   463a2:	6750           	beqs 463f4 <_CORE_mutex_Seize+0x98>         
   463a4:	4a02           	tstb %d2                                    
   463a6:	6614           	bnes 463bc <_CORE_mutex_Seize+0x60>         
   463a8:	202e 0018      	movel %fp@(24),%d0                          
   463ac:	46c0           	movew %d0,%sr                               
   463ae:	2079 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a0 
   463b4:	7001           	moveq #1,%d0                                
   463b6:	2140 0034      	movel %d0,%a0@(52)                          
   463ba:	6038           	bras 463f4 <_CORE_mutex_Seize+0x98>         
                                                                      
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;
   463bc:	7001           	moveq #1,%d0                                
   463be:	2079 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a0 
   463c4:	2540 0030      	movel %d0,%a2@(48)                          
   463c8:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
   463ce:	5280           	addql #1,%d0                                
   463d0:	216e 000c 0020 	movel %fp@(12),%a0@(32)                     
   463d6:	214a 0044      	movel %a2,%a0@(68)                          
   463da:	23c0 0005 d558 	movel %d0,5d558 <_Thread_Dispatch_disable_level>
   463e0:	202e 0018      	movel %fp@(24),%d0                          
   463e4:	46c0           	movew %d0,%sr                               
   463e6:	2f2e 0014      	movel %fp@(20),%sp@-                        
   463ea:	2f0a           	movel %a2,%sp@-                             
   463ec:	4eb9 0004 62f8 	jsr 462f8 <_CORE_mutex_Seize_interrupt_blocking>
   463f2:	508f           	addql #8,%sp                                
}                                                                     
   463f4:	242e fff8      	movel %fp@(-8),%d2                          
   463f8:	246e fffc      	moveal %fp@(-4),%a2                         
   463fc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046538 <_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 ) {
   46538:	4e56 0000      	linkw %fp,#0                                
   4653c:	2f0a           	movel %a2,%sp@-                             
   4653e:	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)) ) {
   46542:	2f0a           	movel %a2,%sp@-                             
   46544:	4eb9 0004 7cf8 	jsr 47cf8 <_Thread_queue_Dequeue>           
   4654a:	588f           	addql #4,%sp                                
   4654c:	4a80           	tstl %d0                                    
   4654e:	6624           	bnes 46574 <_CORE_semaphore_Surrender+0x3c> 
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      (*api_semaphore_mp_support) ( the_thread, id );                 
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
   46550:	303c 0700      	movew #1792,%d0                             
   46554:	40c1           	movew %sr,%d1                               
   46556:	8081           	orl %d1,%d0                                 
   46558:	46c0           	movew %d0,%sr                               
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
   4655a:	202a 0048      	movel %a2@(72),%d0                          
   4655e:	b0aa 0040      	cmpl %a2@(64),%d0                           
   46562:	640a           	bccs 4656e <_CORE_semaphore_Surrender+0x36> <== NEVER TAKEN
        the_semaphore->count += 1;                                    
   46564:	5280           	addql #1,%d0                                
   46566:	2540 0048      	movel %d0,%a2@(72)                          
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
   4656a:	4280           	clrl %d0                                    
   4656c:	6002           	bras 46570 <_CORE_semaphore_Surrender+0x38> 
  } else {                                                            
    _ISR_Disable( level );                                            
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
        the_semaphore->count += 1;                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
   4656e:	7004           	moveq #4,%d0                                <== NOT EXECUTED
    _ISR_Enable( level );                                             
   46570:	46c1           	movew %d1,%sr                               
   46572:	6002           	bras 46576 <_CORE_semaphore_Surrender+0x3e> 
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
   46574:	4280           	clrl %d0                                    
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
   46576:	246e fffc      	moveal %fp@(-4),%a2                         
   4657a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045458 <_Event_Surrender>: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; option_set = (rtems_option) the_thread->Wait.option; _ISR_Disable( level );
   45458:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Event_Surrender(                                                
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   4545e:	4e56 ffe8      	linkw %fp,#-24                              
   45462:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   45466:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_event_set     event_condition;                                
  rtems_event_set     seized_events;                                  
  rtems_option        option_set;                                     
  RTEMS_API_Control  *api;                                            
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
   4546a:	206a 00fc      	moveal %a2@(252),%a0                        
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
   4546e:	282a 0030      	movel %a2@(48),%d4                          
                                                                      
  _ISR_Disable( level );                                              
   45472:	40c1           	movew %sr,%d1                               
   45474:	8081           	orl %d1,%d0                                 
   45476:	46c0           	movew %d0,%sr                               
  pending_events  = api->pending_events;                              
  event_condition = (rtems_event_set) the_thread->Wait.count;         
   45478:	262a 0024      	movel %a2@(36),%d3                          
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get(                 
  rtems_event_set the_event_set,                                      
  rtems_event_set the_event_condition                                 
)                                                                     
{                                                                     
   return ( the_event_set & the_event_condition );                    
   4547c:	2003           	movel %d3,%d0                               
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
                                                                      
  _ISR_Disable( level );                                              
  pending_events  = api->pending_events;                              
   4547e:	2410           	movel %a0@,%d2                              
   45480:	c082           	andl %d2,%d0                                
  seized_events = _Event_sets_Get( pending_events, event_condition ); 
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
   45482:	6606           	bnes 4548a <_Event_Surrender+0x32>          
    _ISR_Enable( level );                                             
   45484:	46c1           	movew %d1,%sr                               
    return;                                                           
   45486:	6000 00ca      	braw 45552 <_Event_Surrender+0xfa>          
                                                                      
  /*                                                                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
   4548a:	4ab9 0005 d6f0 	tstl 5d6f0 <_Per_CPU_Information+0x8>       
   45490:	674a           	beqs 454dc <_Event_Surrender+0x84>          
   45492:	b5f9 0005 d6f4 	cmpal 5d6f4 <_Per_CPU_Information+0xc>,%a2  
   45498:	6642           	bnes 454dc <_Event_Surrender+0x84>          
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
   4549a:	2279 0005 d728 	moveal 5d728 <_Event_Sync_state>,%a1        
  /*                                                                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
   454a0:	7a02           	moveq #2,%d5                                
   454a2:	ba89           	cmpl %a1,%d5                                
   454a4:	670e           	beqs 454b4 <_Event_Surrender+0x5c>          <== NEVER TAKEN
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
   454a6:	2279 0005 d728 	moveal 5d728 <_Event_Sync_state>,%a1        
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
   454ac:	1a3c 0001      	moveb #1,%d5                                
   454b0:	ba89           	cmpl %a1,%d5                                
   454b2:	6628           	bnes 454dc <_Event_Surrender+0x84>          
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
   454b4:	b680           	cmpl %d0,%d3                                
   454b6:	6706           	beqs 454be <_Event_Surrender+0x66>          
   454b8:	0804 0001      	btst #1,%d4                                 
   454bc:	671a           	beqs 454d8 <_Event_Surrender+0x80>          <== NEVER TAKEN
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Clear(               
 rtems_event_set the_event_set,                                       
 rtems_event_set the_mask                                             
)                                                                     
{                                                                     
   return ( the_event_set & ~(the_mask) );                            
   454be:	2600           	movel %d0,%d3                               
   454c0:	4683           	notl %d3                                    
   454c2:	c682           	andl %d2,%d3                                
   454c4:	2083           	movel %d3,%a0@                              
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454c6:	206a 0028      	moveal %a2@(40),%a0                         
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
   454ca:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454ce:	2080           	movel %d0,%a0@                              
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
   454d0:	7003           	moveq #3,%d0                                
   454d2:	23c0 0005 d728 	movel %d0,5d728 <_Event_Sync_state>         
    }                                                                 
    _ISR_Enable( level );                                             
   454d8:	46c1           	movew %d1,%sr                               
    return;                                                           
   454da:	6076           	bras 45552 <_Event_Surrender+0xfa>          
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event (              
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_FOR_EVENT);                    
   454dc:	2a2a 0010      	movel %a2@(16),%d5                          
   454e0:	0285 0000 0100 	andil #256,%d5                              
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
   454e6:	6768           	beqs 45550 <_Event_Surrender+0xf8>          
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
   454e8:	b680           	cmpl %d0,%d3                                
   454ea:	6706           	beqs 454f2 <_Event_Surrender+0x9a>          
   454ec:	0804 0001      	btst #1,%d4                                 
   454f0:	675e           	beqs 45550 <_Event_Surrender+0xf8>          <== NEVER TAKEN
   454f2:	2600           	movel %d0,%d3                               
   454f4:	4683           	notl %d3                                    
   454f6:	c682           	andl %d2,%d3                                
   454f8:	2083           	movel %d3,%a0@                              
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454fa:	206a 0028      	moveal %a2@(40),%a0                         
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
   454fe:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   45502:	2080           	movel %d0,%a0@                              
                                                                      
      _ISR_Flash( level );                                            
   45504:	203c 0000 0700 	movel #1792,%d0                             
   4550a:	46c1           	movew %d1,%sr                               
   4550c:	8081           	orl %d1,%d0                                 
   4550e:	46c0           	movew %d0,%sr                               
   45510:	47f9 0004 76f4 	lea 476f4 <_Thread_Clear_state>,%a3         
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
   45516:	7a02           	moveq #2,%d5                                
   45518:	baaa 0050      	cmpl %a2@(80),%d5                           
   4551c:	6710           	beqs 4552e <_Event_Surrender+0xd6>          
        _ISR_Enable( level );                                         
   4551e:	46c1           	movew %d1,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   45520:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45526:	2f0a           	movel %a2,%sp@-                             
   45528:	4e93           	jsr %a3@                                    
   4552a:	508f           	addql #8,%sp                                
   4552c:	6024           	bras 45552 <_Event_Surrender+0xfa>          
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   4552e:	7003           	moveq #3,%d0                                
   45530:	2540 0050      	movel %d0,%a2@(80)                          
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
   45534:	46c1           	movew %d1,%sr                               
        (void) _Watchdog_Remove( &the_thread->Timer );                
   45536:	486a 0048      	pea %a2@(72)                                
   4553a:	4eb9 0004 8794 	jsr 48794 <_Watchdog_Remove>                
   45540:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45546:	2f0a           	movel %a2,%sp@-                             
   45548:	4e93           	jsr %a3@                                    
   4554a:	4fef 000c      	lea %sp@(12),%sp                            
   4554e:	6002           	bras 45552 <_Event_Surrender+0xfa>          
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
   45550:	46c1           	movew %d1,%sr                               
}                                                                     
   45552:	4cee 0c3c ffe8 	moveml %fp@(-24),%d2-%d5/%a2-%a3            
   45558:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004555c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
   4555c:	4e56 fffc      	linkw %fp,#-4                               
   45560:	2f03           	movel %d3,%sp@-                             
   45562:	2f02           	movel %d2,%sp@-                             
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   45564:	486e fffc      	pea %fp@(-4)                                
   45568:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4556c:	4eb9 0004 7a5c 	jsr 47a5c <_Thread_Get>                     
  switch ( location ) {                                               
   45572:	508f           	addql #8,%sp                                
   45574:	4aae fffc      	tstl %fp@(-4)                               
   45578:	6656           	bnes 455d0 <_Event_Timeout+0x74>            <== NEVER TAKEN
       *                                                              
       *  If it is not satisfied, then it is "nothing happened" and   
       *  this is the "timeout" transition.  After a request is satisfied,
       *  a timeout is not allowed to occur.                          
       */                                                             
      _ISR_Disable( level );                                          
   4557a:	223c 0000 0700 	movel #1792,%d1                             
   45580:	40c2           	movew %sr,%d2                               
   45582:	8282           	orl %d2,%d1                                 
   45584:	46c1           	movew %d1,%sr                               
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
   45586:	2040           	moveal %d0,%a0                              
   45588:	42a8 0024      	clrl %a0@(36)                               
        if ( _Thread_Is_executing( the_thread ) ) {                   
   4558c:	b0b9 0005 d6f4 	cmpl 5d6f4 <_Per_CPU_Information+0xc>,%d0   
   45592:	6614           	bnes 455a8 <_Event_Timeout+0x4c>            
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
   45594:	2239 0005 d728 	movel 5d728 <_Event_Sync_state>,%d1         
   4559a:	7601           	moveq #1,%d3                                
   4559c:	b681           	cmpl %d1,%d3                                
   4559e:	6608           	bnes 455a8 <_Event_Timeout+0x4c>            
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
   455a0:	7202           	moveq #2,%d1                                
   455a2:	23c1 0005 d728 	movel %d1,5d728 <_Event_Sync_state>         
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
   455a8:	7606           	moveq #6,%d3                                
   455aa:	2040           	moveal %d0,%a0                              
   455ac:	2143 0034      	movel %d3,%a0@(52)                          
      _ISR_Enable( level );                                           
   455b0:	46c2           	movew %d2,%sr                               
   455b2:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   455b8:	2f00           	movel %d0,%sp@-                             
   455ba:	4eb9 0004 76f4 	jsr 476f4 <_Thread_Clear_state>             
      _Thread_Unblock( the_thread );                                  
      _Thread_Unnest_dispatch();                                      
      break;                                                          
   455c0:	508f           	addql #8,%sp                                
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   455c2:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
   455c8:	5380           	subql #1,%d0                                
   455ca:	23c0 0005 d558 	movel %d0,5d558 <_Thread_Dispatch_disable_level>
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
   455d0:	242e fff4      	movel %fp@(-12),%d2                         
   455d4:	262e fff8      	movel %fp@(-8),%d3                          
   455d8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004a838 <_Heap_Extend>: Heap_Control *heap, void *extend_area_begin_ptr, uintptr_t extend_area_size, uintptr_t *extended_size_ptr ) {
   4a838:	4e56 ffcc      	linkw %fp,#-52                              
   4a83c:	202e 0010      	movel %fp@(16),%d0                          
   4a840:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4a844:	246e 0008      	moveal %fp@(8),%a2                          
   4a848:	262e 000c      	movel %fp@(12),%d3                          
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
   4a84c:	2403           	movel %d3,%d2                               
   4a84e:	d480           	addl %d0,%d2                                
  uintptr_t const free_size = stats->free_size;                       
   4a850:	206a 0030      	moveal %a2@(48),%a0                         
  uintptr_t extend_area_size,                                         
  uintptr_t *extended_size_ptr                                        
)                                                                     
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const first_block = heap->first_block;                  
   4a854:	282a 0020      	movel %a2@(32),%d4                          
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
   4a858:	2a2a 0010      	movel %a2@(16),%d5                          
  uintptr_t const min_block_size = heap->min_block_size;              
   4a85c:	222a 0014      	movel %a2@(20),%d1                          
  Heap_Block *start_block = first_block;                              
  Heap_Block *merge_below_block = NULL;                               
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
   4a860:	42ae fffc      	clrl %fp@(-4)                               
  Heap_Block *extend_last_block = NULL;                               
   4a864:	42ae fff8      	clrl %fp@(-8)                               
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
  uintptr_t const free_size = stats->free_size;                       
   4a868:	2d48 fff4      	movel %a0,%fp@(-12)                         
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
   4a86c:	b682           	cmpl %d2,%d3                                
   4a86e:	6200 01aa      	bhiw 4aa1a <_Heap_Extend+0x1e2>             
    return false;                                                     
  }                                                                   
                                                                      
  extend_area_ok = _Heap_Get_first_and_last_block(                    
   4a872:	486e fff8      	pea %fp@(-8)                                
   4a876:	486e fffc      	pea %fp@(-4)                                
   4a87a:	2f01           	movel %d1,%sp@-                             
   4a87c:	2f05           	movel %d5,%sp@-                             
   4a87e:	2f00           	movel %d0,%sp@-                             
   4a880:	2f03           	movel %d3,%sp@-                             
   4a882:	4eb9 0004 6a6e 	jsr 46a6e <_Heap_Get_first_and_last_block>  
    page_size,                                                        
    min_block_size,                                                   
    &extend_first_block,                                              
    &extend_last_block                                                
  );                                                                  
  if (!extend_area_ok ) {                                             
   4a888:	4fef 0018      	lea %sp@(24),%sp                            
   4a88c:	4a00           	tstb %d0                                    
   4a88e:	6700 018a      	beqw 4aa1a <_Heap_Extend+0x1e2>             
   4a892:	2044           	moveal %d4,%a0                              
   4a894:	9bcd           	subal %a5,%a5                               
   4a896:	4281           	clrl %d1                                    
   4a898:	97cb           	subal %a3,%a3                               
   4a89a:	99cc           	subal %a4,%a4                               
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
   4a89c:	b888           	cmpl %a0,%d4                                
   4a89e:	6704           	beqs 4a8a4 <_Heap_Extend+0x6c>              
   4a8a0:	2248           	moveal %a0,%a1                              
   4a8a2:	6004           	bras 4a8a8 <_Heap_Extend+0x70>              
   4a8a4:	226a 0018      	moveal %a2@(24),%a1                         
    uintptr_t const sub_area_end = start_block->prev_size;            
   4a8a8:	2010           	movel %a0@,%d0                              
    Heap_Block *const end_block =                                     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
   4a8aa:	b680           	cmpl %d0,%d3                                
   4a8ac:	6406           	bccs 4a8b4 <_Heap_Extend+0x7c>              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
   4a8ae:	b3c2           	cmpal %d2,%a1                               
   4a8b0:	6500 0168      	bcsw 4aa1a <_Heap_Extend+0x1e2>             
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
   4a8b4:	b3c2           	cmpal %d2,%a1                               
   4a8b6:	6706           	beqs 4a8be <_Heap_Extend+0x86>              
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
   4a8b8:	b082           	cmpl %d2,%d0                                
   4a8ba:	6206           	bhis 4a8c2 <_Heap_Extend+0x8a>              
   4a8bc:	6006           	bras 4a8c4 <_Heap_Extend+0x8c>              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
   4a8be:	2848           	moveal %a0,%a4                              
   4a8c0:	6002           	bras 4a8c4 <_Heap_Extend+0x8c>              
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
   4a8c2:	2208           	movel %a0,%d1                               
   4a8c4:	2e00           	movel %d0,%d7                               
   4a8c6:	2240           	moveal %d0,%a1                              
   4a8c8:	5189           	subql #8,%a1                                
   4a8ca:	4c45 7006      	remul %d5,%d6,%d7                           
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   4a8ce:	93c6           	subal %d6,%a1                               
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
   4a8d0:	b680           	cmpl %d0,%d3                                
   4a8d2:	6606           	bnes 4a8da <_Heap_Extend+0xa2>              
      start_block->prev_size = extend_area_end;                       
   4a8d4:	2082           	movel %d2,%a0@                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_of_alloc_area(           
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
   4a8d6:	2649           	moveal %a1,%a3                              
   4a8d8:	6006           	bras 4a8e0 <_Heap_Extend+0xa8>              
                                                                      
      merge_above_block = end_block;                                  
    } else if ( sub_area_end < extend_area_begin ) {                  
   4a8da:	b680           	cmpl %d0,%d3                                
   4a8dc:	6302           	blss 4a8e0 <_Heap_Extend+0xa8>              
   4a8de:	2a49           	moveal %a1,%a5                              
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4a8e0:	70fe           	moveq #-2,%d0                               
   4a8e2:	c0a9 0004      	andl %a1@(4),%d0                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4a8e6:	41f1 0800      	lea %a1@(00000000,%d0:l),%a0                
      link_above_block = end_block;                                   
    }                                                                 
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
   4a8ea:	b888           	cmpl %a0,%d4                                
   4a8ec:	66ae           	bnes 4a89c <_Heap_Extend+0x64>              
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
   4a8ee:	b6aa 0018      	cmpl %a2@(24),%d3                           
   4a8f2:	6406           	bccs 4a8fa <_Heap_Extend+0xc2>              
    heap->area_begin = extend_area_begin;                             
   4a8f4:	2543 0018      	movel %d3,%a2@(24)                          
   4a8f8:	600a           	bras 4a904 <_Heap_Extend+0xcc>              
  } else if ( heap->area_end < extend_area_end ) {                    
   4a8fa:	b4aa 001c      	cmpl %a2@(28),%d2                           
   4a8fe:	6304           	blss 4a904 <_Heap_Extend+0xcc>              
    heap->area_end = extend_area_end;                                 
   4a900:	2542 001c      	movel %d2,%a2@(28)                          
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
   4a904:	206e fff8      	moveal %fp@(-8),%a0                         
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
   4a908:	2008           	movel %a0,%d0                               
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4a90a:	7801           	moveq #1,%d4                                
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
   4a90c:	226e fffc      	moveal %fp@(-4),%a1                         
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
   4a910:	9089           	subl %a1,%d0                                
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4a912:	8880           	orl %d0,%d4                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
   4a914:	2282           	movel %d2,%a1@                              
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4a916:	2344 0004      	movel %d4,%a1@(4)                           
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
   4a91a:	2080           	movel %d0,%a0@                              
  extend_last_block->size_and_flag = 0;                               
   4a91c:	42a8 0004      	clrl %a0@(4)                                
  _Heap_Protection_block_initialize( heap, extend_last_block );       
                                                                      
  if ( (uintptr_t) extend_first_block < (uintptr_t) heap->first_block ) {
   4a920:	b3ea 0020      	cmpal %a2@(32),%a1                          
   4a924:	6406           	bccs 4a92c <_Heap_Extend+0xf4>              
    heap->first_block = extend_first_block;                           
   4a926:	2549 0020      	movel %a1,%a2@(32)                          
   4a92a:	600a           	bras 4a936 <_Heap_Extend+0xfe>              
  } else if ( (uintptr_t) extend_last_block > (uintptr_t) heap->last_block ) {
   4a92c:	b1ea 0024      	cmpal %a2@(36),%a0                          
   4a930:	6304           	blss 4a936 <_Heap_Extend+0xfe>              
    heap->last_block = extend_last_block;                             
   4a932:	2548 0024      	movel %a0,%a2@(36)                          
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
   4a936:	4a8c           	tstl %a4                                    
   4a938:	6732           	beqs 4a96c <_Heap_Extend+0x134>             
  Heap_Control *heap,                                                 
  uintptr_t extend_area_begin,                                        
  Heap_Block *first_block                                             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
   4a93a:	202a 0010      	movel %a2@(16),%d0                          
  uintptr_t const new_first_block_alloc_begin =                       
    _Heap_Align_up( extend_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
   4a93e:	5083           	addql #8,%d3                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
   4a940:	2803           	movel %d3,%d4                               
   4a942:	4c40 4001      	remul %d0,%d1,%d4                           
                                                                      
  if ( remainder != 0 ) {                                             
   4a946:	4a81           	tstl %d1                                    
   4a948:	6704           	beqs 4a94e <_Heap_Extend+0x116>             
    return value - remainder + alignment;                             
   4a94a:	d680           	addl %d0,%d3                                
   4a94c:	9681           	subl %d1,%d3                                
  uintptr_t const new_first_block_begin =                             
   4a94e:	2043           	moveal %d3,%a0                              
   4a950:	5188           	subql #8,%a0                                
    new_first_block_alloc_begin - HEAP_BLOCK_HEADER_SIZE;             
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
   4a952:	200c           	movel %a4,%d0                               
   4a954:	9088           	subl %a0,%d0                                
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
   4a956:	7201           	moveq #1,%d1                                
   4a958:	8280           	orl %d0,%d1                                 
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
   4a95a:	2094           	movel %a4@,%a0@                             
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
   4a95c:	2141 0004      	movel %d1,%a0@(4)                           
                                                                      
  _Heap_Free_block( heap, new_first_block );                          
   4a960:	2f08           	movel %a0,%sp@-                             
   4a962:	2f0a           	movel %a2,%sp@-                             
   4a964:	4eba feb6      	jsr %pc@(4a81c <_Heap_Free_block>)          
   4a968:	508f           	addql #8,%sp                                
   4a96a:	6012           	bras 4a97e <_Heap_Extend+0x146>             
    heap->last_block = extend_last_block;                             
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
    _Heap_Merge_below( heap, extend_area_begin, merge_below_block );  
  } else if ( link_below_block != NULL ) {                            
   4a96c:	4a81           	tstl %d1                                    
   4a96e:	670e           	beqs 4a97e <_Heap_Extend+0x146>             
    _Heap_Link_below(                                                 
   4a970:	206e fff8      	moveal %fp@(-8),%a0                         
{                                                                     
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const link_begin = (uintptr_t) link;                      
                                                                      
  last_block->size_and_flag =                                         
    (link_begin - last_block_begin) | HEAP_PREV_BLOCK_USED;           
   4a974:	7801           	moveq #1,%d4                                
   4a976:	9288           	subl %a0,%d1                                
   4a978:	8881           	orl %d1,%d4                                 
   4a97a:	2144 0004      	movel %d4,%a0@(4)                           
      link_below_block,                                               
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
   4a97e:	4a8b           	tstl %a3                                    
   4a980:	6734           	beqs 4a9b6 <_Heap_Extend+0x17e>             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
    extend_area_end - last_block_begin - HEAP_BLOCK_HEADER_SIZE,      
   4a982:	5182           	subql #8,%d2                                
  uintptr_t extend_area_end                                           
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
   4a984:	948b           	subl %a3,%d2                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   4a986:	2202           	movel %d2,%d1                               
   4a988:	4c6a 1000 0010 	remul %a2@(16),%d0,%d1                      
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
    (last_block->size_and_flag - last_block_new_size)                 
      | HEAP_PREV_BLOCK_USED;                                         
   4a98e:	7201           	moveq #1,%d1                                
   4a990:	9480           	subl %d0,%d2                                
  );                                                                  
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
    (last_block->size_and_flag - last_block_new_size)                 
   4a992:	202b 0004      	movel %a3@(4),%d0                           
   4a996:	9082           	subl %d2,%d0                                
      | HEAP_PREV_BLOCK_USED;                                         
   4a998:	8280           	orl %d0,%d1                                 
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4a99a:	7001           	moveq #1,%d0                                
   4a99c:	2781 2804      	movel %d1,%a3@(00000004,%d2:l)              
   4a9a0:	c0ab 0004      	andl %a3@(4),%d0                            
                                                                      
  block->size_and_flag = size | flag;                                 
   4a9a4:	8480           	orl %d0,%d2                                 
   4a9a6:	2742 0004      	movel %d2,%a3@(4)                           
                                                                      
  _Heap_Block_set_size( last_block, last_block_new_size );            
                                                                      
  _Heap_Free_block( heap, last_block );                               
   4a9aa:	2f0b           	movel %a3,%sp@-                             
   4a9ac:	2f0a           	movel %a2,%sp@-                             
   4a9ae:	4eba fe6c      	jsr %pc@(4a81c <_Heap_Free_block>)          
   4a9b2:	508f           	addql #8,%sp                                
   4a9b4:	6020           	bras 4a9d6 <_Heap_Extend+0x19e>             
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
   4a9b6:	4a8d           	tstl %a5                                    
   4a9b8:	671c           	beqs 4a9d6 <_Heap_Extend+0x19e>             
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4a9ba:	7001           	moveq #1,%d0                                
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
   4a9bc:	7801           	moveq #1,%d4                                
)                                                                     
{                                                                     
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
   4a9be:	222e fffc      	movel %fp@(-4),%d1                          
   4a9c2:	928d           	subl %a5,%d1                                
   4a9c4:	c0ad 0004      	andl %a5@(4),%d0                            
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
    _Heap_Link_above(                                                 
   4a9c8:	206e fff8      	moveal %fp@(-8),%a0                         
                                                                      
  block->size_and_flag = size | flag;                                 
   4a9cc:	8280           	orl %d0,%d1                                 
   4a9ce:	2b41 0004      	movel %d1,%a5@(4)                           
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
   4a9d2:	89a8 0004      	orl %d4,%a0@(4)                             
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
   4a9d6:	4a8c           	tstl %a4                                    
   4a9d8:	6610           	bnes 4a9ea <_Heap_Extend+0x1b2>             
   4a9da:	4a8b           	tstl %a3                                    
   4a9dc:	660c           	bnes 4a9ea <_Heap_Extend+0x1b2>             
    _Heap_Free_block( heap, extend_first_block );                     
   4a9de:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   4a9e2:	2f0a           	movel %a2,%sp@-                             
   4a9e4:	4eba fe36      	jsr %pc@(4a81c <_Heap_Free_block>)          
   4a9e8:	508f           	addql #8,%sp                                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Heap_Set_last_block_size( Heap_Control *heap )
{                                                                     
  _Heap_Block_set_size(                                               
    heap->last_block,                                                 
    (uintptr_t) heap->first_block - (uintptr_t) heap->last_block      
   4a9ea:	206a 0024      	moveal %a2@(36),%a0                         
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4a9ee:	7001           	moveq #1,%d0                                
 * This feature will be used to terminate the scattered heap area list.  See
 * also _Heap_Extend().                                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Heap_Set_last_block_size( Heap_Control *heap )
{                                                                     
  _Heap_Block_set_size(                                               
   4a9f0:	222a 0020      	movel %a2@(32),%d1                          
   4a9f4:	9288           	subl %a0,%d1                                
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4a9f6:	c0a8 0004      	andl %a0@(4),%d0                            
                                                                      
  block->size_and_flag = size | flag;                                 
   4a9fa:	8280           	orl %d0,%d1                                 
  }                                                                   
                                                                      
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
   4a9fc:	202a 0030      	movel %a2@(48),%d0                          
   4aa00:	90ae fff4      	subl %fp@(-12),%d0                          
   4aa04:	2141 0004      	movel %d1,%a0@(4)                           
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
   4aa08:	d1aa 002c      	addl %d0,%a2@(44)                           
                                                                      
  if ( extended_size_ptr != NULL )                                    
   4aa0c:	4aae 0014      	tstl %fp@(20)                               
   4aa10:	670c           	beqs 4aa1e <_Heap_Extend+0x1e6>             <== NEVER TAKEN
    *extended_size_ptr = extended_size;                               
   4aa12:	206e 0014      	moveal %fp@(20),%a0                         
   4aa16:	2080           	movel %d0,%a0@                              
   4aa18:	6004           	bras 4aa1e <_Heap_Extend+0x1e6>             
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
   4aa1a:	4200           	clrb %d0                                    
   4aa1c:	6002           	bras 4aa20 <_Heap_Extend+0x1e8>             
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
   4aa1e:	7001           	moveq #1,%d0                                
}                                                                     
   4aa20:	4cee 3cfc ffcc 	moveml %fp@(-52),%d2-%d7/%a2-%a5            
   4aa26:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004a53c <_Heap_Free>: return do_free; } #endif bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr ) {
   4a53c:	4e56 ffe8      	linkw %fp,#-24                              
   4a540:	206e 0008      	moveal %fp@(8),%a0                          
   4a544:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   4a548:	202e 000c      	movel %fp@(12),%d0                          
  /*                                                                  
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
   4a54c:	6700 0150      	beqw 4a69e <_Heap_Free+0x162>               
   4a550:	2240           	moveal %d0,%a1                              
   4a552:	5189           	subql #8,%a1                                
   4a554:	4c68 0001 0010 	remul %a0@(16),%d1,%d0                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in_heap(                     
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
   4a55a:	2828 0020      	movel %a0@(32),%d4                          
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   4a55e:	93c1           	subal %d1,%a1                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4a560:	b889           	cmpl %a1,%d4                                
   4a562:	620c           	bhis 4a570 <_Heap_Free+0x34>                
   4a564:	b3e8 0024      	cmpal %a0@(36),%a1                          
   4a568:	53c0           	sls %d0                                     
   4a56a:	49c0           	extbl %d0                                   
   4a56c:	4480           	negl %d0                                    
   4a56e:	6002           	bras 4a572 <_Heap_Free+0x36>                
   4a570:	4280           	clrl %d0                                    
  }                                                                   
                                                                      
  alloc_begin = (uintptr_t) alloc_begin_ptr;                          
  block = _Heap_Block_of_alloc_area( alloc_begin, heap->page_size );  
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, block ) ) {                     
   4a572:	4a00           	tstb %d0                                    
   4a574:	6700 012c      	beqw 4a6a2 <_Heap_Free+0x166>               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4a578:	2629 0004      	movel %a1@(4),%d3                           
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4a57c:	70fe           	moveq #-2,%d0                               
   4a57e:	c083           	andl %d3,%d0                                
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4a580:	45f1 0800      	lea %a1@(00000000,%d0:l),%a2                
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4a584:	b88a           	cmpl %a2,%d4                                
   4a586:	620c           	bhis 4a594 <_Heap_Free+0x58>                <== NEVER TAKEN
   4a588:	b5e8 0024      	cmpal %a0@(36),%a2                          
   4a58c:	53c1           	sls %d1                                     
   4a58e:	49c1           	extbl %d1                                   
   4a590:	4481           	negl %d1                                    
   4a592:	6002           	bras 4a596 <_Heap_Free+0x5a>                
   4a594:	4281           	clrl %d1                                    <== NOT EXECUTED
  _Heap_Protection_block_check( heap, block );                        
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {                
   4a596:	4a01           	tstb %d1                                    
   4a598:	6700 0108      	beqw 4a6a2 <_Heap_Free+0x166>               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4a59c:	242a 0004      	movel %a2@(4),%d2                           
    return false;                                                     
  }                                                                   
                                                                      
  _Heap_Protection_block_check( heap, next_block );                   
                                                                      
  if ( !_Heap_Is_prev_used( next_block ) ) {                          
   4a5a0:	0802 0000      	btst #0,%d2                                 
   4a5a4:	6700 00fc      	beqw 4a6a2 <_Heap_Free+0x166>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4a5a8:	72fe           	moveq #-2,%d1                               
  if ( !_Heap_Protection_determine_block_free( heap, block ) ) {      
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
   4a5aa:	2668 0024      	moveal %a0@(36),%a3                         
   4a5ae:	c481           	andl %d1,%d2                                
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
   4a5b0:	b7ca           	cmpal %a2,%a3                               
   4a5b2:	670c           	beqs 4a5c0 <_Heap_Free+0x84>                
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4a5b4:	7201           	moveq #1,%d1                                
   4a5b6:	c2b2 2804      	andl %a2@(00000004,%d2:l),%d1               
                                                                      
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
   4a5ba:	5381           	subql #1,%d1                                
   4a5bc:	4481           	negl %d1                                    
   4a5be:	6002           	bras 4a5c2 <_Heap_Free+0x86>                
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
   4a5c0:	4281           	clrl %d1                                    
  if ( !_Heap_Protection_determine_block_free( heap, block ) ) {      
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
   4a5c2:	1a01           	moveb %d1,%d5                               
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
                                                                      
  if ( !_Heap_Is_prev_used( block ) ) {                               
   4a5c4:	0803 0000      	btst #0,%d3                                 
   4a5c8:	6662           	bnes 4a62c <_Heap_Free+0xf0>                
    uintptr_t const prev_size = block->prev_size;                     
   4a5ca:	2611           	movel %a1@,%d3                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4a5cc:	93c3           	subal %d3,%a1                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4a5ce:	b889           	cmpl %a1,%d4                                
   4a5d0:	620a           	bhis 4a5dc <_Heap_Free+0xa0>                <== NEVER TAKEN
   4a5d2:	b3cb           	cmpal %a3,%a1                               
   4a5d4:	53c1           	sls %d1                                     
   4a5d6:	49c1           	extbl %d1                                   
   4a5d8:	4481           	negl %d1                                    
   4a5da:	6002           	bras 4a5de <_Heap_Free+0xa2>                
   4a5dc:	4281           	clrl %d1                                    <== NOT EXECUTED
    Heap_Block * const prev_block = _Heap_Block_at( block, -prev_size );
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, prev_block ) ) {              
   4a5de:	4a01           	tstb %d1                                    
   4a5e0:	6700 00c0      	beqw 4a6a2 <_Heap_Free+0x166>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4a5e4:	7201           	moveq #1,%d1                                
   4a5e6:	c2a9 0004      	andl %a1@(4),%d1                            
      return( false );                                                
    }                                                                 
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
   4a5ea:	6700 00b6      	beqw 4a6a2 <_Heap_Free+0x166>               
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
   4a5ee:	4a05           	tstb %d5                                    
   4a5f0:	6726           	beqs 4a618 <_Heap_Free+0xdc>                
  return _Heap_Free_list_tail(heap)->prev;                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
   4a5f2:	266a 0008      	moveal %a2@(8),%a3                          
      uintptr_t const size = block_size + prev_size + next_block_size;
   4a5f6:	d480           	addl %d0,%d2                                
   4a5f8:	d682           	addl %d2,%d3                                
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4a5fa:	7401           	moveq #1,%d2                                
  Heap_Block *prev = block->prev;                                     
   4a5fc:	246a 000c      	moveal %a2@(12),%a2                         
                                                                      
  prev->next = next;                                                  
   4a600:	254b 0008      	movel %a3,%a2@(8)                           
   4a604:	8483           	orl %d3,%d2                                 
  next->prev = prev;                                                  
   4a606:	274a 000c      	movel %a2,%a3@(12)                          
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
   4a60a:	53a8 0038      	subql #1,%a0@(56)                           
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
   4a60e:	2383 3800      	movel %d3,%a1@(00000000,%d3:l)              
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4a612:	2342 0004      	movel %d2,%a1@(4)                           
   4a616:	607a           	bras 4a692 <_Heap_Free+0x156>               
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
   4a618:	d680           	addl %d0,%d3                                
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4a61a:	7201           	moveq #1,%d1                                
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
   4a61c:	74fe           	moveq #-2,%d2                               
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4a61e:	8283           	orl %d3,%d1                                 
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
      next_block->prev_size = size;                                   
   4a620:	2483           	movel %d3,%a2@                              
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4a622:	2341 0004      	movel %d1,%a1@(4)                           
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
   4a626:	c5aa 0004      	andl %d2,%a2@(4)                            
   4a62a:	6066           	bras 4a692 <_Heap_Free+0x156>               
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
   4a62c:	4a01           	tstb %d1                                    
   4a62e:	672a           	beqs 4a65a <_Heap_Free+0x11e>               
RTEMS_INLINE_ROUTINE void _Heap_Free_list_replace(                    
  Heap_Block *old_block,                                              
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
   4a630:	266a 0008      	moveal %a2@(8),%a3                          
    uintptr_t const size = block_size + next_block_size;              
   4a634:	2202           	movel %d2,%d1                               
   4a636:	d280           	addl %d0,%d1                                
    _Heap_Free_list_replace( next_block, block );                     
    block->size_and_flag = size | HEAP_PREV_BLOCK_USED;               
   4a638:	7401           	moveq #1,%d2                                
  Heap_Block *prev = old_block->prev;                                 
   4a63a:	246a 000c      	moveal %a2@(12),%a2                         
                                                                      
  new_block->next = next;                                             
   4a63e:	234b 0008      	movel %a3,%a1@(8)                           
   4a642:	8481           	orl %d1,%d2                                 
  new_block->prev = prev;                                             
   4a644:	234a 000c      	movel %a2,%a1@(12)                          
    next_block  = _Heap_Block_at( block, size );                      
    next_block->prev_size = size;                                     
   4a648:	2381 1800      	movel %d1,%a1@(00000000,%d1:l)              
                                                                      
  next->prev = new_block;                                             
   4a64c:	2749 000c      	movel %a1,%a3@(12)                          
  prev->next = new_block;                                             
   4a650:	2549 0008      	movel %a1,%a2@(8)                           
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
    uintptr_t const size = block_size + next_block_size;              
    _Heap_Free_list_replace( next_block, block );                     
    block->size_and_flag = size | HEAP_PREV_BLOCK_USED;               
   4a654:	2342 0004      	movel %d2,%a1@(4)                           
   4a658:	6038           	bras 4a692 <_Heap_Free+0x156>               
    next_block->prev_size = size;                                     
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
   4a65a:	7201           	moveq #1,%d1                                
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
   4a65c:	74fe           	moveq #-2,%d2                               
    next_block->prev_size = size;                                     
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
   4a65e:	8280           	orl %d0,%d1                                 
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
   4a660:	2668 0008      	moveal %a0@(8),%a3                          
                                                                      
  new_block->next = next;                                             
  new_block->prev = block_before;                                     
   4a664:	2348 000c      	movel %a0,%a1@(12)                          
   4a668:	2341 0004      	movel %d1,%a1@(4)                           
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
    next_block->prev_size = block_size;                               
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
   4a66c:	2228 0038      	movel %a0@(56),%d1                          
   4a670:	5281           	addql #1,%d1                                
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
                                                                      
  new_block->next = next;                                             
   4a672:	234b 0008      	movel %a3,%a1@(8)                           
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
   4a676:	c5aa 0004      	andl %d2,%a2@(4)                            
  new_block->prev = block_before;                                     
  block_before->next = new_block;                                     
  next->prev = new_block;                                             
   4a67a:	2749 000c      	movel %a1,%a3@(12)                          
    next_block->prev_size = block_size;                               
   4a67e:	2480           	movel %d0,%a2@                              
{                                                                     
  Heap_Block *next = block_before->next;                              
                                                                      
  new_block->next = next;                                             
  new_block->prev = block_before;                                     
  block_before->next = new_block;                                     
   4a680:	2149 0008      	movel %a1,%a0@(8)                           
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
   4a684:	2141 0038      	movel %d1,%a0@(56)                          
    if ( stats->max_free_blocks < stats->free_blocks ) {              
   4a688:	b2a8 003c      	cmpl %a0@(60),%d1                           
   4a68c:	6304           	blss 4a692 <_Heap_Free+0x156>               
      stats->max_free_blocks = stats->free_blocks;                    
   4a68e:	2141 003c      	movel %d1,%a0@(60)                          
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
   4a692:	53a8 0040      	subql #1,%a0@(64)                           
  ++stats->frees;                                                     
   4a696:	52a8 0050      	addql #1,%a0@(80)                           
  stats->free_size += block_size;                                     
   4a69a:	d1a8 0030      	addl %d0,%a0@(48)                           
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
    return true;                                                      
   4a69e:	7001           	moveq #1,%d0                                
   4a6a0:	6002           	bras 4a6a4 <_Heap_Free+0x168>               
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
      _HAssert( false );                                              
      return( false );                                                
   4a6a2:	4200           	clrb %d0                                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4a6a4:	4cd7 0c3c      	moveml %sp@,%d2-%d5/%a2-%a3                 
   4a6a8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00059f68 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
   59f68:	4e56 0000      	linkw %fp,#0                                
   59f6c:	202e 000c      	movel %fp@(12),%d0                          
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   59f70:	2040           	moveal %d0,%a0                              
   59f72:	5188           	subql #8,%a0                                
   59f74:	226e 0008      	moveal %fp@(8),%a1                          
   59f78:	2f02           	movel %d2,%sp@-                             
   59f7a:	2400           	movel %d0,%d2                               
   59f7c:	4c69 2001 0010 	remul %a1@(16),%d1,%d2                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in_heap(                     
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
   59f82:	2429 0020      	movel %a1@(32),%d2                          
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   59f86:	91c1           	subal %d1,%a0                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   59f88:	b488           	cmpl %a0,%d2                                
   59f8a:	620c           	bhis 59f98 <_Heap_Size_of_alloc_area+0x30>  
   59f8c:	b1e9 0024      	cmpal %a1@(36),%a0                          
   59f90:	53c1           	sls %d1                                     
   59f92:	49c1           	extbl %d1                                   
   59f94:	4481           	negl %d1                                    
   59f96:	6002           	bras 59f9a <_Heap_Size_of_alloc_area+0x32>  
   59f98:	4281           	clrl %d1                                    
  uintptr_t const alloc_begin = (uintptr_t) alloc_begin_ptr;          
  Heap_Block *block = _Heap_Block_of_alloc_area( alloc_begin, page_size );
  Heap_Block *next_block = NULL;                                      
  uintptr_t block_size = 0;                                           
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, block ) ) {                     
   59f9a:	4a01           	tstb %d1                                    
   59f9c:	6738           	beqs 59fd6 <_Heap_Size_of_alloc_area+0x6e>  
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   59f9e:	72fe           	moveq #-2,%d1                               
   59fa0:	c2a8 0004      	andl %a0@(4),%d1                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   59fa4:	d1c1           	addal %d1,%a0                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   59fa6:	b488           	cmpl %a0,%d2                                
   59fa8:	620c           	bhis 59fb6 <_Heap_Size_of_alloc_area+0x4e>  <== NEVER TAKEN
   59faa:	b1e9 0024      	cmpal %a1@(36),%a0                          
   59fae:	53c1           	sls %d1                                     
   59fb0:	49c1           	extbl %d1                                   
   59fb2:	4481           	negl %d1                                    
   59fb4:	6002           	bras 59fb8 <_Heap_Size_of_alloc_area+0x50>  
   59fb6:	4281           	clrl %d1                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if (                                                                
   59fb8:	4a01           	tstb %d1                                    
   59fba:	671a           	beqs 59fd6 <_Heap_Size_of_alloc_area+0x6e>  <== NEVER TAKEN
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   59fbc:	7201           	moveq #1,%d1                                
   59fbe:	c2a8 0004      	andl %a0@(4),%d1                            
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
   59fc2:	6712           	beqs 59fd6 <_Heap_Size_of_alloc_area+0x6e>  <== NEVER TAKEN
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
   59fc4:	7204           	moveq #4,%d1                                
   59fc6:	9280           	subl %d0,%d1                                
   59fc8:	2001           	movel %d1,%d0                               
   59fca:	d088           	addl %a0,%d0                                
   59fcc:	226e 0010      	moveal %fp@(16),%a1                         
   59fd0:	2280           	movel %d0,%a1@                              
                                                                      
  return true;                                                        
   59fd2:	7001           	moveq #1,%d0                                
   59fd4:	6002           	bras 59fd8 <_Heap_Size_of_alloc_area+0x70>  
                                                                      
  if (                                                                
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
  ) {                                                                 
    return false;                                                     
   59fd6:	4200           	clrb %d0                                    
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
                                                                      
  return true;                                                        
}                                                                     
   59fd8:	241f           	movel %sp@+,%d2                             
   59fda:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000473ce <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
   473ce:	4e56 ffd0      	linkw %fp,#-48                              
   473d2:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   473d6:	266e 0008      	moveal %fp@(8),%a3                          
  uintptr_t const min_block_size = heap->min_block_size;              
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   473da:	45fa ffac      	lea %pc@(47388 <_Heap_Walk_print_nothing>),%a2
bool _Heap_Walk(                                                      
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
   473de:	242e 000c      	movel %fp@(12),%d2                          
  uintptr_t const page_size = heap->page_size;                        
   473e2:	282b 0010      	movel %a3@(16),%d4                          
  uintptr_t const min_block_size = heap->min_block_size;              
   473e6:	2a2b 0014      	movel %a3@(20),%d5                          
  Heap_Block *const first_block = heap->first_block;                  
   473ea:	2c2b 0020      	movel %a3@(32),%d6                          
  Heap_Block *const last_block = heap->last_block;                    
   473ee:	2e2b 0024      	movel %a3@(36),%d7                          
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   473f2:	4a2e 0013      	tstb %fp@(19)                               
   473f6:	6704           	beqs 473fc <_Heap_Walk+0x2e>                
   473f8:	45fa ff96      	lea %pc@(47390 <_Heap_Walk_print>),%a2      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
   473fc:	7003           	moveq #3,%d0                                
   473fe:	b0b9 0005 fa48 	cmpl 5fa48 <_System_state_Current>,%d0      
   47404:	6600 02fc      	bnew 47702 <_Heap_Walk+0x334>               
  Heap_Block *const first_free_block = _Heap_Free_list_first( heap ); 
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
                                                                      
  (*printer)(                                                         
   47408:	2f2b 000c      	movel %a3@(12),%sp@-                        
   4740c:	2f2b 0008      	movel %a3@(8),%sp@-                         
   47410:	2f07           	movel %d7,%sp@-                             
   47412:	2f06           	movel %d6,%sp@-                             
   47414:	2f2b 001c      	movel %a3@(28),%sp@-                        
   47418:	2f2b 0018      	movel %a3@(24),%sp@-                        
   4741c:	2f05           	movel %d5,%sp@-                             
   4741e:	2f04           	movel %d4,%sp@-                             
   47420:	4879 0005 bf15 	pea 5bf15 <_Status_Object_name_errors_to_status+0x5d>
   47426:	42a7           	clrl %sp@-                                  
   47428:	2f02           	movel %d2,%sp@-                             
   4742a:	4e92           	jsr %a2@                                    
    heap->area_begin, heap->area_end,                                 
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
   4742c:	4fef 002c      	lea %sp@(44),%sp                            
   47430:	4a84           	tstl %d4                                    
   47432:	6608           	bnes 4743c <_Heap_Walk+0x6e>                
    (*printer)( source, true, "page size is zero\n" );                
   47434:	4879 0005 bfa6 	pea 5bfa6 <_Status_Object_name_errors_to_status+0xee>
   4743a:	6050           	bras 4748c <_Heap_Walk+0xbe>                
)                                                                     
{                                                                     
#if (CPU_ALIGNMENT == 0)                                              
    return true;                                                      
#else                                                                 
    return (((uintptr_t)address % CPU_ALIGNMENT) == 0);               
   4743c:	7003           	moveq #3,%d0                                
   4743e:	c084           	andl %d4,%d0                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
   47440:	670c           	beqs 4744e <_Heap_Walk+0x80>                
    (*printer)(                                                       
   47442:	2f04           	movel %d4,%sp@-                             
   47444:	4879 0005 bfb9 	pea 5bfb9 <_Status_Object_name_errors_to_status+0x101>
   4744a:	6000 02ca      	braw 47716 <_Heap_Walk+0x348>               
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   4744e:	2205           	movel %d5,%d1                               
   47450:	4c44 1000      	remul %d4,%d0,%d1                           
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
   47454:	4a80           	tstl %d0                                    
   47456:	670c           	beqs 47464 <_Heap_Walk+0x96>                
    (*printer)(                                                       
   47458:	2f05           	movel %d5,%sp@-                             
   4745a:	4879 0005 bfd7 	pea 5bfd7 <_Status_Object_name_errors_to_status+0x11f>
   47460:	6000 02b4      	braw 47716 <_Heap_Walk+0x348>               
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
   47464:	2006           	movel %d6,%d0                               
   47466:	5080           	addql #8,%d0                                
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   47468:	4c44 0001      	remul %d4,%d1,%d0                           
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
   4746c:	4a81           	tstl %d1                                    
   4746e:	670c           	beqs 4747c <_Heap_Walk+0xae>                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
   47470:	2f06           	movel %d6,%sp@-                             
   47472:	4879 0005 bffb 	pea 5bffb <_Status_Object_name_errors_to_status+0x143>
   47478:	6000 029c      	braw 47716 <_Heap_Walk+0x348>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4747c:	7001           	moveq #1,%d0                                
   4747e:	2046           	moveal %d6,%a0                              
   47480:	c0a8 0004      	andl %a0@(4),%d0                            
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
   47484:	6616           	bnes 4749c <_Heap_Walk+0xce>                
    (*printer)(                                                       
   47486:	4879 0005 c02c 	pea 5c02c <_Status_Object_name_errors_to_status+0x174>
   4748c:	4878 0001      	pea 1 <ADD>                                 
   47490:	2f02           	movel %d2,%sp@-                             
   47492:	4e92           	jsr %a2@                                    
   47494:	4fef 000c      	lea %sp@(12),%sp                            
   47498:	6000 00ba      	braw 47554 <_Heap_Walk+0x186>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4749c:	70fe           	moveq #-2,%d0                               
   4749e:	2047           	moveal %d7,%a0                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   474a0:	2847           	moveal %d7,%a4                              
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   474a2:	c0a8 0004      	andl %a0@(4),%d0                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   474a6:	d9c0           	addal %d0,%a4                               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   474a8:	7001           	moveq #1,%d0                                
   474aa:	c0ac 0004      	andl %a4@(4),%d0                            
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
   474ae:	6608           	bnes 474b8 <_Heap_Walk+0xea>                
    (*printer)(                                                       
   474b0:	4879 0005 c05a 	pea 5c05a <_Status_Object_name_errors_to_status+0x1a2>
   474b6:	60d4           	bras 4748c <_Heap_Walk+0xbe>                
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
   474b8:	bc8c           	cmpl %a4,%d6                                
   474ba:	6708           	beqs 474c4 <_Heap_Walk+0xf6>                
    _Heap_Block_at( last_block, _Heap_Block_size( last_block ) ) != first_block
  ) {                                                                 
    (*printer)(                                                       
   474bc:	4879 0005 c06f 	pea 5c06f <_Status_Object_name_errors_to_status+0x1b7>
   474c2:	60c8           	bras 4748c <_Heap_Walk+0xbe>                
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
   474c4:	262b 0010      	movel %a3@(16),%d3                          
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
   474c8:	220b           	movel %a3,%d1                               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   474ca:	206b 0008      	moveal %a3@(8),%a0                          
   474ce:	2d44 fff8      	movel %d4,%fp@(-8)                          
   474d2:	2d43 fffc      	movel %d3,%fp@(-4)                          
   474d6:	6000 0088      	braw 47560 <_Heap_Walk+0x192>               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   474da:	b1eb 0020      	cmpal %a3@(32),%a0                          
   474de:	650c           	bcss 474ec <_Heap_Walk+0x11e>               
   474e0:	b1eb 0024      	cmpal %a3@(36),%a0                          
   474e4:	53c0           	sls %d0                                     
   474e6:	49c0           	extbl %d0                                   
   474e8:	4480           	negl %d0                                    
   474ea:	6002           	bras 474ee <_Heap_Walk+0x120>               
   474ec:	4280           	clrl %d0                                    
  const Heap_Block *const first_free_block = _Heap_Free_list_first( heap );
  const Heap_Block *prev_block = free_list_tail;                      
  const Heap_Block *free_block = first_free_block;                    
                                                                      
  while ( free_block != free_list_tail ) {                            
    if ( !_Heap_Is_block_in_heap( heap, free_block ) ) {              
   474ee:	4a00           	tstb %d0                                    
   474f0:	660c           	bnes 474fe <_Heap_Walk+0x130>               
      (*printer)(                                                     
   474f2:	2f08           	movel %a0,%sp@-                             
   474f4:	4879 0005 c09e 	pea 5c09e <_Status_Object_name_errors_to_status+0x1e6>
   474fa:	6000 021a      	braw 47716 <_Heap_Walk+0x348>               
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
   474fe:	4be8 0008      	lea %a0@(8),%a5                             
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   47502:	200d           	movel %a5,%d0                               
   47504:	262e fffc      	movel %fp@(-4),%d3                          
   47508:	4c43 0004      	remul %d3,%d4,%d0                           
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
   4750c:	4a84           	tstl %d4                                    
   4750e:	670c           	beqs 4751c <_Heap_Walk+0x14e>               
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
   47510:	2f08           	movel %a0,%sp@-                             
   47512:	4879 0005 c0be 	pea 5c0be <_Status_Object_name_errors_to_status+0x206>
   47518:	6000 01fc      	braw 47716 <_Heap_Walk+0x348>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4751c:	70fe           	moveq #-2,%d0                               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4751e:	7601           	moveq #1,%d3                                
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   47520:	c0a8 0004      	andl %a0@(4),%d0                            
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   47524:	c6b0 0804      	andl %a0@(00000004,%d0:l),%d3               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
   47528:	670c           	beqs 47536 <_Heap_Walk+0x168>               
      (*printer)(                                                     
   4752a:	2f08           	movel %a0,%sp@-                             
   4752c:	4879 0005 c0ee 	pea 5c0ee <_Status_Object_name_errors_to_status+0x236>
   47532:	6000 01e2      	braw 47716 <_Heap_Walk+0x348>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
   47536:	2028 000c      	movel %a0@(12),%d0                          
   4753a:	b280           	cmpl %d0,%d1                                
   4753c:	671c           	beqs 4755a <_Heap_Walk+0x18c>               
      (*printer)(                                                     
   4753e:	2f00           	movel %d0,%sp@-                             
   47540:	2f08           	movel %a0,%sp@-                             
   47542:	4879 0005 c10a 	pea 5c10a <_Status_Object_name_errors_to_status+0x252>
   47548:	4878 0001      	pea 1 <ADD>                                 
   4754c:	2f02           	movel %d2,%sp@-                             
   4754e:	4e92           	jsr %a2@                                    
   47550:	4fef 0014      	lea %sp@(20),%sp                            
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
   47554:	4200           	clrb %d0                                    
   47556:	6000 01ac      	braw 47704 <_Heap_Walk+0x336>               
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
   4755a:	2208           	movel %a0,%d1                               
   4755c:	2068 0008      	moveal %a0@(8),%a0                          
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *const first_free_block = _Heap_Free_list_first( heap );
  const Heap_Block *prev_block = free_list_tail;                      
  const Heap_Block *free_block = first_free_block;                    
                                                                      
  while ( free_block != free_list_tail ) {                            
   47560:	b7c8           	cmpal %a0,%a3                               
   47562:	6600 ff76      	bnew 474da <_Heap_Walk+0x10c>               
   47566:	282e fff8      	movel %fp@(-8),%d4                          
   4756a:	6002           	bras 4756e <_Heap_Walk+0x1a0>               
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
   4756c:	284d           	moveal %a5,%a4                              
                                                                      
  return true;                                                        
}                                                                     
   4756e:	202c 0004      	movel %a4@(4),%d0                           
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   47572:	76fe           	moveq #-2,%d3                               
   47574:	c680           	andl %d0,%d3                                
   47576:	2d40 fffc      	movel %d0,%fp@(-4)                          
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4757a:	4bf4 3800      	lea %a4@(00000000,%d3:l),%a5                
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4757e:	bbeb 0020      	cmpal %a3@(32),%a5                          
   47582:	650c           	bcss 47590 <_Heap_Walk+0x1c2>               <== NEVER TAKEN
   47584:	bbeb 0024      	cmpal %a3@(36),%a5                          
   47588:	53c0           	sls %d0                                     
   4758a:	49c0           	extbl %d0                                   
   4758c:	4480           	negl %d0                                    
   4758e:	6002           	bras 47592 <_Heap_Walk+0x1c4>               
   47590:	4280           	clrl %d0                                    <== NOT EXECUTED
    bool const prev_used = _Heap_Is_prev_used( block );               
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {              
   47592:	4a00           	tstb %d0                                    
   47594:	660c           	bnes 475a2 <_Heap_Walk+0x1d4>               
      (*printer)(                                                     
   47596:	2f0d           	movel %a5,%sp@-                             
   47598:	2f0c           	movel %a4,%sp@-                             
   4759a:	4879 0005 c13c 	pea 5c13c <_Status_Object_name_errors_to_status+0x284>
   475a0:	60a6           	bras 47548 <_Heap_Walk+0x17a>               
    uintptr_t const block_begin = (uintptr_t) block;                  
    uintptr_t const block_size = _Heap_Block_size( block );           
    bool const prev_used = _Heap_Is_prev_used( block );               
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
   475a2:	be8c           	cmpl %a4,%d7                                
   475a4:	56c0           	sne %d0                                     
   475a6:	2200           	movel %d0,%d1                               
   475a8:	4481           	negl %d1                                    
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   475aa:	2003           	movel %d3,%d0                               
   475ac:	1d41 fffb      	moveb %d1,%fp@(-5)                          
   475b0:	4c44 0001      	remul %d4,%d1,%d0                           
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
   475b4:	4a81           	tstl %d1                                    
   475b6:	6714           	beqs 475cc <_Heap_Walk+0x1fe>               
   475b8:	4a2e fffb      	tstb %fp@(-5)                               
   475bc:	670e           	beqs 475cc <_Heap_Walk+0x1fe>               
      (*printer)(                                                     
   475be:	2f03           	movel %d3,%sp@-                             
   475c0:	2f0c           	movel %a4,%sp@-                             
   475c2:	4879 0005 c169 	pea 5c169 <_Status_Object_name_errors_to_status+0x2b1>
   475c8:	6000 ff7e      	braw 47548 <_Heap_Walk+0x17a>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
   475cc:	ba83           	cmpl %d3,%d5                                
   475ce:	6322           	blss 475f2 <_Heap_Walk+0x224>               
   475d0:	4a2e fffb      	tstb %fp@(-5)                               
   475d4:	671c           	beqs 475f2 <_Heap_Walk+0x224>               <== NEVER TAKEN
      (*printer)(                                                     
   475d6:	2f05           	movel %d5,%sp@-                             
   475d8:	2f03           	movel %d3,%sp@-                             
   475da:	2f0c           	movel %a4,%sp@-                             
   475dc:	4879 0005 c197 	pea 5c197 <_Status_Object_name_errors_to_status+0x2df>
   475e2:	4878 0001      	pea 1 <ADD>                                 
   475e6:	2f02           	movel %d2,%sp@-                             
   475e8:	4e92           	jsr %a2@                                    
        block,                                                        
        block_size,                                                   
        min_block_size                                                
      );                                                              
                                                                      
      return false;                                                   
   475ea:	4fef 0018      	lea %sp@(24),%sp                            
   475ee:	6000 ff64      	braw 47554 <_Heap_Walk+0x186>               
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
   475f2:	b9cd           	cmpal %a5,%a4                               
   475f4:	6514           	bcss 4760a <_Heap_Walk+0x23c>               
   475f6:	4a2e fffb      	tstb %fp@(-5)                               
   475fa:	670e           	beqs 4760a <_Heap_Walk+0x23c>               
      (*printer)(                                                     
   475fc:	2f0d           	movel %a5,%sp@-                             
   475fe:	2f0c           	movel %a4,%sp@-                             
   47600:	4879 0005 c1c2 	pea 5c1c2 <_Status_Object_name_errors_to_status+0x30a>
   47606:	6000 ff40      	braw 47548 <_Heap_Walk+0x17a>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4760a:	7001           	moveq #1,%d0                                
   4760c:	c0ae fffc      	andl %fp@(-4),%d0                           
   47610:	2d40 fffc      	movel %d0,%fp@(-4)                          
   47614:	7001           	moveq #1,%d0                                
   47616:	c0ad 0004      	andl %a5@(4),%d0                            
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
   4761a:	6600 00ae      	bnew 476ca <_Heap_Walk+0x2fc>               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   4761e:	222b 0008      	movel %a3@(8),%d1                           
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   47622:	43f9 0005 bee2 	lea 5bee2 <_Status_Object_name_errors_to_status+0x2a>,%a1
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
   47628:	206c 0008      	moveal %a4@(8),%a0                          
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   4762c:	2d41 fff8      	movel %d1,%fp@(-8)                          
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   47630:	b1eb 000c      	cmpal %a3@(12),%a0                          
   47634:	6710           	beqs 47646 <_Heap_Walk+0x278>               
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
   47636:	43f9 0005 be2e 	lea 5be2e <rtems_filesystem_default_pathconf+0xb4>,%a1
   4763c:	b7c8           	cmpal %a0,%a3                               
   4763e:	6606           	bnes 47646 <_Heap_Walk+0x278>               
   47640:	43f9 0005 bef1 	lea 5bef1 <_Status_Object_name_errors_to_status+0x39>,%a1
    false,                                                            
    "block 0x%08x: size %u, prev 0x%08x%s, next 0x%08x%s\n",          
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
   47646:	202c 000c      	movel %a4@(12),%d0                          
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   4764a:	223c 0005 befb 	movel #376571,%d1                           
   47650:	b0ae fff8      	cmpl %fp@(-8),%d0                           
   47654:	6710           	beqs 47666 <_Heap_Walk+0x298>               
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
   47656:	223c 0005 be2e 	movel #376366,%d1                           
   4765c:	b7c0           	cmpal %d0,%a3                               
   4765e:	6606           	bnes 47666 <_Heap_Walk+0x298>               
   47660:	223c 0005 bf0b 	movel #376587,%d1                           
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   47666:	2f09           	movel %a1,%sp@-                             
   47668:	2f08           	movel %a0,%sp@-                             
   4766a:	2f01           	movel %d1,%sp@-                             
   4766c:	2f00           	movel %d0,%sp@-                             
   4766e:	2f03           	movel %d3,%sp@-                             
   47670:	2f0c           	movel %a4,%sp@-                             
   47672:	4879 0005 c1f6 	pea 5c1f6 <_Status_Object_name_errors_to_status+0x33e>
   47678:	42a7           	clrl %sp@-                                  
   4767a:	2f02           	movel %d2,%sp@-                             
   4767c:	4e92           	jsr %a2@                                    
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
   4767e:	2015           	movel %a5@,%d0                              
   47680:	4fef 0024      	lea %sp@(36),%sp                            
   47684:	b083           	cmpl %d3,%d0                                
   47686:	671e           	beqs 476a6 <_Heap_Walk+0x2d8>               
    (*printer)(                                                       
   47688:	2f0d           	movel %a5,%sp@-                             
   4768a:	2f00           	movel %d0,%sp@-                             
   4768c:	2f03           	movel %d3,%sp@-                             
   4768e:	2f0c           	movel %a4,%sp@-                             
   47690:	4879 0005 c22b 	pea 5c22b <_Status_Object_name_errors_to_status+0x373>
   47696:	4878 0001      	pea 1 <ADD>                                 
   4769a:	2f02           	movel %d2,%sp@-                             
   4769c:	4e92           	jsr %a2@                                    
   4769e:	4fef 001c      	lea %sp@(28),%sp                            
   476a2:	6000 feb0      	braw 47554 <_Heap_Walk+0x186>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
   476a6:	4aae fffc      	tstl %fp@(-4)                               
   476aa:	660a           	bnes 476b6 <_Heap_Walk+0x2e8>               
    (*printer)(                                                       
   476ac:	2f0c           	movel %a4,%sp@-                             
   476ae:	4879 0005 c264 	pea 5c264 <_Status_Object_name_errors_to_status+0x3ac>
   476b4:	6060           	bras 47716 <_Heap_Walk+0x348>               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   476b6:	206b 0008      	moveal %a3@(8),%a0                          
   476ba:	6008           	bras 476c4 <_Heap_Walk+0x2f6>               
{                                                                     
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *free_block = _Heap_Free_list_first( heap );       
                                                                      
  while ( free_block != free_list_tail ) {                            
    if ( free_block == block ) {                                      
   476bc:	b9c8           	cmpal %a0,%a4                               
   476be:	673c           	beqs 476fc <_Heap_Walk+0x32e>               
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
   476c0:	2068 0008      	moveal %a0@(8),%a0                          
)                                                                     
{                                                                     
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *free_block = _Heap_Free_list_first( heap );       
                                                                      
  while ( free_block != free_list_tail ) {                            
   476c4:	b7c8           	cmpal %a0,%a3                               
   476c6:	66f4           	bnes 476bc <_Heap_Walk+0x2ee>               
   476c8:	6044           	bras 4770e <_Heap_Walk+0x340>               
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
      }                                                               
    } else if (prev_used) {                                           
   476ca:	4aae fffc      	tstl %fp@(-4)                               
   476ce:	6716           	beqs 476e6 <_Heap_Walk+0x318>               
      (*printer)(                                                     
   476d0:	2f03           	movel %d3,%sp@-                             
   476d2:	2f0c           	movel %a4,%sp@-                             
   476d4:	4879 0005 c293 	pea 5c293 <_Status_Object_name_errors_to_status+0x3db>
   476da:	42a7           	clrl %sp@-                                  
   476dc:	2f02           	movel %d2,%sp@-                             
   476de:	4e92           	jsr %a2@                                    
   476e0:	4fef 0014      	lea %sp@(20),%sp                            
   476e4:	6016           	bras 476fc <_Heap_Walk+0x32e>               
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
   476e6:	2f14           	movel %a4@,%sp@-                            
   476e8:	2f03           	movel %d3,%sp@-                             
   476ea:	2f0c           	movel %a4,%sp@-                             
   476ec:	4879 0005 c2aa 	pea 5c2aa <_Status_Object_name_errors_to_status+0x3f2>
   476f2:	42a7           	clrl %sp@-                                  
   476f4:	2f02           	movel %d2,%sp@-                             
   476f6:	4e92           	jsr %a2@                                    
   476f8:	4fef 0018      	lea %sp@(24),%sp                            
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
   476fc:	bc8d           	cmpl %a5,%d6                                
   476fe:	6600 fe6c      	bnew 4756c <_Heap_Walk+0x19e>               
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
   47702:	7001           	moveq #1,%d0                                
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   47704:	4cee 3cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a5            
   4770a:	4e5e           	unlk %fp                                    
   4770c:	4e75           	rts                                         
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
   4770e:	2f0c           	movel %a4,%sp@-                             
   47710:	4879 0005 c2cf 	pea 5c2cf <_Status_Object_name_errors_to_status+0x417>
   47716:	4878 0001      	pea 1 <ADD>                                 
   4771a:	2f02           	movel %d2,%sp@-                             
   4771c:	4e92           	jsr %a2@                                    
   4771e:	4fef 0010      	lea %sp@(16),%sp                            
   47722:	6000 fe30      	braw 47554 <_Heap_Walk+0x186>               
	...                                                                  
                                                                      

000469b0 <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
   469b0:	4e56 0000      	linkw %fp,#0                                
   469b4:	222e 000c      	movel %fp@(12),%d1                          
   469b8:	2f02           	movel %d2,%sp@-                             
   469ba:	242e 0010      	movel %fp@(16),%d2                          
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
   469be:	13c1 0005 d5f2 	moveb %d1,5d5f2 <_Internal_errors_What_happened+0x4>
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   469c4:	2f02           	movel %d2,%sp@-                             
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   469c6:	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 );       
   469ca:	0281 0000 00ff 	andil #255,%d1                              
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
   469d0:	23c0 0005 d5ee 	movel %d0,5d5ee <_Internal_errors_What_happened>
  _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 );       
   469d6:	2f01           	movel %d1,%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;             
   469d8:	23c2 0005 d5f4 	movel %d2,5d5f4 <_Internal_errors_What_happened+0x6>
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   469de:	2f00           	movel %d0,%sp@-                             
   469e0:	4eb9 0004 8522 	jsr 48522 <_User_extensions_Fatal>          
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
   469e6:	7005           	moveq #5,%d0                                <== NOT EXECUTED
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   469e8:	2042           	moveal %d2,%a0                              <== NOT EXECUTED
   469ea:	243c 0000 0700 	movel #1792,%d2                             <== NOT EXECUTED
   469f0:	23c0 0005 d6a0 	movel %d0,5d6a0 <_System_state_Current>     <== NOT EXECUTED
   469f6:	40c0           	movew %sr,%d0                               <== NOT EXECUTED
   469f8:	8082           	orl %d2,%d0                                 <== NOT EXECUTED
   469fa:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
   469fc:	2008           	movel %a0,%d0                               <== NOT EXECUTED
   469fe:	223c dead beef 	movel #-559038737,%d1                       <== NOT EXECUTED
   46a04:	4ac8           	halt                                        <== NOT EXECUTED
   46a06:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   46a0a:	60fe           	bras 46a0a <_Internal_error_Occurred+0x5a>  <== NOT EXECUTED
                                                                      

00046a6c <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) {
   46a6c:	4e56 fff0      	linkw %fp,#-16                              
   46a70:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   46a74:	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 )                                       
   46a78:	4aaa 0014      	tstl %a2@(20)                               
   46a7c:	675e           	beqs 46adc <_Objects_Allocate+0x70>         <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  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 );
   46a7e:	240a           	movel %a2,%d2                               
   46a80:	0682 0000 001c 	addil #28,%d2                               
   46a86:	47f9 0004 6210 	lea 46210 <_Chain_Get>,%a3                  
   46a8c:	2f02           	movel %d2,%sp@-                             
   46a8e:	4e93           	jsr %a3@                                    
                                                                      
  if ( information->auto_extend ) {                                   
   46a90:	588f           	addql #4,%sp                                
   46a92:	4a2a 0010      	tstb %a2@(16)                               
   46a96:	6746           	beqs 46ade <_Objects_Allocate+0x72>         
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
   46a98:	4a80           	tstl %d0                                    
   46a9a:	6612           	bnes 46aae <_Objects_Allocate+0x42>         
      _Objects_Extend_information( information );                     
   46a9c:	2f0a           	movel %a2,%sp@-                             
   46a9e:	4eb9 0004 6b14 	jsr 46b14 <_Objects_Extend_information>     
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
   46aa4:	2f02           	movel %d2,%sp@-                             
   46aa6:	4e93           	jsr %a3@                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
   46aa8:	508f           	addql #8,%sp                                
   46aaa:	4a80           	tstl %d0                                    
   46aac:	6730           	beqs 46ade <_Objects_Allocate+0x72>         
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   46aae:	2040           	moveal %d0,%a0                              
   46ab0:	4281           	clrl %d1                                    
   46ab2:	4282           	clrl %d2                                    
   46ab4:	3228 000a      	movew %a0@(10),%d1                          
   46ab8:	342a 0008      	movew %a2@(8),%d2                           
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   46abc:	206a 002a      	moveal %a2@(42),%a0                         
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   46ac0:	9282           	subl %d2,%d1                                
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
   46ac2:	342a 0012      	movew %a2@(18),%d2                          
   46ac6:	4c42 1001      	remul %d2,%d1,%d1                           
                                                                      
      information->inactive_per_block[ block ]--;                     
   46aca:	e589           	lsll #2,%d1                                 
   46acc:	d1c1           	addal %d1,%a0                               
   46ace:	5390           	subql #1,%a0@                               
      information->inactive--;                                        
   46ad0:	322a 0028      	movew %a2@(40),%d1                          
   46ad4:	5381           	subql #1,%d1                                
   46ad6:	3541 0028      	movew %d1,%a2@(40)                          
   46ada:	6002           	bras 46ade <_Objects_Allocate+0x72>         
   *  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 )                                       
    return NULL;                                                      
   46adc:	4280           	clrl %d0                                    <== NOT EXECUTED
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
   46ade:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   46ae4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046ae8 <_Objects_Close>: RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id( Objects_Information *information, Objects_Control *the_object ) { _Objects_Set_local_object(
   46ae8:	4280           	clrl %d0                                    
                                                                      
void _Objects_Close(                                                  
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
   46aea:	4e56 0000      	linkw %fp,#0                                
   46aee:	226e 000c      	moveal %fp@(12),%a1                         
   46af2:	206e 0008      	moveal %fp@(8),%a0                          
   46af6:	2f0a           	movel %a2,%sp@-                             
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46af8:	2468 0018      	moveal %a0@(24),%a2                         
RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id(                     
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   46afc:	3029 000a      	movew %a1@(10),%d0                          
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46b00:	42b2 0c00      	clrl %a2@(00000000,%d0:l:4)                 
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
}                                                                     
   46b04:	245f           	moveal %sp@+,%a2                            
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46b06:	2d49 000c      	movel %a1,%fp@(12)                          
}                                                                     
   46b0a:	4e5e           	unlk %fp                                    
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46b0c:	4ef9 0004 7004 	jmp 47004 <_Objects_Namespace_remove>       
	...                                                                  
                                                                      

00046e0c <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint16_t the_class ) {
   46e0c:	4e56 0000      	linkw %fp,#0                                
   46e10:	2f03           	movel %d3,%sp@-                             
   46e12:	362e 000e      	movew %fp@(14),%d3                          
   46e16:	2f02           	movel %d2,%sp@-                             
   46e18:	242e 0008      	movel %fp@(8),%d2                           
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
   46e1c:	4a43           	tstw %d3                                    
   46e1e:	673a           	beqs 46e5a <_Objects_Get_information+0x4e>  
                                                                      
  /*                                                                  
   *  This call implicitly validates the_api so we do not call        
   *  _Objects_Is_api_valid above here.                               
   */                                                                 
  the_class_api_maximum = _Objects_API_maximum_class( the_api );      
   46e20:	2f02           	movel %d2,%sp@-                             
   46e22:	4eb9 0004 a6ac 	jsr 4a6ac <_Objects_API_maximum_class>      
  if ( the_class_api_maximum == 0 )                                   
   46e28:	588f           	addql #4,%sp                                
   46e2a:	4a80           	tstl %d0                                    
   46e2c:	672c           	beqs 46e5a <_Objects_Get_information+0x4e>  
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
   46e2e:	0283 0000 ffff 	andil #65535,%d3                            
   46e34:	b083           	cmpl %d3,%d0                                
   46e36:	6522           	bcss 46e5a <_Objects_Get_information+0x4e>  
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
   46e38:	41f9 0005 d514 	lea 5d514 <_Objects_Information_table>,%a0  
   46e3e:	2070 2c00      	moveal %a0@(00000000,%d2:l:4),%a0           
   46e42:	4a88           	tstl %a0                                    
   46e44:	6714           	beqs 46e5a <_Objects_Get_information+0x4e>  <== NEVER TAKEN
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
   46e46:	2030 3c00      	movel %a0@(00000000,%d3:l:4),%d0            
  if ( !info )                                                        
   46e4a:	6710           	beqs 46e5c <_Objects_Get_information+0x50>  <== NEVER TAKEN
   *  Thus we may have 0 local instances and still have a valid object
   *  pointer.                                                        
   */                                                                 
  #if !defined(RTEMS_MULTIPROCESSING)                                 
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
   46e4c:	2040           	moveal %d0,%a0                              
   46e4e:	4a68 000e      	tstw %a0@(14)                               
   46e52:	56c1           	sne %d1                                     
   46e54:	49c1           	extbl %d1                                   
   46e56:	c081           	andl %d1,%d0                                
   46e58:	6002           	bras 46e5c <_Objects_Get_information+0x50>  
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    return NULL;                                                      
   46e5a:	4280           	clrl %d0                                    
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
   46e5c:	242e fff8      	movel %fp@(-8),%d2                          
   46e60:	262e fffc      	movel %fp@(-4),%d3                          
   46e64:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00054574 <_Objects_Get_no_protection>: /* * You can't just extract the index portion or you can get tricked * by a value between 1 and maximum. */ index = id - information->minimum_id + 1;
   54574:	7001           	moveq #1,%d0                                
                                                                      
  if ( information->maximum >= index ) {                              
   54576:	4281           	clrl %d1                                    
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   54578:	4e56 0000      	linkw %fp,#0                                
   5457c:	206e 0008      	moveal %fp@(8),%a0                          
                                                                      
  /*                                                                  
   * You can't just extract the index portion or you can get tricked  
   * by a value between 1 and maximum.                                
   */                                                                 
  index = id - information->minimum_id + 1;                           
   54580:	90a8 0006      	subl %a0@(6),%d0                            
   54584:	d0ae 000c      	addl %fp@(12),%d0                           
                                                                      
  if ( information->maximum >= index ) {                              
   54588:	3228 000e      	movew %a0@(14),%d1                          
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   5458c:	226e 0010      	moveal %fp@(16),%a1                         
   * You can't just extract the index portion or you can get tricked  
   * by a value between 1 and maximum.                                
   */                                                                 
  index = id - information->minimum_id + 1;                           
                                                                      
  if ( information->maximum >= index ) {                              
   54590:	b081           	cmpl %d1,%d0                                
   54592:	620e           	bhis 545a2 <_Objects_Get_no_protection+0x2e>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
   54594:	2068 0018      	moveal %a0@(24),%a0                         
   54598:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
   5459c:	6704           	beqs 545a2 <_Objects_Get_no_protection+0x2e><== NEVER TAKEN
      *location = OBJECTS_LOCAL;                                      
   5459e:	4291           	clrl %a1@                                   
      return the_object;                                              
   545a0:	6006           	bras 545a8 <_Objects_Get_no_protection+0x34>
                                                                      
  /*                                                                  
   *  This isn't supported or required yet for Global objects so      
   *  if it isn't local, we don't find it.                            
   */                                                                 
  *location = OBJECTS_ERROR;                                          
   545a2:	7001           	moveq #1,%d0                                
   545a4:	2280           	movel %d0,%a1@                              
  return NULL;                                                        
   545a6:	4280           	clrl %d0                                    
}                                                                     
   545a8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047dec <_Objects_Id_to_name>: */ Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
   47dec:	4e56 fffc      	linkw %fp,#-4                               
   47df0:	222e 0008      	movel %fp@(8),%d1                           
   47df4:	2f02           	movel %d2,%sp@-                             
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
   47df6:	4a81           	tstl %d1                                    
   47df8:	660a           	bnes 47e04 <_Objects_Id_to_name+0x18>       
   47dfa:	2079 0005 ebac 	moveal 5ebac <_Per_CPU_Information+0xc>,%a0 
   47e00:	2228 0008      	movel %a0@(8),%d1                           
   47e04:	7418           	moveq #24,%d2                               
   47e06:	2001           	movel %d1,%d0                               
   47e08:	e4a8           	lsrl %d2,%d0                                
   47e0a:	143c 0007      	moveb #7,%d2                                
   47e0e:	c082           	andl %d2,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
   47e10:	143c 0002      	moveb #2,%d2                                
   47e14:	2040           	moveal %d0,%a0                              
   47e16:	5388           	subql #1,%a0                                
   47e18:	b488           	cmpl %a0,%d2                                
   47e1a:	6538           	bcss 47e54 <_Objects_Id_to_name+0x68>       <== NEVER TAKEN
   47e1c:	6040           	bras 47e5e <_Objects_Id_to_name+0x72>       
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
   47e1e:	2001           	movel %d1,%d0                               
   47e20:	741b           	moveq #27,%d2                               
   47e22:	e4a8           	lsrl %d2,%d0                                
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
   47e24:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
  if ( !information )                                                 
   47e28:	672a           	beqs 47e54 <_Objects_Id_to_name+0x68>       <== NEVER TAKEN
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
      return OBJECTS_INVALID_ID;                                      
  #endif                                                              
                                                                      
  the_object = _Objects_Get( information, tmpId, &ignored_location ); 
   47e2a:	486e fffc      	pea %fp@(-4)                                
   47e2e:	2f01           	movel %d1,%sp@-                             
   47e30:	2f00           	movel %d0,%sp@-                             
   47e32:	4eb9 0004 7d8c 	jsr 47d8c <_Objects_Get>                    
  if ( !the_object )                                                  
   47e38:	4fef 000c      	lea %sp@(12),%sp                            
   47e3c:	4a80           	tstl %d0                                    
   47e3e:	6714           	beqs 47e54 <_Objects_Id_to_name+0x68>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
   47e40:	206e 000c      	moveal %fp@(12),%a0                         
   47e44:	2240           	moveal %d0,%a1                              
   47e46:	20a9 000c      	movel %a1@(12),%a0@                         
  _Thread_Enable_dispatch();                                          
   47e4a:	4eb9 0004 8986 	jsr 48986 <_Thread_Enable_dispatch>         
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
   47e50:	4280           	clrl %d0                                    
   47e52:	6002           	bras 47e56 <_Objects_Id_to_name+0x6a>       
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
   47e54:	7003           	moveq #3,%d0                                
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  _Thread_Enable_dispatch();                                          
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
}                                                                     
   47e56:	242e fff8      	movel %fp@(-8),%d2                          
   47e5a:	4e5e           	unlk %fp                                    
   47e5c:	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 ] )                       
   47e5e:	41f9 0005 e9cc 	lea 5e9cc <_Objects_Information_table>,%a0  
   47e64:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
   47e68:	4a88           	tstl %a0                                    
   47e6a:	66b2           	bnes 47e1e <_Objects_Id_to_name+0x32>       
   47e6c:	60e6           	bras 47e54 <_Objects_Id_to_name+0x68>       
	...                                                                  
                                                                      

00049fe0 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) {
   49fe0:	4e56 ffec      	linkw %fp,#-20                              
  RTEMS_API_Control *api;                                             
  ASR_Information   *asr;                                             
  rtems_signal_set   signal_set;                                      
  Modes_Control      prev_mode;                                       
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   49fe4:	206e 0008      	moveal %fp@(8),%a0                          
 */                                                                   
                                                                      
void _RTEMS_tasks_Post_switch_extension(                              
  Thread_Control *executing                                           
)                                                                     
{                                                                     
   49fe8:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
  RTEMS_API_Control *api;                                             
  ASR_Information   *asr;                                             
  rtems_signal_set   signal_set;                                      
  Modes_Control      prev_mode;                                       
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   49fec:	2468 00fc      	moveal %a0@(252),%a2                        
  if ( !api )                                                         
   49ff0:	4a8a           	tstl %a2                                    
   49ff2:	6754           	beqs 4a048 <_RTEMS_tasks_Post_switch_extension+0x68><== NEVER TAKEN
   *  Signal Processing                                               
   */                                                                 
                                                                      
  asr = &api->Signal;                                                 
                                                                      
  _ISR_Disable( level );                                              
   49ff4:	203c 0000 0700 	movel #1792,%d0                             
   49ffa:	40c1           	movew %sr,%d1                               
   49ffc:	8081           	orl %d1,%d0                                 
   49ffe:	46c0           	movew %d0,%sr                               
    signal_set = asr->signals_posted;                                 
   4a000:	262a 0012      	movel %a2@(18),%d3                          
    asr->signals_posted = 0;                                          
   4a004:	42aa 0012      	clrl %a2@(18)                               
  _ISR_Enable( level );                                               
   4a008:	46c1           	movew %d1,%sr                               
                                                                      
                                                                      
  if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 
   4a00a:	4a83           	tstl %d3                                    
   4a00c:	673a           	beqs 4a048 <_RTEMS_tasks_Post_switch_extension+0x68>
    return;                                                           
                                                                      
  asr->nest_level += 1;                                               
   4a00e:	52aa 001a      	addql #1,%a2@(26)                           
  rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 
   4a012:	240e           	movel %fp,%d2                               
   4a014:	5982           	subql #4,%d2                                
   4a016:	47f9 0004 b8a0 	lea 4b8a0 <rtems_task_mode>,%a3             
   4a01c:	2f02           	movel %d2,%sp@-                             
   4a01e:	2f3c 0000 ffff 	movel #65535,%sp@-                          
   4a024:	2f2a 000e      	movel %a2@(14),%sp@-                        
   4a028:	4e93           	jsr %a3@                                    
                                                                      
  (*asr->handler)( signal_set );                                      
   4a02a:	2f03           	movel %d3,%sp@-                             
   4a02c:	206a 000a      	moveal %a2@(10),%a0                         
   4a030:	4e90           	jsr %a0@                                    
                                                                      
  asr->nest_level -= 1;                                               
   4a032:	53aa 001a      	subql #1,%a2@(26)                           
  rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode );     
   4a036:	2f02           	movel %d2,%sp@-                             
   4a038:	2f3c 0000 ffff 	movel #65535,%sp@-                          
   4a03e:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   4a042:	4e93           	jsr %a3@                                    
   4a044:	4fef 001c      	lea %sp@(28),%sp                            
                                                                      
}                                                                     
   4a048:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4a04e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004637c <_Rate_monotonic_Get_status>: bool _Rate_monotonic_Get_status( Rate_monotonic_Control *the_period, Rate_monotonic_Period_time_t *wall_since_last_period, Thread_CPU_usage_t *cpu_since_last_period ) {
   4637c:	4e56 ffd4      	linkw %fp,#-44                              
   46380:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   46384:	266e 0008      	moveal %fp@(8),%a3                          
                                                                      
  /*                                                                  
   *  Determine elapsed wall time since period initiated.             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _TOD_Get_uptime( &uptime );                                       
   46388:	240e           	movel %fp,%d2                               
   4638a:	5182           	subql #8,%d2                                
    _Timestamp_Subtract(                                              
   4638c:	45f9 0004 9ab4 	lea 49ab4 <_Timespec_Subtract>,%a2          
)                                                                     
{                                                                     
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    Timestamp_Control        uptime;                                  
  #endif                                                              
    Thread_Control          *owning_thread = the_period->owner;       
   46392:	286b 0040      	moveal %a3@(64),%a4                         
                                                                      
  /*                                                                  
   *  Determine elapsed wall time since period initiated.             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _TOD_Get_uptime( &uptime );                                       
   46396:	2f02           	movel %d2,%sp@-                             
   46398:	4eb9 0004 7ac0 	jsr 47ac0 <_TOD_Get_uptime>                 
    _Timestamp_Subtract(                                              
   4639e:	2f2e 000c      	movel %fp@(12),%sp@-                        
   463a2:	2f02           	movel %d2,%sp@-                             
   463a4:	486b 004c      	pea %a3@(76)                                
   463a8:	4e92           	jsr %a2@                                    
   *  Determine cpu usage since period initiated.                     
   */                                                                 
  used = owning_thread->cpu_time_used;                                
                                                                      
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    if (owning_thread == _Thread_Executing) {                         
   463aa:	4fef 0010      	lea %sp@(16),%sp                            
  #endif                                                              
                                                                      
  /*                                                                  
   *  Determine cpu usage since period initiated.                     
   */                                                                 
  used = owning_thread->cpu_time_used;                                
   463ae:	202c 0082      	movel %a4@(130),%d0                         
   463b2:	222c 0086      	movel %a4@(134),%d1                         
   463b6:	2d40 fff0      	movel %d0,%fp@(-16)                         
   463ba:	2d41 fff4      	movel %d1,%fp@(-12)                         
                                                                      
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    if (owning_thread == _Thread_Executing) {                         
   463be:	b9f9 0005 f2ec 	cmpal 5f2ec <_Per_CPU_Information+0xc>,%a4  
   463c4:	6644           	bnes 4640a <_Rate_monotonic_Get_status+0x8e><== NEVER TAKEN
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463c6:	260e           	movel %fp,%d3                               
   463c8:	0683 ffff ffe8 	addil #-24,%d3                              
                                                                      
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
   463ce:	47eb 0044      	lea %a3@(68),%a3                            
    if (owning_thread == _Thread_Executing) {                         
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463d2:	2f03           	movel %d3,%sp@-                             
   463d4:	2f02           	movel %d2,%sp@-                             
   463d6:	4879 0005 f1fc 	pea 5f1fc <_Thread_Time_of_last_context_switch>
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      /* cpu usage += ran */                                          
      _Timestamp_Add_to( &used, &ran );                               
   463dc:	5182           	subql #8,%d2                                
    if (owning_thread == _Thread_Executing) {                         
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463de:	4e92           	jsr %a2@                                    
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      /* cpu usage += ran */                                          
      _Timestamp_Add_to( &used, &ran );                               
   463e0:	2f03           	movel %d3,%sp@-                             
   463e2:	2f02           	movel %d2,%sp@-                             
   463e4:	4eb9 0004 998c 	jsr 4998c <_Timespec_Add_to>                
                                                                      
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
   463ea:	2f0b           	movel %a3,%sp@-                             
   463ec:	2f02           	movel %d2,%sp@-                             
   463ee:	4eb9 0004 9a84 	jsr 49a84 <_Timespec_Less_than>             
   463f4:	4fef 001c      	lea %sp@(28),%sp                            
   463f8:	4a00           	tstb %d0                                    
   463fa:	6612           	bnes 4640e <_Rate_monotonic_Get_status+0x92>
        return false;                                                 
                                                                      
       /* used = current cpu usage - cpu usage at start of period */  
      _Timestamp_Subtract(                                            
   463fc:	2f2e 0010      	movel %fp@(16),%sp@-                        
   46400:	2f02           	movel %d2,%sp@-                             
   46402:	2f0b           	movel %a3,%sp@-                             
   46404:	4e92           	jsr %a2@                                    
   46406:	4fef 000c      	lea %sp@(12),%sp                            
      if (used < the_period->cpu_usage_period_initiated)              
        return false;                                                 
                                                                      
      *cpu_since_last_period = used - the_period->cpu_usage_period_initiated;
  #endif                                                              
  return true;                                                        
   4640a:	7001           	moveq #1,%d0                                
   4640c:	6002           	bras 46410 <_Rate_monotonic_Get_status+0x94>
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
        return false;                                                 
   4640e:	4200           	clrb %d0                                    
        return false;                                                 
                                                                      
      *cpu_since_last_period = used - the_period->cpu_usage_period_initiated;
  #endif                                                              
  return true;                                                        
}                                                                     
   46410:	4cee 1c0c ffd4 	moveml %fp@(-44),%d2-%d3/%a2-%a4            
   46416:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005783c <_Region_Process_queue>: */ void _Region_Process_queue( Region_Control *the_region ) {
   5783c:	4e56 ffe4      	linkw %fp,#-28                              
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   57840:	2039 0007 5f54 	movel 75f54 <_Thread_Dispatch_disable_level>,%d0
   57846:	5280           	addql #1,%d0                                
   57848:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   5784c:	266e 0008      	moveal %fp@(8),%a3                          
   57850:	23c0 0007 5f54 	movel %d0,75f54 <_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();                                          
   57856:	2f39 0007 5ff4 	movel 75ff4 <_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 );      
   5785c:	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 );                 
   5785e:	260b           	movel %a3,%d3                               
   57860:	0682 0000 0010 	addil #16,%d2                               
   57866:	0683 0000 0068 	addil #104,%d3                              
   5786c:	4bf9 0005 3644 	lea 53644 <_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 );     
   57872:	49f9 0005 7e20 	lea 57e20 <_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();                                          
   57878:	4eb9 0005 2c98 	jsr 52c98 <_API_Mutex_Unlock>               
   5787e:	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 );      
   57880:	283c 0005 7f24 	movel #360228,%d4                           
   57886:	2f02           	movel %d2,%sp@-                             
   57888:	2044           	moveal %d4,%a0                              
   5788a:	4e90           	jsr %a0@                                    
                                                                      
    if ( the_thread == NULL )                                         
   5788c:	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 );      
   5788e:	2440           	moveal %d0,%a2                              
                                                                      
    if ( the_thread == NULL )                                         
   57890:	4a80           	tstl %d0                                    
   57892:	672c           	beqs 578c0 <_Region_Process_queue+0x84>     
   57894:	42a7           	clrl %sp@-                                  
   57896:	42a7           	clrl %sp@-                                  
   57898:	2f2a 0024      	movel %a2@(36),%sp@-                        
   5789c:	2f03           	movel %d3,%sp@-                             
   5789e:	4e95           	jsr %a5@                                    
    the_segment = (void **) _Region_Allocate_segment(                 
      the_region,                                                     
      the_thread->Wait.count                                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
   578a0:	4fef 0010      	lea %sp@(16),%sp                            
   578a4:	4a80           	tstl %d0                                    
   578a6:	6718           	beqs 578c0 <_Region_Process_queue+0x84>     
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   578a8:	206a 0028      	moveal %a2@(40),%a0                         
   578ac:	2080           	movel %d0,%a0@                              
    the_region->number_of_used_blocks += 1;                           
   578ae:	52ab 0064      	addql #1,%a3@(100)                          
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   578b2:	2f0a           	movel %a2,%sp@-                             
   578b4:	2f02           	movel %d2,%sp@-                             
   578b6:	4e94           	jsr %a4@                                    
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
   578b8:	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;                  
   578ba:	42aa 0034      	clrl %a2@(52)                               
  }                                                                   
   578be:	60c6           	bras 57886 <_Region_Process_queue+0x4a>     
  _Thread_Enable_dispatch();                                          
}                                                                     
   578c0:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   578c6:	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();                                          
   578c8:	4ef9 0005 5122 	jmp 55122 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

000471b8 <_Scheduler_Handler_initialization>: #include <rtems/system.h> #include <rtems/config.h> #include <rtems/score/scheduler.h> void _Scheduler_Handler_initialization(void) {
   471b8:	4e56 0000      	linkw %fp,#0                                
  (*_Scheduler.Operations.initialize)();                              
}                                                                     
   471bc:	4e5e           	unlk %fp                                    
#include <rtems/config.h>                                             
#include <rtems/score/scheduler.h>                                    
                                                                      
void _Scheduler_Handler_initialization(void)                          
{                                                                     
  (*_Scheduler.Operations.initialize)();                              
   471be:	2279 0005 bc24 	moveal 5bc24 <_Scheduler+0x4>,%a1           
   471c4:	4ed1           	jmp %a1@                                    
	...                                                                  
                                                                      

000471e4 <_Scheduler_priority_Block>: #include <rtems/score/thread.h> void _Scheduler_priority_Block( Thread_Control *the_thread ) {
   471e4:	4e56 0000      	linkw %fp,#0                                
   471e8:	226e 0008      	moveal %fp@(8),%a1                          
   471ec:	2f0a           	movel %a2,%sp@-                             
)                                                                     
{                                                                     
  Scheduler_priority_Per_thread *sched_info;                          
  Chain_Control                 *ready;                               
                                                                      
  sched_info = (Scheduler_priority_Per_thread *) the_thread->scheduler_info;
   471ee:	2469 008a      	moveal %a1@(138),%a2                        
  ready      = sched_info->ready_chain;                               
   471f2:	2052           	moveal %a2@,%a0                             
                                                                      
  if ( _Chain_Has_only_one_node( ready ) ) {                          
   471f4:	2028 0008      	movel %a0@(8),%d0                           
   471f8:	b090           	cmpl %a0@,%d0                               
   471fa:	6632           	bnes 4722e <_Scheduler_priority_Block+0x4a> 
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   471fc:	2008           	movel %a0,%d0                               
   471fe:	5880           	addql #4,%d0                                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   47200:	42a8 0004      	clrl %a0@(4)                                
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   47204:	2080           	movel %d0,%a0@                              
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (                  
  Priority_bit_map_Information *the_priority_map                      
)                                                                     
{                                                                     
  *the_priority_map->minor &= the_priority_map->block_minor;          
   47206:	302a 000e      	movew %a2@(14),%d0                          
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  tail->previous = head;                                              
   4720a:	2148 0008      	movel %a0,%a0@(8)                           
   4720e:	206a 0004      	moveal %a2@(4),%a0                          
   47212:	3210           	movew %a0@,%d1                              
   47214:	c081           	andl %d1,%d0                                
   47216:	3080           	movew %d0,%a0@                              
  if ( *the_priority_map->minor == 0 )                                
   47218:	6620           	bnes 4723a <_Scheduler_priority_Block+0x56> 
    _Priority_Major_bit_map &= the_priority_map->block_major;         
   4721a:	3039 0005 d704 	movew 5d704 <_Priority_Major_bit_map>,%d0   
   47220:	322a 000c      	movew %a2@(12),%d1                          
   47224:	c081           	andl %d1,%d0                                
   47226:	33c0 0005 d704 	movew %d0,5d704 <_Priority_Major_bit_map>   
   4722c:	600c           	bras 4723a <_Scheduler_priority_Block+0x56> 
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4722e:	2451           	moveal %a1@,%a2                             
  previous       = the_node->previous;                                
   47230:	2069 0004      	moveal %a1@(4),%a0                          
  next->previous = previous;                                          
   47234:	2548 0004      	movel %a0,%a2@(4)                           
  previous->next = next;                                              
   47238:	208a           	movel %a2,%a0@                              
  _Scheduler_priority_Ready_queue_extract( the_thread );              
                                                                      
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
   4723a:	b3f9 0005 d6f8 	cmpal 5d6f8 <_Per_CPU_Information+0x10>,%a1 
   47240:	6646           	bnes 47288 <_Scheduler_priority_Block+0xa4> 
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
   47242:	3039 0005 d704 	movew 5d704 <_Priority_Major_bit_map>,%d0   
   47248:	4840           	swap %d0                                    
   4724a:	04c0           	ff1 %d0                                     
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
   4724c:	41f9 0005 d708 	lea 5d708 <_Priority_Bit_map>,%a0           
   47252:	0280 0000 ffff 	andil #65535,%d0                            
   47258:	3230 0a00      	movew %a0@(00000000,%d0:l:2),%d1            
   4725c:	4841           	swap %d1                                    
   4725e:	04c1           	ff1 %d1                                     
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
    _Thread_Dispatch_necessary = true;                                
                                                                      
}                                                                     
   47260:	2079 0005 bc20 	moveal 5bc20 <_Scheduler>,%a0               
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
   47266:	0281 0000 ffff 	andil #65535,%d1                            
   4726c:	e988           	lsll #4,%d0                                 
   4726e:	d081           	addl %d1,%d0                                
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
   47270:	2200           	movel %d0,%d1                               
   47272:	e988           	lsll #4,%d0                                 
   47274:	e589           	lsll #2,%d1                                 
   47276:	9081           	subl %d1,%d0                                
   47278:	d1c0           	addal %d0,%a0                               
   4727a:	2018           	movel %a0@+,%d0                             
   4727c:	b1c0           	cmpal %d0,%a0                               
   4727e:	6602           	bnes 47282 <_Scheduler_priority_Block+0x9e> <== ALWAYS TAKEN
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
   47280:	4280           	clrl %d0                                    <== NOT EXECUTED
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
   47282:	23c0 0005 d6f8 	movel %d0,5d6f8 <_Per_CPU_Information+0x10> 
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
   47288:	b3f9 0005 d6f4 	cmpal 5d6f4 <_Per_CPU_Information+0xc>,%a1  
   4728e:	6608           	bnes 47298 <_Scheduler_priority_Block+0xb4> 
    _Thread_Dispatch_necessary = true;                                
   47290:	7001           	moveq #1,%d0                                
   47292:	13c0 0005 d700 	moveb %d0,5d700 <_Per_CPU_Information+0x18> 
                                                                      
}                                                                     
   47298:	245f           	moveal %sp@+,%a2                            
   4729a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047390 <_Scheduler_priority_Free>: #include <rtems/score/wkspace.h> void _Scheduler_priority_Free ( Thread_Control *the_thread ) {
   47390:	4e56 0000      	linkw %fp,#0                                
  _Workspace_Free( the_thread->scheduler_info );                      
   47394:	206e 0008      	moveal %fp@(8),%a0                          
   47398:	2d68 008a 0008 	movel %a0@(138),%fp@(8)                     
}                                                                     
   4739e:	4e5e           	unlk %fp                                    
                                                                      
void _Scheduler_priority_Free (                                       
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Workspace_Free( the_thread->scheduler_info );                      
   473a0:	4ef9 0004 8908 	jmp 48908 <_Workspace_Free>                 
	...                                                                  
                                                                      

00047410 <_Scheduler_priority_Schedule>: #include <rtems/system.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulerpriority.h> void _Scheduler_priority_Schedule(void) {
   47410:	4e56 0000      	linkw %fp,#0                                
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
   47414:	3039 0005 d704 	movew 5d704 <_Priority_Major_bit_map>,%d0   
   4741a:	4840           	swap %d0                                    
   4741c:	04c0           	ff1 %d0                                     
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
   4741e:	41f9 0005 d708 	lea 5d708 <_Priority_Bit_map>,%a0           
   47424:	0280 0000 ffff 	andil #65535,%d0                            
   4742a:	3230 0a00      	movew %a0@(00000000,%d0:l:2),%d1            
   4742e:	4841           	swap %d1                                    
   47430:	04c1           	ff1 %d1                                     
  _Scheduler_priority_Schedule_body();                                
}                                                                     
   47432:	2079 0005 bc20 	moveal 5bc20 <_Scheduler>,%a0               
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
   47438:	0281 0000 ffff 	andil #65535,%d1                            
   4743e:	e988           	lsll #4,%d0                                 
   47440:	d081           	addl %d1,%d0                                
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
   47442:	2200           	movel %d0,%d1                               
   47444:	e988           	lsll #4,%d0                                 
   47446:	e589           	lsll #2,%d1                                 
   47448:	9081           	subl %d1,%d0                                
   4744a:	d1c0           	addal %d0,%a0                               
   4744c:	2018           	movel %a0@+,%d0                             
   4744e:	b1c0           	cmpal %d0,%a0                               
   47450:	6602           	bnes 47454 <_Scheduler_priority_Schedule+0x44><== ALWAYS TAKEN
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
   47452:	4280           	clrl %d0                                    <== NOT EXECUTED
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
   47454:	23c0 0005 d6f8 	movel %d0,5d6f8 <_Per_CPU_Information+0x10> 
   4745a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004754c <_Scheduler_priority_Yield>: * ready chain * select heir */ void _Scheduler_priority_Yield(void) {
   4754c:	4e56 fff4      	linkw %fp,#-12                              
  Scheduler_priority_Per_thread *sched_info;                          
  ISR_Level                      level;                               
  Thread_Control                *executing;                           
  Chain_Control                 *ready;                               
                                                                      
  executing  = _Thread_Executing;                                     
   47550:	2079 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a0 
 *    ready chain                                                     
 *    select heir                                                     
 */                                                                   
                                                                      
void _Scheduler_priority_Yield(void)                                  
{                                                                     
   47556:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
  Thread_Control                *executing;                           
  Chain_Control                 *ready;                               
                                                                      
  executing  = _Thread_Executing;                                     
  sched_info = (Scheduler_priority_Per_thread *) executing->scheduler_info;
  ready      = sched_info->ready_chain;                               
   4755a:	2268 008a      	moveal %a0@(138),%a1                        
  _ISR_Disable( level );                                              
   4755e:	243c 0000 0700 	movel #1792,%d2                             
   47564:	2002           	movel %d2,%d0                               
  Thread_Control                *executing;                           
  Chain_Control                 *ready;                               
                                                                      
  executing  = _Thread_Executing;                                     
  sched_info = (Scheduler_priority_Per_thread *) executing->scheduler_info;
  ready      = sched_info->ready_chain;                               
   47566:	2251           	moveal %a1@,%a1                             
  _ISR_Disable( level );                                              
   47568:	40c1           	movew %sr,%d1                               
   4756a:	8081           	orl %d1,%d0                                 
   4756c:	46c0           	movew %d0,%sr                               
    if ( !_Chain_Has_only_one_node( ready ) ) {                       
   4756e:	2029 0008      	movel %a1@(8),%d0                           
   47572:	b091           	cmpl %a1@,%d0                               
   47574:	6738           	beqs 475ae <_Scheduler_priority_Yield+0x62> 
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
   47576:	2468 0004      	moveal %a0@(4),%a2                          
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(                  
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   4757a:	2009           	movel %a1,%d0                               
   4757c:	5880           	addql #4,%d0                                
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4757e:	2650           	moveal %a0@,%a3                             
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   47580:	274a 0004      	movel %a2,%a3@(4)                           
  previous->next = next;                                              
   47584:	248b           	movel %a3,%a2@                              
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
   47586:	2469 0008      	moveal %a1@(8),%a2                          
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(                  
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   4758a:	2080           	movel %d0,%a0@                              
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
   4758c:	2348 0008      	movel %a0,%a1@(8)                           
  old_last->next = the_node;                                          
   47590:	2488           	movel %a0,%a2@                              
  the_node->previous = old_last;                                      
   47592:	214a 0004      	movel %a2,%a0@(4)                           
      _Chain_Extract_unprotected( &executing->Object.Node );          
      _Chain_Append_unprotected( ready, &executing->Object.Node );    
                                                                      
      _ISR_Flash( level );                                            
   47596:	2002           	movel %d2,%d0                               
   47598:	46c1           	movew %d1,%sr                               
   4759a:	8081           	orl %d1,%d0                                 
   4759c:	46c0           	movew %d0,%sr                               
                                                                      
      if ( _Thread_Is_heir( executing ) )                             
   4759e:	b1f9 0005 d6f8 	cmpal 5d6f8 <_Per_CPU_Information+0x10>,%a0 
   475a4:	6610           	bnes 475b6 <_Scheduler_priority_Yield+0x6a> <== NEVER TAKEN
        _Thread_Heir = (Thread_Control *) _Chain_First( ready );      
   475a6:	23d1 0005 d6f8 	movel %a1@,5d6f8 <_Per_CPU_Information+0x10>
   475ac:	6008           	bras 475b6 <_Scheduler_priority_Yield+0x6a> 
      _Thread_Dispatch_necessary = true;                              
    }                                                                 
    else if ( !_Thread_Is_heir( executing ) )                         
   475ae:	b1f9 0005 d6f8 	cmpal 5d6f8 <_Per_CPU_Information+0x10>,%a0 
   475b4:	6708           	beqs 475be <_Scheduler_priority_Yield+0x72> <== ALWAYS TAKEN
      _Thread_Dispatch_necessary = true;                              
   475b6:	7001           	moveq #1,%d0                                
   475b8:	13c0 0005 d700 	moveb %d0,5d700 <_Per_CPU_Information+0x18> 
                                                                      
  _ISR_Enable( level );                                               
   475be:	46c1           	movew %d1,%sr                               
}                                                                     
   475c0:	4cd7 0c04      	moveml %sp@,%d2/%a2-%a3                     
   475c4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046284 <_TOD_Validate>: */ bool _TOD_Validate( const rtems_time_of_day *the_tod ) {
   46284:	4e56 0000      	linkw %fp,#0                                
   46288:	206e 0008      	moveal %fp@(8),%a0                          
   4628c:	2f03           	movel %d3,%sp@-                             
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
   4628e:	2039 0005 dd80 	movel 5dd80 <Configuration+0xc>,%d0         
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  const rtems_time_of_day *the_tod                                    
)                                                                     
{                                                                     
   46294:	2f02           	movel %d2,%sp@-                             
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
   46296:	4a88           	tstl %a0                                    
   46298:	6762           	beqs 462fc <_TOD_Validate+0x78>             <== NEVER TAKEN
)                                                                     
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
   4629a:	243c 000f 4240 	movel #1000000,%d2                          
   462a0:	4c40 2002      	remul %d0,%d2,%d2                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
   462a4:	b4a8 0018      	cmpl %a0@(24),%d2                           
   462a8:	6352           	blss 462fc <_TOD_Validate+0x78>             
      (the_tod->ticks  >= ticks_per_second)       ||                  
   462aa:	763b           	moveq #59,%d3                               
   462ac:	b6a8 0014      	cmpl %a0@(20),%d3                           
   462b0:	654a           	bcss 462fc <_TOD_Validate+0x78>             
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
   462b2:	b6a8 0010      	cmpl %a0@(16),%d3                           
   462b6:	6544           	bcss 462fc <_TOD_Validate+0x78>             
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
   462b8:	7017           	moveq #23,%d0                               
   462ba:	b0a8 000c      	cmpl %a0@(12),%d0                           
   462be:	653c           	bcss 462fc <_TOD_Validate+0x78>             
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
   462c0:	2028 0004      	movel %a0@(4),%d0                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
   462c4:	6736           	beqs 462fc <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->month  == 0)                      ||                  
   462c6:	720c           	moveq #12,%d1                               
   462c8:	b280           	cmpl %d0,%d1                                
   462ca:	6530           	bcss 462fc <_TOD_Validate+0x78>             
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
   462cc:	2410           	movel %a0@,%d2                              
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
   462ce:	0c82 0000 07c3 	cmpil #1987,%d2                             
   462d4:	6326           	blss 462fc <_TOD_Validate+0x78>             
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
   462d6:	2228 0008      	movel %a0@(8),%d1                           
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
   462da:	6720           	beqs 462fc <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
   462dc:	163c 0003      	moveb #3,%d3                                
   462e0:	41f9 0005 cf06 	lea 5cf06 <_TOD_Days_per_month>,%a0         
   462e6:	c483           	andl %d3,%d2                                
   462e8:	6606           	bnes 462f0 <_TOD_Validate+0x6c>             
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
   462ea:	2030 0c34      	movel %a0@(00000034,%d0:l:4),%d0            
   462ee:	6004           	bras 462f4 <_TOD_Validate+0x70>             
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
   462f0:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
 *    false - if the the_tod is invalid                               
 *                                                                    
 *  NOTE: This routine only works for leap-years through 2099.        
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
   462f4:	b081           	cmpl %d1,%d0                                
   462f6:	54c0           	scc %d0                                     
   462f8:	4480           	negl %d0                                    
   462fa:	6002           	bras 462fe <_TOD_Validate+0x7a>             
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
     return false;                                                    
   462fc:	4200           	clrb %d0                                    
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
   462fe:	241f           	movel %sp@+,%d2                             
   46300:	261f           	movel %sp@+,%d3                             
   46302:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047618 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
   47618:	4e56 fff0      	linkw %fp,#-16                              
   4761c:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   47620:	246e 0008      	moveal %fp@(8),%a2                          
  States_Control state, original_state;                               
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
   47624:	282a 0010      	movel %a2@(16),%d4                          
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   47628:	242e 000c      	movel %fp@(12),%d2                          
  /*                                                                  
   * Set a transient state for the thread so it is pulled off the Ready chains.
   * This will prevent it from being scheduled no matter what happens in an
   * ISR.                                                             
   */                                                                 
  _Thread_Set_transient( the_thread );                                
   4762c:	2f0a           	movel %a2,%sp@-                             
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   4762e:	162e 0013      	moveb %fp@(19),%d3                          
  /*                                                                  
   * Set a transient state for the thread so it is pulled off the Ready chains.
   * This will prevent it from being scheduled no matter what happens in an
   * ISR.                                                             
   */                                                                 
  _Thread_Set_transient( the_thread );                                
   47632:	4eb9 0004 81e0 	jsr 481e0 <_Thread_Set_transient>           
                                                                      
  /*                                                                  
   *  Do not bother recomputing all the priority related information if
   *  we are not REALLY changing priority.                            
   */                                                                 
 if ( the_thread->current_priority != new_priority )                  
   47638:	588f           	addql #4,%sp                                
   4763a:	b4aa 0014      	cmpl %a2@(20),%d2                           
   4763e:	670c           	beqs 4764c <_Thread_Change_priority+0x34>   
    _Thread_Set_priority( the_thread, new_priority );                 
   47640:	2f02           	movel %d2,%sp@-                             
   47642:	2f0a           	movel %a2,%sp@-                             
   47644:	4eb9 0004 8184 	jsr 48184 <_Thread_Set_priority>            
   4764a:	508f           	addql #8,%sp                                
                                                                      
  _ISR_Disable( level );                                              
   4764c:	203c 0000 0700 	movel #1792,%d0                             
   47652:	40c2           	movew %sr,%d2                               
   47654:	8082           	orl %d2,%d0                                 
   47656:	46c0           	movew %d0,%sr                               
   47658:	7204           	moveq #4,%d1                                
                                                                      
  /*                                                                  
   *  If the thread has more than STATES_TRANSIENT set, then it is blocked,
   *  If it is blocked on a thread queue, then we need to requeue it. 
   */                                                                 
  state = the_thread->current_state;                                  
   4765a:	202a 0010      	movel %a2@(16),%d0                          
   4765e:	c284           	andl %d4,%d1                                
  if ( state != STATES_TRANSIENT ) {                                  
   47660:	7804           	moveq #4,%d4                                
   47662:	b880           	cmpl %d0,%d4                                
   47664:	672e           	beqs 47694 <_Thread_Change_priority+0x7c>   
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
   47666:	4a81           	tstl %d1                                    
   47668:	6608           	bnes 47672 <_Thread_Change_priority+0x5a>   <== NEVER TAKEN
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
   4766a:	72fb           	moveq #-5,%d1                               
   4766c:	c280           	andl %d0,%d1                                
   4766e:	2541 0010      	movel %d1,%a2@(16)                          
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
   47672:	46c2           	movew %d2,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
   47674:	0280 0003 bee0 	andil #245472,%d0                           
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
   4767a:	676c           	beqs 476e8 <_Thread_Change_priority+0xd0>   
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
   4767c:	2d4a 000c      	movel %a2,%fp@(12)                          
   47680:	2d6a 0044 0008 	movel %a2@(68),%fp@(8)                      
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
   47686:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   4768c:	4e5e           	unlk %fp                                    
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
   4768e:	4ef9 0004 80e8 	jmp 480e8 <_Thread_queue_Requeue>           
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
   47694:	4a81           	tstl %d1                                    
   47696:	661e           	bnes 476b6 <_Thread_Change_priority+0x9e>   <== NEVER TAKEN
     *  Interrupts are STILL disabled.                                
     *  We now know the thread will be in the READY state when we remove
     *  the TRANSIENT state.  So we have to place it on the appropriate
     *  Ready Queue with interrupts off.                              
     */                                                               
    the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
   47698:	42aa 0010      	clrl %a2@(16)                               
                                                                      
    if ( prepend_it )                                                 
   4769c:	4a03           	tstb %d3                                    
   4769e:	670a           	beqs 476aa <_Thread_Change_priority+0x92>   
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(                   
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue_first( the_thread );                  
   476a0:	2f0a           	movel %a2,%sp@-                             
   476a2:	2079 0005 bc48 	moveal 5bc48 <_Scheduler+0x28>,%a0          
   476a8:	6008           	bras 476b2 <_Thread_Change_priority+0x9a>   
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(                         
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue( the_thread );                        
   476aa:	2079 0005 bc44 	moveal 5bc44 <_Scheduler+0x24>,%a0          
   476b0:	2f0a           	movel %a2,%sp@-                             
   476b2:	4e90           	jsr %a0@                                    
   476b4:	588f           	addql #4,%sp                                
      _Scheduler_Enqueue_first( the_thread );                         
    else                                                              
      _Scheduler_Enqueue( the_thread );                               
  }                                                                   
                                                                      
  _ISR_Flash( level );                                                
   476b6:	203c 0000 0700 	movel #1792,%d0                             
   476bc:	46c2           	movew %d2,%sr                               
   476be:	8082           	orl %d2,%d0                                 
   476c0:	46c0           	movew %d0,%sr                               
 *  This kernel routine implements the scheduling decision logic for  
 *  the scheduler. It does NOT dispatch.                              
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( void )                 
{                                                                     
  _Scheduler.Operations.schedule();                                   
   476c2:	2079 0005 bc28 	moveal 5bc28 <_Scheduler+0x8>,%a0           
   476c8:	4e90           	jsr %a0@                                    
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
   476ca:	2079 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a0 
   *  We altered the set of thread priorities.  So let's figure out   
   *  who is the heir and if we need to switch to them.               
   */                                                                 
  _Scheduler_Schedule();                                              
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
   476d0:	b1f9 0005 d6f8 	cmpal 5d6f8 <_Per_CPU_Information+0x10>,%a0 
   476d6:	670e           	beqs 476e6 <_Thread_Change_priority+0xce>   
   476d8:	4a28 0074      	tstb %a0@(116)                              
   476dc:	6708           	beqs 476e6 <_Thread_Change_priority+0xce>   
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
   476de:	7801           	moveq #1,%d4                                
   476e0:	13c4 0005 d700 	moveb %d4,5d700 <_Per_CPU_Information+0x18> 
  _ISR_Enable( level );                                               
   476e6:	46c2           	movew %d2,%sr                               
}                                                                     
   476e8:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   476ee:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000478bc <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
   478bc:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   478c0:	486e fffc      	pea %fp@(-4)                                
   478c4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   478c8:	4eb9 0004 7a5c 	jsr 47a5c <_Thread_Get>                     
  switch ( location ) {                                               
   478ce:	508f           	addql #8,%sp                                
   478d0:	4aae fffc      	tstl %fp@(-4)                               
   478d4:	661e           	bnes 478f4 <_Thread_Delay_ended+0x38>       <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
   478d6:	2f3c 1000 0018 	movel #268435480,%sp@-                      
   478dc:	2f00           	movel %d0,%sp@-                             
   478de:	4eb9 0004 76f4 	jsr 476f4 <_Thread_Clear_state>             
   478e4:	508f           	addql #8,%sp                                
   478e6:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
   478ec:	5380           	subql #1,%d0                                
   478ee:	23c0 0005 d558 	movel %d0,5d558 <_Thread_Dispatch_disable_level>
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   478f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000478f8 <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) {
   478f8:	4e56 ffc8      	linkw %fp,#-56                              
   478fc:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
   47900:	283c 0000 0700 	movel #1792,%d4                             
   47906:	2204           	movel %d4,%d1                               
{                                                                     
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
   47908:	2479 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a2 
  _ISR_Disable( level );                                              
   4790e:	40c0           	movew %sr,%d0                               
   47910:	8280           	orl %d0,%d1                                 
   47912:	46c1           	movew %d1,%sr                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   47914:	260e           	movel %fp,%d3                               
        _Timestamp_Subtract(                                          
   47916:	240e           	movel %fp,%d2                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   47918:	5183           	subql #8,%d3                                
        _Timestamp_Subtract(                                          
   4791a:	0682 ffff fff0 	addil #-16,%d2                              
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   47920:	2e3c 0004 8380 	movel #295808,%d7                           
    if ( _Thread_libc_reent ) {                                       
      executing->libc_reent = *_Thread_libc_reent;                    
      *_Thread_libc_reent = heir->libc_reent;                         
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   47926:	2c3c 0004 8634 	movel #296500,%d6                           
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   4792c:	2a3c 0004 8958 	movel #297304,%d5                           
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
      _Context_Restore_fp( &executing->fp_context );                  
   47932:	4bf9 0004 8ac0 	lea 48ac0 <_CPU_Context_restore_fp>,%a5     
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
   47938:	49f9 0004 8a9e 	lea 48a9e <_CPU_Context_save_fp>,%a4        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
   4793e:	6000 00d4      	braw 47a14 <_Thread_Dispatch+0x11c>         
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
   47942:	7201           	moveq #1,%d1                                
   47944:	23c1 0005 d558 	movel %d1,5d558 <_Thread_Dispatch_disable_level>
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
   4794a:	2679 0005 d6f8 	moveal 5d6f8 <_Per_CPU_Information+0x10>,%a3
    _Thread_Dispatch_disable_level = 1;                               
    _Thread_Dispatch_necessary = false;                               
   47950:	4201           	clrb %d1                                    
    _Thread_Executing = heir;                                         
   47952:	23cb 0005 d6f4 	movel %a3,5d6f4 <_Per_CPU_Information+0xc>  
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
    _Thread_Dispatch_necessary = false;                               
   47958:	13c1 0005 d700 	moveb %d1,5d700 <_Per_CPU_Information+0x18> 
    /*                                                                
     *  When the heir and executing are the same, then we are being   
     *  requested to do the post switch dispatching.  This is normally
     *  done to dispatch signals.                                     
     */                                                               
    if ( heir == executing )                                          
   4795e:	b5cb           	cmpal %a3,%a2                               
   47960:	6700 00bc      	beqw 47a1e <_Thread_Dispatch+0x126>         
     */                                                               
#if __RTEMS_ADA__                                                     
    executing->rtems_ada_self = rtems_ada_self;                       
    rtems_ada_self = heir->rtems_ada_self;                            
#endif                                                                
    if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE )
   47964:	7201           	moveq #1,%d1                                
   47966:	b2ab 007a      	cmpl %a3@(122),%d1                          
   4796a:	660a           	bnes 47976 <_Thread_Dispatch+0x7e>          
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
   4796c:	41f9 0005 d510 	lea 5d510 <_Thread_Ticks_per_timeslice>,%a0 
   47972:	2750 0076      	movel %a0@,%a3@(118)                        
                                                                      
    _ISR_Enable( level );                                             
   47976:	46c0           	movew %d0,%sr                               
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   47978:	2f03           	movel %d3,%sp@-                             
   4797a:	4eb9 0004 a358 	jsr 4a358 <_TOD_Get_uptime>                 
        _Timestamp_Subtract(                                          
   47980:	2f02           	movel %d2,%sp@-                             
   47982:	2f03           	movel %d3,%sp@-                             
   47984:	4879 0005 d604 	pea 5d604 <_Thread_Time_of_last_context_switch>
   4798a:	4eb9 0004 83b8 	jsr 483b8 <_Timespec_Subtract>              
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   47990:	2047           	moveal %d7,%a0                              
   47992:	2f02           	movel %d2,%sp@-                             
   47994:	486a 0082      	pea %a2@(130)                               
   47998:	4e90           	jsr %a0@                                    
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   4799a:	2079 0005 d5de 	moveal 5d5de <_Thread_libc_reent>,%a0       
   479a0:	4fef 0018      	lea %sp@(24),%sp                            
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
        _Thread_Time_of_last_context_switch = uptime;                 
   479a4:	202e fff8      	movel %fp@(-8),%d0                          
   479a8:	222e fffc      	movel %fp@(-4),%d1                          
   479ac:	23c0 0005 d604 	movel %d0,5d604 <_Thread_Time_of_last_context_switch>
   479b2:	23c1 0005 d608 	movel %d1,5d608 <_Thread_Time_of_last_context_switch+0x4>
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   479b8:	4a88           	tstl %a0                                    
   479ba:	6708           	beqs 479c4 <_Thread_Dispatch+0xcc>          <== NEVER TAKEN
      executing->libc_reent = *_Thread_libc_reent;                    
   479bc:	2550 00f8      	movel %a0@,%a2@(248)                        
      *_Thread_libc_reent = heir->libc_reent;                         
   479c0:	20ab 00f8      	movel %a3@(248),%a0@                        
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   479c4:	2f0b           	movel %a3,%sp@-                             
   479c6:	2046           	moveal %d6,%a0                              
   479c8:	2f0a           	movel %a2,%sp@-                             
   479ca:	4e90           	jsr %a0@                                    
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   479cc:	486b 00c0      	pea %a3@(192)                               
   479d0:	2045           	moveal %d5,%a0                              
   479d2:	486a 00c0      	pea %a2@(192)                               
   479d6:	4e90           	jsr %a0@                                    
                                                                      
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
   479d8:	4fef 0010      	lea %sp@(16),%sp                            
   479dc:	4aaa 00f4      	tstl %a2@(244)                              
   479e0:	6724           	beqs 47a06 <_Thread_Dispatch+0x10e>         
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (                   
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Allocated_fp );                      
   479e2:	2079 0005 d5da 	moveal 5d5da <_Thread_Allocated_fp>,%a0     
   479e8:	b1ca           	cmpal %a2,%a0                               
   479ea:	671a           	beqs 47a06 <_Thread_Dispatch+0x10e>         
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
   479ec:	4a88           	tstl %a0                                    
   479ee:	6708           	beqs 479f8 <_Thread_Dispatch+0x100>         
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
   479f0:	4868 00f4      	pea %a0@(244)                               
   479f4:	4e94           	jsr %a4@                                    
   479f6:	588f           	addql #4,%sp                                
      _Context_Restore_fp( &executing->fp_context );                  
   479f8:	486a 00f4      	pea %a2@(244)                               
   479fc:	4e95           	jsr %a5@                                    
      _Thread_Allocated_fp = executing;                               
   479fe:	588f           	addql #4,%sp                                
   47a00:	23ca 0005 d5da 	movel %a2,5d5da <_Thread_Allocated_fp>      
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
   47a06:	2479 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a2 
                                                                      
    _ISR_Disable( level );                                            
   47a0c:	2204           	movel %d4,%d1                               
   47a0e:	40c0           	movew %sr,%d0                               
   47a10:	8280           	orl %d0,%d1                                 
   47a12:	46c1           	movew %d1,%sr                               
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
   47a14:	1239 0005 d700 	moveb 5d700 <_Per_CPU_Information+0x18>,%d1 
   47a1a:	6600 ff26      	bnew 47942 <_Thread_Dispatch+0x4a>          
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
post_switch:                                                          
  _Thread_Dispatch_disable_level = 0;                                 
   47a1e:	42b9 0005 d558 	clrl 5d558 <_Thread_Dispatch_disable_level> 
                                                                      
  _ISR_Enable( level );                                               
   47a24:	46c0           	movew %d0,%sr                               
                                                                      
  _API_extensions_Run_postswitch();                                   
   47a26:	4eb9 0004 6088 	jsr 46088 <_API_extensions_Run_postswitch>  
}                                                                     
   47a2c:	4cee 3cfc ffc8 	moveml %fp@(-56),%d2-%d7/%a2-%a5            
   47a32:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bb20 <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) {
   4bb20:	4e56 0000      	linkw %fp,#0                                
   4bb24:	2f0a           	movel %a2,%sp@-                             
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    static char doneConstructors;                                     
    char doneCons;                                                    
  #endif                                                              
                                                                      
  executing = _Thread_Executing;                                      
   4bb26:	2479 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a2 
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler( void )                                          
{                                                                     
   4bb2c:	2f02           	movel %d2,%sp@-                             
  /*                                                                  
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
   4bb2e:	222a 00a8      	movel %a2@(168),%d1                         
  _ISR_Set_level(level);                                              
   4bb32:	40c0           	movew %sr,%d0                               
   4bb34:	e189           	lsll #8,%d1                                 
   4bb36:	0280 0000 f8ff 	andil #63743,%d0                            
   4bb3c:	8081           	orl %d1,%d0                                 
   4bb3e:	46c0           	movew %d0,%sr                               
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
    doneConstructors = 1;                                             
   4bb40:	7001           	moveq #1,%d0                                
                                                                      
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
   4bb42:	1439 0005 cd1c 	moveb 5cd1c <doneConstructors.3351>,%d2     
    doneConstructors = 1;                                             
   4bb48:	13c0 0005 cd1c 	moveb %d0,5cd1c <doneConstructors.3351>     
  #endif                                                              
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                        
      if ( (executing->fp_context != NULL) &&                         
   4bb4e:	4aaa 00f4      	tstl %a2@(244)                              
   4bb52:	6720           	beqs 4bb74 <_Thread_Handler+0x54>           
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (                   
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Allocated_fp );                      
   4bb54:	2079 0005 d5da 	moveal 5d5da <_Thread_Allocated_fp>,%a0     
   4bb5a:	b1ca           	cmpal %a2,%a0                               
   4bb5c:	6716           	beqs 4bb74 <_Thread_Handler+0x54>           
            !_Thread_Is_allocated_fp( executing ) ) {                 
        if ( _Thread_Allocated_fp != NULL )                           
   4bb5e:	4a88           	tstl %a0                                    
   4bb60:	670c           	beqs 4bb6e <_Thread_Handler+0x4e>           
          _Context_Save_fp( &_Thread_Allocated_fp->fp_context );      
   4bb62:	4868 00f4      	pea %a0@(244)                               
   4bb66:	4eb9 0004 8a9e 	jsr 48a9e <_CPU_Context_save_fp>            
   4bb6c:	588f           	addql #4,%sp                                
        _Thread_Allocated_fp = executing;                             
   4bb6e:	23ca 0005 d5da 	movel %a2,5d5da <_Thread_Allocated_fp>      
  /*                                                                  
   * Take care that 'begin' extensions get to complete before         
   * 'switch' extensions can run.  This means must keep dispatch      
   * disabled until all 'begin' extensions complete.                  
   */                                                                 
  _User_extensions_Thread_begin( executing );                         
   4bb74:	2f0a           	movel %a2,%sp@-                             
   4bb76:	4eb9 0004 84b0 	jsr 484b0 <_User_extensions_Thread_begin>   
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
  _Thread_Enable_dispatch();                                          
   4bb7c:	4eb9 0004 7a36 	jsr 47a36 <_Thread_Enable_dispatch>         
    /*                                                                
     *  _init could be a weak symbol and we SHOULD test it but it isn't
     *  in any configuration I know of and it generates a warning on every
     *  RTEMS target configuration.  --joel (12 May 2007)             
     */                                                               
    if (!doneCons) /* && (volatile void *)_init) */ {                 
   4bb82:	588f           	addql #4,%sp                                
   4bb84:	4a02           	tstb %d2                                    
   4bb86:	6606           	bnes 4bb8e <_Thread_Handler+0x6e>           
      INIT_NAME ();                                                   
   4bb88:	4eb9 0005 a074 	jsr 5a074 <_init>                           
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
   4bb8e:	4aaa 0092      	tstl %a2@(146)                              
   4bb92:	6610           	bnes 4bba4 <_Thread_Handler+0x84>           <== NEVER TAKEN
    executing->Wait.return_argument =                                 
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
   4bb94:	2f2a 009a      	movel %a2@(154),%sp@-                       
   4bb98:	206a 008e      	moveal %a2@(142),%a0                        
   4bb9c:	4e90           	jsr %a0@                                    
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
    executing->Wait.return_argument =                                 
   4bb9e:	588f           	addql #4,%sp                                
   4bba0:	2540 0028      	movel %d0,%a2@(40)                          
   *  was placed in return_argument.  This assumed that if it returned
   *  anything (which is not supporting in all APIs), then it would be
   *  able to fit in a (void *).                                      
   */                                                                 
                                                                      
  _User_extensions_Thread_exitted( executing );                       
   4bba4:	2f0a           	movel %a2,%sp@-                             
   4bba6:	4eb9 0004 84e8 	jsr 484e8 <_User_extensions_Thread_exitted> 
                                                                      
  _Internal_error_Occurred(                                           
   4bbac:	4878 0005      	pea 5 <COMPARE>                             
   4bbb0:	4878 0001      	pea 1 <ADD>                                 
   4bbb4:	42a7           	clrl %sp@-                                  
   4bbb6:	4eb9 0004 69b0 	jsr 469b0 <_Internal_error_Occurred>        
                                                                      

0004893c <_Thread_Restart>: */ RTEMS_INLINE_ROUTINE bool _States_Is_dormant ( States_Control the_states ) { return (the_states & STATES_DORMANT);
   4893c:	7001           	moveq #1,%d0                                
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
   4893e:	4e56 0000      	linkw %fp,#0                                
   48942:	2f0a           	movel %a2,%sp@-                             
   48944:	246e 0008      	moveal %fp@(8),%a2                          
   48948:	c0aa 0010      	andl %a2@(16),%d0                           
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   4894c:	6664           	bnes 489b2 <_Thread_Restart+0x76>           
                                                                      
    _Thread_Set_transient( the_thread );                              
   4894e:	2f0a           	movel %a2,%sp@-                             
   48950:	4eb9 0004 8a1c 	jsr 48a1c <_Thread_Set_transient>           
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
   48956:	2f2e 0010      	movel %fp@(16),%sp@-                        
   4895a:	2f2e 000c      	movel %fp@(12),%sp@-                        
   4895e:	2f0a           	movel %a2,%sp@-                             
   48960:	4eb9 0004 b214 	jsr 4b214 <_Thread_Reset>                   
                                                                      
    _Thread_Load_environment( the_thread );                           
   48966:	2f0a           	movel %a2,%sp@-                             
   48968:	4eb9 0004 af4c 	jsr 4af4c <_Thread_Load_environment>        
                                                                      
    _Thread_Ready( the_thread );                                      
   4896e:	2f0a           	movel %a2,%sp@-                             
   48970:	4eb9 0004 b1e4 	jsr 4b1e4 <_Thread_Ready>                   
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
   48976:	2f0a           	movel %a2,%sp@-                             
   48978:	4eb9 0004 8e30 	jsr 48e30 <_User_extensions_Thread_restart> 
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
   4897e:	4fef 001c      	lea %sp@(28),%sp                            
   48982:	b5f9 0005 e21c 	cmpal 5e21c <_Per_CPU_Information+0xc>,%a2  
   48988:	662c           	bnes 489b6 <_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 )                        
   4898a:	4aaa 00f4      	tstl %a2@(244)                              
   4898e:	670c           	beqs 4899c <_Thread_Restart+0x60>           
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
   48990:	486a 00f4      	pea %a2@(244)                               
   48994:	4eb9 0004 933c 	jsr 4933c <_CPU_Context_restore_fp>         
   4899a:	588f           	addql #4,%sp                                
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
   4899c:	2079 0005 e21c 	moveal 5e21c <_Per_CPU_Information+0xc>,%a0 
   489a2:	41e8 00c0      	lea %a0@(192),%a0                           
   489a6:	2f08           	movel %a0,%sp@-                             
   489a8:	4eb9 0004 91ea 	jsr 491ea <_CPU_Context_Restart_self>       
   489ae:	588f           	addql #4,%sp                                <== NOT EXECUTED
   489b0:	6004           	bras 489b6 <_Thread_Restart+0x7a>           <== NOT EXECUTED
      _Thread_Restart_self();                                         
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
   489b2:	4200           	clrb %d0                                    
   489b4:	6002           	bras 489b8 <_Thread_Restart+0x7c>           
    _User_extensions_Thread_restart( the_thread );                    
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
      _Thread_Restart_self();                                         
                                                                      
    return true;                                                      
   489b6:	7001           	moveq #1,%d0                                
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   489b8:	246e fffc      	moveal %fp@(-4),%a2                         
   489bc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048268 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) {
   48268:	4e56 0000      	linkw %fp,#0                                
   4826c:	206e 0008      	moveal %fp@(8),%a0                          
   * Call ONLY the CPU table stack free hook, or the                  
   * the RTEMS workspace free.  This is so the free                   
   * routine properly matches the allocation of the stack.            
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
   48270:	2279 0005 bd18 	moveal 5bd18 <Configuration+0x24>,%a1       
   48276:	4a89           	tstl %a1                                    
   48278:	670a           	beqs 48284 <_Thread_Stack_Free+0x1c>        
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
   4827a:	2d68 00b4 0008 	movel %a0@(180),%fp@(8)                     
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
   48280:	4e5e           	unlk %fp                                    
   * the RTEMS workspace free.  This is so the free                   
   * routine properly matches the allocation of the stack.            
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
   48282:	4ed1           	jmp %a1@                                    
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
   48284:	2d68 00b4 0008 	movel %a0@(180),%fp@(8)                     
}                                                                     
   4828a:	4e5e           	unlk %fp                                    
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
   4828c:	4ef9 0004 8908 	jmp 48908 <_Workspace_Free>                 
	...                                                                  
                                                                      

000475c8 <_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 ) ) {
   475c8:	7202           	moveq #2,%d1                                
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
   475ca:	4e56 0000      	linkw %fp,#0                                
   475ce:	202e 0010      	movel %fp@(16),%d0                          
   475d2:	2f0a           	movel %a2,%sp@-                             
   475d4:	246e 000c      	moveal %fp@(12),%a2                         
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
   475d8:	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 ) ) {                  
   475dc:	b2aa 0050      	cmpl %a2@(80),%d1                           
   475e0:	6618           	bnes 475fa <_Thread_blocking_operation_Cancel+0x32>
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   475e2:	123c 0003      	moveb #3,%d1                                
   475e6:	2541 0050      	movel %d1,%a2@(80)                          
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   475ea:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   475ec:	486a 0048      	pea %a2@(72)                                
   475f0:	4eb9 0004 8794 	jsr 48794 <_Watchdog_Remove>                
   475f6:	588f           	addql #4,%sp                                
   475f8:	6002           	bras 475fc <_Thread_blocking_operation_Cancel+0x34>
  } else                                                              
    _ISR_Enable( level );                                             
   475fa:	46c0           	movew %d0,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   475fc:	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                                                                
                                                                      
}                                                                     
   47600:	246e fffc      	moveal %fp@(-4),%a2                         
   47604:	203c 1003 fff8 	movel #268697592,%d0                        
   4760a:	2d40 000c      	movel %d0,%fp@(12)                          
   4760e:	4e5e           	unlk %fp                                    
   47610:	4ef9 0004 76f4 	jmp 476f4 <_Thread_Clear_state>             
	...                                                                  
                                                                      

00047ed0 <_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 ) {
   47ed0:	4e56 ffe0      	linkw %fp,#-32                              
   47ed4:	206e 000c      	moveal %fp@(12),%a0                         
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   47ed8:	43e8 003c      	lea %a0@(60),%a1                            
   47edc:	48d7 1c7c      	moveml %d2-%d6/%a2-%a4,%sp@                 
   47ee0:	246e 0008      	moveal %fp@(8),%a2                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   47ee4:	49e8 0038      	lea %a0@(56),%a4                            
  Priority_Control     priority;                                      
  States_Control       block_state;                                   
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
   47ee8:	2028 0014      	movel %a0@(20),%d0                          
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (         
  Priority_Control the_priority                                       
)                                                                     
{                                                                     
  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);      
   47eec:	2200           	movel %d0,%d1                               
   47eee:	ec89           	lsrl #6,%d1                                 
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
  block_state  = the_thread_queue->state;                             
   47ef0:	2a2a 0038      	movel %a2@(56),%d5                          
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   47ef4:	2149 0038      	movel %a1,%a0@(56)                          
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   47ef8:	42a8 003c      	clrl %a0@(60)                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   47efc:	214c 0040      	movel %a4,%a0@(64)                          
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
   47f00:	0800 0005      	btst #5,%d0                                 
   47f04:	6670           	bnes 47f76 <_Thread_queue_Enqueue_priority+0xa6>
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
   47f06:	2401           	movel %d1,%d2                               
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
   47f08:	367c 0700      	moveaw #1792,%a3                            
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
   47f0c:	e58a           	lsll #2,%d2                                 
   47f0e:	e989           	lsll #4,%d1                                 
   47f10:	9282           	subl %d2,%d1                                
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
   47f12:	49f2 1804      	lea %a2@(00000004,%d1:l),%a4                
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
   47f16:	260b           	movel %a3,%d3                               
   47f18:	40c2           	movew %sr,%d2                               
   47f1a:	8682           	orl %d2,%d3                                 
   47f1c:	46c3           	movew %d3,%sr                               
   47f1e:	2602           	movel %d2,%d3                               
  search_thread = (Thread_Control *) _Chain_First( header );          
   47f20:	2272 1800      	moveal %a2@(00000000,%d1:l),%a1             
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
   47f24:	78ff           	moveq #-1,%d4                               
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   47f26:	601e           	bras 47f46 <_Thread_queue_Enqueue_priority+0x76>
    search_priority = search_thread->current_priority;                
   47f28:	2829 0014      	movel %a1@(20),%d4                          
    if ( priority <= search_priority )                                
   47f2c:	b880           	cmpl %d0,%d4                                
   47f2e:	641a           	bccs 47f4a <_Thread_queue_Enqueue_priority+0x7a>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47f30:	2c0b           	movel %a3,%d6                               
   47f32:	46c2           	movew %d2,%sr                               
   47f34:	8c82           	orl %d2,%d6                                 
   47f36:	46c6           	movew %d6,%sr                               
RTEMS_INLINE_ROUTINE bool _States_Are_set (                           
  States_Control the_states,                                          
  States_Control mask                                                 
)                                                                     
{                                                                     
   return ( (the_states & mask) != STATES_READY);                     
   47f38:	2c05           	movel %d5,%d6                               
   47f3a:	cca9 0010      	andl %a1@(16),%d6                           
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   47f3e:	6604           	bnes 47f44 <_Thread_queue_Enqueue_priority+0x74><== ALWAYS TAKEN
      _ISR_Enable( level );                                           
   47f40:	46c2           	movew %d2,%sr                               <== NOT EXECUTED
      goto restart_forward_search;                                    
   47f42:	60d2           	bras 47f16 <_Thread_queue_Enqueue_priority+0x46><== NOT EXECUTED
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
   47f44:	2251           	moveal %a1@,%a1                             
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   47f46:	b9c9           	cmpal %a1,%a4                               
   47f48:	66de           	bnes 47f28 <_Thread_queue_Enqueue_priority+0x58>
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47f4a:	7201           	moveq #1,%d1                                
   47f4c:	b2aa 0030      	cmpl %a2@(48),%d1                           
   47f50:	6600 00b8      	bnew 4800a <_Thread_queue_Enqueue_priority+0x13a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   47f54:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   47f58:	b880           	cmpl %d0,%d4                                
   47f5a:	6700 0092      	beqw 47fee <_Thread_queue_Enqueue_priority+0x11e>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
   47f5e:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   47f62:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   47f64:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
   47f68:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   47f6a:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
   47f6e:	214a 0044      	movel %a2,%a0@(68)                          
  _ISR_Enable( level );                                               
   47f72:	46c2           	movew %d2,%sr                               
   47f74:	6074           	bras 47fea <_Thread_queue_Enqueue_priority+0x11a>
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
   47f76:	2401           	movel %d1,%d2                               
   47f78:	280a           	movel %a2,%d4                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
   47f7a:	367c 0700      	moveaw #1792,%a3                            
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
   47f7e:	e58a           	lsll #2,%d2                                 
   47f80:	e989           	lsll #4,%d1                                 
   47f82:	9282           	subl %d2,%d1                                
   47f84:	d881           	addl %d1,%d4                                
   47f86:	2844           	moveal %d4,%a4                              
   47f88:	508c           	addql #8,%a4                                
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   47f8a:	4282           	clrl %d2                                    
   47f8c:	1439 0005 bcf2 	moveb 5bcf2 <rtems_maximum_priority>,%d2    
                                                                      
  _ISR_Disable( level );                                              
   47f92:	260b           	movel %a3,%d3                               
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   47f94:	5282           	addql #1,%d2                                
                                                                      
  _ISR_Disable( level );                                              
   47f96:	40c1           	movew %sr,%d1                               
   47f98:	8681           	orl %d1,%d3                                 
   47f9a:	46c3           	movew %d3,%sr                               
   47f9c:	2601           	movel %d1,%d3                               
  search_thread = (Thread_Control *) _Chain_Last( header );           
   47f9e:	2254           	moveal %a4@,%a1                             
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   47fa0:	6020           	bras 47fc2 <_Thread_queue_Enqueue_priority+0xf2>
    search_priority = search_thread->current_priority;                
   47fa2:	2429 0014      	movel %a1@(20),%d2                          
    if ( priority >= search_priority )                                
   47fa6:	b480           	cmpl %d0,%d2                                
   47fa8:	631c           	blss 47fc6 <_Thread_queue_Enqueue_priority+0xf6>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47faa:	2c0b           	movel %a3,%d6                               
   47fac:	46c1           	movew %d1,%sr                               
   47fae:	8c81           	orl %d1,%d6                                 
   47fb0:	46c6           	movew %d6,%sr                               
   47fb2:	2c05           	movel %d5,%d6                               
   47fb4:	cca9 0010      	andl %a1@(16),%d6                           
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   47fb8:	6604           	bnes 47fbe <_Thread_queue_Enqueue_priority+0xee>
      _ISR_Enable( level );                                           
   47fba:	46c1           	movew %d1,%sr                               
      goto restart_reverse_search;                                    
   47fbc:	60cc           	bras 47f8a <_Thread_queue_Enqueue_priority+0xba>
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
   47fbe:	2269 0004      	moveal %a1@(4),%a1                          
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_Last( header );           
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   47fc2:	b889           	cmpl %a1,%d4                                
   47fc4:	66dc           	bnes 47fa2 <_Thread_queue_Enqueue_priority+0xd2>
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47fc6:	7801           	moveq #1,%d4                                
   47fc8:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47fcc:	663c           	bnes 4800a <_Thread_queue_Enqueue_priority+0x13a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   47fce:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   47fd2:	b480           	cmpl %d0,%d2                                
   47fd4:	6718           	beqs 47fee <_Thread_queue_Enqueue_priority+0x11e>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
   47fd6:	2651           	moveal %a1@,%a3                             
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
   47fd8:	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;                                
   47fdc:	208b           	movel %a3,%a0@                              
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
  next_node->previous    = the_node;                                  
   47fde:	2748 0004      	movel %a0,%a3@(4)                           
  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;                                 
   47fe2:	2288           	movel %a0,%a1@                              
  next_node->previous    = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47fe4:	214a 0044      	movel %a2,%a0@(68)                          
  _ISR_Enable( level );                                               
   47fe8:	46c1           	movew %d1,%sr                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
   47fea:	7001           	moveq #1,%d0                                
   47fec:	6026           	bras 48014 <_Thread_queue_Enqueue_priority+0x144>
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
   47fee:	49e9 003c      	lea %a1@(60),%a4                            
  previous_node = search_node->previous;                              
   47ff2:	2669 0040      	moveal %a1@(64),%a3                         
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
   47ff6:	208c           	movel %a4,%a0@                              
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
   47ff8:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
   47ffc:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   47ffe:	2348 0040      	movel %a0,%a1@(64)                          
  the_thread->Wait.queue = the_thread_queue;                          
   48002:	214a 0044      	movel %a2,%a0@(68)                          
  _ISR_Enable( level );                                               
   48006:	46c3           	movew %d3,%sr                               
   48008:	60e0           	bras 47fea <_Thread_queue_Enqueue_priority+0x11a>
   *  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;                                                   
   4800a:	206e 0010      	moveal %fp@(16),%a0                         
  return the_thread_queue->sync_state;                                
   4800e:	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;                                                   
   48012:	2083           	movel %d3,%a0@                              
  return the_thread_queue->sync_state;                                
}                                                                     
   48014:	4cd7 1c7c      	moveml %sp@,%d2-%d6/%a2-%a4                 
   48018:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bbbc <_Thread_queue_Extract_fifo>: Thread_Control *the_thread ) { ISR_Level level; _ISR_Disable( level );
   4bbbc:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
void _Thread_queue_Extract_fifo(                                      
  Thread_queue_Control *the_thread_queue __attribute__((unused)),     
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
   4bbc2:	4e56 0000      	linkw %fp,#0                                
   4bbc6:	2f0a           	movel %a2,%sp@-                             
   4bbc8:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4bbcc:	40c0           	movew %sr,%d0                               
   4bbce:	8280           	orl %d0,%d1                                 
   4bbd0:	46c1           	movew %d1,%sr                               
   4bbd2:	222a 0010      	movel %a2@(16),%d1                          
   4bbd6:	0281 0003 bee0 	andil #245472,%d1                           
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   4bbdc:	660a           	bnes 4bbe8 <_Thread_queue_Extract_fifo+0x2c>
    _ISR_Enable( level );                                             
   4bbde:	46c0           	movew %d0,%sr                               
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4bbe0:	246e fffc      	moveal %fp@(-4),%a2                         
   4bbe4:	4e5e           	unlk %fp                                    
   4bbe6:	4e75           	rts                                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4bbe8:	2252           	moveal %a2@,%a1                             
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4bbea:	7202           	moveq #2,%d1                                
  previous       = the_node->previous;                                
   4bbec:	206a 0004      	moveal %a2@(4),%a0                          
  next->previous = previous;                                          
   4bbf0:	2348 0004      	movel %a0,%a1@(4)                           
  previous->next = next;                                              
   4bbf4:	2089           	movel %a1,%a0@                              
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
   4bbf6:	42aa 0044      	clrl %a2@(68)                               
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4bbfa:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4bbfe:	6704           	beqs 4bc04 <_Thread_queue_Extract_fifo+0x48>
    _ISR_Enable( level );                                             
   4bc00:	46c0           	movew %d0,%sr                               
   4bc02:	6014           	bras 4bc18 <_Thread_queue_Extract_fifo+0x5c>
   4bc04:	7203           	moveq #3,%d1                                
   4bc06:	2541 0050      	movel %d1,%a2@(80)                          
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4bc0a:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4bc0c:	486a 0048      	pea %a2@(72)                                
   4bc10:	4eb9 0004 8794 	jsr 48794 <_Watchdog_Remove>                
   4bc16:	588f           	addql #4,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4bc18:	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                                                                
                                                                      
}                                                                     
   4bc1c:	246e fffc      	moveal %fp@(-4),%a2                         
   4bc20:	203c 1003 fff8 	movel #268697592,%d0                        
   4bc26:	2d40 000c      	movel %d0,%fp@(12)                          
   4bc2a:	4e5e           	unlk %fp                                    
   4bc2c:	4ef9 0004 76f4 	jmp 476f4 <_Thread_Clear_state>             
	...                                                                  
                                                                      

0004a924 <_Thread_queue_Process_timeout>: #include <rtems/score/tqdata.h> void _Thread_queue_Process_timeout( Thread_Control *the_thread ) {
   4a924:	4e56 0000      	linkw %fp,#0                                
   4a928:	226e 0008      	moveal %fp@(8),%a1                          
  Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;    
   4a92c:	2069 0044      	moveal %a1@(68),%a0                         
   *  If it is not satisfied, then it is "nothing happened" and       
   *  this is the "timeout" transition.  After a request is satisfied,
   *  a timeout is not allowed to occur.                              
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
   4a930:	2028 0030      	movel %a0@(48),%d0                          
   4a934:	671c           	beqs 4a952 <_Thread_queue_Process_timeout+0x2e>
   4a936:	b3f9 0005 d6f4 	cmpal 5d6f4 <_Per_CPU_Information+0xc>,%a1  
   4a93c:	6614           	bnes 4a952 <_Thread_queue_Process_timeout+0x2e><== NEVER TAKEN
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
   4a93e:	7203           	moveq #3,%d1                                
   4a940:	b280           	cmpl %d0,%d1                                
   4a942:	6720           	beqs 4a964 <_Thread_queue_Process_timeout+0x40>
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4a944:	7002           	moveq #2,%d0                                
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
   4a946:	2368 003c 0034 	movel %a0@(60),%a1@(52)                     
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4a94c:	2140 0030      	movel %d0,%a0@(48)                          
   4a950:	6012           	bras 4a964 <_Thread_queue_Process_timeout+0x40>
    }                                                                 
  } else {                                                            
    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
   4a952:	2368 003c 0034 	movel %a0@(60),%a1@(52)                     
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
   4a958:	2f09           	movel %a1,%sp@-                             
   4a95a:	2f08           	movel %a0,%sp@-                             
   4a95c:	4eb9 0004 a820 	jsr 4a820 <_Thread_queue_Extract>           
   4a962:	508f           	addql #8,%sp                                
  }                                                                   
}                                                                     
   4a964:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000480e8 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
   480e8:	4e56 fff0      	linkw %fp,#-16                              
   480ec:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   480f0:	246e 0008      	moveal %fp@(8),%a2                          
   480f4:	266e 000c      	moveal %fp@(12),%a3                         
  /*                                                                  
   * Just in case the thread really wasn't blocked on a thread queue  
   * when we get here.                                                
   */                                                                 
  if ( !the_thread_queue )                                            
   480f8:	4a8a           	tstl %a2                                    
   480fa:	6746           	beqs 48142 <_Thread_queue_Requeue+0x5a>     <== NEVER TAKEN
                                                                      
  /*                                                                  
   * If queueing by FIFO, there is nothing to do. This only applies to
   * priority blocking discipline.                                    
   */                                                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {
   480fc:	7001           	moveq #1,%d0                                
   480fe:	b0aa 0034      	cmpl %a2@(52),%d0                           
   48102:	663e           	bnes 48142 <_Thread_queue_Requeue+0x5a>     <== NEVER TAKEN
    Thread_queue_Control *tq = the_thread_queue;                      
    ISR_Level             level;                                      
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
   48104:	303c 0700      	movew #1792,%d0                             
   48108:	40c2           	movew %sr,%d2                               
   4810a:	8082           	orl %d2,%d0                                 
   4810c:	46c0           	movew %d0,%sr                               
   4810e:	202b 0010      	movel %a3@(16),%d0                          
   48112:	0280 0003 bee0 	andil #245472,%d0                           
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   48118:	6726           	beqs 48140 <_Thread_queue_Requeue+0x58>     <== NEVER TAKEN
                                                                      
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;
   4811a:	7001           	moveq #1,%d0                                
   4811c:	2540 0030      	movel %d0,%a2@(48)                          
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
   48120:	4878 0001      	pea 1 <ADD>                                 
   48124:	2f0b           	movel %a3,%sp@-                             
   48126:	2f0a           	movel %a2,%sp@-                             
   48128:	4eb9 0004 a858 	jsr 4a858 <_Thread_queue_Extract_priority_helper>
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
   4812e:	486e fffc      	pea %fp@(-4)                                
   48132:	2f0b           	movel %a3,%sp@-                             
   48134:	2f0a           	movel %a2,%sp@-                             
   48136:	4eb9 0004 7ed0 	jsr 47ed0 <_Thread_queue_Enqueue_priority>  
   4813c:	4fef 0018      	lea %sp@(24),%sp                            
    }                                                                 
    _ISR_Enable( level );                                             
   48140:	46c2           	movew %d2,%sr                               
  }                                                                   
}                                                                     
   48142:	4cee 0c04 fff0 	moveml %fp@(-16),%d2/%a2-%a3                
   48148:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004814c <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
   4814c:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   48150:	486e fffc      	pea %fp@(-4)                                
   48154:	2f2e 0008      	movel %fp@(8),%sp@-                         
   48158:	4eb9 0004 7a5c 	jsr 47a5c <_Thread_Get>                     
  switch ( location ) {                                               
   4815e:	508f           	addql #8,%sp                                
   48160:	4aae fffc      	tstl %fp@(-4)                               
   48164:	6618           	bnes 4817e <_Thread_queue_Timeout+0x32>     <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
   48166:	2f00           	movel %d0,%sp@-                             
   48168:	4eb9 0004 a924 	jsr 4a924 <_Thread_queue_Process_timeout>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   4816e:	588f           	addql #4,%sp                                
   48170:	2039 0005 d558 	movel 5d558 <_Thread_Dispatch_disable_level>,%d0
   48176:	5380           	subql #1,%d0                                
   48178:	23c0 0005 d558 	movel %d0,5d558 <_Thread_Dispatch_disable_level>
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   4817e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00052292 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
   52292:	4e56 ffb4      	linkw %fp,#-76                              
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   52296:	41ee ffec      	lea %fp@(-20),%a0                           
   5229a:	200e           	movel %fp,%d0                               
   5229c:	220e           	movel %fp,%d1                               
   5229e:	5181           	subql #8,%d1                                
   522a0:	0680 ffff fff4 	addil #-12,%d0                              
   522a6:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   522aa:	246e 0008      	moveal %fp@(8),%a2                          
   522ae:	260e           	movel %fp,%d3                               
 */                                                                   
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(         
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return &the_chain->Tail.Node;                                       
   522b0:	2808           	movel %a0,%d4                               
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   522b2:	2c0a           	movel %a2,%d6                               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   522b4:	0683 ffff ffe8 	addil #-24,%d3                              
   522ba:	0686 0000 0040 	addil #64,%d6                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   522c0:	2a0a           	movel %a2,%d5                               
     /*                                                               
      *  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 ); 
   522c2:	240a           	movel %a2,%d2                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   522c4:	0685 0000 0030 	addil #48,%d5                               
   522ca:	47f9 0005 5efc 	lea 55efc <_Watchdog_Adjust_to_chain>,%a3   
     /*                                                               
      *  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 ); 
   522d0:	0682 0000 0068 	addil #104,%d2                              
   522d6:	4bf9 0005 5e7c 	lea 55e7c <_Watchdog_Adjust>,%a5            
 */                                                                   
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(         
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return &the_chain->Tail.Node;                                       
   522dc:	2e01           	movel %d1,%d7                               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   522de:	2d48 ffe8      	movel %a0,%fp@(-24)                         
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   522e2:	41ea 0008      	lea %a2@(8),%a0                             
   522e6:	2d41 fff4      	movel %d1,%fp@(-12)                         
  head->previous = NULL;                                              
   522ea:	42ae fff8      	clrl %fp@(-8)                               
  tail->previous = head;                                              
   522ee:	2d40 fffc      	movel %d0,%fp@(-4)                          
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   522f2:	42ae ffec      	clrl %fp@(-20)                              
  tail->previous = head;                                              
   522f6:	2d43 fff0      	movel %d3,%fp@(-16)                         
   522fa:	2d48 ffe4      	movel %a0,%fp@(-28)                         
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   522fe:	2d46 ffe0      	movel %d6,%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;                                    
   52302:	41ee fff4      	lea %fp@(-12),%a0                           
)                                                                     
{                                                                     
  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 );     
   52306:	49f9 0005 5f8c 	lea 55f8c <_Watchdog_Insert>,%a4            
{                                                                     
  /*                                                                  
   *  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;                                    
   5230c:	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;            
   52310:	2039 0007 605c 	movel 7605c <_Watchdog_Ticks_since_boot>,%d0
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
   52316:	222a 003c      	movel %a2@(60),%d1                          
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   5231a:	2540 003c      	movel %d0,%a2@(60)                          
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   5231e:	9081           	subl %d1,%d0                                
   52320:	2f03           	movel %d3,%sp@-                             
   52322:	2f00           	movel %d0,%sp@-                             
   52324:	2f05           	movel %d5,%sp@-                             
   52326:	4e93           	jsr %a3@                                    
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
   52328:	2039 0007 5fde 	movel 75fde <_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 ) {                                   
   5232e:	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;         
   52332:	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 ) {                                   
   52336:	b280           	cmpl %d0,%d1                                
   52338:	6412           	bccs 5234c <_Timer_server_Body+0xba>        
    /*                                                                
     *  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 );
   5233a:	2f03           	movel %d3,%sp@-                             
   5233c:	2c00           	movel %d0,%d6                               
   5233e:	9c81           	subl %d1,%d6                                
   52340:	2f06           	movel %d6,%sp@-                             
   52342:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   52346:	2f02           	movel %d2,%sp@-                             
   52348:	4e93           	jsr %a3@                                    
   5234a:	6014           	bras 52360 <_Timer_server_Body+0xce>        
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
   5234c:	b280           	cmpl %d0,%d1                                
   5234e:	6318           	blss 52368 <_Timer_server_Body+0xd6>        
     /*                                                               
      *  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 ); 
   52350:	9280           	subl %d0,%d1                                
   52352:	2f01           	movel %d1,%sp@-                             
   52354:	4878 0001      	pea 1 <ADD>                                 
   52358:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   5235c:	2f02           	movel %d2,%sp@-                             
   5235e:	4e95           	jsr %a5@                                    
   52360:	202e ffdc      	movel %fp@(-36),%d0                         
   52364:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   52368:	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 );
   5236c:	202a 0078      	movel %a2@(120),%d0                         
   52370:	2f00           	movel %d0,%sp@-                             
   52372:	4eb9 0005 2d2c 	jsr 52d2c <_Chain_Get>                      
                                                                      
    if ( timer == NULL ) {                                            
   52378:	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 );
   5237a:	2040           	moveal %d0,%a0                              
                                                                      
    if ( timer == NULL ) {                                            
   5237c:	4a80           	tstl %d0                                    
   5237e:	6724           	beqs 523a4 <_Timer_server_Body+0x112>       
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   52380:	2028 0038      	movel %a0@(56),%d0                          
   52384:	7201           	moveq #1,%d1                                
   52386:	b280           	cmpl %d0,%d1                                
   52388:	6608           	bnes 52392 <_Timer_server_Body+0x100>       
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   5238a:	4868 0010      	pea %a0@(16)                                
   5238e:	2f05           	movel %d5,%sp@-                             
   52390:	600c           	bras 5239e <_Timer_server_Body+0x10c>       
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   52392:	7c03           	moveq #3,%d6                                
   52394:	bc80           	cmpl %d0,%d6                                
   52396:	66d4           	bnes 5236c <_Timer_server_Body+0xda>        <== NEVER TAKEN
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   52398:	4868 0010      	pea %a0@(16)                                
   5239c:	2f02           	movel %d2,%sp@-                             
   5239e:	4e94           	jsr %a4@                                    
   523a0:	508f           	addql #8,%sp                                
   523a2:	60c8           	bras 5236c <_Timer_server_Body+0xda>        
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   523a4:	203c 0000 0700 	movel #1792,%d0                             
   523aa:	40c1           	movew %sr,%d1                               
   523ac:	8081           	orl %d1,%d0                                 
   523ae:	46c0           	movew %d0,%sr                               
    if ( _Chain_Is_empty( insert_chain ) ) {                          
   523b0:	beae fff4      	cmpl %fp@(-12),%d7                          
   523b4:	6614           	bnes 523ca <_Timer_server_Body+0x138>       <== NEVER TAKEN
      ts->insert_chain = NULL;                                        
   523b6:	42aa 0078      	clrl %a2@(120)                              
      _ISR_Enable( level );                                           
   523ba:	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 );                                        
   523bc:	2c3c 0000 0700 	movel #1792,%d6                             
  _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 ) ) {                          
   523c2:	b8ae ffe8      	cmpl %fp@(-24),%d4                          
   523c6:	6608           	bnes 523d0 <_Timer_server_Body+0x13e>       
   523c8:	6042           	bras 5240c <_Timer_server_Body+0x17a>       
      ts->insert_chain = NULL;                                        
      _ISR_Enable( level );                                           
                                                                      
      break;                                                          
    } else {                                                          
      _ISR_Enable( level );                                           
   523ca:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
   523cc:	6000 ff42      	braw 52310 <_Timer_server_Body+0x7e>        <== 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 );                                        
   523d0:	2006           	movel %d6,%d0                               
   523d2:	40c1           	movew %sr,%d1                               
   523d4:	8081           	orl %d1,%d0                                 
   523d6:	46c0           	movew %d0,%sr                               
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   523d8:	206e ffe8      	moveal %fp@(-24),%a0                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   523dc:	b888           	cmpl %a0,%d4                                
   523de:	6726           	beqs 52406 <_Timer_server_Body+0x174>       
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
   523e0:	2250           	moveal %a0@,%a1                             
                                                                      
  head->next = new_first;                                             
   523e2:	2d49 ffe8      	movel %a1,%fp@(-24)                         
  new_first->previous = head;                                         
   523e6:	2343 0004      	movel %d3,%a1@(4)                           
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
   523ea:	4a88           	tstl %a0                                    
   523ec:	6718           	beqs 52406 <_Timer_server_Body+0x174>       <== NEVER TAKEN
          watchdog->state = WATCHDOG_INACTIVE;                        
   523ee:	42a8 0008      	clrl %a0@(8)                                
          _ISR_Enable( level );                                       
   523f2:	46c1           	movew %d1,%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 );    
   523f4:	2f28 0024      	movel %a0@(36),%sp@-                        
   523f8:	2f28 0020      	movel %a0@(32),%sp@-                        
   523fc:	2068 001c      	moveal %a0@(28),%a0                         
   52400:	4e90           	jsr %a0@                                    
      }                                                               
   52402:	508f           	addql #8,%sp                                
   52404:	60ca           	bras 523d0 <_Timer_server_Body+0x13e>       
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
   52406:	46c1           	movew %d1,%sr                               
   52408:	6000 fef8      	braw 52302 <_Timer_server_Body+0x70>        
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   5240c:	49f9 0005 60b4 	lea 560b4 <_Watchdog_Remove>,%a4            
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
   52412:	4200           	clrb %d0                                    
   52414:	1540 007c      	moveb %d0,%a2@(124)                         
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
   52418:	4eba fd9e      	jsr %pc@(521b8 <_Thread_Disable_dispatch>)  
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   5241c:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
   52420:	2f12           	movel %a2@,%sp@-                            
   52422:	4eb9 0005 590c 	jsr 5590c <_Thread_Set_state>               
        _Timer_server_Reset_interval_system_watchdog( ts );           
   52428:	2f0a           	movel %a2,%sp@-                             
   5242a:	4eba fda2      	jsr %pc@(521ce <_Timer_server_Reset_interval_system_watchdog>)
        _Timer_server_Reset_tod_system_watchdog( ts );                
   5242e:	2f0a           	movel %a2,%sp@-                             
   52430:	4eba fdfc      	jsr %pc@(5222e <_Timer_server_Reset_tod_system_watchdog>)
      _Thread_Enable_dispatch();                                      
   52434:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
                                                                      
      ts->active = true;                                              
   5243a:	7201           	moveq #1,%d1                                
   5243c:	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 );        
   52440:	2f2e ffe4      	movel %fp@(-28),%sp@-                       
   52444:	4e94           	jsr %a4@                                    
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   52446:	2f2e ffe0      	movel %fp@(-32),%sp@-                       
   5244a:	4e94           	jsr %a4@                                    
   5244c:	4fef 0018      	lea %sp@(24),%sp                            
   52450:	6000 feb0      	braw 52302 <_Timer_server_Body+0x70>        
                                                                      

00052454 <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) {
   52454:	4e56 fff0      	linkw %fp,#-16                              
   52458:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   5245c:	246e 0008      	moveal %fp@(8),%a2                          
   52460:	266e 000c      	moveal %fp@(12),%a3                         
  if ( ts->insert_chain == NULL ) {                                   
   52464:	202a 0078      	movel %a2@(120),%d0                         
   52468:	6600 00ea      	bnew 52554 <_Timer_server_Schedule_operation_method+0x100>
   *  is the reference point for the delta chain.  Thus if we do not update the
   *  reference point we have to add DT to the initial delta of the watchdog
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
   5246c:	4eba fd4a      	jsr %pc@(521b8 <_Thread_Disable_dispatch>)  
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   52470:	202b 0038      	movel %a3@(56),%d0                          
   52474:	7201           	moveq #1,%d1                                
   52476:	b280           	cmpl %d0,%d1                                
   52478:	665c           	bnes 524d6 <_Timer_server_Schedule_operation_method+0x82>
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   5247a:	203c 0000 0700 	movel #1792,%d0                             
   52480:	40c2           	movew %sr,%d2                               
   52482:	8082           	orl %d2,%d0                                 
   52484:	46c0           	movew %d0,%sr                               
    snapshot = _Watchdog_Ticks_since_boot;                            
   52486:	2039 0007 605c 	movel 7605c <_Watchdog_Ticks_since_boot>,%d0
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   5248c:	43ea 0034      	lea %a2@(52),%a1                            
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
   52490:	222a 003c      	movel %a2@(60),%d1                          
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   52494:	206a 0030      	moveal %a2@(48),%a0                         
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = _Watchdog_Ticks_since_boot;                            
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
    if ( !_Chain_Is_empty( &ts->Interval_watchdogs.Chain ) ) {        
   52498:	b3c8           	cmpal %a0,%a1                               
   5249a:	6716           	beqs 524b2 <_Timer_server_Schedule_operation_method+0x5e>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
   5249c:	2240           	moveal %d0,%a1                              
   5249e:	93c1           	subal %d1,%a1                               
                                                                      
      delta_interval = first_watchdog->delta_interval;                
   524a0:	2228 0010      	movel %a0@(16),%d1                          
      if (delta_interval > delta) {                                   
   524a4:	b3c1           	cmpal %d1,%a1                               
   524a6:	6404           	bccs 524ac <_Timer_server_Schedule_operation_method+0x58>
        delta_interval -= delta;                                      
   524a8:	9289           	subl %a1,%d1                                
   524aa:	6002           	bras 524ae <_Timer_server_Schedule_operation_method+0x5a>
      } else {                                                        
        delta_interval = 0;                                           
   524ac:	4281           	clrl %d1                                    
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   524ae:	2141 0010      	movel %d1,%a0@(16)                          
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
   524b2:	2540 003c      	movel %d0,%a2@(60)                          
    _ISR_Enable( level );                                             
   524b6:	46c2           	movew %d2,%sr                               
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   524b8:	486b 0010      	pea %a3@(16)                                
   524bc:	486a 0030      	pea %a2@(48)                                
   524c0:	4eb9 0005 5f8c 	jsr 55f8c <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   524c6:	508f           	addql #8,%sp                                
   524c8:	102a 007c      	moveb %a2@(124),%d0                         
   524cc:	6678           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
      _Timer_server_Reset_interval_system_watchdog( ts );             
   524ce:	2f0a           	movel %a2,%sp@-                             
   524d0:	4eba fcfc      	jsr %pc@(521ce <_Timer_server_Reset_interval_system_watchdog>)
   524d4:	606e           	bras 52544 <_Timer_server_Schedule_operation_method+0xf0>
    }                                                                 
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   524d6:	7203           	moveq #3,%d1                                
   524d8:	b280           	cmpl %d0,%d1                                
   524da:	666a           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   524dc:	203c 0000 0700 	movel #1792,%d0                             
   524e2:	40c2           	movew %sr,%d2                               
   524e4:	8082           	orl %d2,%d0                                 
   524e6:	46c0           	movew %d0,%sr                               
   524e8:	200a           	movel %a2,%d0                               
   524ea:	0680 0000 006c 	addil #108,%d0                              
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
   524f0:	2239 0007 5fde 	movel 75fde <_TOD_Now>,%d1                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
   524f6:	226a 0074      	moveal %a2@(116),%a1                        
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   524fa:	206a 0068      	moveal %a2@(104),%a0                        
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
   524fe:	b088           	cmpl %a0,%d0                                
   52500:	6720           	beqs 52522 <_Timer_server_Schedule_operation_method+0xce>
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
   52502:	2028 0010      	movel %a0@(16),%d0                          
      if ( snapshot > last_snapshot ) {                               
   52506:	b3c1           	cmpal %d1,%a1                               
   52508:	640c           	bccs 52516 <_Timer_server_Schedule_operation_method+0xc2>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
   5250a:	2841           	moveal %d1,%a4                              
   5250c:	99c9           	subal %a1,%a4                               
        if (delta_interval > delta) {                                 
   5250e:	b9c0           	cmpal %d0,%a4                               
   52510:	640a           	bccs 5251c <_Timer_server_Schedule_operation_method+0xc8><== NEVER TAKEN
          delta_interval -= delta;                                    
   52512:	908c           	subl %a4,%d0                                
   52514:	6008           	bras 5251e <_Timer_server_Schedule_operation_method+0xca>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
   52516:	d089           	addl %a1,%d0                                
        delta_interval += delta;                                      
   52518:	9081           	subl %d1,%d0                                
   5251a:	6002           	bras 5251e <_Timer_server_Schedule_operation_method+0xca>
         */                                                           
        delta = snapshot - last_snapshot;                             
        if (delta_interval > delta) {                                 
          delta_interval -= delta;                                    
        } else {                                                      
          delta_interval = 0;                                         
   5251c:	4280           	clrl %d0                                    <== NOT EXECUTED
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
        delta_interval += delta;                                      
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   5251e:	2140 0010      	movel %d0,%a0@(16)                          
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
   52522:	2541 0074      	movel %d1,%a2@(116)                         
    _ISR_Enable( level );                                             
   52526:	46c2           	movew %d2,%sr                               
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   52528:	486b 0010      	pea %a3@(16)                                
   5252c:	486a 0068      	pea %a2@(104)                               
   52530:	4eb9 0005 5f8c 	jsr 55f8c <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   52536:	508f           	addql #8,%sp                                
   52538:	102a 007c      	moveb %a2@(124),%d0                         
   5253c:	6608           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
   5253e:	2f0a           	movel %a2,%sp@-                             
   52540:	4eba fcec      	jsr %pc@(5222e <_Timer_server_Reset_tod_system_watchdog>)
   52544:	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 );           
  }                                                                   
}                                                                     
   52546:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   5254c:	4e5e           	unlk %fp                                    
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
   5254e:	4ef9 0005 5122 	jmp 55122 <_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 );           
   52554:	202a 0078      	movel %a2@(120),%d0                         
   52558:	2d4b 000c      	movel %a3,%fp@(12)                          
  }                                                                   
}                                                                     
   5255c:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
     *  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 );           
   52562:	2d40 0008      	movel %d0,%fp@(8)                           
  }                                                                   
}                                                                     
   52566:	4e5e           	unlk %fp                                    
     *  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 );           
   52568:	4ef9 0005 2ccc 	jmp 52ccc <_Chain_Append>                   
                                                                      

0005b5f4 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) {
   5b5f4:	4e56 fff4      	linkw %fp,#-12                              
   5b5f8:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   5b5fc:	246e 0008      	moveal %fp@(8),%a2                          
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
   5b600:	2412           	movel %a2@,%d2                              
   5b602:	6606           	bnes 5b60a <_Timespec_To_ticks+0x16>        
   5b604:	4aaa 0004      	tstl %a2@(4)                                
   5b608:	672c           	beqs 5b636 <_Timespec_To_ticks+0x42>        <== NEVER TAKEN
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
   5b60a:	4eb9 0005 b7c0 	jsr 5b7c0 <TOD_TICKS_PER_SECOND_method>     
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
   5b610:	2239 0005 d9e0 	movel 5d9e0 <Configuration+0xc>,%d1         
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
   5b616:	4c02 0800      	mulsl %d2,%d0                               
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
   5b61a:	243c 0000 03e8 	movel #1000,%d2                             
   5b620:	4c02 1800      	mulsl %d2,%d1                               
   5b624:	262a 0004      	movel %a2@(4),%d3                           
   5b628:	4c41 3003      	remul %d1,%d3,%d3                           
   5b62c:	d083           	addl %d3,%d0                                
                                                                      
  if (ticks)                                                          
   5b62e:	6608           	bnes 5b638 <_Timespec_To_ticks+0x44>        
    return ticks;                                                     
                                                                      
  return 1;                                                           
   5b630:	103c 0001      	moveb #1,%d0                                
   5b634:	6002           	bras 5b638 <_Timespec_To_ticks+0x44>        
)                                                                     
{                                                                     
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
    return 0;                                                         
   5b636:	4280           	clrl %d0                                    
                                                                      
  if (ticks)                                                          
    return ticks;                                                     
                                                                      
  return 1;                                                           
}                                                                     
   5b638:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   5b63e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00048522 <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
   48522:	4e56 fff0      	linkw %fp,#-16                              
   48526:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
   4852a:	4282           	clrl %d2                                    
   4852c:	142e 000f      	moveb %fp@(15),%d2                          
void _User_extensions_Fatal (                                         
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   48530:	282e 0008      	movel %fp@(8),%d4                           
   48534:	262e 0010      	movel %fp@(16),%d3                          
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
   48538:	2479 0005 d6ac 	moveal 5d6ac <_User_extensions_List+0x8>,%a2
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
   4853e:	6018           	bras 48558 <_User_extensions_Fatal+0x36>    
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
   48540:	206a 0030      	moveal %a2@(48),%a0                         
   48544:	4a88           	tstl %a0                                    
   48546:	670c           	beqs 48554 <_User_extensions_Fatal+0x32>    
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
   48548:	2f03           	movel %d3,%sp@-                             
   4854a:	2f02           	movel %d2,%sp@-                             
   4854c:	2f04           	movel %d4,%sp@-                             
   4854e:	4e90           	jsr %a0@                                    
   48550:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
   48554:	246a 0004      	moveal %a2@(4),%a2                          
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
   48558:	b5fc 0005 d6a4 	cmpal #382628,%a2                           
   4855e:	66e0           	bnes 48540 <_User_extensions_Fatal+0x1e>    <== ALWAYS TAKEN
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
   48560:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                <== NOT EXECUTED
   48566:	4e5e           	unlk %fp                                    <== NOT EXECUTED
	...                                                                  
                                                                      

000483fc <_User_extensions_Handler_initialization>: #include <rtems/score/userext.h> #include <rtems/score/wkspace.h> #include <string.h> void _User_extensions_Handler_initialization(void) {
   483fc:	4e56 ffe8      	linkw %fp,#-24                              
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   48400:	203c 0005 d6a8 	movel #382632,%d0                           
   48406:	23c0 0005 d6a4 	movel %d0,5d6a4 <_User_extensions_List>     
  head->previous = NULL;                                              
  tail->previous = head;                                              
   4840c:	203c 0005 d6a4 	movel #382628,%d0                           
   48412:	23c0 0005 d6ac 	movel %d0,5d6ac <_User_extensions_List+0x8> 
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   48418:	203c 0005 d560 	movel #382304,%d0                           
   4841e:	23c0 0005 d55c 	movel %d0,5d55c <_User_extensions_Switches_list>
  head->previous = NULL;                                              
  tail->previous = head;                                              
   48424:	203c 0005 d55c 	movel #382300,%d0                           
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   4842a:	42b9 0005 d6a8 	clrl 5d6a8 <_User_extensions_List+0x4>      
   48430:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
  User_extensions_Control *extension;                                 
  uint32_t                 i;                                         
  uint32_t                 number_of_extensions;                      
  User_extensions_Table   *initial_extensions;                        
                                                                      
  number_of_extensions = Configuration.number_of_initial_extensions;  
   48434:	2839 0005 bd2a 	movel 5bd2a <Configuration+0x36>,%d4        
  initial_extensions   = Configuration.User_extension_table;          
   4843a:	2639 0005 bd2e 	movel 5bd2e <Configuration+0x3a>,%d3        
   48440:	42b9 0005 d560 	clrl 5d560 <_User_extensions_Switches_list+0x4>
  tail->previous = head;                                              
   48446:	23c0 0005 d564 	movel %d0,5d564 <_User_extensions_Switches_list+0x8>
                                                                      
  _Chain_Initialize_empty( &_User_extensions_List );                  
  _Chain_Initialize_empty( &_User_extensions_Switches_list );         
                                                                      
  if ( initial_extensions ) {                                         
   4844c:	4a83           	tstl %d3                                    
   4844e:	6754           	beqs 484a4 <_User_extensions_Handler_initialization+0xa8><== NEVER TAKEN
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
   48450:	7434           	moveq #52,%d2                               
   48452:	4c04 2800      	mulsl %d4,%d2                               
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
   48456:	49f9 0004 c54c 	lea 4c54c <memcpy>,%a4                      
                                                                      
  _User_extensions_Add_set( extension );                              
   4845c:	47f9 0004 a998 	lea 4a998 <_User_extensions_Add_set>,%a3    
   48462:	2f02           	movel %d2,%sp@-                             
   48464:	4eb9 0004 8922 	jsr 48922 <_Workspace_Allocate_or_fatal_error>
   4846a:	2440           	moveal %d0,%a2                              
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
   4846c:	2f02           	movel %d2,%sp@-                             
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   4846e:	4282           	clrl %d2                                    
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
   48470:	42a7           	clrl %sp@-                                  
   48472:	2f00           	movel %d0,%sp@-                             
   48474:	4eb9 0004 c5bc 	jsr 4c5bc <memset>                          
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   4847a:	4fef 0010      	lea %sp@(16),%sp                            
   4847e:	6020           	bras 484a0 <_User_extensions_Handler_initialization+0xa4>
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
   48480:	4878 0020      	pea 20 <OPER2+0xc>                          
   48484:	5282           	addql #1,%d2                                
   48486:	2f03           	movel %d3,%sp@-                             
   48488:	486a 0014      	pea %a2@(20)                                
   4848c:	0683 0000 0020 	addil #32,%d3                               
   48492:	4e94           	jsr %a4@                                    
                                                                      
  _User_extensions_Add_set( extension );                              
   48494:	2f0a           	movel %a2,%sp@-                             
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
   48496:	45ea 0034      	lea %a2@(52),%a2                            
   4849a:	4e93           	jsr %a3@                                    
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   4849c:	4fef 0010      	lea %sp@(16),%sp                            
   484a0:	b882           	cmpl %d2,%d4                                
   484a2:	62dc           	bhis 48480 <_User_extensions_Handler_initialization+0x84>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
    }                                                                 
  }                                                                   
}                                                                     
   484a4:	4cee 1c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a4            
   484aa:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049b3c <_Watchdog_Adjust>: Watchdog_Interval units ) { ISR_Level level; _ISR_Disable( level );
   49b3c:	327c 0700      	moveaw #1792,%a1                            
   49b40:	2209           	movel %a1,%d1                               
void _Watchdog_Adjust(                                                
  Chain_Control               *header,                                
  Watchdog_Adjust_directions   direction,                             
  Watchdog_Interval            units                                  
)                                                                     
{                                                                     
   49b42:	4e56 ffe8      	linkw %fp,#-24                              
   49b46:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
   49b4a:	266e 0008      	moveal %fp@(8),%a3                          
   49b4e:	262e 000c      	movel %fp@(12),%d3                          
   49b52:	242e 0010      	movel %fp@(16),%d2                          
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   49b56:	40c0           	movew %sr,%d0                               
   49b58:	8280           	orl %d0,%d1                                 
   49b5a:	46c1           	movew %d1,%sr                               
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
   49b5c:	244b           	moveal %a3,%a2                              
   49b5e:	205a           	moveal %a2@+,%a0                            
   *       hence the compiler must not assume *header to remain       
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
   49b60:	b5c8           	cmpal %a0,%a2                               
   49b62:	674c           	beqs 49bb0 <_Watchdog_Adjust+0x74>          
    switch ( direction ) {                                            
   49b64:	4a83           	tstl %d3                                    
   49b66:	673c           	beqs 49ba4 <_Watchdog_Adjust+0x68>          
   49b68:	7201           	moveq #1,%d1                                
   49b6a:	b283           	cmpl %d3,%d1                                
   49b6c:	6642           	bnes 49bb0 <_Watchdog_Adjust+0x74>          <== NEVER TAKEN
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
   49b6e:	d5a8 0010      	addl %d2,%a0@(16)                           
        break;                                                        
   49b72:	603c           	bras 49bb0 <_Watchdog_Adjust+0x74>          
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
   49b74:	2053           	moveal %a3@,%a0                             
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
   49b76:	2628 0010      	movel %a0@(16),%d3                          
   49b7a:	b682           	cmpl %d2,%d3                                
   49b7c:	6308           	blss 49b86 <_Watchdog_Adjust+0x4a>          
            _Watchdog_First( header )->delta_interval -= units;       
   49b7e:	9682           	subl %d2,%d3                                
   49b80:	2143 0010      	movel %d3,%a0@(16)                          
            break;                                                    
   49b84:	602a           	bras 49bb0 <_Watchdog_Adjust+0x74>          
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
   49b86:	7201           	moveq #1,%d1                                
   49b88:	2141 0010      	movel %d1,%a0@(16)                          
                                                                      
            _ISR_Enable( level );                                     
   49b8c:	46c0           	movew %d0,%sr                               
                                                                      
            _Watchdog_Tickle( header );                               
   49b8e:	2f0b           	movel %a3,%sp@-                             
   49b90:	4e94           	jsr %a4@                                    
                                                                      
            _ISR_Disable( level );                                    
   49b92:	2204           	movel %d4,%d1                               
   49b94:	40c0           	movew %sr,%d0                               
   49b96:	8280           	orl %d0,%d1                                 
   49b98:	46c1           	movew %d1,%sr                               
                                                                      
            if ( _Chain_Is_empty( header ) )                          
   49b9a:	588f           	addql #4,%sp                                
   49b9c:	b5d3           	cmpal %a3@,%a2                              
   49b9e:	6710           	beqs 49bb0 <_Watchdog_Adjust+0x74>          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
   49ba0:	9483           	subl %d3,%d2                                
   49ba2:	6008           	bras 49bac <_Watchdog_Adjust+0x70>          
            _Watchdog_First( header )->delta_interval = 1;            
                                                                      
            _ISR_Enable( level );                                     
                                                                      
            _Watchdog_Tickle( header );                               
   49ba4:	49f9 0004 9d60 	lea 49d60 <_Watchdog_Tickle>,%a4            
                                                                      
            _ISR_Disable( level );                                    
   49baa:	2809           	movel %a1,%d4                               
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
   49bac:	4a82           	tstl %d2                                    
   49bae:	66c4           	bnes 49b74 <_Watchdog_Adjust+0x38>          <== ALWAYS TAKEN
        }                                                             
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
   49bb0:	46c0           	movew %d0,%sr                               
                                                                      
}                                                                     
   49bb2:	4cee 1c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a4            
   49bb8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048794 <_Watchdog_Remove>: { ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level );
   48794:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
Watchdog_States _Watchdog_Remove(                                     
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
   4879a:	4e56 0000      	linkw %fp,#0                                
   4879e:	206e 0008      	moveal %fp@(8),%a0                          
   487a2:	2f0a           	movel %a2,%sp@-                             
   487a4:	2f02           	movel %d2,%sp@-                             
  ISR_Level         level;                                            
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
   487a6:	40c1           	movew %sr,%d1                               
   487a8:	8081           	orl %d1,%d0                                 
   487aa:	46c0           	movew %d0,%sr                               
  previous_state = the_watchdog->state;                               
   487ac:	2028 0008      	movel %a0@(8),%d0                           
  switch ( previous_state ) {                                         
   487b0:	7401           	moveq #1,%d2                                
   487b2:	b480           	cmpl %d0,%d2                                
   487b4:	670c           	beqs 487c2 <_Watchdog_Remove+0x2e>          
   487b6:	6242           	bhis 487fa <_Watchdog_Remove+0x66>          
   487b8:	143c 0003      	moveb #3,%d2                                
   487bc:	b480           	cmpl %d0,%d2                                
   487be:	653a           	bcss 487fa <_Watchdog_Remove+0x66>          <== NEVER TAKEN
   487c0:	6006           	bras 487c8 <_Watchdog_Remove+0x34>          
                                                                      
      /*                                                              
       *  It is not actually on the chain so just change the state and
       *  the Insert operation we interrupted will be aborted.        
       */                                                             
      the_watchdog->state = WATCHDOG_INACTIVE;                        
   487c2:	42a8 0008      	clrl %a0@(8)                                
      break;                                                          
   487c6:	6032           	bras 487fa <_Watchdog_Remove+0x66>          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
                                                                      
  _ISR_Enable( level );                                               
  return( previous_state );                                           
}                                                                     
   487c8:	2250           	moveal %a0@,%a1                             
      break;                                                          
                                                                      
    case WATCHDOG_ACTIVE:                                             
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
   487ca:	42a8 0008      	clrl %a0@(8)                                
      next_watchdog = _Watchdog_Next( the_watchdog );                 
                                                                      
      if ( _Watchdog_Next(next_watchdog) )                            
   487ce:	4a91           	tstl %a1@                                   
   487d0:	6708           	beqs 487da <_Watchdog_Remove+0x46>          
        next_watchdog->delta_interval += the_watchdog->delta_interval;
   487d2:	2428 0010      	movel %a0@(16),%d2                          
   487d6:	d5a9 0010      	addl %d2,%a1@(16)                           
                                                                      
      if ( _Watchdog_Sync_count )                                     
   487da:	2479 0005 d65c 	moveal 5d65c <_Watchdog_Sync_count>,%a2     
   487e0:	4a8a           	tstl %a2                                    
   487e2:	670c           	beqs 487f0 <_Watchdog_Remove+0x5c>          
        _Watchdog_Sync_level = _ISR_Nest_level;                       
   487e4:	45f9 0005 d6f0 	lea 5d6f0 <_Per_CPU_Information+0x8>,%a2    
   487ea:	23d2 0005 d5fc 	movel %a2@,5d5fc <_Watchdog_Sync_level>     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
   487f0:	2468 0004      	moveal %a0@(4),%a2                          
  next->previous = previous;                                          
   487f4:	234a 0004      	movel %a2,%a1@(4)                           
  previous->next = next;                                              
   487f8:	2489           	movel %a1,%a2@                              
                                                                      
      _Chain_Extract_unprotected( &the_watchdog->Node );              
      break;                                                          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
   487fa:	2279 0005 d660 	moveal 5d660 <_Watchdog_Ticks_since_boot>,%a1
   48800:	2149 0018      	movel %a1,%a0@(24)                          
                                                                      
  _ISR_Enable( level );                                               
   48804:	46c1           	movew %d1,%sr                               
  return( previous_state );                                           
}                                                                     
   48806:	241f           	movel %sp@+,%d2                             
   48808:	245f           	moveal %sp@+,%a2                            
   4880a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049744 <_Watchdog_Report_chain>: ) { ISR_Level level; Chain_Node *node; _ISR_Disable( level );
   49744:	203c 0000 0700 	movel #1792,%d0                             
                                                                      
void _Watchdog_Report_chain(                                          
  const char        *name,                                            
  Chain_Control     *header                                           
)                                                                     
{                                                                     
   4974a:	4e56 ffec      	linkw %fp,#-20                              
   4974e:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   49752:	242e 0008      	movel %fp@(8),%d2                           
   49756:	266e 000c      	moveal %fp@(12),%a3                         
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
   4975a:	40c3           	movew %sr,%d3                               
   4975c:	8083           	orl %d3,%d0                                 
   4975e:	46c0           	movew %d0,%sr                               
    printk( "Watchdog Chain: %s %p\n", name, header );                
   49760:	2f0b           	movel %a3,%sp@-                             
   49762:	49f9 0004 404c 	lea 4404c <printk>,%a4                      
   49768:	2f02           	movel %d2,%sp@-                             
   4976a:	4879 0005 caf6 	pea 5caf6 <_Status_Object_name_errors_to_status+0x14>
   49770:	4e94           	jsr %a4@                                    
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
   49772:	245b           	moveal %a3@+,%a2                            
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
   49774:	4fef 000c      	lea %sp@(12),%sp                            
   49778:	b7ca           	cmpal %a2,%a3                               
   4977a:	6726           	beqs 497a2 <_Watchdog_Report_chain+0x5e>    
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
   4977c:	49f9 0004 97b8 	lea 497b8 <_Watchdog_Report>,%a4            
   49782:	2f0a           	movel %a2,%sp@-                             
   49784:	42a7           	clrl %sp@-                                  
   49786:	4e94           	jsr %a4@                                    
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
   49788:	2452           	moveal %a2@,%a2                             
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
   4978a:	508f           	addql #8,%sp                                
   4978c:	b7ca           	cmpal %a2,%a3                               
   4978e:	66f2           	bnes 49782 <_Watchdog_Report_chain+0x3e>    <== NEVER TAKEN
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
   49790:	2f02           	movel %d2,%sp@-                             
   49792:	4879 0005 cb0d 	pea 5cb0d <_Status_Object_name_errors_to_status+0x2b>
   49798:	4eb9 0004 404c 	jsr 4404c <printk>                          
   4979e:	508f           	addql #8,%sp                                
   497a0:	600a           	bras 497ac <_Watchdog_Report_chain+0x68>    
    } else {                                                          
      printk( "Chain is empty\n" );                                   
   497a2:	4879 0005 cb1c 	pea 5cb1c <_Status_Object_name_errors_to_status+0x3a>
   497a8:	4e94           	jsr %a4@                                    
   497aa:	588f           	addql #4,%sp                                
    }                                                                 
  _ISR_Enable( level );                                               
   497ac:	46c3           	movew %d3,%sr                               
}                                                                     
   497ae:	4cee 1c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a4            
   497b4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048810 <_Watchdog_Tickle>: * See the comment in watchdoginsert.c and watchdogadjust.c * about why it's safe not to declare header a pointer to * volatile data - till, 2003/7 */ _ISR_Disable( level );
   48810:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Watchdog_Tickle(                                                
  Chain_Control *header                                               
)                                                                     
{                                                                     
   48816:	4e56 ffe8      	linkw %fp,#-24                              
   4881a:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
   4881e:	286e 0008      	moveal %fp@(8),%a4                          
   * See the comment in watchdoginsert.c and watchdogadjust.c         
   * about why it's safe not to declare header a pointer to           
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
   48822:	40c2           	movew %sr,%d2                               
   48824:	8082           	orl %d2,%d0                                 
   48826:	46c0           	movew %d0,%sr                               
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
   48828:	264c           	moveal %a4,%a3                              
   4882a:	245b           	moveal %a3@+,%a2                            
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( _Chain_Is_empty( header ) )                                    
   4882c:	b7ca           	cmpal %a2,%a3                               
   4882e:	674c           	beqs 4887c <_Watchdog_Tickle+0x6c>          
   * to be inserted has already had its delta_interval adjusted to 0, and
   * so is added to the head of the chain with a delta_interval of 0. 
   *                                                                  
   * Steven Johnson - 12/2005 (gcc-3.2.3 -O3 on powerpc)              
   */                                                                 
  if (the_watchdog->delta_interval != 0) {                            
   48830:	202a 0010      	movel %a2@(16),%d0                          
   48834:	6708           	beqs 4883e <_Watchdog_Tickle+0x2e>          
    the_watchdog->delta_interval--;                                   
   48836:	5380           	subql #1,%d0                                
   48838:	2540 0010      	movel %d0,%a2@(16)                          
    if ( the_watchdog->delta_interval != 0 )                          
   4883c:	663e           	bnes 4887c <_Watchdog_Tickle+0x6c>          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   4883e:	4bf9 0004 8794 	lea 48794 <_Watchdog_Remove>,%a5            
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48844:	263c 0000 0700 	movel #1792,%d3                             
    if ( the_watchdog->delta_interval != 0 )                          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   4884a:	2f0a           	movel %a2,%sp@-                             
   4884c:	4e95           	jsr %a5@                                    
                                                                      
     _ISR_Enable( level );                                            
   4884e:	46c2           	movew %d2,%sr                               
                                                                      
     switch( watchdog_state ) {                                       
   48850:	7202           	moveq #2,%d1                                
   48852:	588f           	addql #4,%sp                                
   48854:	b280           	cmpl %d0,%d1                                
   48856:	6610           	bnes 48868 <_Watchdog_Tickle+0x58>          <== NEVER TAKEN
       case WATCHDOG_ACTIVE:                                          
         (*the_watchdog->routine)(                                    
   48858:	2f2a 0024      	movel %a2@(36),%sp@-                        
   4885c:	2f2a 0020      	movel %a2@(32),%sp@-                        
   48860:	206a 001c      	moveal %a2@(28),%a0                         
   48864:	4e90           	jsr %a0@                                    
           the_watchdog->id,                                          
           the_watchdog->user_data                                    
         );                                                           
         break;                                                       
   48866:	508f           	addql #8,%sp                                
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48868:	2003           	movel %d3,%d0                               
   4886a:	40c2           	movew %sr,%d2                               
   4886c:	8082           	orl %d2,%d0                                 
   4886e:	46c0           	movew %d0,%sr                               
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
   48870:	2454           	moveal %a4@,%a2                             
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
   48872:	b7ca           	cmpal %a2,%a3                               
   48874:	6706           	beqs 4887c <_Watchdog_Tickle+0x6c>          
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
   48876:	4aaa 0010      	tstl %a2@(16)                               
   4887a:	67ce           	beqs 4884a <_Watchdog_Tickle+0x3a>          
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
   4887c:	46c2           	movew %d2,%sr                               
}                                                                     
   4887e:	4cee 3c0c ffe8 	moveml %fp@(-24),%d2-%d3/%a2-%a5            
   48884:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004c43c <rtems_barrier_delete>: */ rtems_status_code rtems_barrier_delete( rtems_id id ) {
   4c43c:	4e56 fffc      	linkw %fp,#-4                               
   4c440:	2f0a           	movel %a2,%sp@-                             
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Barrier_Control *)                                          
    _Objects_Get( &_Barrier_Information, id, location );              
   4c442:	486e fffc      	pea %fp@(-4)                                
   4c446:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4c44a:	4879 0005 f9ec 	pea 5f9ec <_Barrier_Information>            
   4c450:	4eb9 0004 8aa4 	jsr 48aa4 <_Objects_Get>                    
  Barrier_Control   *the_barrier;                                     
  Objects_Locations  location;                                        
                                                                      
  the_barrier = _Barrier_Get( id, &location );                        
  switch ( location ) {                                               
   4c456:	4fef 000c      	lea %sp@(12),%sp                            
   4c45a:	2440           	moveal %d0,%a2                              
   4c45c:	4aae fffc      	tstl %fp@(-4)                               
   4c460:	663a           	bnes 4c49c <rtems_barrier_delete+0x60>      <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_barrier_Flush(                                            
   4c462:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   4c466:	42a7           	clrl %sp@-                                  
   4c468:	486a 0014      	pea %a2@(20)                                
   4c46c:	4eb9 0004 9be8 	jsr 49be8 <_Thread_queue_Flush>             
        &the_barrier->Barrier,                                        
        NULL,                                                         
        CORE_BARRIER_WAS_DELETED                                      
      );                                                              
                                                                      
      _Objects_Close( &_Barrier_Information, &the_barrier->Object );  
   4c472:	2f0a           	movel %a2,%sp@-                             
   4c474:	4879 0005 f9ec 	pea 5f9ec <_Barrier_Information>            
   4c47a:	4eb9 0004 86cc 	jsr 486cc <_Objects_Close>                  
 */                                                                   
RTEMS_INLINE_ROUTINE void _Barrier_Free (                             
  Barrier_Control *the_barrier                                        
)                                                                     
{                                                                     
  _Objects_Free( &_Barrier_Information, &the_barrier->Object );       
   4c480:	2f0a           	movel %a2,%sp@-                             
   4c482:	4879 0005 f9ec 	pea 5f9ec <_Barrier_Information>            
   4c488:	4eb9 0004 8940 	jsr 48940 <_Objects_Free>                   
                                                                      
      _Barrier_Free( the_barrier );                                   
                                                                      
      _Thread_Enable_dispatch();                                      
   4c48e:	4eb9 0004 95d6 	jsr 495d6 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   4c494:	4fef 001c      	lea %sp@(28),%sp                            
   4c498:	4280           	clrl %d0                                    
   4c49a:	6002           	bras 4c49e <rtems_barrier_delete+0x62>      
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   4c49c:	7004           	moveq #4,%d0                                
}                                                                     
   4c49e:	246e fff8      	moveal %fp@(-8),%a2                         
   4c4a2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000464a4 <rtems_chain_get_with_wait>: rtems_chain_control *chain, rtems_event_set events, rtems_interval timeout, rtems_chain_node **node_ptr ) {
   464a4:	4e56 ffe0      	linkw %fp,#-32                              
   464a8:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
   464ac:	260e           	movel %fp,%d3                               
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
   464ae:	47f9 0004 6a28 	lea 46a28 <_Chain_Get>,%a3                  
   464b4:	5983           	subql #4,%d3                                
   464b6:	45f9 0004 5930 	lea 45930 <rtems_event_receive>,%a2         
  rtems_chain_control *chain,                                         
  rtems_event_set events,                                             
  rtems_interval timeout,                                             
  rtems_chain_node **node_ptr                                         
)                                                                     
{                                                                     
   464bc:	2c2e 0008      	movel %fp@(8),%d6                           
   464c0:	2a2e 000c      	movel %fp@(12),%d5                          
   464c4:	282e 0010      	movel %fp@(16),%d4                          
   464c8:	6012           	bras 464dc <rtems_chain_get_with_wait+0x38> 
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
   464ca:	2f03           	movel %d3,%sp@-                             
   464cc:	2f04           	movel %d4,%sp@-                             
   464ce:	42a7           	clrl %sp@-                                  
   464d0:	2f05           	movel %d5,%sp@-                             
   464d2:	4e92           	jsr %a2@                                    
)                                                                     
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
   464d4:	4fef 0010      	lea %sp@(16),%sp                            
   464d8:	4a80           	tstl %d0                                    
   464da:	660c           	bnes 464e8 <rtems_chain_get_with_wait+0x44> <== ALWAYS TAKEN
   464dc:	2f06           	movel %d6,%sp@-                             
   464de:	4e93           	jsr %a3@                                    
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
   464e0:	588f           	addql #4,%sp                                
   464e2:	2400           	movel %d0,%d2                               
   464e4:	67e4           	beqs 464ca <rtems_chain_get_with_wait+0x26> 
   464e6:	4280           	clrl %d0                                    
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
   464e8:	206e 0014      	moveal %fp@(20),%a0                         
   464ec:	2082           	movel %d2,%a0@                              
                                                                      
  return sc;                                                          
}                                                                     
   464ee:	4cee 0c7c ffe0 	moveml %fp@(-32),%d2-%d6/%a2-%a3            
   464f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004f3b8 <rtems_clock_get_tod_timeval>: #include <rtems/score/watchdog.h> rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) {
   4f3b8:	4e56 fff8      	linkw %fp,#-8                               
   4f3bc:	2f0a           	movel %a2,%sp@-                             
   4f3be:	246e 0008      	moveal %fp@(8),%a2                          
   4f3c2:	2f02           	movel %d2,%sp@-                             
  if ( !time )                                                        
   4f3c4:	4a8a           	tstl %a2                                    
   4f3c6:	673c           	beqs 4f404 <rtems_clock_get_tod_timeval+0x4c><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   4f3c8:	4a39 0007 5f64 	tstb 75f64 <_TOD_Is_set>                    
   4f3ce:	6738           	beqs 4f408 <rtems_clock_get_tod_timeval+0x50><== NEVER TAKEN
{                                                                     
  ISR_Level       level;                                              
  struct timespec now;                                                
  suseconds_t     useconds;                                           
                                                                      
  _ISR_Disable(level);                                                
   4f3d0:	203c 0000 0700 	movel #1792,%d0                             
   4f3d6:	40c2           	movew %sr,%d2                               
   4f3d8:	8082           	orl %d2,%d0                                 
   4f3da:	46c0           	movew %d0,%sr                               
    _TOD_Get( &now );                                                 
   4f3dc:	486e fff8      	pea %fp@(-8)                                
   4f3e0:	4eb9 0005 3444 	jsr 53444 <_TOD_Get>                        
  _ISR_Enable(level);                                                 
   4f3e6:	46c2           	movew %d2,%sr                               
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  time->tv_usec = useconds;                                           
   4f3e8:	243c 0000 03e8 	movel #1000,%d2                             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4f3ee:	588f           	addql #4,%sp                                
                                                                      
  _ISR_Disable(level);                                                
    _TOD_Get( &now );                                                 
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
   4f3f0:	202e fffc      	movel %fp@(-4),%d0                          
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  time->tv_usec = useconds;                                           
   4f3f4:	4c42 0800      	remsl %d2,%d0,%d0                           
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
   4f3f8:	24ae fff8      	movel %fp@(-8),%a2@                         
  time->tv_usec = useconds;                                           
   4f3fc:	2540 0004      	movel %d0,%a2@(4)                           
   4f400:	4280           	clrl %d0                                    
   4f402:	6006           	bras 4f40a <rtems_clock_get_tod_timeval+0x52>
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
   4f404:	7009           	moveq #9,%d0                                
   4f406:	6002           	bras 4f40a <rtems_clock_get_tod_timeval+0x52>
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   4f408:	700b           	moveq #11,%d0                               
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4f40a:	242e fff0      	movel %fp@(-16),%d2                         
   4f40e:	246e fff4      	moveal %fp@(-12),%a2                        
   4f412:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045e7a <rtems_initialize_start_multitasking>:
   45e7a:	7002           	moveq #2,%d0                                
}                                                                     
                                                                      
void rtems_initialize_start_multitasking(void)                        
{                                                                     
   45e7c:	4e56 0000      	linkw %fp,#0                                
   ******                 APPLICATION RUNS HERE                 ******
   ******            RETURNS WHEN SYSTEM IS SHUT DOWN           ******
   *******************************************************************
   *******************************************************************
   *******************************************************************/
}                                                                     
   45e80:	4e5e           	unlk %fp                                    
   45e82:	23c0 0005 d6a0 	movel %d0,5d6a0 <_System_state_Current>     
void rtems_initialize_start_multitasking(void)                        
{                                                                     
                                                                      
  _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING );               
                                                                      
  _Thread_Start_multitasking();                                       
   45e88:	4ef9 0004 8294 	jmp 48294 <_Thread_Start_multitasking>      
	...                                                                  
                                                                      

00047d70 <rtems_iterate_over_all_threads>: #include <rtems/system.h> #include <rtems/score/thread.h> void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) {
   47d70:	4e56 fff0      	linkw %fp,#-16                              
   47d74:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   47d78:	286e 0008      	moveal %fp@(8),%a4                          
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
   47d7c:	4a8c           	tstl %a4                                    
   47d7e:	673c           	beqs 47dbc <rtems_iterate_over_all_threads+0x4c><== NEVER TAKEN
   47d80:	45f9 0005 f988 	lea 5f988 <_Objects_Information_table+0x4>,%a2
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
    #if !defined(RTEMS_POSIX_API) || defined(RTEMS_DEBUG)             
      if ( !_Objects_Information_table[ api_index ] )                 
   47d86:	205a           	moveal %a2@+,%a0                            
   47d88:	4a88           	tstl %a0                                    
   47d8a:	6728           	beqs 47db4 <rtems_iterate_over_all_threads+0x44>
        continue;                                                     
    #endif                                                            
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
   47d8c:	2668 0004      	moveal %a0@(4),%a3                          
    if ( !information )                                               
   47d90:	4a8b           	tstl %a3                                    
   47d92:	6720           	beqs 47db4 <rtems_iterate_over_all_threads+0x44>
   47d94:	7401           	moveq #1,%d2                                
   47d96:	6012           	bras 47daa <rtems_iterate_over_all_threads+0x3a>
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
      the_thread = (Thread_Control *)information->local_table[ i ];   
   47d98:	206b 0018      	moveal %a3@(24),%a0                         
   47d9c:	2030 2c00      	movel %a0@(00000000,%d2:l:4),%d0            
                                                                      
      if ( !the_thread )                                              
   47da0:	6706           	beqs 47da8 <rtems_iterate_over_all_threads+0x38><== NEVER TAKEN
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
   47da2:	2f00           	movel %d0,%sp@-                             
   47da4:	4e94           	jsr %a4@                                    
   47da6:	588f           	addql #4,%sp                                
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
   47da8:	5282           	addql #1,%d2                                
   47daa:	4280           	clrl %d0                                    
   47dac:	302b 000e      	movew %a3@(14),%d0                          
   47db0:	b082           	cmpl %d2,%d0                                
   47db2:	64e4           	bccs 47d98 <rtems_iterate_over_all_threads+0x28>
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
   47db4:	b5fc 0005 f994 	cmpal #391572,%a2                           
   47dba:	66ca           	bnes 47d86 <rtems_iterate_over_all_threads+0x16>
                                                                      
      (*routine)(the_thread);                                         
    }                                                                 
  }                                                                   
                                                                      
}                                                                     
   47dbc:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   47dc2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004642c <rtems_object_get_classic_name>: rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) {
   4642c:	4e56 fffc      	linkw %fp,#-4                               
   46430:	2f0a           	movel %a2,%sp@-                             
   46432:	246e 000c      	moveal %fp@(12),%a2                         
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
   46436:	4a8a           	tstl %a2                                    
   46438:	6720           	beqs 4645a <rtems_object_get_classic_name+0x2e><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
   4643a:	486e fffc      	pea %fp@(-4)                                
   4643e:	2f2e 0008      	movel %fp@(8),%sp@-                         
   46442:	4eb9 0004 7dec 	jsr 47dec <_Objects_Id_to_name>             
                                                                      
  *name = name_u.name_u32;                                            
   46448:	24ae fffc      	movel %fp@(-4),%a2@                         
  return _Status_Object_name_errors_to_status[ status ];              
   4644c:	41f9 0005 c45e 	lea 5c45e <_Status_Object_name_errors_to_status>,%a0
   46452:	508f           	addql #8,%sp                                
   46454:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
   46458:	6002           	bras 4645c <rtems_object_get_classic_name+0x30>
{                                                                     
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
   4645a:	7009           	moveq #9,%d0                                
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
                                                                      
  *name = name_u.name_u32;                                            
  return _Status_Object_name_errors_to_status[ status ];              
}                                                                     
   4645c:	246e fff8      	moveal %fp@(-8),%a2                         
   46460:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00050188 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
   50188:	4e56 fffc      	linkw %fp,#-4                               
   5018c:	2f0a           	movel %a2,%sp@-                             
   5018e:	2f02           	movel %d2,%sp@-                             
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
   50190:	486e fffc      	pea %fp@(-4)                                
   50194:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50198:	4879 0007 5df4 	pea 75df4 <_Partition_Information>          
   5019e:	242e 000c      	movel %fp@(12),%d2                          
   501a2:	4eb9 0005 45ac 	jsr 545ac <_Objects_Get>                    
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
   501a8:	4fef 000c      	lea %sp@(12),%sp                            
   501ac:	2440           	moveal %d0,%a2                              
   501ae:	4aae fffc      	tstl %fp@(-4)                               
   501b2:	663e           	bnes 501f2 <rtems_partition_return_buffer+0x6a>
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
   501b4:	202a 0010      	movel %a2@(16),%d0                          
  ending   = _Addresses_Add_offset( starting, the_partition->length );
   501b8:	222a 0014      	movel %a2@(20),%d1                          
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   501bc:	b082           	cmpl %d2,%d0                                
   501be:	6240           	bhis 50200 <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
   501c0:	d280           	addl %d0,%d1                                
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   501c2:	b282           	cmpl %d2,%d1                                
   501c4:	653a           	bcss 50200 <rtems_partition_return_buffer+0x78><== NEVER TAKEN
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
   501c6:	2202           	movel %d2,%d1                               
   501c8:	9280           	subl %d0,%d1                                
   501ca:	2001           	movel %d1,%d0                               
  offset = (uint32_t) _Addresses_Subtract(                            
    the_buffer,                                                       
    the_partition->starting_address                                   
  );                                                                  
                                                                      
  return ((offset % the_partition->buffer_size) == 0);                
   501cc:	4c6a 0001 0018 	remul %a2@(24),%d1,%d0                      
                                                                      
  starting = the_partition->starting_address;                         
  ending   = _Addresses_Add_offset( starting, the_partition->length );
                                                                      
  return (                                                            
    _Addresses_Is_in_range( the_buffer, starting, ending ) &&         
   501d2:	4a81           	tstl %d1                                    
   501d4:	662a           	bnes 50200 <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 );                
   501d6:	2f02           	movel %d2,%sp@-                             
   501d8:	486a 0024      	pea %a2@(36)                                
   501dc:	4eb9 0005 2ccc 	jsr 52ccc <_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;                    
   501e2:	53aa 0020      	subql #1,%a2@(32)                           
        _Thread_Enable_dispatch();                                    
   501e6:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   501ec:	508f           	addql #8,%sp                                
   501ee:	4280           	clrl %d0                                    
   501f0:	6002           	bras 501f4 <rtems_partition_return_buffer+0x6c>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   501f2:	7004           	moveq #4,%d0                                
}                                                                     
   501f4:	242e fff4      	movel %fp@(-12),%d2                         
   501f8:	246e fff8      	moveal %fp@(-8),%a2                         
   501fc:	4e5e           	unlk %fp                                    
   501fe:	4e75           	rts                                         
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
   50200:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return RTEMS_INVALID_ADDRESS;                                   
   50206:	7009           	moveq #9,%d0                                
   50208:	60ea           	bras 501f4 <rtems_partition_return_buffer+0x6c>
	...                                                                  
                                                                      

0004f7ac <rtems_port_internal_to_external>: rtems_status_code rtems_port_internal_to_external( rtems_id id, void *internal, void **external ) {
   4f7ac:	4e56 fffc      	linkw %fp,#-4                               
   4f7b0:	2f0a           	movel %a2,%sp@-                             
   4f7b2:	246e 0010      	moveal %fp@(16),%a2                         
   4f7b6:	2f02           	movel %d2,%sp@-                             
   4f7b8:	242e 000c      	movel %fp@(12),%d2                          
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
   4f7bc:	4a8a           	tstl %a2                                    
   4f7be:	6740           	beqs 4f800 <rtems_port_internal_to_external+0x54><== NEVER TAKEN
   4f7c0:	486e fffc      	pea %fp@(-4)                                
   4f7c4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4f7c8:	4879 0007 5dbc 	pea 75dbc <_Dual_ported_memory_Information> 
   4f7ce:	4eb9 0005 45ac 	jsr 545ac <_Objects_Get>                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  switch ( location ) {                                               
   4f7d4:	4fef 000c      	lea %sp@(12),%sp                            
   4f7d8:	2040           	moveal %d0,%a0                              
   4f7da:	4aae fffc      	tstl %fp@(-4)                               
   4f7de:	6624           	bnes 4f804 <rtems_port_internal_to_external+0x58><== NEVER TAKEN
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
   4f7e0:	2002           	movel %d2,%d0                               
   4f7e2:	90a8 0010      	subl %a0@(16),%d0                           
                                                                      
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( internal, the_port->internal_base );
      if ( ending > the_port->length )                                
   4f7e6:	b0a8 0018      	cmpl %a0@(24),%d0                           
   4f7ea:	6304           	blss 4f7f0 <rtems_port_internal_to_external+0x44>
        *external = internal;                                         
   4f7ec:	2482           	movel %d2,%a2@                              
   4f7ee:	6006           	bras 4f7f6 <rtems_port_internal_to_external+0x4a>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
   4f7f0:	d0a8 0014      	addl %a0@(20),%d0                           
   4f7f4:	2480           	movel %d0,%a2@                              
      else                                                            
        *external = _Addresses_Add_offset( the_port->external_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
   4f7f6:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   4f7fc:	4280           	clrl %d0                                    
   4f7fe:	6006           	bras 4f806 <rtems_port_internal_to_external+0x5a>
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
   4f800:	7009           	moveq #9,%d0                                
   4f802:	6002           	bras 4f806 <rtems_port_internal_to_external+0x5a>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   4f804:	7004           	moveq #4,%d0                                
}                                                                     
   4f806:	242e fff4      	movel %fp@(-12),%d2                         
   4f80a:	246e fff8      	moveal %fp@(-8),%a2                         
   4f80e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046586 <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
   46586:	4e56 ffec      	linkw %fp,#-20                              
   4658a:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
   4658e:	486e fffc      	pea %fp@(-4)                                
   46592:	262e 0008      	movel %fp@(8),%d3                           
   46596:	2f03           	movel %d3,%sp@-                             
   46598:	4879 0005 f060 	pea 5f060 <_Rate_monotonic_Information>     
   4659e:	242e 000c      	movel %fp@(12),%d2                          
   465a2:	4eb9 0004 84cc 	jsr 484cc <_Objects_Get>                    
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
   465a8:	4fef 000c      	lea %sp@(12),%sp                            
   465ac:	2440           	moveal %d0,%a2                              
   465ae:	4aae fffc      	tstl %fp@(-4)                               
   465b2:	6600 0148      	bnew 466fc <rtems_rate_monotonic_period+0x176>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
   465b6:	2039 0005 f2ec 	movel 5f2ec <_Per_CPU_Information+0xc>,%d0  
   465bc:	b0aa 0040      	cmpl %a2@(64),%d0                           
   465c0:	670c           	beqs 465ce <rtems_rate_monotonic_period+0x48>
        _Thread_Enable_dispatch();                                    
   465c2:	4eb9 0004 9042 	jsr 49042 <_Thread_Enable_dispatch>         
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
   465c8:	7417           	moveq #23,%d2                               
   465ca:	6000 0132      	braw 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
   465ce:	4a82           	tstl %d2                                    
   465d0:	6622           	bnes 465f4 <rtems_rate_monotonic_period+0x6e>
        switch ( the_period->state ) {                                
   465d2:	202a 0038      	movel %a2@(56),%d0                          
   465d6:	7204           	moveq #4,%d1                                
   465d8:	b280           	cmpl %d0,%d1                                
   465da:	650c           	bcss 465e8 <rtems_rate_monotonic_period+0x62><== NEVER TAKEN
   465dc:	41f9 0005 c906 	lea 5c906 <CSWTCH.2>,%a0                    
   465e2:	2430 0c00      	movel %a0@(00000000,%d0:l:4),%d2            
   465e6:	6002           	bras 465ea <rtems_rate_monotonic_period+0x64>
   465e8:	4282           	clrl %d2                                    <== NOT EXECUTED
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
   465ea:	4eb9 0004 9042 	jsr 49042 <_Thread_Enable_dispatch>         
        return( return_value );                                       
   465f0:	6000 010c      	braw 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
   465f4:	203c 0000 0700 	movel #1792,%d0                             
   465fa:	40c4           	movew %sr,%d4                               
   465fc:	8084           	orl %d4,%d0                                 
   465fe:	46c0           	movew %d0,%sr                               
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
   46600:	202a 0038      	movel %a2@(56),%d0                          
   46604:	664a           	bnes 46650 <rtems_rate_monotonic_period+0xca>
        _ISR_Enable( level );                                         
   46606:	46c4           	movew %d4,%sr                               
                                                                      
        /*                                                            
         *  Baseline statistics information for the beginning of a period.
         */                                                           
        _Rate_monotonic_Initiate_statistics( the_period );            
   46608:	2f0a           	movel %a2,%sp@-                             
   4660a:	4eb9 0004 641a 	jsr 4641a <_Rate_monotonic_Initiate_statistics>
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   46610:	7002           	moveq #2,%d0                                
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   46612:	223c 0004 6948 	movel #289096,%d1                           
   46618:	2540 0038      	movel %d0,%a2@(56)                          
   4661c:	2541 002c      	movel %d1,%a2@(44)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   46620:	42aa 0018      	clrl %a2@(24)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   46624:	2543 0030      	movel %d3,%a2@(48)                          
  the_watchdog->user_data = user_data;                                
   46628:	42aa 0034      	clrl %a2@(52)                               
          _Rate_monotonic_Timeout,                                    
          id,                                                         
          NULL                                                        
        );                                                            
                                                                      
        the_period->next_length = length;                             
   4662c:	2542 003c      	movel %d2,%a2@(60)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   46630:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   46634:	486a 0010      	pea %a2@(16)                                
   46638:	4879 0005 f210 	pea 5f210 <_Watchdog_Ticks_chain>           
   4663e:	4eb9 0004 9d68 	jsr 49d68 <_Watchdog_Insert>                
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
   46644:	4eb9 0004 9042 	jsr 49042 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   4664a:	4fef 000c      	lea %sp@(12),%sp                            
   4664e:	606c           	bras 466bc <rtems_rate_monotonic_period+0x136>
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
   46650:	7202           	moveq #2,%d1                                
   46652:	b280           	cmpl %d0,%d1                                
   46654:	666a           	bnes 466c0 <rtems_rate_monotonic_period+0x13a>
        /*                                                            
         *  Update statistics from the concluding period.             
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
   46656:	2f0a           	movel %a2,%sp@-                             
   46658:	4eb9 0004 6492 	jsr 46492 <_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;         
   4665e:	7001           	moveq #1,%d0                                
        the_period->next_length = length;                             
   46660:	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;         
   46664:	2540 0038      	movel %d0,%a2@(56)                          
        the_period->next_length = length;                             
                                                                      
        _ISR_Enable( level );                                         
   46668:	46c4           	movew %d4,%sr                               
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
   4666a:	2079 0005 f2ec 	moveal 5f2ec <_Per_CPU_Information+0xc>,%a0 
   46670:	216a 0008 0020 	movel %a2@(8),%a0@(32)                      
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   46676:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   4667a:	2f08           	movel %a0,%sp@-                             
   4667c:	4eb9 0004 97a8 	jsr 497a8 <_Thread_Set_state>               
                                                                      
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
   46682:	203c 0000 0700 	movel #1792,%d0                             
   46688:	40c1           	movew %sr,%d1                               
   4668a:	8081           	orl %d1,%d0                                 
   4668c:	46c0           	movew %d0,%sr                               
          local_state = the_period->state;                            
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   4668e:	7402           	moveq #2,%d2                                
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
          local_state = the_period->state;                            
   46690:	202a 0038      	movel %a2@(56),%d0                          
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   46694:	2542 0038      	movel %d2,%a2@(56)                          
        _ISR_Enable( level );                                         
   46698:	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 )   
   4669a:	7203           	moveq #3,%d1                                
   4669c:	4fef 000c      	lea %sp@(12),%sp                            
   466a0:	b280           	cmpl %d0,%d1                                
   466a2:	6612           	bnes 466b6 <rtems_rate_monotonic_period+0x130>
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   466a4:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   466a8:	2f39 0005 f2ec 	movel 5f2ec <_Per_CPU_Information+0xc>,%sp@-
   466ae:	4eb9 0004 8d00 	jsr 48d00 <_Thread_Clear_state>             
   466b4:	508f           	addql #8,%sp                                
                                                                      
        _Thread_Enable_dispatch();                                    
   466b6:	4eb9 0004 9042 	jsr 49042 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   466bc:	4282           	clrl %d2                                    
   466be:	603e           	bras 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_EXPIRED ) {            
   466c0:	7204           	moveq #4,%d1                                
   466c2:	b280           	cmpl %d0,%d1                                
   466c4:	6636           	bnes 466fc <rtems_rate_monotonic_period+0x176><== NEVER TAKEN
        /*                                                            
         *  Update statistics from the concluding period              
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
   466c6:	2f0a           	movel %a2,%sp@-                             
   466c8:	4eb9 0004 6492 	jsr 46492 <_Rate_monotonic_Update_statistics>
                                                                      
        _ISR_Enable( level );                                         
   466ce:	46c4           	movew %d4,%sr                               
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   466d0:	7002           	moveq #2,%d0                                
        the_period->next_length = length;                             
   466d2:	2542 003c      	movel %d2,%a2@(60)                          
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
                                                                      
        _ISR_Enable( level );                                         
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   466d6:	2540 0038      	movel %d0,%a2@(56)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   466da:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   466de:	486a 0010      	pea %a2@(16)                                
        the_period->next_length = length;                             
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
        return RTEMS_TIMEOUT;                                         
   466e2:	7406           	moveq #6,%d2                                
   466e4:	4879 0005 f210 	pea 5f210 <_Watchdog_Ticks_chain>           
   466ea:	4eb9 0004 9d68 	jsr 49d68 <_Watchdog_Insert>                
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
        the_period->next_length = length;                             
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
   466f0:	4eb9 0004 9042 	jsr 49042 <_Thread_Enable_dispatch>         
        return RTEMS_TIMEOUT;                                         
   466f6:	4fef 000c      	lea %sp@(12),%sp                            
   466fa:	6002           	bras 466fe <rtems_rate_monotonic_period+0x178>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   466fc:	7404           	moveq #4,%d2                                
}                                                                     
   466fe:	2002           	movel %d2,%d0                               
   46700:	4cee 041c ffec 	moveml %fp@(-20),%d2-%d4/%a2                
   46706:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00050d70 <rtems_region_get_segment_size>: rtems_status_code rtems_region_get_segment_size( rtems_id id, void *segment, uintptr_t *size ) {
   50d70:	4e56 fffc      	linkw %fp,#-4                               
   50d74:	2f03           	movel %d3,%sp@-                             
   50d76:	262e 0010      	movel %fp@(16),%d3                          
   50d7a:	2f02           	movel %d2,%sp@-                             
   50d7c:	242e 000c      	movel %fp@(12),%d2                          
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
   50d80:	6768           	beqs 50dea <rtems_region_get_segment_size+0x7a>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
   50d82:	4a83           	tstl %d3                                    
   50d84:	6764           	beqs 50dea <rtems_region_get_segment_size+0x7a>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
   50d86:	2f39 0007 5ff4 	movel 75ff4 <_RTEMS_Allocator_Mutex>,%sp@-  
   50d8c:	4eb9 0005 2c38 	jsr 52c38 <_API_Mutex_Lock>                 
   50d92:	486e fffc      	pea %fp@(-4)                                
   50d96:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50d9a:	4879 0007 5e64 	pea 75e64 <_Region_Information>             
   50da0:	4eb9 0005 4574 	jsr 54574 <_Objects_Get_no_protection>      
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
   50da6:	222e fffc      	movel %fp@(-4),%d1                          
   50daa:	4fef 0010      	lea %sp@(16),%sp                            
   50dae:	6708           	beqs 50db8 <rtems_region_get_segment_size+0x48>
   50db0:	7001           	moveq #1,%d0                                
   50db2:	b081           	cmpl %d1,%d0                                
   50db4:	661a           	bnes 50dd0 <rtems_region_get_segment_size+0x60><== NEVER TAKEN
   50db6:	601c           	bras 50dd4 <rtems_region_get_segment_size+0x64>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
   50db8:	2f03           	movel %d3,%sp@-                             
   50dba:	2040           	moveal %d0,%a0                              
   50dbc:	2f02           	movel %d2,%sp@-                             
   50dbe:	4868 0068      	pea %a0@(104)                               
   50dc2:	4eb9 0005 3fec 	jsr 53fec <_Heap_Size_of_alloc_area>        
   50dc8:	4fef 000c      	lea %sp@(12),%sp                            
   50dcc:	4a00           	tstb %d0                                    
   50dce:	6708           	beqs 50dd8 <rtems_region_get_segment_size+0x68><== NEVER TAKEN
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
   50dd0:	4282           	clrl %d2                                    
   50dd2:	6006           	bras 50dda <rtems_region_get_segment_size+0x6a>
      case OBJECTS_REMOTE:        /* this error cannot be returned */ 
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
   50dd4:	7404           	moveq #4,%d2                                
   50dd6:	6002           	bras 50dda <rtems_region_get_segment_size+0x6a>
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
          return_status = RTEMS_INVALID_ADDRESS;                      
   50dd8:	7409           	moveq #9,%d2                                <== NOT EXECUTED
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
   50dda:	2f39 0007 5ff4 	movel 75ff4 <_RTEMS_Allocator_Mutex>,%sp@-  
   50de0:	4eb9 0005 2c98 	jsr 52c98 <_API_Mutex_Unlock>               
  return return_status;                                               
   50de6:	588f           	addql #4,%sp                                
   50de8:	6002           	bras 50dec <rtems_region_get_segment_size+0x7c>
                                                                      
  if ( !segment )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
   50dea:	7409           	moveq #9,%d2                                
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
   50dec:	2002           	movel %d2,%d0                               
   50dee:	242e fff4      	movel %fp@(-12),%d2                         
   50df2:	262e fff8      	movel %fp@(-8),%d3                          
   50df6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045e90 <rtems_shutdown_executive>: void rtems_shutdown_executive( uint32_t result ) { if ( _System_state_Is_up( _System_state_Get() ) ) {
   45e90:	7003           	moveq #3,%d0                                
 */                                                                   
                                                                      
void rtems_shutdown_executive(                                        
   uint32_t   result                                                  
)                                                                     
{                                                                     
   45e92:	4e56 0000      	linkw %fp,#0                                
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
   45e96:	b0b9 0005 d6a0 	cmpl 5d6a0 <_System_state_Current>,%d0      
   45e9c:	6618           	bnes 45eb6 <rtems_shutdown_executive+0x26>  
   45e9e:	103c 0004      	moveb #4,%d0                                
   *  if we were running within the same context, it would work.      
   *                                                                  
   *  And we will not return to this thread, so there is no point of  
   *  saving the context.                                             
   */                                                                 
  _Context_Restart_self( &_Thread_BSP_context );                      
   45ea2:	4879 0005 d524 	pea 5d524 <_Thread_BSP_context>             
   45ea8:	23c0 0005 d6a0 	movel %d0,5d6a0 <_System_state_Current>     
   45eae:	4eb9 0004 896e 	jsr 4896e <_CPU_Context_Restart_self>       
   45eb4:	588f           	addql #4,%sp                                <== NOT EXECUTED
    _System_state_Set( SYSTEM_STATE_SHUTDOWN );                       
    _Thread_Stop_multitasking();                                      
  }                                                                   
  _Internal_error_Occurred(                                           
   45eb6:	4878 0014      	pea 14 <OPER2>                              
   45eba:	4878 0001      	pea 1 <ADD>                                 
   45ebe:	42a7           	clrl %sp@-                                  
   45ec0:	4eb9 0004 69b0 	jsr 469b0 <_Internal_error_Occurred>        
	...                                                                  
                                                                      

000513d0 <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
   513d0:	4e56 fffc      	linkw %fp,#-4                               
   513d4:	2f03           	movel %d3,%sp@-                             
   513d6:	2f02           	movel %d2,%sp@-                             
   513d8:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
   513dc:	677a           	beqs 51458 <rtems_signal_send+0x88>         <== NEVER TAKEN
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   513de:	486e fffc      	pea %fp@(-4)                                
   513e2:	2f2e 0008      	movel %fp@(8),%sp@-                         
   513e6:	4eb9 0005 5148 	jsr 55148 <_Thread_Get>                     
  switch ( location ) {                                               
   513ec:	508f           	addql #8,%sp                                
   513ee:	4aae fffc      	tstl %fp@(-4)                               
   513f2:	6668           	bnes 5145c <rtems_signal_send+0x8c>         <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
   513f4:	2240           	moveal %d0,%a1                              
   513f6:	2069 00fc      	moveal %a1@(252),%a0                        
      asr = &api->Signal;                                             
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
   513fa:	4aa8 000a      	tstl %a0@(10)                               
   513fe:	674e           	beqs 5144e <rtems_signal_send+0x7e>         
        if ( asr->is_enabled ) {                                      
   51400:	4a28 0008      	tstb %a0@(8)                                
   51404:	672c           	beqs 51432 <rtems_signal_send+0x62>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   51406:	223c 0000 0700 	movel #1792,%d1                             
   5140c:	40c3           	movew %sr,%d3                               
   5140e:	8283           	orl %d3,%d1                                 
   51410:	46c1           	movew %d1,%sr                               
    *signal_set |= signals;                                           
   51412:	85a8 0012      	orl %d2,%a0@(18)                            
  _ISR_Enable( _level );                                              
   51416:	46c3           	movew %d3,%sr                               
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   51418:	4ab9 0007 60f4 	tstl 760f4 <_Per_CPU_Information+0x8>       
   5141e:	6724           	beqs 51444 <rtems_signal_send+0x74>         
   51420:	b0b9 0007 60f8 	cmpl 760f8 <_Per_CPU_Information+0xc>,%d0   
   51426:	661c           	bnes 51444 <rtems_signal_send+0x74>         <== NEVER TAKEN
            _Thread_Dispatch_necessary = true;                        
   51428:	7001           	moveq #1,%d0                                
   5142a:	13c0 0007 6104 	moveb %d0,76104 <_Per_CPU_Information+0x18> 
   51430:	6012           	bras 51444 <rtems_signal_send+0x74>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   51432:	203c 0000 0700 	movel #1792,%d0                             
   51438:	40c1           	movew %sr,%d1                               
   5143a:	8081           	orl %d1,%d0                                 
   5143c:	46c0           	movew %d0,%sr                               
    *signal_set |= signals;                                           
   5143e:	85a8 0016      	orl %d2,%a0@(22)                            
  _ISR_Enable( _level );                                              
   51442:	46c1           	movew %d1,%sr                               
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
   51444:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   5144a:	4280           	clrl %d0                                    
   5144c:	6010           	bras 5145e <rtems_signal_send+0x8e>         
      }                                                               
      _Thread_Enable_dispatch();                                      
   5144e:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return RTEMS_NOT_DEFINED;                                       
   51454:	700b           	moveq #11,%d0                               
   51456:	6006           	bras 5145e <rtems_signal_send+0x8e>         
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
   51458:	700a           	moveq #10,%d0                               
   5145a:	6002           	bras 5145e <rtems_signal_send+0x8e>         
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   5145c:	7004           	moveq #4,%d0                                
}                                                                     
   5145e:	242e fff4      	movel %fp@(-12),%d2                         
   51462:	262e fff8      	movel %fp@(-8),%d3                          
   51466:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004b8a0 <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
   4b8a0:	4e56 ffe4      	linkw %fp,#-28                              
   4b8a4:	48d7 1c3c      	moveml %d2-%d5/%a2-%a4,%sp@                 
   4b8a8:	262e 0008      	movel %fp@(8),%d3                           
   4b8ac:	282e 000c      	movel %fp@(12),%d4                          
   4b8b0:	286e 0010      	moveal %fp@(16),%a4                         
  ASR_Information    *asr;                                            
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
   4b8b4:	4a8c           	tstl %a4                                    
   4b8b6:	6700 0104      	beqw 4b9bc <rtems_task_mode+0x11c>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
   4b8ba:	2679 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a3 
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4b8c0:	4a2b 0074      	tstb %a3@(116)                              
   4b8c4:	57c2           	seq %d2                                     
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   4b8c6:	246b 00fc      	moveal %a3@(252),%a2                        
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4b8ca:	49c2           	extbl %d2                                   
   4b8cc:	0282 0000 0100 	andil #256,%d2                              
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
   4b8d2:	4aab 007a      	tstl %a3@(122)                              
   4b8d6:	6704           	beqs 4b8dc <rtems_task_mode+0x3c>           
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
   4b8d8:	08c2 0009      	bset #9,%d2                                 
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
   4b8dc:	4a2a 0008      	tstb %a2@(8)                                
   4b8e0:	57c5           	seq %d5                                     
  old_mode |= _ISR_Get_level();                                       
   4b8e2:	4eb9 0004 8a14 	jsr 48a14 <_CPU_ISR_Get_level>              
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
   4b8e8:	49c5           	extbl %d5                                   
   4b8ea:	0285 0000 0400 	andil #1024,%d5                             
   4b8f0:	8085           	orl %d5,%d0                                 
  old_mode |= _ISR_Get_level();                                       
   4b8f2:	8082           	orl %d2,%d0                                 
   4b8f4:	2880           	movel %d0,%a4@                              
  *previous_mode_set = old_mode;                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
   4b8f6:	0804 0008      	btst #8,%d4                                 
   4b8fa:	670c           	beqs 4b908 <rtems_task_mode+0x68>           
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
   4b8fc:	0803 0008      	btst #8,%d3                                 
   4b900:	57c0           	seq %d0                                     
   4b902:	4480           	negl %d0                                    
   4b904:	1740 0074      	moveb %d0,%a3@(116)                         
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
   4b908:	0804 0009      	btst #9,%d4                                 
   4b90c:	671c           	beqs 4b92a <rtems_task_mode+0x8a>           
    if ( _Modes_Is_timeslice(mode_set) ) {                            
   4b90e:	0803 0009      	btst #9,%d3                                 
   4b912:	6712           	beqs 4b926 <rtems_task_mode+0x86>           
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4b914:	41f9 0005 d510 	lea 5d510 <_Thread_Ticks_per_timeslice>,%a0 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
   4b91a:	7001           	moveq #1,%d0                                
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4b91c:	2750 0076      	movel %a0@,%a3@(118)                        
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
   4b920:	2740 007a      	movel %d0,%a3@(122)                         
   4b924:	6004           	bras 4b92a <rtems_task_mode+0x8a>           
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
    } else                                                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 
   4b926:	42ab 007a      	clrl %a3@(122)                              
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
   4b92a:	7007           	moveq #7,%d0                                
   4b92c:	c084           	andl %d4,%d0                                
   4b92e:	6712           	beqs 4b942 <rtems_task_mode+0xa2>           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
   4b930:	40c0           	movew %sr,%d0                               
 */                                                                   
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (           
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  return ( mode_set & RTEMS_INTERRUPT_MASK );                         
   4b932:	7207           	moveq #7,%d1                                
   4b934:	c283           	andl %d3,%d1                                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
   4b936:	0280 0000 f8ff 	andil #63743,%d0                            
   4b93c:	e189           	lsll #8,%d1                                 
   4b93e:	8081           	orl %d1,%d0                                 
   4b940:	46c0           	movew %d0,%sr                               
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
   4b942:	0804 000a      	btst #10,%d4                                
   4b946:	6740           	beqs 4b988 <rtems_task_mode+0xe8>           
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
   4b948:	4281           	clrl %d1                                    
   4b94a:	122a 0008      	moveb %a2@(8),%d1                           
   4b94e:	4282           	clrl %d2                                    
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
   4b950:	0803 000a      	btst #10,%d3                                
   4b954:	57c0           	seq %d0                                     
   4b956:	4480           	negl %d0                                    
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
   4b958:	1400           	moveb %d0,%d2                               
   4b95a:	b282           	cmpl %d2,%d1                                
   4b95c:	672a           	beqs 4b988 <rtems_task_mode+0xe8>           
      asr->is_enabled = is_asr_enabled;                               
   4b95e:	1540 0008      	moveb %d0,%a2@(8)                           
)                                                                     
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
   4b962:	203c 0000 0700 	movel #1792,%d0                             
   4b968:	40c1           	movew %sr,%d1                               
   4b96a:	8081           	orl %d1,%d0                                 
   4b96c:	46c0           	movew %d0,%sr                               
    _signals                     = information->signals_pending;      
   4b96e:	202a 0016      	movel %a2@(22),%d0                          
    information->signals_pending = information->signals_posted;       
   4b972:	256a 0012 0016 	movel %a2@(18),%a2@(22)                     
    information->signals_posted  = _signals;                          
   4b978:	2540 0012      	movel %d0,%a2@(18)                          
  _ISR_Enable( _level );                                              
   4b97c:	46c1           	movew %d1,%sr                               
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
   4b97e:	4aaa 0012      	tstl %a2@(18)                               
   4b982:	56c0           	sne %d0                                     
   4b984:	4480           	negl %d0                                    
   4b986:	6002           	bras 4b98a <rtems_task_mode+0xea>           
   4b988:	4200           	clrb %d0                                    
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
   4b98a:	7203           	moveq #3,%d1                                
   4b98c:	b2b9 0005 d6a0 	cmpl 5d6a0 <_System_state_Current>,%d1      
   4b992:	662c           	bnes 4b9c0 <rtems_task_mode+0x120>          
  bool are_signals_pending                                            
)                                                                     
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
   4b994:	2079 0005 d6f4 	moveal 5d6f4 <_Per_CPU_Information+0xc>,%a0 
                                                                      
  if ( are_signals_pending ||                                         
   4b99a:	4a00           	tstb %d0                                    
   4b99c:	660e           	bnes 4b9ac <rtems_task_mode+0x10c>          
   4b99e:	b1f9 0005 d6f8 	cmpal 5d6f8 <_Per_CPU_Information+0x10>,%a0 
   4b9a4:	671a           	beqs 4b9c0 <rtems_task_mode+0x120>          
       (!_Thread_Is_heir( executing ) && executing->is_preemptible) ) {
   4b9a6:	4a28 0074      	tstb %a0@(116)                              
   4b9aa:	6714           	beqs 4b9c0 <rtems_task_mode+0x120>          <== NEVER TAKEN
    _Thread_Dispatch_necessary = true;                                
   4b9ac:	7001           	moveq #1,%d0                                
   4b9ae:	13c0 0005 d700 	moveb %d0,5d700 <_Per_CPU_Information+0x18> 
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
   4b9b4:	4eb9 0004 78f8 	jsr 478f8 <_Thread_Dispatch>                
   4b9ba:	6004           	bras 4b9c0 <rtems_task_mode+0x120>          
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4b9bc:	7009           	moveq #9,%d0                                
   4b9be:	6002           	bras 4b9c2 <rtems_task_mode+0x122>          
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4b9c0:	4280           	clrl %d0                                    
}                                                                     
   4b9c2:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            
   4b9c8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004952c <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
   4952c:	4e56 fffc      	linkw %fp,#-4                               
   49530:	2f0a           	movel %a2,%sp@-                             
   49532:	246e 0010      	moveal %fp@(16),%a2                         
   49536:	2f02           	movel %d2,%sp@-                             
   49538:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
   4953c:	670c           	beqs 4954a <rtems_task_set_priority+0x1e>   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
   4953e:	4280           	clrl %d0                                    
   49540:	1039 0005 f572 	moveb 5f572 <rtems_maximum_priority>,%d0    
   49546:	b082           	cmpl %d2,%d0                                
   49548:	654e           	bcss 49598 <rtems_task_set_priority+0x6c>   
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
   4954a:	4a8a           	tstl %a2                                    
   4954c:	674e           	beqs 4959c <rtems_task_set_priority+0x70>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   4954e:	486e fffc      	pea %fp@(-4)                                
   49552:	2f2e 0008      	movel %fp@(8),%sp@-                         
   49556:	4eb9 0004 b4f4 	jsr 4b4f4 <_Thread_Get>                     
  switch ( location ) {                                               
   4955c:	508f           	addql #8,%sp                                
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   4955e:	2040           	moveal %d0,%a0                              
  switch ( location ) {                                               
   49560:	4aae fffc      	tstl %fp@(-4)                               
   49564:	663a           	bnes 495a0 <rtems_task_set_priority+0x74>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
   49566:	24a8 0014      	movel %a0@(20),%a2@                         
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
   4956a:	4a82           	tstl %d2                                    
   4956c:	6720           	beqs 4958e <rtems_task_set_priority+0x62>   
        the_thread->real_priority = new_priority;                     
   4956e:	2142 0018      	movel %d2,%a0@(24)                          
        if ( the_thread->resource_count == 0 ||                       
   49572:	4aa8 001c      	tstl %a0@(28)                               
   49576:	6706           	beqs 4957e <rtems_task_set_priority+0x52>   
   49578:	b4a8 0014      	cmpl %a0@(20),%d2                           
   4957c:	6410           	bccs 4958e <rtems_task_set_priority+0x62>   <== ALWAYS TAKEN
             the_thread->current_priority > new_priority )            
          _Thread_Change_priority( the_thread, new_priority, false ); 
   4957e:	42a7           	clrl %sp@-                                  
   49580:	2f02           	movel %d2,%sp@-                             
   49582:	2f08           	movel %a0,%sp@-                             
   49584:	4eb9 0004 b0b0 	jsr 4b0b0 <_Thread_Change_priority>         
   4958a:	4fef 000c      	lea %sp@(12),%sp                            
      }                                                               
      _Thread_Enable_dispatch();                                      
   4958e:	4eb9 0004 b4ce 	jsr 4b4ce <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   49594:	4280           	clrl %d0                                    
   49596:	600a           	bras 495a2 <rtems_task_set_priority+0x76>   
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
   49598:	7013           	moveq #19,%d0                               
   4959a:	6006           	bras 495a2 <rtems_task_set_priority+0x76>   
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
   4959c:	7009           	moveq #9,%d0                                
   4959e:	6002           	bras 495a2 <rtems_task_set_priority+0x76>   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   495a0:	7004           	moveq #4,%d0                                
}                                                                     
   495a2:	242e fff4      	movel %fp@(-12),%d2                         
   495a6:	246e fff8      	moveal %fp@(-8),%a2                         
   495aa:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000468d4 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
   468d4:	4e56 fffc      	linkw %fp,#-4                               
   468d8:	2f0a           	movel %a2,%sp@-                             
   468da:	246e 0010      	moveal %fp@(16),%a2                         
   468de:	2f02           	movel %d2,%sp@-                             
   468e0:	242e 000c      	movel %fp@(12),%d2                          
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
   468e4:	6742           	beqs 46928 <rtems_task_variable_get+0x54>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
   468e6:	4a8a           	tstl %a2                                    
   468e8:	673e           	beqs 46928 <rtems_task_variable_get+0x54>   <== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
   468ea:	486e fffc      	pea %fp@(-4)                                
   468ee:	2f2e 0008      	movel %fp@(8),%sp@-                         
   468f2:	4eb9 0004 8634 	jsr 48634 <_Thread_Get>                     
  switch (location) {                                                 
   468f8:	508f           	addql #8,%sp                                
   468fa:	4aae fffc      	tstl %fp@(-4)                               
   468fe:	662c           	bnes 4692c <rtems_task_variable_get+0x58>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
   46900:	2240           	moveal %d0,%a1                              
   46902:	2069 0108      	moveal %a1@(264),%a0                        
      while (tvp) {                                                   
   46906:	6016           	bras 4691e <rtems_task_variable_get+0x4a>   
        if (tvp->ptr == ptr) {                                        
   46908:	b4a8 0004      	cmpl %a0@(4),%d2                            
   4690c:	660e           	bnes 4691c <rtems_task_variable_get+0x48>   
	  /*                                                                 
	   * Should this return the current (i.e not the                     
	   * saved) value if `tid' is the current task?                      
	   */                                                                
          *result = tvp->tval;                                        
   4690e:	24a8 000c      	movel %a0@(12),%a2@                         
          _Thread_Enable_dispatch();                                  
   46912:	4eb9 0004 860e 	jsr 4860e <_Thread_Enable_dispatch>         
          return RTEMS_SUCCESSFUL;                                    
   46918:	4280           	clrl %d0                                    
   4691a:	6012           	bras 4692e <rtems_task_variable_get+0x5a>   
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
   4691c:	2050           	moveal %a0@,%a0                             
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
   4691e:	4a88           	tstl %a0                                    
   46920:	66e6           	bnes 46908 <rtems_task_variable_get+0x34>   
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
   46922:	4eb9 0004 860e 	jsr 4860e <_Thread_Enable_dispatch>         
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
   46928:	7009           	moveq #9,%d0                                
   4692a:	6002           	bras 4692e <rtems_task_variable_get+0x5a>   
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
   4692c:	7004           	moveq #4,%d0                                
}                                                                     
   4692e:	242e fff4      	movel %fp@(-12),%d2                         
   46932:	246e fff8      	moveal %fp@(-8),%a2                         
   46936:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004692c <rtems_task_wake_when>: */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) {
   4692c:	4e56 0000      	linkw %fp,#0                                
   46930:	2f0a           	movel %a2,%sp@-                             
   46932:	246e 0008      	moveal %fp@(8),%a2                          
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
   46936:	4a39 0005 eb20 	tstb 5eb20 <_TOD_Is_set>                    
   4693c:	6700 0096      	beqw 469d4 <rtems_task_wake_when+0xa8>      
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
   46940:	4a8a           	tstl %a2                                    
   46942:	6700 0094      	beqw 469d8 <rtems_task_wake_when+0xac>      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
   46946:	42aa 0018      	clrl %a2@(24)                               
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
   4694a:	2f0a           	movel %a2,%sp@-                             
   4694c:	4eb9 0004 5de0 	jsr 45de0 <_TOD_Validate>                   
   46952:	588f           	addql #4,%sp                                
   46954:	4a00           	tstb %d0                                    
   46956:	6700 0084      	beqw 469dc <rtems_task_wake_when+0xb0>      
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
   4695a:	2f0a           	movel %a2,%sp@-                             
   4695c:	4eb9 0004 5d44 	jsr 45d44 <_TOD_To_seconds>                 
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   46962:	588f           	addql #4,%sp                                
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
   46964:	2440           	moveal %d0,%a2                              
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   46966:	b0b9 0005 eb9a 	cmpl 5eb9a <_TOD_Now>,%d0                   
   4696c:	636e           	blss 469dc <rtems_task_wake_when+0xb0>      <== NEVER TAKEN
   4696e:	2039 0005 eb10 	movel 5eb10 <_Thread_Dispatch_disable_level>,%d0
   46974:	5280           	addql #1,%d0                                
   46976:	23c0 0005 eb10 	movel %d0,5eb10 <_Thread_Dispatch_disable_level>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
   4697c:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   46980:	2f39 0005 ecac 	movel 5ecac <_Per_CPU_Information+0xc>,%sp@-
   46986:	4eb9 0004 8dc4 	jsr 48dc4 <_Thread_Set_state>               
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
   4698c:	2079 0005 ecac 	moveal 5ecac <_Per_CPU_Information+0xc>,%a0 
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
   46992:	95f9 0005 eb9a 	subal 5eb9a <_TOD_Now>,%a2                  
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   46998:	223c 0004 84e4 	movel #296164,%d1                           
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
    _Watchdog_Initialize(                                             
   4699e:	2028 0008      	movel %a0@(8),%d0                           
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   469a2:	42a8 0050      	clrl %a0@(80)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   469a6:	2140 0068      	movel %d0,%a0@(104)                         
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   469aa:	2141 0064      	movel %d1,%a0@(100)                         
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   469ae:	42a8 006c      	clrl %a0@(108)                              
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
   469b2:	214a 0054      	movel %a2,%a0@(84)                          
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
   469b6:	4868 0048      	pea %a0@(72)                                
   469ba:	4879 0005 ebc4 	pea 5ebc4 <_Watchdog_Seconds_chain>         
   469c0:	4eb9 0004 9314 	jsr 49314 <_Watchdog_Insert>                
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
   469c6:	4eb9 0004 865e 	jsr 4865e <_Thread_Enable_dispatch>         
  return RTEMS_SUCCESSFUL;                                            
   469cc:	4fef 0010      	lea %sp@(16),%sp                            
   469d0:	4280           	clrl %d0                                    
   469d2:	600a           	bras 469de <rtems_task_wake_when+0xb2>      
)                                                                     
{                                                                     
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   469d4:	700b           	moveq #11,%d0                               
   469d6:	6006           	bras 469de <rtems_task_wake_when+0xb2>      
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
   469d8:	7009           	moveq #9,%d0                                
   469da:	6002           	bras 469de <rtems_task_wake_when+0xb2>      
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
   469dc:	7014           	moveq #20,%d0                               
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   469de:	246e fffc      	moveal %fp@(-4),%a2                         
   469e2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00051c5c <rtems_timer_cancel>: */ rtems_status_code rtems_timer_cancel( rtems_id id ) {
   51c5c:	4e56 fffc      	linkw %fp,#-4                               
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
   51c60:	486e fffc      	pea %fp@(-4)                                
   51c64:	2f2e 0008      	movel %fp@(8),%sp@-                         
   51c68:	4879 0007 6168 	pea 76168 <_Timer_Information>              
   51c6e:	4eb9 0005 45ac 	jsr 545ac <_Objects_Get>                    
  Timer_Control   *the_timer;                                         
  Objects_Locations       location;                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51c74:	4fef 000c      	lea %sp@(12),%sp                            
   51c78:	4aae fffc      	tstl %fp@(-4)                               
   51c7c:	6620           	bnes 51c9e <rtems_timer_cancel+0x42>        
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Timer_Is_dormant_class( the_timer->the_class ) )         
   51c7e:	7204           	moveq #4,%d1                                
   51c80:	2040           	moveal %d0,%a0                              
   51c82:	b2a8 0038      	cmpl %a0@(56),%d1                           
   51c86:	670c           	beqs 51c94 <rtems_timer_cancel+0x38>        <== NEVER TAKEN
        (void) _Watchdog_Remove( &the_timer->Ticker );                
   51c88:	4868 0010      	pea %a0@(16)                                
   51c8c:	4eb9 0005 60b4 	jsr 560b4 <_Watchdog_Remove>                
   51c92:	588f           	addql #4,%sp                                
      _Thread_Enable_dispatch();                                      
   51c94:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   51c9a:	4280           	clrl %d0                                    
   51c9c:	6002           	bras 51ca0 <rtems_timer_cancel+0x44>        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   51c9e:	7004           	moveq #4,%d0                                
}                                                                     
   51ca0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00051f98 <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( rtems_id id ) {
   51f98:	4e56 fffc      	linkw %fp,#-4                               
   51f9c:	2f0b           	movel %a3,%sp@-                             
   51f9e:	2f0a           	movel %a2,%sp@-                             
   51fa0:	486e fffc      	pea %fp@(-4)                                
   51fa4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   51fa8:	4879 0007 6168 	pea 76168 <_Timer_Information>              
   51fae:	4eb9 0005 45ac 	jsr 545ac <_Objects_Get>                    
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51fb4:	4fef 000c      	lea %sp@(12),%sp                            
   51fb8:	2440           	moveal %d0,%a2                              
   51fba:	4aae fffc      	tstl %fp@(-4)                               
   51fbe:	6656           	bnes 52016 <rtems_timer_reset+0x7e>         <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
   51fc0:	202a 0038      	movel %a2@(56),%d0                          
   51fc4:	661c           	bnes 51fe2 <rtems_timer_reset+0x4a>         
        _Watchdog_Remove( &the_timer->Ticker );                       
   51fc6:	45ea 0010      	lea %a2@(16),%a2                            
   51fca:	2f0a           	movel %a2,%sp@-                             
   51fcc:	4eb9 0005 60b4 	jsr 560b4 <_Watchdog_Remove>                
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
   51fd2:	2f0a           	movel %a2,%sp@-                             
   51fd4:	4879 0007 6014 	pea 76014 <_Watchdog_Ticks_chain>           
   51fda:	4eb9 0005 5f8c 	jsr 55f8c <_Watchdog_Insert>                
   51fe0:	6020           	bras 52002 <rtems_timer_reset+0x6a>         
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
   51fe2:	7201           	moveq #1,%d1                                
   51fe4:	b280           	cmpl %d0,%d1                                
   51fe6:	6622           	bnes 5200a <rtems_timer_reset+0x72>         <== NEVER TAKEN
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
   51fe8:	486a 0010      	pea %a2@(16)                                
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
        _Watchdog_Remove( &the_timer->Ticker );                       
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
        Timer_server_Control *timer_server = _Timer_server;           
   51fec:	2679 0007 61a0 	moveal 761a0 <_Timer_server>,%a3            
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
   51ff2:	4eb9 0005 60b4 	jsr 560b4 <_Watchdog_Remove>                
        (*timer_server->schedule_operation)( timer_server, the_timer );
   51ff8:	2f0a           	movel %a2,%sp@-                             
   51ffa:	2f0b           	movel %a3,%sp@-                             
   51ffc:	206b 0004      	moveal %a3@(4),%a0                          
   52000:	4e90           	jsr %a0@                                    
   52002:	4fef 000c      	lea %sp@(12),%sp                            
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
   52006:	95ca           	subal %a2,%a2                               
   52008:	6004           	bras 5200e <rtems_timer_reset+0x76>         
        /*                                                            
         *  Must be dormant or time of day timer (e.g. TIMER_DORMANT, 
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
   5200a:	347c 000b      	moveaw #11,%a2                              
      }                                                               
      _Thread_Enable_dispatch();                                      
   5200e:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return status;                                                  
   52014:	6004           	bras 5201a <rtems_timer_reset+0x82>         
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   52016:	347c 0004      	moveaw #4,%a2                               
}                                                                     
   5201a:	200a           	movel %a2,%d0                               
   5201c:	246e fff4      	moveal %fp@(-12),%a2                        
   52020:	266e fff8      	moveal %fp@(-8),%a3                         
   52024:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000520e4 <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
   520e4:	4e56 ffe8      	linkw %fp,#-24                              
   520e8:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   520ec:	262e 0008      	movel %fp@(8),%d3                           
   520f0:	242e 000c      	movel %fp@(12),%d2                          
   520f4:	282e 0010      	movel %fp@(16),%d4                          
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
   520f8:	2679 0007 61a0 	moveal 761a0 <_Timer_server>,%a3            
                                                                      
  if ( !timer_server )                                                
   520fe:	4a8b           	tstl %a3                                    
   52100:	6700 0098      	beqw 5219a <rtems_timer_server_fire_when+0xb6>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   52104:	4a39 0007 5f64 	tstb 75f64 <_TOD_Is_set>                    
   5210a:	6700 0092      	beqw 5219e <rtems_timer_server_fire_when+0xba>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
   5210e:	4a84           	tstl %d4                                    
   52110:	6700 0090      	beqw 521a2 <rtems_timer_server_fire_when+0xbe>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
   52114:	2f02           	movel %d2,%sp@-                             
   52116:	4eb9 0004 f5a4 	jsr 4f5a4 <_TOD_Validate>                   
   5211c:	588f           	addql #4,%sp                                
   5211e:	4a00           	tstb %d0                                    
   52120:	6700 0084      	beqw 521a6 <rtems_timer_server_fire_when+0xc2>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   52124:	2f02           	movel %d2,%sp@-                             
   52126:	4eb9 0004 f508 	jsr 4f508 <_TOD_To_seconds>                 
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   5212c:	588f           	addql #4,%sp                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   5212e:	2400           	movel %d0,%d2                               
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   52130:	b0b9 0007 5fde 	cmpl 75fde <_TOD_Now>,%d0                   
   52136:	636e           	blss 521a6 <rtems_timer_server_fire_when+0xc2>
   52138:	486e fffc      	pea %fp@(-4)                                
   5213c:	2f03           	movel %d3,%sp@-                             
   5213e:	4879 0007 6168 	pea 76168 <_Timer_Information>              
   52144:	4eb9 0005 45ac 	jsr 545ac <_Objects_Get>                    
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   5214a:	4fef 000c      	lea %sp@(12),%sp                            
   5214e:	2440           	moveal %d0,%a2                              
   52150:	4aae fffc      	tstl %fp@(-4)                               
   52154:	6654           	bnes 521aa <rtems_timer_server_fire_when+0xc6>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   52156:	486a 0010      	pea %a2@(16)                                
   5215a:	4eb9 0005 60b4 	jsr 560b4 <_Watchdog_Remove>                
  the_watchdog->user_data = user_data;                                
   52160:	256e 0014 0034 	movel %fp@(20),%a2@(52)                     
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   52166:	94b9 0007 5fde 	subl 75fde <_TOD_Now>,%d2                   
  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;               
   5216c:	7003           	moveq #3,%d0                                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   5216e:	42aa 0018      	clrl %a2@(24)                               
   52172:	2540 0038      	movel %d0,%a2@(56)                          
  the_watchdog->routine   = routine;                                  
   52176:	2544 002c      	movel %d4,%a2@(44)                          
  the_watchdog->id        = id;                                       
   5217a:	2543 0030      	movel %d3,%a2@(48)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   5217e:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
   52182:	2f0a           	movel %a2,%sp@-                             
   52184:	2f0b           	movel %a3,%sp@-                             
   52186:	206b 0004      	moveal %a3@(4),%a0                          
   5218a:	4e90           	jsr %a0@                                    
                                                                      
      _Thread_Enable_dispatch();                                      
   5218c:	4eb9 0005 5122 	jsr 55122 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   52192:	4fef 000c      	lea %sp@(12),%sp                            
   52196:	4280           	clrl %d0                                    
   52198:	6012           	bras 521ac <rtems_timer_server_fire_when+0xc8>
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
   5219a:	700e           	moveq #14,%d0                               
   5219c:	600e           	bras 521ac <rtems_timer_server_fire_when+0xc8>
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   5219e:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   521a0:	600a           	bras 521ac <rtems_timer_server_fire_when+0xc8><== NOT EXECUTED
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
   521a2:	7009           	moveq #9,%d0                                
   521a4:	6006           	bras 521ac <rtems_timer_server_fire_when+0xc8>
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
   521a6:	7014           	moveq #20,%d0                               
   521a8:	6002           	bras 521ac <rtems_timer_server_fire_when+0xc8>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   521aa:	7004           	moveq #4,%d0                                
}                                                                     
   521ac:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            
   521b2:	4e5e           	unlk %fp                                    
	...