RTEMS 4.10
Annotated Report
Tue Feb 8 23:57:29 2011

000460d0 <_API_Mutex_Unlock>:                                         
#include <rtems/score/apimutex.h>                                     
                                                                      
void _API_Mutex_Unlock(                                               
  API_Mutex_Control *the_mutex                                        
)                                                                     
{                                                                     
   460d0:	4e56 0000      	linkw %fp,#0                                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   460d4:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   460da:	5280           	addql #1,%d0                                
   460dc:	206e 0008      	moveal %fp@(8),%a0                          
   460e0:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
  _Thread_Disable_dispatch();                                         
    _CORE_mutex_Surrender(                                            
   460e6:	42a7           	clrl %sp@-                                  
   460e8:	2f28 0008      	movel %a0@(8),%sp@-                         
   460ec:	4868 0010      	pea %a0@(16)                                
   460f0:	4eb9 0004 6358 	jsr 46358 <_CORE_mutex_Surrender>           
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   460f6:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   460fa:	4e5e           	unlk %fp                                    
    _CORE_mutex_Surrender(                                            
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   460fc:	4ef9 0004 7632 	jmp 47632 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

0004ad78 <_CORE_barrier_Wait>: Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level );
   4ad78:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4ad7e:	4e56 fff4      	linkw %fp,#-12                              
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
   4ad82:	2279 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a1        
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4ad88:	48d7 001c      	moveml %d2-%d4,%sp@                         
   4ad8c:	242e 000c      	movel %fp@(12),%d2                          
   4ad90:	262e 0014      	movel %fp@(20),%d3                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
   4ad94:	42a9 0034      	clrl %a1@(52)                               
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4ad98:	206e 0008      	moveal %fp@(8),%a0                          
   4ad9c:	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 );                                              
   4ada0:	40c1           	movew %sr,%d1                               
   4ada2:	8081           	orl %d1,%d0                                 
   4ada4:	46c0           	movew %d0,%sr                               
  the_barrier->number_of_waiting_threads++;                           
   4ada6:	2028 0048      	movel %a0@(72),%d0                          
   4adaa:	5280           	addql #1,%d0                                
   4adac:	2140 0048      	movel %d0,%a0@(72)                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
   4adb0:	4aa8 0040      	tstl %a0@(64)                               
   4adb4:	6626           	bnes 4addc <_CORE_barrier_Wait+0x64>        
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
   4adb6:	b0a8 0044      	cmpl %a0@(68),%d0                           
   4adba:	6620           	bnes 4addc <_CORE_barrier_Wait+0x64>        
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
   4adbc:	7001           	moveq #1,%d0                                
   4adbe:	2340 0034      	movel %d0,%a1@(52)                          
      _ISR_Enable( level );                                           
   4adc2:	46c1           	movew %d1,%sr                               
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   4adc4:	2d44 0010      	movel %d4,%fp@(16)                          
   4adc8:	2d42 000c      	movel %d2,%fp@(12)                          
   4adcc:	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 );         
}                                                                     
   4add0:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4add4:	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 );
   4add6:	4ef9 0004 ad44 	jmp 4ad44 <_CORE_barrier_Release>           
   4addc:	7001           	moveq #1,%d0                                
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
   4adde:	2342 0020      	movel %d2,%a1@(32)                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
   4ade2:	2348 0044      	movel %a0,%a1@(68)                          
   4ade6:	2140 0030      	movel %d0,%a0@(48)                          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
   4adea:	46c1           	movew %d1,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   4adec:	2d43 000c      	movel %d3,%fp@(12)                          
   4adf0:	203c 0004 7d90 	movel #294288,%d0                           
   4adf6:	2d48 0008      	movel %a0,%fp@(8)                           
   4adfa:	2d40 0010      	movel %d0,%fp@(16)                          
}                                                                     
   4adfe:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   4ae02:	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 );         
   4ae04:	4ef9 0004 7aa4 	jmp 47aa4 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

000528e4 <_CORE_message_queue_Broadcast>: Objects_Id id __attribute__((unused)), CORE_message_queue_API_mp_support_callout api_message_queue_mp_support __attribute__((unused)), #endif uint32_t *count ) {
   528e4:	4e56 ffe0      	linkw %fp,#-32                              
   528e8:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   528ec:	246e 0008      	moveal %fp@(8),%a2                          
   528f0:	2a2e 000c      	movel %fp@(12),%d5                          
   528f4:	262e 0010      	movel %fp@(16),%d3                          
   528f8:	286e 001c      	moveal %fp@(28),%a4                         
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
   528fc:	b6aa 004c      	cmpl %a2@(76),%d3                           
   52900:	6304           	blss 52906 <_CORE_message_queue_Broadcast+0x22><== ALWAYS TAKEN
   52902:	7001           	moveq #1,%d0                                <== NOT EXECUTED
   52904:	6042           	bras 52948 <_CORE_message_queue_Broadcast+0x64><== NOT EXECUTED
   *  NOTE: This check is critical because threads can block on       
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
   52906:	4aaa 0048      	tstl %a2@(72)                               
   5290a:	6610           	bnes 5291c <_CORE_message_queue_Broadcast+0x38>
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   5290c:	4282           	clrl %d2                                    
   5290e:	283c 0005 4b58 	movel #346968,%d4                           
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   52914:	4bf9 0005 a8e0 	lea 5a8e0 <memcpy>,%a5                      
   5291a:	601a           	bras 52936 <_CORE_message_queue_Broadcast+0x52>
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
    *count = 0;                                                       
   5291c:	4294           	clrl %a4@                                   
   5291e:	6026           	bras 52946 <_CORE_message_queue_Broadcast+0x62>
   52920:	2f03           	movel %d3,%sp@-                             
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
    waitp = &the_thread->Wait;                                        
    number_broadcasted += 1;                                          
   52922:	5282           	addql #1,%d2                                
   52924:	2f05           	movel %d5,%sp@-                             
   52926:	2f2b 002c      	movel %a3@(44),%sp@-                        
   5292a:	4e95           	jsr %a5@                                    
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
   5292c:	206b 0028      	moveal %a3@(40),%a0                         
   52930:	4fef 000c      	lea %sp@(12),%sp                            
   52934:	2083           	movel %d3,%a0@                              
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   52936:	2f0a           	movel %a2,%sp@-                             
   52938:	2044           	moveal %d4,%a0                              
   5293a:	4e90           	jsr %a0@                                    
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
   5293c:	588f           	addql #4,%sp                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
   5293e:	2640           	moveal %d0,%a3                              
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
   52940:	4a80           	tstl %d0                                    
   52942:	66dc           	bnes 52920 <_CORE_message_queue_Broadcast+0x3c>
      if ( !_Objects_Is_local_id( the_thread->Object.id ) )           
        (*api_message_queue_mp_support) ( the_thread, id );           
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
   52944:	2882           	movel %d2,%a4@                              
   52946:	4280           	clrl %d0                                    
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
   52948:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   5294e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004e2e0 <_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)) {
   4e2e0:	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                 
)                                                                     
{                                                                     
   4e2e2:	4e56 fff4      	linkw %fp,#-12                              
   4e2e6:	222e 0014      	movel %fp@(20),%d1                          
   4e2ea:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4e2ee:	246e 0008      	moveal %fp@(8),%a2                          
   4e2f2:	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)) {              
   4e2f6:	c081           	andl %d1,%d0                                
)                                                                     
{                                                                     
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
   4e2f8:	2542 0044      	movel %d2,%a2@(68)                          
  the_message_queue->number_of_pending_messages = 0;                  
   4e2fc:	42aa 0048      	clrl %a2@(72)                               
  the_message_queue->maximum_message_size       = maximum_message_size;
   4e300:	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)) {              
   4e304:	4a80           	tstl %d0                                    
   4e306:	6604           	bnes 4e30c <_CORE_message_queue_Initialize+0x2c>
   4e308:	2001           	movel %d1,%d0                               
   4e30a:	600c           	bras 4e318 <_CORE_message_queue_Initialize+0x38>
    allocated_message_size += sizeof(uint32_t);                       
   4e30c:	2001           	movel %d1,%d0                               
   4e30e:	5880           	addql #4,%d0                                
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
   4e310:	76fc           	moveq #-4,%d3                               
   4e312:	c083           	andl %d3,%d0                                
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
   4e314:	b280           	cmpl %d0,%d1                                
   4e316:	626e           	bhis 4e386 <_CORE_message_queue_Initialize+0xa6><== NEVER TAKEN
  /*                                                                  
   *  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));
   4e318:	2600           	movel %d0,%d3                               
   4e31a:	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 *    
   4e320:	2203           	movel %d3,%d1                               
   4e322:	4c02 1800      	mulsl %d2,%d1                               
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
   4e326:	b081           	cmpl %d1,%d0                                
   4e328:	625c           	bhis 4e386 <_CORE_message_queue_Initialize+0xa6><== NEVER TAKEN
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
   4e32a:	2f01           	movel %d1,%sp@-                             
   4e32c:	4eb9 0005 0bc8 	jsr 50bc8 <_Workspace_Allocate>             
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e332:	588f           	addql #4,%sp                                
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
   4e334:	2540 005c      	movel %d0,%a2@(92)                          
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e338:	674c           	beqs 4e386 <_CORE_message_queue_Initialize+0xa6>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
   4e33a:	2f03           	movel %d3,%sp@-                             
   4e33c:	2f02           	movel %d2,%sp@-                             
   4e33e:	2f00           	movel %d0,%sp@-                             
   4e340:	486a 0060      	pea %a2@(96)                                
   4e344:	4eb9 0005 3118 	jsr 53118 <_Chain_Initialize>               
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
   4e34a:	4878 0006      	pea 6 <EXTENDSFDF>                          
   4e34e:	7001           	moveq #1,%d0                                
   4e350:	206e 000c      	moveal %fp@(12),%a0                         
   4e354:	b090           	cmpl %a0@,%d0                               
   4e356:	57c0           	seq %d0                                     
   4e358:	4878 0080      	pea 80 <DBL_MANT_DIG+0x4b>                  
   4e35c:	49c0           	extbl %d0                                   
   4e35e:	4480           	negl %d0                                    
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   4e360:	41ea 0054      	lea %a2@(84),%a0                            
   4e364:	2f00           	movel %d0,%sp@-                             
   4e366:	2548 0050      	movel %a0,%a2@(80)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   4e36a:	41ea 0050      	lea %a2@(80),%a0                            
   4e36e:	2548 0058      	movel %a0,%a2@(88)                          
   4e372:	2f0a           	movel %a2,%sp@-                             
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
  the_chain->permanent_null = NULL;                                   
   4e374:	42aa 0054      	clrl %a2@(84)                               
   4e378:	4eb9 0005 0110 	jsr 50110 <_Thread_queue_Initialize>        
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
   4e37e:	4fef 0020      	lea %sp@(32),%sp                            
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
   4e382:	7001           	moveq #1,%d0                                
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
   4e384:	6002           	bras 4e388 <_CORE_message_queue_Initialize+0xa8>
   4e386:	4200           	clrb %d0                                    
}                                                                     
   4e388:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   4e38e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004e394 <_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 );
   4e394:	223c 0000 0700 	movel #1792,%d1                             
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e39a:	4e56 ffe0      	linkw %fp,#-32                              
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
   4e39e:	2079 0006 69ae 	moveal 669ae <_Thread_Executing>,%a0        
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e3a4:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4e3a8:	282e 000c      	movel %fp@(12),%d4                          
   4e3ac:	262e 001c      	movel %fp@(28),%d3                          
   4e3b0:	246e 0008      	moveal %fp@(8),%a2                          
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
   4e3b4:	42a8 0034      	clrl %a0@(52)                               
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e3b8:	242e 0010      	movel %fp@(16),%d2                          
   4e3bc:	226e 0014      	moveal %fp@(20),%a1                         
   4e3c0:	1a2e 001b      	moveb %fp@(27),%d5                          
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
   4e3c4:	40c0           	movew %sr,%d0                               
   4e3c6:	8280           	orl %d0,%d1                                 
   4e3c8:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4e3ca:	220a           	movel %a2,%d1                               
   4e3cc:	0681 0000 0054 	addil #84,%d1                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   4e3d2:	266a 0050      	moveal %a2@(80),%a3                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   4e3d6:	b28b           	cmpl %a3,%d1                                
   4e3d8:	6752           	beqs 4e42c <_CORE_message_queue_Seize+0x98> 
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   4e3da:	2853           	moveal %a3@,%a4                             
  the_chain->first    = new_first;                                    
  new_first->previous = _Chain_Head(the_chain);                       
   4e3dc:	4bea 0050      	lea %a2@(80),%a5                            
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
  the_chain->first    = new_first;                                    
   4e3e0:	254c 0050      	movel %a4,%a2@(80)                          
  new_first->previous = _Chain_Head(the_chain);                       
   4e3e4:	294d 0004      	movel %a5,%a4@(4)                           
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   4e3e8:	4a8b           	tstl %a3                                    
   4e3ea:	6740           	beqs 4e42c <_CORE_message_queue_Seize+0x98> <== NEVER TAKEN
    the_message_queue->number_of_pending_messages -= 1;               
   4e3ec:	53aa 0048      	subql #1,%a2@(72)                           
    _ISR_Enable( level );                                             
   4e3f0:	46c0           	movew %d0,%sr                               
                                                                      
    *size_p = the_message->Contents.size;                             
   4e3f2:	22ab 0008      	movel %a3@(8),%a1@                          
    _Thread_Executing->Wait.count =                                   
   4e3f6:	2079 0006 69ae 	moveal 669ae <_Thread_Executing>,%a0        
   4e3fc:	42a8 0024      	clrl %a0@(36)                               
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e400:	2f11           	movel %a1@,%sp@-                            
   4e402:	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 );
   4e406:	45ea 0060      	lea %a2@(96),%a2                            
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e40a:	2f02           	movel %d2,%sp@-                             
   4e40c:	4eb9 0005 5b68 	jsr 55b68 <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 );
   4e412:	4fef 000c      	lea %sp@(12),%sp                            
   4e416:	2d4a 0008      	movel %a2,%fp@(8)                           
   4e41a:	2d4b 000c      	movel %a3,%fp@(12)                          
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e41e:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e424:	4e5e           	unlk %fp                                    
   4e426:	4ef9 0004 e21c 	jmp 4e21c <_Chain_Append>                   
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   4e42c:	4a05           	tstb %d5                                    
   4e42e:	6612           	bnes 4e442 <_CORE_message_queue_Seize+0xae> 
    _ISR_Enable( level );                                             
   4e430:	46c0           	movew %d0,%sr                               
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4e432:	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 );   
}                                                                     
   4e434:	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;
   4e43a:	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 );   
}                                                                     
   4e43e:	4e5e           	unlk %fp                                    
   4e440:	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;
   4e442:	7201           	moveq #1,%d1                                
   4e444:	2541 0030      	movel %d1,%a2@(48)                          
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
   4e448:	2149 0028      	movel %a1,%a0@(40)                          
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
   4e44c:	2142 002c      	movel %d2,%a0@(44)                          
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
   4e450:	2144 0020      	movel %d4,%a0@(32)                          
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
   4e454:	214a 0044      	movel %a2,%a0@(68)                          
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
   4e458:	46c0           	movew %d0,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4e45a:	4bf9 0005 01cc 	lea 501cc <_Thread_queue_Timeout>,%a5       
   4e460:	2d43 000c      	movel %d3,%fp@(12)                          
   4e464:	2d4d 0010      	movel %a5,%fp@(16)                          
   4e468:	2d4a 0008      	movel %a2,%fp@(8)                           
}                                                                     
   4e46c:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e472:	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 );   
   4e474:	4ef9 0004 fee0 	jmp 4fee0 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

000462b0 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
   462b0:	4e56 0000      	linkw %fp,#0                                
   462b4:	202e 0010      	movel %fp@(16),%d0                          
   462b8:	2f0a           	movel %a2,%sp@-                             
   462ba:	246e 0008      	moveal %fp@(8),%a2                          
   462be:	2f02           	movel %d2,%sp@-                             
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   462c0:	2239 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d1
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
   462c6:	1400           	moveb %d0,%d2                               
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   462c8:	4a81           	tstl %d1                                    
   462ca:	671c           	beqs 462e8 <_CORE_mutex_Seize+0x38>         
   462cc:	4a00           	tstb %d0                                    
   462ce:	6718           	beqs 462e8 <_CORE_mutex_Seize+0x38>         <== NEVER TAKEN
   462d0:	7001           	moveq #1,%d0                                
   462d2:	b0b9 0005 dd9e 	cmpl 5dd9e <_System_state_Current>,%d0      
   462d8:	640e           	bccs 462e8 <_CORE_mutex_Seize+0x38>         
   462da:	4878 0013      	pea 13 <INVALID_OPERATION+0x3>              
   462de:	42a7           	clrl %sp@-                                  
   462e0:	42a7           	clrl %sp@-                                  
   462e2:	4eb9 0004 68d4 	jsr 468d4 <_Internal_error_Occurred>        
   462e8:	486e 0018      	pea %fp@(24)                                
   462ec:	2f0a           	movel %a2,%sp@-                             
   462ee:	4eb9 0004 ae0c 	jsr 4ae0c <_CORE_mutex_Seize_interrupt_trylock>
   462f4:	508f           	addql #8,%sp                                
   462f6:	4a80           	tstl %d0                                    
   462f8:	6750           	beqs 4634a <_CORE_mutex_Seize+0x9a>         
   462fa:	4a02           	tstb %d2                                    
   462fc:	6614           	bnes 46312 <_CORE_mutex_Seize+0x62>         
   462fe:	202e 0018      	movel %fp@(24),%d0                          
   46302:	46c0           	movew %d0,%sr                               
   46304:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
   4630a:	7001           	moveq #1,%d0                                
   4630c:	2140 0034      	movel %d0,%a0@(52)                          
   46310:	6038           	bras 4634a <_CORE_mutex_Seize+0x9a>         
   46312:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   46318:	5280           	addql #1,%d0                                
   4631a:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
   46320:	216e 000c 0020 	movel %fp@(12),%a0@(32)                     
   46326:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
                                                                      
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;
   4632c:	7001           	moveq #1,%d0                                
   4632e:	214a 0044      	movel %a2,%a0@(68)                          
   46332:	2540 0030      	movel %d0,%a2@(48)                          
   46336:	202e 0018      	movel %fp@(24),%d0                          
   4633a:	46c0           	movew %d0,%sr                               
   4633c:	2f2e 0014      	movel %fp@(20),%sp@-                        
   46340:	2f0a           	movel %a2,%sp@-                             
   46342:	4eb9 0004 624c 	jsr 4624c <_CORE_mutex_Seize_interrupt_blocking>
   46348:	508f           	addql #8,%sp                                
}                                                                     
   4634a:	242e fff8      	movel %fp@(-8),%d2                          
   4634e:	246e fffc      	moveal %fp@(-4),%a2                         
   46352:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004ae0c <_CORE_mutex_Seize_interrupt_trylock>: #if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__) int _CORE_mutex_Seize_interrupt_trylock( CORE_mutex_Control *the_mutex, ISR_Level *level_p ) {
   4ae0c:	4e56 0000      	linkw %fp,#0                                
{                                                                     
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
   4ae10:	2279 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a1        
   4ae16:	2f0b           	movel %a3,%sp@-                             
   4ae18:	206e 0008      	moveal %fp@(8),%a0                          
   4ae1c:	2f0a           	movel %a2,%sp@-                             
   4ae1e:	246e 000c      	moveal %fp@(12),%a2                         
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
   4ae22:	42a9 0034      	clrl %a1@(52)                               
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
   4ae26:	4aa8 004e      	tstl %a0@(78)                               
   4ae2a:	6700 0098      	beqw 4aec4 <_CORE_mutex_Seize_interrupt_trylock+0xb8>
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
   4ae2e:	42a8 004e      	clrl %a0@(78)                               
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
   4ae32:	7201           	moveq #1,%d1                                
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
   4ae34:	2169 0008 005e 	movel %a1@(8),%a0@(94)                      
 */                                                                   
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(            
  CORE_mutex_Attributes *the_attribute                                
)                                                                     
{                                                                     
  return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
   4ae3a:	2028 0046      	movel %a0@(70),%d0                          
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
   4ae3e:	2141 0052      	movel %d1,%a0@(82)                          
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
   4ae42:	123c 0002      	moveb #2,%d1                                
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
   4ae46:	2149 005a      	movel %a1,%a0@(90)                          
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
   4ae4a:	b280           	cmpl %d0,%d1                                
   4ae4c:	6708           	beqs 4ae56 <_CORE_mutex_Seize_interrupt_trylock+0x4a>
   4ae4e:	123c 0003      	moveb #3,%d1                                
   4ae52:	b280           	cmpl %d0,%d1                                
   4ae54:	660a           	bnes 4ae60 <_CORE_mutex_Seize_interrupt_trylock+0x54>
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
   4ae56:	52a9 001c      	addql #1,%a1@(28)                           
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
   4ae5a:	7203           	moveq #3,%d1                                
   4ae5c:	b280           	cmpl %d0,%d1                                
   4ae5e:	6706           	beqs 4ae66 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
      _ISR_Enable( *level_p );                                        
   4ae60:	2012           	movel %a2@,%d0                              
   4ae62:	46c0           	movew %d0,%sr                               
   4ae64:	607c           	bras 4aee2 <_CORE_mutex_Seize_interrupt_trylock+0xd6>
       */                                                             
    {                                                                 
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
   4ae66:	2028 004a      	movel %a0@(74),%d0                          
      current = executing->current_priority;                          
   4ae6a:	2229 0014      	movel %a1@(20),%d1                          
      if ( current == ceiling ) {                                     
   4ae6e:	b081           	cmpl %d1,%d0                                
   4ae70:	6606           	bnes 4ae78 <_CORE_mutex_Seize_interrupt_trylock+0x6c>
        _ISR_Enable( *level_p );                                      
   4ae72:	2012           	movel %a2@,%d0                              
   4ae74:	46c0           	movew %d0,%sr                               
   4ae76:	606a           	bras 4aee2 <_CORE_mutex_Seize_interrupt_trylock+0xd6>
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
   4ae78:	b081           	cmpl %d1,%d0                                
   4ae7a:	642e           	bccs 4aeaa <_CORE_mutex_Seize_interrupt_trylock+0x9e>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   4ae7c:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   4ae82:	5280           	addql #1,%d0                                
   4ae84:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( *level_p );                                      
   4ae8a:	2012           	movel %a2@,%d0                              
   4ae8c:	46c0           	movew %d0,%sr                               
        _Thread_Change_priority(                                      
   4ae8e:	42a7           	clrl %sp@-                                  
   4ae90:	2f28 004a      	movel %a0@(74),%sp@-                        
   4ae94:	2f28 005a      	movel %a0@(90),%sp@-                        
   4ae98:	4eb9 0004 7138 	jsr 47138 <_Thread_Change_priority>         
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         false                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
   4ae9e:	4eb9 0004 7632 	jsr 47632 <_Thread_Enable_dispatch>         
   4aea4:	4fef 000c      	lea %sp@(12),%sp                            
   4aea8:	6038           	bras 4aee2 <_CORE_mutex_Seize_interrupt_trylock+0xd6>
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
   4aeaa:	7006           	moveq #6,%d0                                
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
   4aeac:	7201           	moveq #1,%d1                                
        );                                                            
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
   4aeae:	2340 0034      	movel %d0,%a1@(52)                          
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
        the_mutex->nest_count = 0;     /* undo locking above */       
   4aeb2:	42a8 0052      	clrl %a0@(82)                               
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
   4aeb6:	2141 004e      	movel %d1,%a0@(78)                          
        the_mutex->nest_count = 0;     /* undo locking above */       
        executing->resource_count--;   /* undo locking above */       
   4aeba:	53a9 001c      	subql #1,%a1@(28)                           
        _ISR_Enable( *level_p );                                      
   4aebe:	2012           	movel %a2@,%d0                              
   4aec0:	46c0           	movew %d0,%sr                               
   4aec2:	601e           	bras 4aee2 <_CORE_mutex_Seize_interrupt_trylock+0xd6>
  /*                                                                  
   *  At this point, we know the mutex was not available.  If this thread
   *  is the thread that has locked the mutex, let's see if we are allowed
   *  to nest access.                                                 
   */                                                                 
  if ( _Thread_Is_executing( the_mutex->holder ) ) {                  
   4aec4:	2668 005a      	moveal %a0@(90),%a3                         
   4aec8:	b3cb           	cmpal %a3,%a1                               
   4aeca:	6626           	bnes 4aef2 <_CORE_mutex_Seize_interrupt_trylock+0xe6>
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
   4aecc:	2028 0040      	movel %a0@(64),%d0                          
   4aed0:	6708           	beqs 4aeda <_CORE_mutex_Seize_interrupt_trylock+0xce>
   4aed2:	7201           	moveq #1,%d1                                
   4aed4:	b280           	cmpl %d0,%d1                                
   4aed6:	661a           	bnes 4aef2 <_CORE_mutex_Seize_interrupt_trylock+0xe6><== ALWAYS TAKEN
   4aed8:	600c           	bras 4aee6 <_CORE_mutex_Seize_interrupt_trylock+0xda><== NOT EXECUTED
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
   4aeda:	52a8 0052      	addql #1,%a0@(82)                           
        _ISR_Enable( *level_p );                                      
   4aede:	2012           	movel %a2@,%d0                              
   4aee0:	46c0           	movew %d0,%sr                               
   4aee2:	4280           	clrl %d0                                    
   4aee4:	600e           	bras 4aef4 <_CORE_mutex_Seize_interrupt_trylock+0xe8>
        return 0;                                                     
      case CORE_MUTEX_NESTING_IS_ERROR:                               
        executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED;
   4aee6:	7002           	moveq #2,%d0                                <== NOT EXECUTED
   4aee8:	2740 0034      	movel %d0,%a3@(52)                          <== NOT EXECUTED
        _ISR_Enable( *level_p );                                      
   4aeec:	2012           	movel %a2@,%d0                              <== NOT EXECUTED
   4aeee:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
   4aef0:	60f0           	bras 4aee2 <_CORE_mutex_Seize_interrupt_trylock+0xd6><== NOT EXECUTED
   4aef2:	7001           	moveq #1,%d0                                
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
   4aef4:	246e fff8      	moveal %fp@(-8),%a2                         
   4aef8:	266e fffc      	moveal %fp@(-4),%a3                         
   4aefc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000464a4 <_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 ) {
   464a4:	4e56 0000      	linkw %fp,#0                                
   464a8:	2f0a           	movel %a2,%sp@-                             
   464aa:	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)) ) {
   464ae:	2f0a           	movel %a2,%sp@-                             
   464b0:	4eb9 0004 7964 	jsr 47964 <_Thread_queue_Dequeue>           
   464b6:	588f           	addql #4,%sp                                
   464b8:	4a80           	tstl %d0                                    
   464ba:	6704           	beqs 464c0 <_CORE_semaphore_Surrender+0x1c> 
   464bc:	4280           	clrl %d0                                    
   464be:	6024           	bras 464e4 <_CORE_semaphore_Surrender+0x40> 
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      (*api_semaphore_mp_support) ( the_thread, id );                 
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
   464c0:	203c 0000 0700 	movel #1792,%d0                             
   464c6:	40c1           	movew %sr,%d1                               
   464c8:	8081           	orl %d1,%d0                                 
   464ca:	46c0           	movew %d0,%sr                               
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
   464cc:	202a 0048      	movel %a2@(72),%d0                          
   464d0:	b0aa 0040      	cmpl %a2@(64),%d0                           
   464d4:	6504           	bcss 464da <_CORE_semaphore_Surrender+0x36> <== ALWAYS TAKEN
   464d6:	7004           	moveq #4,%d0                                <== NOT EXECUTED
   464d8:	6008           	bras 464e2 <_CORE_semaphore_Surrender+0x3e> <== NOT EXECUTED
        the_semaphore->count += 1;                                    
   464da:	5280           	addql #1,%d0                                
   464dc:	2540 0048      	movel %d0,%a2@(72)                          
   464e0:	4280           	clrl %d0                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
   464e2:	46c1           	movew %d1,%sr                               
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
   464e4:	246e fffc      	moveal %fp@(-4),%a2                         
   464e8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045268 <_Event_Seize>: executing = _Thread_Executing; executing->Wait.return_code = RTEMS_SUCCESSFUL; api = executing->API_Extensions[ THREAD_API_RTEMS ]; _ISR_Disable( level );
   45268:	203c 0000 0700 	movel #1792,%d0                             
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
   4526e:	4e56 ffec      	linkw %fp,#-20                              
   45272:	226e 0010      	moveal %fp@(16),%a1                         
   45276:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
  rtems_event_set                   pending_events;                   
  ISR_Level                         level;                            
  RTEMS_API_Control                *api;                              
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
   4527a:	2479 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a2        
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
   45280:	242e 0008      	movel %fp@(8),%d2                           
   45284:	262e 000c      	movel %fp@(12),%d3                          
  ISR_Level                         level;                            
  RTEMS_API_Control                *api;                              
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
   45288:	42aa 0034      	clrl %a2@(52)                               
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
   4528c:	206e 0014      	moveal %fp@(20),%a0                         
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   45290:	266a 0108      	moveal %a2@(264),%a3                        
                                                                      
  _ISR_Disable( level );                                              
   45294:	40c1           	movew %sr,%d1                               
   45296:	8081           	orl %d1,%d0                                 
   45298:	46c0           	movew %d0,%sr                               
  pending_events = api->pending_events;                               
   4529a:	2813           	movel %a3@,%d4                              
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 );                    
   4529c:	2002           	movel %d2,%d0                               
   4529e:	c084           	andl %d4,%d0                                
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
   452a0:	6716           	beqs 452b8 <_Event_Seize+0x50>              
   452a2:	b480           	cmpl %d0,%d2                                
   452a4:	6706           	beqs 452ac <_Event_Seize+0x44>              
   452a6:	0803 0001      	btst #1,%d3                                 
   452aa:	670c           	beqs 452b8 <_Event_Seize+0x50>              <== NEVER TAKEN
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
    api->pending_events =                                             
   452ac:	2400           	movel %d0,%d2                               
   452ae:	4682           	notl %d2                                    
   452b0:	c484           	andl %d4,%d2                                
   452b2:	2682           	movel %d2,%a3@                              
      _Event_sets_Clear( pending_events, seized_events );             
    _ISR_Enable( level );                                             
   452b4:	46c1           	movew %d1,%sr                               
   452b6:	600e           	bras 452c6 <_Event_Seize+0x5e>              
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
   452b8:	0803 0000      	btst #0,%d3                                 
   452bc:	670e           	beqs 452cc <_Event_Seize+0x64>              
    _ISR_Enable( level );                                             
   452be:	46c1           	movew %d1,%sr                               
    executing->Wait.return_code = RTEMS_UNSATISFIED;                  
   452c0:	720d           	moveq #13,%d1                               
   452c2:	2541 0034      	movel %d1,%a2@(52)                          
    *event_out = seized_events;                                       
   452c6:	2080           	movel %d0,%a0@                              
    return;                                                           
   452c8:	6000 0096      	braw 45360 <_Event_Seize+0xf8>              
   *                                                                  
   *  NOTE: Since interrupts are disabled, this isn't that much of an 
   *        issue but better safe than sorry.                         
   */                                                                 
  executing->Wait.option            = (uint32_t) option_set;          
  executing->Wait.count             = (uint32_t) event_in;            
   452cc:	2542 0024      	movel %d2,%a2@(36)                          
  executing->Wait.return_argument   = event_out;                      
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
   452d0:	7401           	moveq #1,%d2                                
   *  set properly when we are marked as in the event critical section.
   *                                                                  
   *  NOTE: Since interrupts are disabled, this isn't that much of an 
   *        issue but better safe than sorry.                         
   */                                                                 
  executing->Wait.option            = (uint32_t) option_set;          
   452d2:	2543 0030      	movel %d3,%a2@(48)                          
  executing->Wait.count             = (uint32_t) event_in;            
  executing->Wait.return_argument   = event_out;                      
   452d6:	2548 0028      	movel %a0,%a2@(40)                          
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
   452da:	23c2 0005 de26 	movel %d2,5de26 <_Event_Sync_state>         
                                                                      
  _ISR_Enable( level );                                               
   452e0:	46c1           	movew %d1,%sr                               
                                                                      
  if ( ticks ) {                                                      
   452e2:	4a89           	tstl %a1                                    
   452e4:	6730           	beqs 45316 <_Event_Seize+0xae>              
    _Watchdog_Initialize(                                             
   452e6:	202a 0008      	movel %a2@(8),%d0                           
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   452ea:	223c 0004 54c8 	movel #283848,%d1                           
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   452f0:	2549 0054      	movel %a1,%a2@(84)                          
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   452f4:	2541 0064      	movel %d1,%a2@(100)                         
  the_watchdog->id        = id;                                       
   452f8:	2540 0068      	movel %d0,%a2@(104)                         
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   452fc:	42aa 0050      	clrl %a2@(80)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   45300:	42aa 006c      	clrl %a2@(108)                              
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   45304:	486a 0048      	pea %a2@(72)                                
   45308:	4879 0005 dcf4 	pea 5dcf4 <_Watchdog_Ticks_chain>           
   4530e:	4eb9 0004 8544 	jsr 48544 <_Watchdog_Insert>                
   45314:	508f           	addql #8,%sp                                
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  }                                                                   
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
   45316:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   4531a:	2f0a           	movel %a2,%sp@-                             
   4531c:	4eb9 0004 7e38 	jsr 47e38 <_Thread_Set_state>               
                                                                      
  _ISR_Disable( level );                                              
   45322:	203c 0000 0700 	movel #1792,%d0                             
   45328:	40c1           	movew %sr,%d1                               
   4532a:	8081           	orl %d1,%d0                                 
   4532c:	46c0           	movew %d0,%sr                               
                                                                      
  sync_state = _Event_Sync_state;                                     
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
   4532e:	7401           	moveq #1,%d2                                
   45330:	508f           	addql #8,%sp                                
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  sync_state = _Event_Sync_state;                                     
   45332:	2039 0005 de26 	movel 5de26 <_Event_Sync_state>,%d0         
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
   45338:	42b9 0005 de26 	clrl 5de26 <_Event_Sync_state>              
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
   4533e:	b480           	cmpl %d0,%d2                                
   45340:	6604           	bnes 45346 <_Event_Seize+0xde>              
    _ISR_Enable( level );                                             
   45342:	46c1           	movew %d1,%sr                               
   45344:	601a           	bras 45360 <_Event_Seize+0xf8>              
   *  An interrupt completed the thread's blocking request.           
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
   45346:	2d4a 000c      	movel %a2,%fp@(12)                          
   4534a:	2d41 0010      	movel %d1,%fp@(16)                          
}                                                                     
   4534e:	4cee 0c1c ffec 	moveml %fp@(-20),%d2-%d4/%a2-%a3            
   *  An interrupt completed the thread's blocking request.           
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
   45354:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   45358:	4e5e           	unlk %fp                                    
   *  An interrupt completed the thread's blocking request.           
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
   4535a:	4ef9 0004 70e8 	jmp 470e8 <_Thread_blocking_operation_Cancel>
}                                                                     
   45360:	4cee 0c1c ffec 	moveml %fp@(-20),%d2-%d4/%a2-%a3            
   45366:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000453c0 <_Event_Surrender>: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; option_set = (rtems_option) the_thread->Wait.option; _ISR_Disable( level );
   453c0:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Event_Surrender(                                                
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   453c6:	4e56 ffe8      	linkw %fp,#-24                              
   453ca:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   453ce:	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 ];               
   453d2:	206a 0108      	moveal %a2@(264),%a0                        
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
   453d6:	282a 0030      	movel %a2@(48),%d4                          
                                                                      
  _ISR_Disable( level );                                              
   453da:	40c1           	movew %sr,%d1                               
   453dc:	8081           	orl %d1,%d0                                 
   453de:	46c0           	movew %d0,%sr                               
  pending_events  = api->pending_events;                              
  event_condition = (rtems_event_set) the_thread->Wait.count;         
   453e0:	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 );                    
   453e4:	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;                              
   453e6:	2410           	movel %a0@,%d2                              
   453e8:	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 ) ) {                      
   453ea:	6606           	bnes 453f2 <_Event_Surrender+0x32>          
    _ISR_Enable( level );                                             
   453ec:	46c1           	movew %d1,%sr                               
    return;                                                           
   453ee:	6000 00cc      	braw 454bc <_Event_Surrender+0xfc>          
                                                                      
  /*                                                                  
   *  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() &&                                       
   453f2:	2279 0005 dcb6 	moveal 5dcb6 <_ISR_Nest_level>,%a1          
   453f8:	4a89           	tstl %a1                                    
   453fa:	674a           	beqs 45446 <_Event_Surrender+0x86>          
   453fc:	b5f9 0005 dcd6 	cmpal 5dcd6 <_Thread_Executing>,%a2         
   45402:	6642           	bnes 45446 <_Event_Surrender+0x86>          
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
   45404:	2279 0005 de26 	moveal 5de26 <_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() &&                                       
   4540a:	7a02           	moveq #2,%d5                                
   4540c:	ba89           	cmpl %a1,%d5                                
   4540e:	670e           	beqs 4541e <_Event_Surrender+0x5e>          <== NEVER TAKEN
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
   45410:	2279 0005 de26 	moveal 5de26 <_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() &&                                       
   45416:	1a3c 0001      	moveb #1,%d5                                
   4541a:	ba89           	cmpl %a1,%d5                                
   4541c:	6628           	bnes 45446 <_Event_Surrender+0x86>          
       _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) ) {
   4541e:	b680           	cmpl %d0,%d3                                
   45420:	6706           	beqs 45428 <_Event_Surrender+0x68>          
   45422:	0804 0001      	btst #1,%d4                                 
   45426:	671a           	beqs 45442 <_Event_Surrender+0x82>          <== NEVER TAKEN
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
   45428:	2600           	movel %d0,%d3                               
   4542a:	4683           	notl %d3                                    
   4542c:	c682           	andl %d2,%d3                                
   4542e:	2083           	movel %d3,%a0@                              
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   45430:	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;                                     
   45434:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   45438:	2080           	movel %d0,%a0@                              
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
   4543a:	7003           	moveq #3,%d0                                
   4543c:	23c0 0005 de26 	movel %d0,5de26 <_Event_Sync_state>         
    }                                                                 
    _ISR_Enable( level );                                             
   45442:	46c1           	movew %d1,%sr                               
    return;                                                           
   45444:	6076           	bras 454bc <_Event_Surrender+0xfc>          
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
   45446:	2a2a 0010      	movel %a2@(16),%d5                          
   4544a:	0285 0000 0100 	andil #256,%d5                              
   45450:	6768           	beqs 454ba <_Event_Surrender+0xfa>          
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
   45452:	b680           	cmpl %d0,%d3                                
   45454:	6706           	beqs 4545c <_Event_Surrender+0x9c>          
   45456:	0804 0001      	btst #1,%d4                                 
   4545a:	675e           	beqs 454ba <_Event_Surrender+0xfa>          <== NEVER TAKEN
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
   4545c:	2600           	movel %d0,%d3                               
   4545e:	4683           	notl %d3                                    
   45460:	c682           	andl %d2,%d3                                
   45462:	2083           	movel %d3,%a0@                              
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   45464:	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;                                     
   45468:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   4546c:	2080           	movel %d0,%a0@                              
                                                                      
      _ISR_Flash( level );                                            
   4546e:	203c 0000 0700 	movel #1792,%d0                             
   45474:	46c1           	movew %d1,%sr                               
   45476:	8081           	orl %d1,%d0                                 
   45478:	46c0           	movew %d0,%sr                               
   4547a:	47f9 0004 7278 	lea 47278 <_Thread_Clear_state>,%a3         
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
   45480:	7a02           	moveq #2,%d5                                
   45482:	baaa 0050      	cmpl %a2@(80),%d5                           
   45486:	6710           	beqs 45498 <_Event_Surrender+0xd8>          
        _ISR_Enable( level );                                         
   45488:	46c1           	movew %d1,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4548a:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45490:	2f0a           	movel %a2,%sp@-                             
   45492:	4e93           	jsr %a3@                                    
   45494:	508f           	addql #8,%sp                                
   45496:	6024           	bras 454bc <_Event_Surrender+0xfc>          
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   45498:	7003           	moveq #3,%d0                                
   4549a:	2540 0050      	movel %d0,%a2@(80)                          
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
   4549e:	46c1           	movew %d1,%sr                               
        (void) _Watchdog_Remove( &the_thread->Timer );                
   454a0:	486a 0048      	pea %a2@(72)                                
   454a4:	4eb9 0004 8660 	jsr 48660 <_Watchdog_Remove>                
   454aa:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   454b0:	2f0a           	movel %a2,%sp@-                             
   454b2:	4e93           	jsr %a3@                                    
   454b4:	4fef 000c      	lea %sp@(12),%sp                            
   454b8:	6002           	bras 454bc <_Event_Surrender+0xfc>          
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
   454ba:	46c1           	movew %d1,%sr                               
}                                                                     
   454bc:	4cee 0c3c ffe8 	moveml %fp@(-24),%d2-%d5/%a2-%a3            
   454c2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000454c8 <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
   454c8:	4e56 fffc      	linkw %fp,#-4                               
   454cc:	2f03           	movel %d3,%sp@-                             
   454ce:	2f02           	movel %d2,%sp@-                             
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   454d0:	486e fffc      	pea %fp@(-4)                                
   454d4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   454d8:	4eb9 0004 7658 	jsr 47658 <_Thread_Get>                     
  switch ( location ) {                                               
   454de:	508f           	addql #8,%sp                                
   454e0:	4aae fffc      	tstl %fp@(-4)                               
   454e4:	6656           	bnes 4553c <_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 );                                          
   454e6:	223c 0000 0700 	movel #1792,%d1                             
   454ec:	40c2           	movew %sr,%d2                               
   454ee:	8282           	orl %d2,%d1                                 
   454f0:	46c1           	movew %d1,%sr                               
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
   454f2:	2040           	moveal %d0,%a0                              
   454f4:	42a8 0024      	clrl %a0@(36)                               
        if ( _Thread_Is_executing( the_thread ) ) {                   
   454f8:	b0b9 0005 dcd6 	cmpl 5dcd6 <_Thread_Executing>,%d0          
   454fe:	6614           	bnes 45514 <_Event_Timeout+0x4c>            
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
   45500:	2239 0005 de26 	movel 5de26 <_Event_Sync_state>,%d1         
   45506:	7601           	moveq #1,%d3                                
   45508:	b681           	cmpl %d1,%d3                                
   4550a:	6608           	bnes 45514 <_Event_Timeout+0x4c>            
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
   4550c:	7202           	moveq #2,%d1                                
   4550e:	23c1 0005 de26 	movel %d1,5de26 <_Event_Sync_state>         
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
   45514:	7606           	moveq #6,%d3                                
   45516:	2040           	moveal %d0,%a0                              
   45518:	2143 0034      	movel %d3,%a0@(52)                          
      _ISR_Enable( level );                                           
   4551c:	46c2           	movew %d2,%sr                               
   4551e:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45524:	2f00           	movel %d0,%sp@-                             
   45526:	4eb9 0004 7278 	jsr 47278 <_Thread_Clear_state>             
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   4552c:	508f           	addql #8,%sp                                
   4552e:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   45534:	5380           	subql #1,%d0                                
   45536:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
   4553c:	242e fff4      	movel %fp@(-12),%d2                         
   45540:	262e fff8      	movel %fp@(-8),%d3                          
   45544:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004af6c <_Heap_Allocate_aligned_with_boundary>: Heap_Control *heap, uintptr_t alloc_size, uintptr_t alignment, uintptr_t boundary ) {
   4af6c:	4e56 ffc8      	linkw %fp,#-56                              
   4af70:	202e 000c      	movel %fp@(12),%d0                          
   4af74:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4af78:	246e 0008      	moveal %fp@(8),%a2                          
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );    
  Heap_Block *block = _Heap_Free_list_first( heap );                  
  uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
    - HEAP_BLOCK_SIZE_OFFSET;                                         
   4af7c:	2840           	moveal %d0,%a4                              
   4af7e:	588c           	addql #4,%a4                                
  Heap_Control *heap,                                                 
  uintptr_t alloc_size,                                               
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
   4af80:	222e 0010      	movel %fp@(16),%d1                          
   4af84:	2a2e 0014      	movel %fp@(20),%d5                          
  return &heap->free_list;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_first( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_head(heap)->next;                            
   4af88:	206a 0008      	moveal %a2@(8),%a0                          
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );    
  Heap_Block *block = _Heap_Free_list_first( heap );                  
  uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
    - HEAP_BLOCK_SIZE_OFFSET;                                         
  uintptr_t const page_size = heap->page_size;                        
   4af8c:	2e2a 0010      	movel %a2@(16),%d7                          
  uintptr_t alloc_begin = 0;                                          
  uint32_t search_count = 0;                                          
                                                                      
  if ( block_size_floor < alloc_size ) {                              
   4af90:	b08c           	cmpl %a4,%d0                                
   4af92:	6200 0120      	bhiw 4b0b4 <_Heap_Allocate_aligned_with_boundary+0x148>
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
   4af96:	4a85           	tstl %d5                                    
   4af98:	670c           	beqs 4afa6 <_Heap_Allocate_aligned_with_boundary+0x3a>
    if ( boundary < alloc_size ) {                                    
   4af9a:	b085           	cmpl %d5,%d0                                
   4af9c:	6200 0116      	bhiw 4b0b4 <_Heap_Allocate_aligned_with_boundary+0x148>
      return NULL;                                                    
    }                                                                 
                                                                      
    if ( alignment == 0 ) {                                           
   4afa0:	4a81           	tstl %d1                                    
   4afa2:	6602           	bnes 4afa6 <_Heap_Allocate_aligned_with_boundary+0x3a>
   4afa4:	2207           	movel %d7,%d1                               
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
   4afa6:	2407           	movel %d7,%d2                               
   4afa8:	5e82           	addql #7,%d2                                
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
      return NULL;                                                    
    }                                                                 
                                                                      
    if ( alignment == 0 ) {                                           
   4afaa:	4283           	clrl %d3                                    
   4afac:	2a43           	moveal %d3,%a5                              
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
   4afae:	2d42 fff8      	movel %d2,%fp@(-8)                          
                                                                      
  uintptr_t alloc_end = block_end + HEAP_BLOCK_SIZE_OFFSET;           
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
   4afb2:	7404           	moveq #4,%d2                                
   4afb4:	9480           	subl %d0,%d2                                
   4afb6:	2d42 fff4      	movel %d2,%fp@(-12)                         
   4afba:	6000 00c6      	braw 4b082 <_Heap_Allocate_aligned_with_boundary+0x116>
    /*                                                                
     * The HEAP_PREV_BLOCK_USED flag is always set in the block size_and_flag
     * field.  Thus the value is about one unit larger than the real block
     * size.  The greater than operator takes this into account.      
     */                                                               
    if ( block->size_and_flag > block_size_floor ) {                  
   4afbe:	2628 0004      	movel %a0@(4),%d3                           
                                                                      
  while ( block != free_list_tail ) {                                 
    _HAssert( _Heap_Is_prev_used( block ) );                          
                                                                      
    /* Statistics */                                                  
    ++search_count;                                                   
   4afc2:	528d           	addql #1,%a5                                
    /*                                                                
     * The HEAP_PREV_BLOCK_USED flag is always set in the block size_and_flag
     * field.  Thus the value is about one unit larger than the real block
     * size.  The greater than operator takes this into account.      
     */                                                               
    if ( block->size_and_flag > block_size_floor ) {                  
   4afc4:	b9c3           	cmpal %d3,%a4                               
   4afc6:	6400 00b6      	bccw 4b07e <_Heap_Allocate_aligned_with_boundary+0x112>
   4afca:	43e8 0008      	lea %a0@(8),%a1                             
      if ( alignment == 0 ) {                                         
   4afce:	4a81           	tstl %d1                                    
   4afd0:	6606           	bnes 4afd8 <_Heap_Allocate_aligned_with_boundary+0x6c>
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
   4afd2:	2409           	movel %a1,%d2                               
   4afd4:	6000 00a4      	braw 4b07a <_Heap_Allocate_aligned_with_boundary+0x10e>
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
                                                                      
  uintptr_t const block_begin = (uintptr_t) block;                    
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
   4afd8:	74fe           	moveq #-2,%d2                               
   4afda:	c682           	andl %d2,%d3                                
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
   4afdc:	266a 0014      	moveal %a2@(20),%a3                         
                                                                      
  uintptr_t const block_begin = (uintptr_t) block;                    
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
   4afe0:	d688           	addl %a0,%d3                                
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
   4afe2:	282e fff8      	movel %fp@(-8),%d4                          
   4afe6:	988b           	subl %a3,%d4                                
                                                                      
  uintptr_t alloc_end = block_end + HEAP_BLOCK_SIZE_OFFSET;           
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
   4afe8:	242e fff4      	movel %fp@(-12),%d2                         
   4afec:	d483           	addl %d3,%d2                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   4afee:	2c02           	movel %d2,%d6                               
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
   4aff0:	d684           	addl %d4,%d3                                
   4aff2:	4c41 6004      	remul %d1,%d4,%d6                           
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
   4aff6:	2d4b fff0      	movel %a3,%fp@(-16)                         
   4affa:	9484           	subl %d4,%d2                                
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
                                                                      
  alloc_begin = _Heap_Align_down( alloc_begin, alignment );           
                                                                      
  /* Ensure that the we have a valid new block at the end */          
  if ( alloc_begin > alloc_begin_ceiling ) {                          
   4affc:	b682           	cmpl %d2,%d3                                
   4affe:	640a           	bccs 4b00a <_Heap_Allocate_aligned_with_boundary+0x9e>
   4b000:	2803           	movel %d3,%d4                               
   4b002:	4c41 4002      	remul %d1,%d2,%d4                           
   4b006:	9682           	subl %d2,%d3                                
   4b008:	2403           	movel %d3,%d2                               
  }                                                                   
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
   4b00a:	4a85           	tstl %d5                                    
   4b00c:	674e           	beqs 4b05c <_Heap_Allocate_aligned_with_boundary+0xf0>
  /* Ensure that the we have a valid new block at the end */          
  if ( alloc_begin > alloc_begin_ceiling ) {                          
    alloc_begin = _Heap_Align_down( alloc_begin_ceiling, alignment ); 
  }                                                                   
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
   4b00e:	2802           	movel %d2,%d4                               
   4b010:	d880           	addl %d0,%d4                                
   4b012:	2604           	movel %d4,%d3                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
    uintptr_t const boundary_floor = alloc_begin_floor + alloc_size;  
   4b014:	47f1 0800      	lea %a1@(00000000,%d0:l),%a3                
   4b018:	4c45 3006      	remul %d5,%d6,%d3                           
   4b01c:	2d4b fffc      	movel %a3,%fp@(-4)                          
   4b020:	2604           	movel %d4,%d3                               
   4b022:	9686           	subl %d6,%d3                                
   4b024:	2c03           	movel %d3,%d6                               
   4b026:	266e fff0      	moveal %fp@(-16),%a3                        
   4b02a:	6020           	bras 4b04c <_Heap_Allocate_aligned_with_boundary+0xe0>
    uintptr_t boundary_line = _Heap_Align_down( alloc_end, boundary );
                                                                      
    while ( alloc_begin < boundary_line && boundary_line < alloc_end ) {
      if ( boundary_line < boundary_floor ) {                         
   4b02c:	bcae fffc      	cmpl %fp@(-4),%d6                           
   4b030:	654c           	bcss 4b07e <_Heap_Allocate_aligned_with_boundary+0x112>
   4b032:	2803           	movel %d3,%d4                               
   4b034:	4c41 4002      	remul %d1,%d2,%d4                           
   4b038:	9682           	subl %d2,%d3                                
        return 0;                                                     
      }                                                               
      alloc_begin = boundary_line - alloc_size;                       
      alloc_begin = _Heap_Align_down( alloc_begin, alignment );       
      alloc_end = alloc_begin + alloc_size;                           
   4b03a:	2803           	movel %d3,%d4                               
   4b03c:	d880           	addl %d0,%d4                                
   4b03e:	2403           	movel %d3,%d2                               
   4b040:	2604           	movel %d4,%d3                               
   4b042:	4c45 3006      	remul %d5,%d6,%d3                           
   4b046:	2604           	movel %d4,%d3                               
   4b048:	9686           	subl %d6,%d3                                
   4b04a:	2c03           	movel %d3,%d6                               
                                                                      
    while ( alloc_begin < boundary_line && boundary_line < alloc_end ) {
      if ( boundary_line < boundary_floor ) {                         
        return 0;                                                     
      }                                                               
      alloc_begin = boundary_line - alloc_size;                       
   4b04c:	2606           	movel %d6,%d3                               
   4b04e:	9680           	subl %d0,%d3                                
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
    uintptr_t const boundary_floor = alloc_begin_floor + alloc_size;  
    uintptr_t boundary_line = _Heap_Align_down( alloc_end, boundary );
                                                                      
    while ( alloc_begin < boundary_line && boundary_line < alloc_end ) {
   4b050:	bc82           	cmpl %d2,%d6                                
   4b052:	6304           	blss 4b058 <_Heap_Allocate_aligned_with_boundary+0xec>
   4b054:	b886           	cmpl %d6,%d4                                
   4b056:	62d4           	bhis 4b02c <_Heap_Allocate_aligned_with_boundary+0xc0>
   4b058:	2d4b fff0      	movel %a3,%fp@(-16)                         
      boundary_line = _Heap_Align_down( alloc_end, boundary );        
    }                                                                 
  }                                                                   
                                                                      
  /* Ensure that the we have a valid new block at the beginning */    
  if ( alloc_begin >= alloc_begin_floor ) {                           
   4b05c:	b3c2           	cmpal %d2,%a1                               
   4b05e:	621e           	bhis 4b07e <_Heap_Allocate_aligned_with_boundary+0x112>
    uintptr_t const alloc_block_begin =                               
      (uintptr_t) _Heap_Block_of_alloc_area( alloc_begin, page_size );
    uintptr_t const free_size = alloc_block_begin - block_begin;      
   4b060:	2802           	movel %d2,%d4                               
   4b062:	327c fff8      	moveaw #-8,%a1                              
   4b066:	93c8           	subal %a0,%a1                               
   4b068:	d3c2           	addal %d2,%a1                               
   4b06a:	4c47 4003      	remul %d7,%d3,%d4                           
   4b06e:	93c3           	subal %d3,%a1                               
                                                                      
    if ( free_size >= min_block_size || free_size == 0 ) {            
   4b070:	b3ee fff0      	cmpal %fp@(-16),%a1                         
   4b074:	6404           	bccs 4b07a <_Heap_Allocate_aligned_with_boundary+0x10e>
   4b076:	4a89           	tstl %a1                                    
   4b078:	6604           	bnes 4b07e <_Heap_Allocate_aligned_with_boundary+0x112>
          boundary                                                    
        );                                                            
      }                                                               
    }                                                                 
                                                                      
    if ( alloc_begin != 0 ) {                                         
   4b07a:	4a82           	tstl %d2                                    
   4b07c:	6610           	bnes 4b08e <_Heap_Allocate_aligned_with_boundary+0x122><== ALWAYS TAKEN
      break;                                                          
    }                                                                 
                                                                      
    block = block->next;                                              
   4b07e:	2068 0008      	moveal %a0@(8),%a0                          
    if ( alignment == 0 ) {                                           
      alignment = page_size;                                          
    }                                                                 
  }                                                                   
                                                                      
  while ( block != free_list_tail ) {                                 
   4b082:	b5c8           	cmpal %a0,%a2                               
   4b084:	6600 ff38      	bnew 4afbe <_Heap_Allocate_aligned_with_boundary+0x52>
   4b088:	260d           	movel %a5,%d3                               
   4b08a:	4282           	clrl %d2                                    
   4b08c:	6018           	bras 4b0a6 <_Heap_Allocate_aligned_with_boundary+0x13a>
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    stats->searches += search_count;                                  
                                                                      
    block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );
   4b08e:	2f00           	movel %d0,%sp@-                             
   4b090:	260d           	movel %a5,%d3                               
    block = block->next;                                              
  }                                                                   
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    stats->searches += search_count;                                  
   4b092:	d7aa 004c      	addl %d3,%a2@(76)                           
                                                                      
    block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );
   4b096:	2f02           	movel %d2,%sp@-                             
   4b098:	2f08           	movel %a0,%sp@-                             
   4b09a:	2f0a           	movel %a2,%sp@-                             
   4b09c:	4eb9 0004 67de 	jsr 467de <_Heap_Block_allocate>            
   4b0a2:	4fef 0010      	lea %sp@(16),%sp                            
  uintptr_t alloc_size,                                               
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
   4b0a6:	b6aa 0044      	cmpl %a2@(68),%d3                           
   4b0aa:	6304           	blss 4b0b0 <_Heap_Allocate_aligned_with_boundary+0x144>
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
   4b0ac:	2543 0044      	movel %d3,%a2@(68)                          
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
   4b0b0:	2002           	movel %d2,%d0                               
   4b0b2:	6002           	bras 4b0b6 <_Heap_Allocate_aligned_with_boundary+0x14a>
   4b0b4:	4280           	clrl %d0                                    
}                                                                     
   4b0b6:	4cee 3cfc ffc8 	moveml %fp@(-56),%d2-%d7/%a2-%a5            
   4b0bc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004f170 <_Heap_Extend>: Heap_Control *heap, void *area_begin_ptr, uintptr_t area_size, uintptr_t *amount_extended ) {
   4f170:	4e56 fff4      	linkw %fp,#-12                              
   4f174:	206e 0008      	moveal %fp@(8),%a0                          
   4f178:	202e 000c      	movel %fp@(12),%d0                          
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const area_begin = (uintptr_t) area_begin_ptr;            
  uintptr_t const heap_area_begin = heap->area_begin;                 
  uintptr_t const heap_area_end = heap->area_end;                     
   4f17c:	2228 001c      	movel %a0@(28),%d1                          
  uintptr_t const new_heap_area_end = heap_area_end + area_size;      
  uintptr_t extend_size = 0;                                          
  Heap_Block *const last_block = heap->last_block;                    
   4f180:	2268 0024      	moveal %a0@(36),%a1                         
  Heap_Control *heap,                                                 
  void *area_begin_ptr,                                               
  uintptr_t area_size,                                                
  uintptr_t *amount_extended                                          
)                                                                     
{                                                                     
   4f184:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const area_begin = (uintptr_t) area_begin_ptr;            
  uintptr_t const heap_area_begin = heap->area_begin;                 
   4f188:	b0a8 0018      	cmpl %a0@(24),%d0                           
   4f18c:	6508           	bcss 4f196 <_Heap_Extend+0x26>              
   *    5. non-contiguous higher address    (NOT SUPPORTED)           
   *                                                                  
   *  As noted, this code only supports (4).                          
   */                                                                 
                                                                      
  if ( area_begin >= heap_area_begin && area_begin < heap_area_end ) {
   4f18e:	b280           	cmpl %d0,%d1                                
   4f190:	6304           	blss 4f196 <_Heap_Extend+0x26>              
   4f192:	7001           	moveq #1,%d0                                
   4f194:	606c           	bras 4f202 <_Heap_Extend+0x92>              
    return HEAP_EXTEND_ERROR; /* case 3 */                            
  } else if ( area_begin != heap_area_end ) {                         
   4f196:	b280           	cmpl %d0,%d1                                
   4f198:	6704           	beqs 4f19e <_Heap_Extend+0x2e>              
   4f19a:	7002           	moveq #2,%d0                                
   4f19c:	6064           	bras 4f202 <_Heap_Extend+0x92>              
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const area_begin = (uintptr_t) area_begin_ptr;            
  uintptr_t const heap_area_begin = heap->area_begin;                 
  uintptr_t const heap_area_end = heap->area_end;                     
  uintptr_t const new_heap_area_end = heap_area_end + area_size;      
   4f19e:	2200           	movel %d0,%d1                               
   4f1a0:	d2ae 0010      	addl %fp@(16),%d1                           
   *  block and free it.                                              
   */                                                                 
                                                                      
  heap->area_end = new_heap_area_end;                                 
                                                                      
  extend_size = new_heap_area_end                                     
   4f1a4:	70f8           	moveq #-8,%d0                               
   4f1a6:	9089           	subl %a1,%d0                                
   4f1a8:	d081           	addl %d1,%d0                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   4f1aa:	2600           	movel %d0,%d3                               
   4f1ac:	4c68 3002 0010 	remul %a0@(16),%d2,%d3                      
   *  Currently only case 4 should make it to this point.             
   *  The basic trick is to make the extend area look like a used     
   *  block and free it.                                              
   */                                                                 
                                                                      
  heap->area_end = new_heap_area_end;                                 
   4f1b2:	2141 001c      	movel %d1,%a0@(28)                          
                                                                      
  extend_size = new_heap_area_end                                     
    - (uintptr_t) last_block - HEAP_BLOCK_HEADER_SIZE;                
  extend_size = _Heap_Align_down( extend_size, heap->page_size );     
                                                                      
  *amount_extended = extend_size;                                     
   4f1b6:	246e 0014      	moveal %fp@(20),%a2                         
   4f1ba:	9082           	subl %d2,%d0                                
   4f1bc:	2480           	movel %d0,%a2@                              
                                                                      
  if( extend_size >= heap->min_block_size ) {                         
   4f1be:	b0a8 0014      	cmpl %a0@(20),%d0                           
   4f1c2:	653c           	bcss 4f200 <_Heap_Extend+0x90>              <== NEVER TAKEN
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
                                                                      
  block->size_and_flag = size | flag;                                 
   4f1c4:	7401           	moveq #1,%d2                                
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4f1c6:	45f1 0800      	lea %a1@(00000000,%d0:l),%a2                
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
                                                                      
  block->size_and_flag = size | flag;                                 
   4f1ca:	c4a9 0004      	andl %a1@(4),%d2                            
    Heap_Block *const new_last_block = _Heap_Block_at( last_block, extend_size );
                                                                      
    _Heap_Block_set_size( last_block, extend_size );                  
                                                                      
    new_last_block->size_and_flag =                                   
   4f1ce:	2228 0020      	movel %a0@(32),%d1                          
   4f1d2:	928a           	subl %a2,%d1                                
   4f1d4:	8480           	orl %d0,%d2                                 
      ((uintptr_t) heap->first_block - (uintptr_t) new_last_block)    
        | HEAP_PREV_BLOCK_USED;                                       
                                                                      
    heap->last_block = new_last_block;                                
   4f1d6:	214a 0024      	movel %a2,%a0@(36)                          
   4f1da:	2342 0004      	movel %d2,%a1@(4)                           
  if( extend_size >= heap->min_block_size ) {                         
    Heap_Block *const new_last_block = _Heap_Block_at( last_block, extend_size );
                                                                      
    _Heap_Block_set_size( last_block, extend_size );                  
                                                                      
    new_last_block->size_and_flag =                                   
   4f1de:	7401           	moveq #1,%d2                                
   4f1e0:	8481           	orl %d1,%d2                                 
   4f1e2:	2542 0004      	movel %d2,%a2@(4)                           
    /* Statistics */                                                  
    stats->size += extend_size;                                       
    ++stats->used_blocks;                                             
    --stats->frees; /* Do not count subsequent call as actual free() */
                                                                      
    _Heap_Free( heap, (void *) _Heap_Alloc_area_of_block( last_block ));
   4f1e6:	4869 0008      	pea %a1@(8)                                 
        | HEAP_PREV_BLOCK_USED;                                       
                                                                      
    heap->last_block = new_last_block;                                
                                                                      
    /* Statistics */                                                  
    stats->size += extend_size;                                       
   4f1ea:	d1a8 002c      	addl %d0,%a0@(44)                           
    ++stats->used_blocks;                                             
   4f1ee:	52a8 0040      	addql #1,%a0@(64)                           
    --stats->frees; /* Do not count subsequent call as actual free() */
   4f1f2:	53a8 0050      	subql #1,%a0@(80)                           
                                                                      
    _Heap_Free( heap, (void *) _Heap_Alloc_area_of_block( last_block ));
   4f1f6:	2f08           	movel %a0,%sp@-                             
   4f1f8:	4eb9 0004 a004 	jsr 4a004 <_Heap_Free>                      
   4f1fe:	508f           	addql #8,%sp                                
   4f200:	4280           	clrl %d0                                    
  }                                                                   
                                                                      
  return HEAP_EXTEND_SUCCESSFUL;                                      
}                                                                     
   4f202:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   4f208:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005a6e4 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
   5a6e4:	4e56 0000      	linkw %fp,#0                                
   5a6e8:	202e 000c      	movel %fp@(12),%d0                          
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 )   
   5a6ec:	2040           	moveal %d0,%a0                              
   5a6ee:	5188           	subql #8,%a0                                
   5a6f0:	226e 0008      	moveal %fp@(8),%a1                          
   5a6f4:	2f02           	movel %d2,%sp@-                             
   5a6f6:	2400           	movel %d0,%d2                               
   5a6f8:	4c69 2001 0010 	remul %a1@(16),%d1,%d2                      
  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;             
   5a6fe:	2429 0020      	movel %a1@(32),%d2                          
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 )   
   5a702:	91c1           	subal %d1,%a0                               
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           
   5a704:	b488           	cmpl %a0,%d2                                
   5a706:	6244           	bhis 5a74c <_Heap_Size_of_alloc_area+0x68>  
   5a708:	b1e9 0024      	cmpal %a1@(36),%a0                          
   5a70c:	53c1           	sls %d1                                     
   5a70e:	49c1           	extbl %d1                                   
   5a710:	4481           	negl %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 ) ) {                     
   5a712:	4a01           	tstb %d1                                    
   5a714:	6736           	beqs 5a74c <_Heap_Size_of_alloc_area+0x68>  <== NEVER TAKEN
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   5a716:	72fe           	moveq #-2,%d1                               
   5a718:	c2a8 0004      	andl %a0@(4),%d1                            
   5a71c:	d1c1           	addal %d1,%a0                               
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           
   5a71e:	b488           	cmpl %a0,%d2                                
   5a720:	622a           	bhis 5a74c <_Heap_Size_of_alloc_area+0x68>  <== NEVER TAKEN
   5a722:	b1e9 0024      	cmpal %a1@(36),%a0                          
   5a726:	53c1           	sls %d1                                     
   5a728:	49c1           	extbl %d1                                   
   5a72a:	4481           	negl %d1                                    
  }                                                                   
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if (                                                                
   5a72c:	4a01           	tstb %d1                                    
   5a72e:	671c           	beqs 5a74c <_Heap_Size_of_alloc_area+0x68>  <== NEVER TAKEN
   5a730:	7201           	moveq #1,%d1                                
   5a732:	c2a8 0004      	andl %a0@(4),%d1                            
   5a736:	4a01           	tstb %d1                                    
   5a738:	6712           	beqs 5a74c <_Heap_Size_of_alloc_area+0x68>  <== NEVER TAKEN
      || !_Heap_Is_prev_used( next_block )                            
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_BLOCK_SIZE_OFFSET - alloc_begin;
   5a73a:	7204           	moveq #4,%d1                                
   5a73c:	9280           	subl %d0,%d1                                
   5a73e:	2001           	movel %d1,%d0                               
   5a740:	d088           	addl %a0,%d0                                
   5a742:	226e 0010      	moveal %fp@(16),%a1                         
   5a746:	2280           	movel %d0,%a1@                              
   5a748:	7001           	moveq #1,%d0                                
                                                                      
  return true;                                                        
   5a74a:	6002           	bras 5a74e <_Heap_Size_of_alloc_area+0x6a>  
   5a74c:	4200           	clrb %d0                                    
}                                                                     
   5a74e:	241f           	movel %sp@+,%d2                             
   5a750:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047298 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
   47298:	4e56 ffd0      	linkw %fp,#-48                              
   4729c:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   472a0:	286e 0008      	moveal %fp@(8),%a4                          
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  Heap_Block *const last_block = heap->last_block;                    
  Heap_Block *block = heap->first_block;                              
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   472a4:	47fa 031a      	lea %pc@(475c0 <_Heap_Walk_print>),%a3      
bool _Heap_Walk(                                                      
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
   472a8:	242e 000c      	movel %fp@(12),%d2                          
  uintptr_t const page_size = heap->page_size;                        
   472ac:	2c2c 0010      	movel %a4@(16),%d6                          
  uintptr_t const min_block_size = heap->min_block_size;              
   472b0:	262c 0014      	movel %a4@(20),%d3                          
  Heap_Block *const last_block = heap->last_block;                    
   472b4:	2a2c 0024      	movel %a4@(36),%d5                          
  Heap_Block *block = heap->first_block;                              
   472b8:	246c 0020      	moveal %a4@(32),%a2                         
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   472bc:	4a2e 0013      	tstb %fp@(19)                               
   472c0:	6604           	bnes 472c6 <_Heap_Walk+0x2e>                
   472c2:	47fa ffcc      	lea %pc@(47290 <_Heap_Walk_print_nothing>),%a3
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
   472c6:	7003           	moveq #3,%d0                                
   472c8:	b0b9 0006 0146 	cmpl 60146 <_System_state_Current>,%d0      
   472ce:	6600 02da      	bnew 475aa <_Heap_Walk+0x312>               
  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)(                                                         
   472d2:	2f2c 000c      	movel %a4@(12),%sp@-                        
   472d6:	2f2c 0008      	movel %a4@(8),%sp@-                         
   472da:	2f05           	movel %d5,%sp@-                             
   472dc:	2f0a           	movel %a2,%sp@-                             
   472de:	2f2c 001c      	movel %a4@(28),%sp@-                        
   472e2:	2f2c 0018      	movel %a4@(24),%sp@-                        
   472e6:	2f03           	movel %d3,%sp@-                             
   472e8:	2f06           	movel %d6,%sp@-                             
   472ea:	4879 0005 c2fc 	pea 5c2fc <C.30.3388+0xe>                   
   472f0:	42a7           	clrl %sp@-                                  
   472f2:	2f02           	movel %d2,%sp@-                             
   472f4:	4e93           	jsr %a3@                                    
    heap->area_begin, heap->area_end,                                 
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
   472f6:	4fef 002c      	lea %sp@(44),%sp                            
   472fa:	4a86           	tstl %d6                                    
   472fc:	6608           	bnes 47306 <_Heap_Walk+0x6e>                
    (*printer)( source, true, "page size is zero\n" );                
   472fe:	4879 0005 c38d 	pea 5c38d <C.30.3388+0x9f>                  
   47304:	607e           	bras 47384 <_Heap_Walk+0xec>                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
   47306:	7003           	moveq #3,%d0                                
   47308:	c086           	andl %d6,%d0                                
   4730a:	670c           	beqs 47318 <_Heap_Walk+0x80>                
    (*printer)(                                                       
   4730c:	2f06           	movel %d6,%sp@-                             
   4730e:	4879 0005 c3a0 	pea 5c3a0 <C.30.3388+0xb2>                  
   47314:	6000 0268      	braw 4757e <_Heap_Walk+0x2e6>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
   47318:	2203           	movel %d3,%d1                               
   4731a:	4c46 1000      	remul %d6,%d0,%d1                           
   4731e:	4a80           	tstl %d0                                    
   47320:	670c           	beqs 4732e <_Heap_Walk+0x96>                
    (*printer)(                                                       
   47322:	2f03           	movel %d3,%sp@-                             
   47324:	4879 0005 c3be 	pea 5c3be <C.30.3388+0xd0>                  
   4732a:	6000 0252      	braw 4757e <_Heap_Walk+0x2e6>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
   4732e:	200a           	movel %a2,%d0                               
   47330:	5080           	addql #8,%d0                                
   47332:	4c46 0001      	remul %d6,%d1,%d0                           
   47336:	4a81           	tstl %d1                                    
   47338:	670c           	beqs 47346 <_Heap_Walk+0xae>                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
   4733a:	2f0a           	movel %a2,%sp@-                             
   4733c:	4879 0005 c3e2 	pea 5c3e2 <C.30.3388+0xf4>                  
   47342:	6000 023a      	braw 4757e <_Heap_Walk+0x2e6>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
   47346:	7001           	moveq #1,%d0                                
   47348:	c0aa 0004      	andl %a2@(4),%d0                            
   4734c:	4a00           	tstb %d0                                    
   4734e:	6608           	bnes 47358 <_Heap_Walk+0xc0>                
    (*printer)(                                                       
   47350:	4879 0005 c413 	pea 5c413 <C.30.3388+0x125>                 
   47356:	602c           	bras 47384 <_Heap_Walk+0xec>                
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( first_block->prev_size != page_size ) {                        
   47358:	2812           	movel %a2@,%d4                              
   4735a:	bc84           	cmpl %d4,%d6                                
   4735c:	670e           	beqs 4736c <_Heap_Walk+0xd4>                
    (*printer)(                                                       
   4735e:	2f06           	movel %d6,%sp@-                             
   47360:	2f04           	movel %d4,%sp@-                             
   47362:	4879 0005 c441 	pea 5c441 <C.30.3388+0x153>                 
   47368:	6000 0150      	braw 474ba <_Heap_Walk+0x222>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
   4736c:	2045           	moveal %d5,%a0                              
   4736e:	70fe           	moveq #-2,%d0                               
   47370:	7201           	moveq #1,%d1                                
   47372:	c0a8 0004      	andl %a0@(4),%d0                            
   47376:	c2b0 0804      	andl %a0@(00000004,%d0:l),%d1               
   4737a:	4a01           	tstb %d1                                    
   4737c:	6616           	bnes 47394 <_Heap_Walk+0xfc>                
    (*printer)(                                                       
   4737e:	4879 0005 c46c 	pea 5c46c <C.30.3388+0x17e>                 
   47384:	4878 0001      	pea 1 <ADD>                                 
   47388:	2f02           	movel %d2,%sp@-                             
   4738a:	4e93           	jsr %a3@                                    
   4738c:	4fef 000c      	lea %sp@(12),%sp                            
   47390:	6000 01f8      	braw 4758a <_Heap_Walk+0x2f2>               
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
   47394:	2c2c 0010      	movel %a4@(16),%d6                          
  return &heap->free_list;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_first( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_head(heap)->next;                            
   47398:	220c           	movel %a4,%d1                               
   4739a:	206c 0008      	moveal %a4@(8),%a0                          
   4739e:	606a           	bras 4740a <_Heap_Walk+0x172>               
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           
   473a0:	b1ec 0020      	cmpal %a4@(32),%a0                          
   473a4:	650e           	bcss 473b4 <_Heap_Walk+0x11c>               
   473a6:	b1ec 0024      	cmpal %a4@(36),%a0                          
   473aa:	53c0           	sls %d0                                     
   473ac:	49c0           	extbl %d0                                   
   473ae:	4480           	negl %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 ) ) {              
   473b0:	4a00           	tstb %d0                                    
   473b2:	660c           	bnes 473c0 <_Heap_Walk+0x128>               <== ALWAYS TAKEN
      (*printer)(                                                     
   473b4:	2f08           	movel %a0,%sp@-                             
   473b6:	4879 0005 c481 	pea 5c481 <C.30.3388+0x193>                 
   473bc:	6000 01c0      	braw 4757e <_Heap_Walk+0x2e6>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
   473c0:	4c46 7000      	remul %d6,%d0,%d7                           
   473c4:	4a80           	tstl %d0                                    
   473c6:	670c           	beqs 473d4 <_Heap_Walk+0x13c>               
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
   473c8:	2f08           	movel %a0,%sp@-                             
   473ca:	4879 0005 c4a1 	pea 5c4a1 <C.30.3388+0x1b3>                 
   473d0:	6000 01ac      	braw 4757e <_Heap_Walk+0x2e6>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
   473d4:	70fe           	moveq #-2,%d0                               
   473d6:	7e01           	moveq #1,%d7                                
   473d8:	c0a8 0004      	andl %a0@(4),%d0                            
   473dc:	ceb0 0804      	andl %a0@(00000004,%d0:l),%d7               
   473e0:	670c           	beqs 473ee <_Heap_Walk+0x156>               
      (*printer)(                                                     
   473e2:	2f08           	movel %a0,%sp@-                             
   473e4:	4879 0005 c4d1 	pea 5c4d1 <C.30.3388+0x1e3>                 
   473ea:	6000 0192      	braw 4757e <_Heap_Walk+0x2e6>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
   473ee:	2028 000c      	movel %a0@(12),%d0                          
   473f2:	b280           	cmpl %d0,%d1                                
   473f4:	670e           	beqs 47404 <_Heap_Walk+0x16c>               
      (*printer)(                                                     
   473f6:	2f00           	movel %d0,%sp@-                             
   473f8:	2f08           	movel %a0,%sp@-                             
   473fa:	4879 0005 c4ed 	pea 5c4ed <C.30.3388+0x1ff>                 
   47400:	6000 00b8      	braw 474ba <_Heap_Walk+0x222>               
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
   47404:	2208           	movel %a0,%d1                               
   47406:	2068 0008      	moveal %a0@(8),%a0                          
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
   4740a:	2e08           	movel %a0,%d7                               
   4740c:	5087           	addql #8,%d7                                
  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 ) {                            
   4740e:	b9c8           	cmpal %a0,%a4                               
   47410:	668e           	bnes 473a0 <_Heap_Walk+0x108>               
   47412:	6000 0190      	braw 475a4 <_Heap_Walk+0x30c>               
    - 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;                
   47416:	202a 0004      	movel %a2@(4),%d0                           
   4741a:	7cfe           	moveq #-2,%d6                               
    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;        
                                                                      
    if ( prev_used ) {                                                
   4741c:	7201           	moveq #1,%d1                                
   4741e:	cc80           	andl %d0,%d6                                
   47420:	c081           	andl %d1,%d0                                
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   47422:	4bf2 6800      	lea %a2@(00000000,%d6:l),%a5                
   47426:	4a00           	tstb %d0                                    
   47428:	6716           	beqs 47440 <_Heap_Walk+0x1a8>               
      (*printer)(                                                     
   4742a:	2f06           	movel %d6,%sp@-                             
   4742c:	2f0a           	movel %a2,%sp@-                             
   4742e:	4879 0005 c51f 	pea 5c51f <C.30.3388+0x231>                 
   47434:	42a7           	clrl %sp@-                                  
   47436:	2f02           	movel %d2,%sp@-                             
   47438:	4e93           	jsr %a3@                                    
   4743a:	4fef 0014      	lea %sp@(20),%sp                            
   4743e:	6016           	bras 47456 <_Heap_Walk+0x1be>               
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
   47440:	2f12           	movel %a2@,%sp@-                            
   47442:	2f06           	movel %d6,%sp@-                             
   47444:	2f0a           	movel %a2,%sp@-                             
   47446:	4879 0005 c536 	pea 5c536 <C.30.3388+0x248>                 
   4744c:	42a7           	clrl %sp@-                                  
   4744e:	2f02           	movel %d2,%sp@-                             
   47450:	4e93           	jsr %a3@                                    
   47452:	4fef 0018      	lea %sp@(24),%sp                            
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           
   47456:	bbec 0020      	cmpal %a4@(32),%a5                          
   4745a:	650e           	bcss 4746a <_Heap_Walk+0x1d2>               <== NEVER TAKEN
   4745c:	bbec 0024      	cmpal %a4@(36),%a5                          
   47460:	53c0           	sls %d0                                     
   47462:	49c0           	extbl %d0                                   
   47464:	4480           	negl %d0                                    
        block_size,                                                   
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {              
   47466:	4a00           	tstb %d0                                    
   47468:	660c           	bnes 47476 <_Heap_Walk+0x1de>               
      (*printer)(                                                     
   4746a:	2f0d           	movel %a5,%sp@-                             
   4746c:	2f0a           	movel %a2,%sp@-                             
   4746e:	4879 0005 c55b 	pea 5c55b <C.30.3388+0x26d>                 
   47474:	6044           	bras 474ba <_Heap_Walk+0x222>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) ) {               
   47476:	2206           	movel %d6,%d1                               
   47478:	4c44 1000      	remul %d4,%d0,%d1                           
   4747c:	4a80           	tstl %d0                                    
   4747e:	670c           	beqs 4748c <_Heap_Walk+0x1f4>               
      (*printer)(                                                     
   47480:	2f06           	movel %d6,%sp@-                             
   47482:	2f0a           	movel %a2,%sp@-                             
   47484:	4879 0005 c588 	pea 5c588 <C.30.3388+0x29a>                 
   4748a:	602e           	bras 474ba <_Heap_Walk+0x222>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size ) {                              
   4748c:	b686           	cmpl %d6,%d3                                
   4748e:	631c           	blss 474ac <_Heap_Walk+0x214>               
      (*printer)(                                                     
   47490:	2f03           	movel %d3,%sp@-                             
   47492:	2f06           	movel %d6,%sp@-                             
   47494:	2f0a           	movel %a2,%sp@-                             
   47496:	4879 0005 c5b6 	pea 5c5b6 <C.30.3388+0x2c8>                 
   4749c:	4878 0001      	pea 1 <ADD>                                 
   474a0:	2f02           	movel %d2,%sp@-                             
   474a2:	4e93           	jsr %a3@                                    
        block,                                                        
        block_size,                                                   
        min_block_size                                                
      );                                                              
                                                                      
      return false;                                                   
   474a4:	4fef 0018      	lea %sp@(24),%sp                            
   474a8:	6000 00e0      	braw 4758a <_Heap_Walk+0x2f2>               
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin ) {                          
   474ac:	b5cd           	cmpal %a5,%a2                               
   474ae:	651a           	bcss 474ca <_Heap_Walk+0x232>               
      (*printer)(                                                     
   474b0:	2f0d           	movel %a5,%sp@-                             
   474b2:	2f0a           	movel %a2,%sp@-                             
   474b4:	4879 0005 c5e1 	pea 5c5e1 <C.30.3388+0x2f3>                 
   474ba:	4878 0001      	pea 1 <ADD>                                 
   474be:	2f02           	movel %d2,%sp@-                             
   474c0:	4e93           	jsr %a3@                                    
        "block 0x%08x: next block 0x%08x is not a successor\n",       
        block,                                                        
        next_block                                                    
      );                                                              
                                                                      
      return false;                                                   
   474c2:	4fef 0014      	lea %sp@(20),%sp                            
   474c6:	6000 00c2      	braw 4758a <_Heap_Walk+0x2f2>               
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
   474ca:	7001           	moveq #1,%d0                                
   474cc:	c0ad 0004      	andl %a5@(4),%d0                            
   474d0:	4a00           	tstb %d0                                    
   474d2:	6600 00ce      	bnew 475a2 <_Heap_Walk+0x30a>               
  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;                 
   474d6:	2e2a 0004      	movel %a2@(4),%d7                           
    - 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;                
   474da:	7cfe           	moveq #-2,%d6                               
  return _Heap_Free_list_head(heap)->next;                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_last( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_tail(heap)->prev;                            
   474dc:	43f9 0005 c615 	lea 5c615 <C.30.3388+0x327>,%a1             
  return &heap->free_list;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_first( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_head(heap)->next;                            
   474e2:	206c 0008      	moveal %a4@(8),%a0                          
    - 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;                
   474e6:	cc87           	andl %d7,%d6                                
  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;                 
   474e8:	2d47 fffc      	movel %d7,%fp@(-4)                          
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   474ec:	2e0a           	movel %a2,%d7                               
   474ee:	de86           	addl %d6,%d7                                
  return &heap->free_list;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_first( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_head(heap)->next;                            
   474f0:	2d48 fff8      	movel %a0,%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)(                                                         
   474f4:	206a 0008      	moveal %a2@(8),%a0                          
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_last( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_tail(heap)->prev;                            
   474f8:	b1ec 000c      	cmpal %a4@(12),%a0                          
   474fc:	6710           	beqs 4750e <_Heap_Walk+0x276>               
      " (= first)"                                                    
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last)"                                                     
        : (block->next == free_list_tail ? " (= tail)" : "")          
   474fe:	43f9 0005 c61f 	lea 5c61f <C.30.3388+0x331>,%a1             
   47504:	b9c8           	cmpal %a0,%a4                               
   47506:	6706           	beqs 4750e <_Heap_Walk+0x276>               
   47508:	43f9 0005 c24c 	lea 5c24c <rtems_filesystem_default_pathconf+0x40>,%a1
  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)(                                                         
   4750e:	202a 000c      	movel %a2@(12),%d0                          
   47512:	223c 0005 c629 	movel #378409,%d1                           
   47518:	b0ae fff8      	cmpl %fp@(-8),%d0                           
   4751c:	6710           	beqs 4752e <_Heap_Walk+0x296>               
    "block 0x%08x: prev 0x%08x%s, next 0x%08x%s\n",                   
    block,                                                            
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first)"                                                    
        : (block->prev == free_list_head ? " (= head)" : ""),         
   4751e:	223c 0005 c634 	movel #378420,%d1                           
   47524:	b9c0           	cmpal %d0,%a4                               
   47526:	6706           	beqs 4752e <_Heap_Walk+0x296>               
   47528:	223c 0005 c24c 	movel #377420,%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)(                                                         
   4752e:	2f09           	movel %a1,%sp@-                             
   47530:	2f08           	movel %a0,%sp@-                             
   47532:	2f01           	movel %d1,%sp@-                             
   47534:	2f00           	movel %d0,%sp@-                             
   47536:	2f0a           	movel %a2,%sp@-                             
   47538:	4879 0005 c63e 	pea 5c63e <C.30.3388+0x350>                 
   4753e:	42a7           	clrl %sp@-                                  
   47540:	2f02           	movel %d2,%sp@-                             
   47542:	4e93           	jsr %a3@                                    
    block->next == last_free_block ?                                  
      " (= last)"                                                     
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
   47544:	4fef 0020      	lea %sp@(32),%sp                            
   47548:	2047           	moveal %d7,%a0                              
   4754a:	2010           	movel %a0@,%d0                              
   4754c:	b086           	cmpl %d6,%d0                                
   4754e:	671c           	beqs 4756c <_Heap_Walk+0x2d4>               
    (*printer)(                                                       
   47550:	2f07           	movel %d7,%sp@-                             
   47552:	2f00           	movel %d0,%sp@-                             
   47554:	2f06           	movel %d6,%sp@-                             
   47556:	2f0a           	movel %a2,%sp@-                             
   47558:	4879 0005 c66a 	pea 5c66a <C.30.3388+0x37c>                 
   4755e:	4878 0001      	pea 1 <ADD>                                 
   47562:	2f02           	movel %d2,%sp@-                             
   47564:	4e93           	jsr %a3@                                    
   47566:	4fef 001c      	lea %sp@(28),%sp                            
   4756a:	601e           	bras 4758a <_Heap_Walk+0x2f2>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
   4756c:	7001           	moveq #1,%d0                                
   4756e:	c0ae fffc      	andl %fp@(-4),%d0                           
   47572:	4a00           	tstb %d0                                    
   47574:	6618           	bnes 4758e <_Heap_Walk+0x2f6>               
    (*printer)(                                                       
   47576:	2f0a           	movel %a2,%sp@-                             
   47578:	4879 0005 c6a3 	pea 5c6a3 <C.30.3388+0x3b5>                 
   4757e:	4878 0001      	pea 1 <ADD>                                 
   47582:	2f02           	movel %d2,%sp@-                             
   47584:	4e93           	jsr %a3@                                    
   47586:	4fef 0010      	lea %sp@(16),%sp                            
   4758a:	4200           	clrb %d0                                    
   4758c:	601e           	bras 475ac <_Heap_Walk+0x314>               
  return &heap->free_list;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_first( Heap_Control *heap )
{                                                                     
  return _Heap_Free_list_head(heap)->next;                            
   4758e:	206c 0008      	moveal %a4@(8),%a0                          
   47592:	6008           	bras 4759c <_Heap_Walk+0x304>               
{                                                                     
  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 ) {                                      
   47594:	b5c8           	cmpal %a0,%a2                               
   47596:	670a           	beqs 475a2 <_Heap_Walk+0x30a>               
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
   47598:	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 ) {                            
   4759c:	b9c8           	cmpal %a0,%a4                               
   4759e:	66f4           	bnes 47594 <_Heap_Walk+0x2fc>               
   475a0:	6014           	bras 475b6 <_Heap_Walk+0x31e>               
   475a2:	244d           	moveal %a5,%a2                              
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
  }                                                                   
                                                                      
  while ( block != last_block ) {                                     
   475a4:	ba8a           	cmpl %a2,%d5                                
   475a6:	6600 fe6e      	bnew 47416 <_Heap_Walk+0x17e>               
   475aa:	7001           	moveq #1,%d0                                
                                                                      
    block = next_block;                                               
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   475ac:	4cee 3cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a5            
   475b2:	4e5e           	unlk %fp                                    
   475b4:	4e75           	rts                                         
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
   475b6:	2f0a           	movel %a2,%sp@-                             
   475b8:	4879 0005 c6d2 	pea 5c6d2 <C.30.3388+0x3e4>                 
   475be:	60be           	bras 4757e <_Heap_Walk+0x2e6>               
                                                                      

000468d4 <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
   468d4:	4e56 0000      	linkw %fp,#0                                
   468d8:	222e 000c      	movel %fp@(12),%d1                          
   468dc:	2f03           	movel %d3,%sp@-                             
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   468de:	4283           	clrl %d3                                    
   468e0:	1601           	moveb %d1,%d3                               
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   468e2:	2f02           	movel %d2,%sp@-                             
   468e4:	242e 0010      	movel %fp@(16),%d2                          
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   468e8:	2f02           	movel %d2,%sp@-                             
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   468ea:	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 );       
   468ee:	2f03           	movel %d3,%sp@-                             
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   468f0:	263c 0000 0700 	movel #1792,%d3                             
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   468f6:	2f00           	movel %d0,%sp@-                             
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
   468f8:	13c1 0005 dcc6 	moveb %d1,5dcc6 <_Internal_errors_What_happened+0x4>
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
   468fe:	23c0 0005 dcc2 	movel %d0,5dcc2 <_Internal_errors_What_happened>
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
   46904:	23c2 0005 dcc8 	movel %d2,5dcc8 <_Internal_errors_What_happened+0x6>
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   4690a:	4eb9 0004 83fe 	jsr 483fe <_User_extensions_Fatal>          
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   46910:	40c0           	movew %sr,%d0                               
   46912:	8083           	orl %d3,%d0                                 
   46914:	46c0           	movew %d0,%sr                               
   46916:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   46918:	223c dead beef 	movel #-559038737,%d1                       <== NOT EXECUTED
   4691e:	4ac8           	halt                                        <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
   46920:	7005           	moveq #5,%d0                                
   46922:	4fef 000c      	lea %sp@(12),%sp                            
   46926:	23c0 0005 dd9e 	movel %d0,5dd9e <_System_state_Current>     
   4692c:	60fe           	bras 4692c <_Internal_error_Occurred+0x58>  
	...                                                                  
                                                                      

00046998 <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) {
   46998:	4e56 fff0      	linkw %fp,#-16                              
   4699c:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   469a0:	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 )                                       
   469a4:	4aaa 0014      	tstl %a2@(20)                               
   469a8:	6604           	bnes 469ae <_Objects_Allocate+0x16>         <== ALWAYS TAKEN
   469aa:	4280           	clrl %d0                                    <== NOT EXECUTED
   469ac:	605e           	bras 46a0c <_Objects_Allocate+0x74>         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  OK.  The manager should be initialized and configured to have objects.
   *  With any luck, it is safe to attempt to allocate an object.     
   */                                                                 
  the_object = (Objects_Control *) _Chain_Get( &information->Inactive );
   469ae:	240a           	movel %a2,%d2                               
   469b0:	0682 0000 001c 	addil #28,%d2                               
   469b6:	47f9 0004 6164 	lea 46164 <_Chain_Get>,%a3                  
   469bc:	2f02           	movel %d2,%sp@-                             
   469be:	4e93           	jsr %a3@                                    
                                                                      
  if ( information->auto_extend ) {                                   
   469c0:	588f           	addql #4,%sp                                
   469c2:	4a2a 0010      	tstb %a2@(16)                               
   469c6:	6744           	beqs 46a0c <_Objects_Allocate+0x74>         
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
   469c8:	4a80           	tstl %d0                                    
   469ca:	6612           	bnes 469de <_Objects_Allocate+0x46>         
      _Objects_Extend_information( information );                     
   469cc:	2f0a           	movel %a2,%sp@-                             
   469ce:	4eb9 0004 6a44 	jsr 46a44 <_Objects_Extend_information>     
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
   469d4:	2f02           	movel %d2,%sp@-                             
   469d6:	4e93           	jsr %a3@                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
   469d8:	508f           	addql #8,%sp                                
   469da:	4a80           	tstl %d0                                    
   469dc:	672e           	beqs 46a0c <_Objects_Allocate+0x74>         
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   469de:	2040           	moveal %d0,%a0                              
   469e0:	4281           	clrl %d1                                    
   469e2:	4283           	clrl %d3                                    
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   469e4:	4282           	clrl %d2                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   469e6:	362a 0008      	movew %a2@(8),%d3                           
   469ea:	3228 000a      	movew %a0@(10),%d1                          
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   469ee:	342a 0012      	movew %a2@(18),%d2                          
      information->inactive--;                                        
   469f2:	306a 0028      	moveaw %a2@(40),%a0                         
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   469f6:	9283           	subl %d3,%d1                                
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   469f8:	4c42 1001      	remul %d2,%d1,%d1                           
      information->inactive--;                                        
   469fc:	5388           	subql #1,%a0                                
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   469fe:	e589           	lsll #2,%d1                                 
      information->inactive--;                                        
   46a00:	3548 0028      	movew %a0,%a2@(40)                          
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   46a04:	206a 002a      	moveal %a2@(42),%a0                         
   46a08:	d1c1           	addal %d1,%a0                               
   46a0a:	5390           	subql #1,%a0@                               
      information->inactive--;                                        
    }                                                                 
  }                                                                   
                                                                      
  return the_object;                                                  
}                                                                     
   46a0c:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   46a12:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046a18 <_Objects_Close>: #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object;
   46a18:	4280           	clrl %d0                                    
                                                                      
void _Objects_Close(                                                  
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
   46a1a:	4e56 0000      	linkw %fp,#0                                
   46a1e:	226e 000c      	moveal %fp@(12),%a1                         
   46a22:	206e 0008      	moveal %fp@(8),%a0                          
   46a26:	2f0a           	movel %a2,%sp@-                             
   46a28:	2468 0018      	moveal %a0@(24),%a2                         
   46a2c:	3029 000a      	movew %a1@(10),%d0                          
   46a30:	42b2 0c00      	clrl %a2@(00000000,%d0:l:4)                 
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46a34:	2d49 000c      	movel %a1,%fp@(12)                          
}                                                                     
   46a38:	245f           	moveal %sp@+,%a2                            
   46a3a:	4e5e           	unlk %fp                                    
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46a3c:	4ef9 0004 6f38 	jmp 46f38 <_Objects_Namespace_remove>       
	...                                                                  
                                                                      

00046d3c <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint32_t the_class ) {
   46d3c:	4e56 0000      	linkw %fp,#0                                
   46d40:	2f03           	movel %d3,%sp@-                             
   46d42:	262e 0008      	movel %fp@(8),%d3                           
   46d46:	2f02           	movel %d2,%sp@-                             
   46d48:	242e 000c      	movel %fp@(12),%d2                          
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
   46d4c:	672e           	beqs 46d7c <_Objects_Get_information+0x40>  
                                                                      
  /*                                                                  
   *  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 );      
   46d4e:	2f03           	movel %d3,%sp@-                             
   46d50:	4eb9 0004 b230 	jsr 4b230 <_Objects_API_maximum_class>      
  if ( the_class_api_maximum == 0 )                                   
   46d56:	588f           	addql #4,%sp                                
   46d58:	4a80           	tstl %d0                                    
   46d5a:	6720           	beqs 46d7c <_Objects_Get_information+0x40>  
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
   46d5c:	b082           	cmpl %d2,%d0                                
   46d5e:	651c           	bcss 46d7c <_Objects_Get_information+0x40>  
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
   46d60:	41f9 0005 dbd4 	lea 5dbd4 <_Objects_Information_table>,%a0  
   46d66:	2070 3c00      	moveal %a0@(00000000,%d3:l:4),%a0           
   46d6a:	4a88           	tstl %a0                                    
   46d6c:	670e           	beqs 46d7c <_Objects_Get_information+0x40>  <== NEVER TAKEN
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
   46d6e:	2030 2c00      	movel %a0@(00000000,%d2:l:4),%d0            
  if ( !info )                                                        
   46d72:	670a           	beqs 46d7e <_Objects_Get_information+0x42>  <== NEVER TAKEN
   *  In a multprocessing configuration, we may access remote objects.
   *  Thus we may have 0 local instances and still have a valid object
   *  pointer.                                                        
   */                                                                 
  #if !defined(RTEMS_MULTIPROCESSING)                                 
    if ( info->maximum == 0 )                                         
   46d74:	2040           	moveal %d0,%a0                              
   46d76:	4a68 000e      	tstw %a0@(14)                               
   46d7a:	6602           	bnes 46d7e <_Objects_Get_information+0x42>  
   46d7c:	4280           	clrl %d0                                    
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
   46d7e:	242e fff8      	movel %fp@(-8),%d2                          
   46d82:	262e fffc      	movel %fp@(-4),%d3                          
   46d86:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00053eec <_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;
   53eec:	7001           	moveq #1,%d0                                
                                                                      
  if ( information->maximum >= index ) {                              
   53eee:	4281           	clrl %d1                                    
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   53ef0:	4e56 0000      	linkw %fp,#0                                
   53ef4:	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;                           
   53ef8:	90a8 0006      	subl %a0@(6),%d0                            
   53efc:	d0ae 000c      	addl %fp@(12),%d0                           
                                                                      
  if ( information->maximum >= index ) {                              
   53f00:	3228 000e      	movew %a0@(14),%d1                          
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   53f04:	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 ) {                              
   53f08:	b081           	cmpl %d1,%d0                                
   53f0a:	620e           	bhis 53f1a <_Objects_Get_no_protection+0x2e>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
   53f0c:	2068 0018      	moveal %a0@(24),%a0                         
   53f10:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
   53f14:	6704           	beqs 53f1a <_Objects_Get_no_protection+0x2e><== NEVER TAKEN
      *location = OBJECTS_LOCAL;                                      
   53f16:	4291           	clrl %a1@                                   
      return the_object;                                              
   53f18:	6006           	bras 53f20 <_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;                                          
   53f1a:	7001           	moveq #1,%d0                                
   53f1c:	2280           	movel %d0,%a1@                              
   53f1e:	4280           	clrl %d0                                    
  return NULL;                                                        
}                                                                     
   53f20:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047c6c <_Objects_Id_to_name>: */ Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
   47c6c:	4e56 fffc      	linkw %fp,#-4                               
   47c70:	222e 0008      	movel %fp@(8),%d1                           
   47c74:	2f02           	movel %d2,%sp@-                             
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
   47c76:	4a81           	tstl %d1                                    
   47c78:	660a           	bnes 47c84 <_Objects_Id_to_name+0x18>       
   47c7a:	2079 0005 f0fe 	moveal 5f0fe <_Thread_Executing>,%a0        
   47c80:	2228 0008      	movel %a0@(8),%d1                           
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
   47c84:	7418           	moveq #24,%d2                               
   47c86:	2001           	movel %d1,%d0                               
   47c88:	e4a8           	lsrl %d2,%d0                                
   47c8a:	143c 0007      	moveb #7,%d2                                
   47c8e:	c082           	andl %d2,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
   47c90:	143c 0003      	moveb #3,%d2                                
   47c94:	2040           	moveal %d0,%a0                              
   47c96:	5388           	subql #1,%a0                                
   47c98:	b488           	cmpl %a0,%d2                                
   47c9a:	6538           	bcss 47cd4 <_Objects_Id_to_name+0x68>       
   47c9c:	6040           	bras 47cde <_Objects_Id_to_name+0x72>       
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
   47c9e:	2001           	movel %d1,%d0                               
   47ca0:	741b           	moveq #27,%d2                               
   47ca2:	e4a8           	lsrl %d2,%d0                                
   47ca4:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
  if ( !information )                                                 
   47ca8:	672a           	beqs 47cd4 <_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 ); 
   47caa:	486e fffc      	pea %fp@(-4)                                
   47cae:	2f01           	movel %d1,%sp@-                             
   47cb0:	2f00           	movel %d0,%sp@-                             
   47cb2:	4eb9 0004 7c0c 	jsr 47c0c <_Objects_Get>                    
  if ( !the_object )                                                  
   47cb8:	4fef 000c      	lea %sp@(12),%sp                            
   47cbc:	4a80           	tstl %d0                                    
   47cbe:	6714           	beqs 47cd4 <_Objects_Id_to_name+0x68>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
   47cc0:	206e 000c      	moveal %fp@(12),%a0                         
   47cc4:	2240           	moveal %d0,%a1                              
   47cc6:	20a9 000c      	movel %a1@(12),%a0@                         
  _Thread_Enable_dispatch();                                          
   47cca:	4eb9 0004 84de 	jsr 484de <_Thread_Enable_dispatch>         
   47cd0:	4280           	clrl %d0                                    
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
   47cd2:	6002           	bras 47cd6 <_Objects_Id_to_name+0x6a>       
   47cd4:	7003           	moveq #3,%d0                                
}                                                                     
   47cd6:	242e fff8      	movel %fp@(-8),%d2                          
   47cda:	4e5e           	unlk %fp                                    
   47cdc:	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 ] )                       
   47cde:	41f9 0005 effc 	lea 5effc <_Objects_Information_table>,%a0  
   47ce4:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
   47ce8:	4a88           	tstl %a0                                    
   47cea:	66b2           	bnes 47c9e <_Objects_Id_to_name+0x32>       
   47cec:	60e6           	bras 47cd4 <_Objects_Id_to_name+0x68>       
	...                                                                  
                                                                      

00046e44 <_Objects_Initialize_information>: information->maximum = 0; /* * Register this Object Class in the Object Information Table. */ _Objects_Information_table[ the_api ][ the_class ] = information;
   46e44:	41f9 0005 dbd4 	lea 5dbd4 <_Objects_Information_table>,%a0  
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46e4a:	4e56 fff0      	linkw %fp,#-16                              
   46e4e:	202e 000c      	movel %fp@(12),%d0                          
  information->maximum = 0;                                           
                                                                      
  /*                                                                  
   *  Register this Object Class in the Object Information Table.     
   */                                                                 
  _Objects_Information_table[ the_api ][ the_class ] = information;   
   46e52:	2270 0c00      	moveal %a0@(00000000,%d0:l:4),%a1           
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46e56:	48d7 003c      	moveml %d2-%d5,%sp@                         
   46e5a:	222e 0014      	movel %fp@(20),%d1                          
   46e5e:	4285           	clrl %d5                                    
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
   46e60:	2601           	movel %d1,%d3                               
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46e62:	206e 0008      	moveal %fp@(8),%a0                          
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
  information->inactive_per_block = 0;                                
  information->object_blocks      = 0;                                
  information->inactive           = 0;                                
   46e66:	4242           	clrw %d2                                    
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46e68:	3a2e 001a      	movew %fp@(26),%d5                          
   46e6c:	282e 0010      	movel %fp@(16),%d4                          
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
   46e70:	d683           	addl %d3,%d3                                
   46e72:	9783           	subxl %d3,%d3                               
   46e74:	4483           	negl %d3                                    
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
  information->inactive_per_block = 0;                                
  information->object_blocks      = 0;                                
  information->inactive           = 0;                                
   46e76:	3142 0028      	movew %d2,%a0@(40)                          
                                                                      
  /*                                                                  
   *  Set the maximum value to 0. It will be updated when objects are 
   *  added to the inactive set from _Objects_Extend_information()    
   */                                                                 
  information->maximum = 0;                                           
   46e7a:	3142 000e      	movew %d2,%a0@(14)                          
  ,                                                                   
  bool                 supports_global,                               
  Objects_Thread_queue_Extract_callout extract                        
#endif                                                                
)                                                                     
{                                                                     
   46e7e:	242e 0020      	movel %fp@(32),%d2                          
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
  information->the_class          = the_class;                        
   46e82:	3144 0004      	movew %d4,%a0@(4)                           
  _Objects_Information_table[ the_api ][ the_class ] = information;   
                                                                      
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
   46e86:	1143 0010      	moveb %d3,%a0@(16)                          
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
  information->the_class          = the_class;                        
  information->size               = size;                             
   46e8a:	2145 0014      	movel %d5,%a0@(20)                          
  information->maximum = 0;                                           
                                                                      
  /*                                                                  
   *  Register this Object Class in the Object Information Table.     
   */                                                                 
  _Objects_Information_table[ the_api ][ the_class ] = information;   
   46e8e:	2388 4c00      	movel %a0,%a1@(00000000,%d4:l:4)            
  /*                                                                  
   *  Are we operating in limited or unlimited (e.g. auto-extend) mode.
   */                                                                 
  information->auto_extend =                                          
        (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false;         
  maximum_per_allocation = maximum & ~OBJECTS_UNLIMITED_OBJECTS;      
   46e92:	0881 001f      	bclr #31,%d1                                
  uint32_t                maximum_per_allocation;                     
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t              index;                                      
  #endif                                                              
                                                                      
  information->the_api            = the_api;                          
   46e96:	2080           	movel %d0,%a0@                              
  information->the_class          = the_class;                        
  information->size               = size;                             
  information->local_table        = 0;                                
   46e98:	42a8 0018      	clrl %a0@(24)                               
  information->inactive_per_block = 0;                                
   46e9c:	42a8 002a      	clrl %a0@(42)                               
  information->object_blocks      = 0;                                
   46ea0:	42a8 002e      	clrl %a0@(46)                               
  maximum_per_allocation = maximum & ~OBJECTS_UNLIMITED_OBJECTS;      
                                                                      
  /*                                                                  
   *  Unlimited and maximum of zero is illogical.                     
   */                                                                 
  if ( information->auto_extend && maximum_per_allocation == 0) {     
   46ea4:	4a03           	tstb %d3                                    
   46ea6:	6714           	beqs 46ebc <_Objects_Initialize_information+0x78>
   46ea8:	4a81           	tstl %d1                                    
   46eaa:	6610           	bnes 46ebc <_Objects_Initialize_information+0x78>
    _Internal_error_Occurred(                                         
   46eac:	4878 0014      	pea 14 <OPER2>                              
   46eb0:	4878 0001      	pea 1 <ADD>                                 
   46eb4:	42a7           	clrl %sp@-                                  
   46eb6:	4eb9 0004 68d4 	jsr 468d4 <_Internal_error_Occurred>        
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46ebc:	7a18           	moveq #24,%d5                               
   46ebe:	4a81           	tstl %d1                                    
   46ec0:	56c3           	sne %d3                                     
   46ec2:	eba8           	lsll %d5,%d0                                
   46ec4:	1a3c 001b      	moveb #27,%d5                               
   46ec8:	49c3           	extbl %d3                                   
   46eca:	4483           	negl %d3                                    
  information->allocation_size = maximum_per_allocation;              
                                                                      
  /*                                                                  
   *  Provide a null local table entry for the case of any empty table.
   */                                                                 
  information->local_table = &null_local_table;                       
   46ecc:	43f9 0005 d3c4 	lea 5d3c4 <null_local_table.3444>,%a1       
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46ed2:	ebac           	lsll %d5,%d4                                
   46ed4:	08c0 0010      	bset #16,%d0                                
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46ed8:	1a3c 0003      	moveb #3,%d5                                
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46edc:	8084           	orl %d4,%d0                                 
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46ede:	ca82           	andl %d2,%d5                                
  }                                                                   
                                                                      
  /*                                                                  
   *  The allocation unit is the maximum value                        
   */                                                                 
  information->allocation_size = maximum_per_allocation;              
   46ee0:	3141 0012      	movew %d1,%a0@(18)                          
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46ee4:	8083           	orl %d3,%d0                                 
  information->allocation_size = maximum_per_allocation;              
                                                                      
  /*                                                                  
   *  Provide a null local table entry for the case of any empty table.
   */                                                                 
  information->local_table = &null_local_table;                       
   46ee6:	2149 0018      	movel %a1,%a0@(24)                          
                                                                      
  /*                                                                  
   *  Calculate minimum and maximum Id's                              
   */                                                                 
  minimum_index = (maximum_per_allocation == 0) ? 0 : 1;              
  information->minimum_id =                                           
   46eea:	2140 0006      	movel %d0,%a0@(6)                           
  /*                                                                  
   *  Calculate the maximum name length                               
   */                                                                 
  name_length = maximum_name_length;                                  
                                                                      
  if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )                     
   46eee:	4a85           	tstl %d5                                    
   46ef0:	6604           	bnes 46ef6 <_Objects_Initialize_information+0xb2><== NEVER TAKEN
   46ef2:	2002           	movel %d2,%d0                               
   46ef4:	6008           	bras 46efe <_Objects_Initialize_information+0xba>
    name_length = (name_length + OBJECTS_NAME_ALIGNMENT) &            
   46ef6:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   46ef8:	5880           	addql #4,%d0                                <== NOT EXECUTED
   46efa:	74fc           	moveq #-4,%d2                               <== NOT EXECUTED
   46efc:	c082           	andl %d2,%d0                                <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   46efe:	43e8 0020      	lea %a0@(32),%a1                            
   46f02:	2149 001c      	movel %a1,%a0@(28)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   46f06:	43e8 001c      	lea %a0@(28),%a1                            
                  ~(OBJECTS_NAME_ALIGNMENT-1);                        
                                                                      
  information->name_length = name_length;                             
   46f0a:	3140 0032      	movew %d0,%a0@(50)                          
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
  the_chain->permanent_null = NULL;                                   
   46f0e:	42a8 0020      	clrl %a0@(32)                               
  the_chain->last           = _Chain_Head(the_chain);                 
   46f12:	2149 0024      	movel %a1,%a0@(36)                          
  _Chain_Initialize_empty( &information->Inactive );                  
                                                                      
  /*                                                                  
   *  Initialize objects .. if there are any                          
   */                                                                 
  if ( maximum_per_allocation ) {                                     
   46f16:	4a81           	tstl %d1                                    
   46f18:	6712           	beqs 46f2c <_Objects_Initialize_information+0xe8>
    /*                                                                
     *  Always have the maximum size available so the current performance
     *  figures are create are met.  If the user moves past the maximum
     *  number then a performance hit is taken.                       
     */                                                               
    _Objects_Extend_information( information );                       
   46f1a:	2d48 0008      	movel %a0,%fp@(8)                           
	_Chain_Initialize_empty( &information->global_table[ index ] );      
     }                                                                
     else                                                             
       information->global_table = NULL;                              
  #endif                                                              
}                                                                     
   46f1e:	4cee 003c fff0 	moveml %fp@(-16),%d2-%d5                    
   46f24:	4e5e           	unlk %fp                                    
    /*                                                                
     *  Always have the maximum size available so the current performance
     *  figures are create are met.  If the user moves past the maximum
     *  number then a performance hit is taken.                       
     */                                                               
    _Objects_Extend_information( information );                       
   46f26:	4ef9 0004 6a44 	jmp 46a44 <_Objects_Extend_information>     
	_Chain_Initialize_empty( &information->global_table[ index ] );      
     }                                                                
     else                                                             
       information->global_table = NULL;                              
  #endif                                                              
}                                                                     
   46f2c:	4cee 003c fff0 	moveml %fp@(-16),%d2-%d5                    
   46f32:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00048ae8 <_Objects_Set_name>: { size_t length; const char *s; s = name; length = strnlen( name, information->name_length );
   48ae8:	4280           	clrl %d0                                    
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   48aea:	4e56 fff0      	linkw %fp,#-16                              
   48aee:	206e 0008      	moveal %fp@(8),%a0                          
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   48af2:	3028 0032      	movew %a0@(50),%d0                          
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   48af6:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   48afa:	246e 0010      	moveal %fp@(16),%a2                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   48afe:	2f00           	movel %d0,%sp@-                             
   48b00:	2f0a           	movel %a2,%sp@-                             
   48b02:	4eb9 0005 0064 	jsr 50064 <strnlen>                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   48b08:	508f           	addql #8,%sp                                
   48b0a:	7201           	moveq #1,%d1                                
   48b0c:	1812           	moveb %a2@,%d4                              
   48b0e:	b280           	cmpl %d0,%d1                                
   48b10:	644a           	bccs 48b5c <_Objects_Set_name+0x74>         
   48b12:	7602           	moveq #2,%d3                                
   48b14:	142a 0001      	moveb %a2@(1),%d2                           
   48b18:	49c2           	extbl %d2                                   
   48b1a:	4842           	swap %d2                                    
   48b1c:	4242           	clrw %d2                                    
   48b1e:	b680           	cmpl %d0,%d3                                
   48b20:	643e           	bccs 48b60 <_Objects_Set_name+0x78>         
   48b22:	163c 0003      	moveb #3,%d3                                
   48b26:	122a 0002      	moveb %a2@(2),%d1                           
   48b2a:	49c1           	extbl %d1                                   
   48b2c:	e189           	lsll #8,%d1                                 
   48b2e:	b680           	cmpl %d0,%d3                                
   48b30:	6506           	bcss 48b38 <_Objects_Set_name+0x50>         
   48b32:	163c 0020      	moveb #32,%d3                               
   48b36:	6006           	bras 48b3e <_Objects_Set_name+0x56>         
   48b38:	162a 0003      	moveb %a2@(3),%d3                           
   48b3c:	49c3           	extbl %d3                                   
   48b3e:	7018           	moveq #24,%d0                               
   48b40:	e1ac           	lsll %d0,%d4                                
   48b42:	206e 000c      	moveal %fp@(12),%a0                         
   48b46:	8484           	orl %d4,%d2                                 
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   48b48:	7001           	moveq #1,%d0                                
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   48b4a:	8481           	orl %d1,%d2                                 
   48b4c:	8483           	orl %d3,%d2                                 
   48b4e:	2142 000c      	movel %d2,%a0@(12)                          
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   48b52:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   48b58:	4e5e           	unlk %fp                                    
   48b5a:	4e75           	rts                                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   48b5c:	7420           	moveq #32,%d2                               
   48b5e:	4842           	swap %d2                                    
   48b60:	223c 0000 2000 	movel #8192,%d1                             
   48b66:	7620           	moveq #32,%d3                               
   48b68:	60d4           	bras 48b3e <_Objects_Set_name+0x56>         
	...                                                                  
                                                                      

0004aab2 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) {
   4aab2:	4e56 ffec      	linkw %fp,#-20                              
   4aab6:	206e 0008      	moveal %fp@(8),%a0                          
   4aaba:	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 ];                
   4aabe:	2468 0108      	moveal %a0@(264),%a2                        
  if ( !api )                                                         
   4aac2:	4a8a           	tstl %a2                                    
   4aac4:	6754           	beqs 4ab1a <_RTEMS_tasks_Post_switch_extension+0x68><== NEVER TAKEN
   *  Signal Processing                                               
   */                                                                 
                                                                      
  asr = &api->Signal;                                                 
                                                                      
  _ISR_Disable( level );                                              
   4aac6:	203c 0000 0700 	movel #1792,%d0                             
   4aacc:	40c1           	movew %sr,%d1                               
   4aace:	8081           	orl %d1,%d0                                 
   4aad0:	46c0           	movew %d0,%sr                               
    signal_set = asr->signals_posted;                                 
   4aad2:	262a 0012      	movel %a2@(18),%d3                          
    asr->signals_posted = 0;                                          
   4aad6:	42aa 0012      	clrl %a2@(18)                               
  _ISR_Enable( level );                                               
   4aada:	46c1           	movew %d1,%sr                               
                                                                      
                                                                      
  if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 
   4aadc:	4a83           	tstl %d3                                    
   4aade:	673a           	beqs 4ab1a <_RTEMS_tasks_Post_switch_extension+0x68><== NEVER TAKEN
    return;                                                           
                                                                      
  asr->nest_level += 1;                                               
   4aae0:	52aa 001a      	addql #1,%a2@(26)                           
  rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 
   4aae4:	240e           	movel %fp,%d2                               
   4aae6:	5982           	subql #4,%d2                                
   4aae8:	47f9 0004 cc14 	lea 4cc14 <rtems_task_mode>,%a3             
   4aaee:	2f02           	movel %d2,%sp@-                             
   4aaf0:	2f3c 0000 ffff 	movel #65535,%sp@-                          
   4aaf6:	2f2a 000e      	movel %a2@(14),%sp@-                        
   4aafa:	4e93           	jsr %a3@                                    
                                                                      
  (*asr->handler)( signal_set );                                      
   4aafc:	2f03           	movel %d3,%sp@-                             
   4aafe:	206a 000a      	moveal %a2@(10),%a0                         
   4ab02:	4e90           	jsr %a0@                                    
                                                                      
  asr->nest_level -= 1;                                               
   4ab04:	53aa 001a      	subql #1,%a2@(26)                           
  rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode );     
   4ab08:	2f02           	movel %d2,%sp@-                             
   4ab0a:	2f3c 0000 ffff 	movel #65535,%sp@-                          
   4ab10:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   4ab14:	4e93           	jsr %a3@                                    
   4ab16:	4fef 001c      	lea %sp@(28),%sp                            
                                                                      
}                                                                     
   4ab1a:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4ab20:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00057e74 <_Region_Process_queue>: */ void _Region_Process_queue( Region_Control *the_region ) {
   57e74:	4e56 ffe4      	linkw %fp,#-28                              
   57e78:	2039 0007 6278 	movel 76278 <_Thread_Dispatch_disable_level>,%d0
   57e7e:	5280           	addql #1,%d0                                
   57e80:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   57e84:	266e 0008      	moveal %fp@(8),%a3                          
   57e88:	23c0 0007 6278 	movel %d0,76278 <_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();                                          
   57e8e:	2f39 0007 632a 	movel 7632a <_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 );      
   57e94:	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 );                 
   57e96:	280b           	movel %a3,%d4                               
   57e98:	0682 0000 0010 	addil #16,%d2                               
   57e9e:	0684 0000 0068 	addil #104,%d4                              
   57ea4:	4bf9 0005 31ac 	lea 531ac <_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 );     
   57eaa:	49f9 0005 856c 	lea 5856c <_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();                                          
   57eb0:	4eb9 0005 27dc 	jsr 527dc <_API_Mutex_Unlock>               
   57eb6:	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 );      
   57eb8:	263c 0005 8670 	movel #362096,%d3                           
   57ebe:	2f02           	movel %d2,%sp@-                             
   57ec0:	2043           	moveal %d3,%a0                              
   57ec2:	4e90           	jsr %a0@                                    
                                                                      
    if ( the_thread == NULL )                                         
   57ec4:	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 );      
   57ec6:	2440           	moveal %d0,%a2                              
                                                                      
    if ( the_thread == NULL )                                         
   57ec8:	4a80           	tstl %d0                                    
   57eca:	672c           	beqs 57ef8 <_Region_Process_queue+0x84>     
   57ecc:	42a7           	clrl %sp@-                                  
   57ece:	42a7           	clrl %sp@-                                  
   57ed0:	2f2a 0024      	movel %a2@(36),%sp@-                        
   57ed4:	2f04           	movel %d4,%sp@-                             
   57ed6:	4e95           	jsr %a5@                                    
    the_segment = (void **) _Region_Allocate_segment(                 
      the_region,                                                     
      the_thread->Wait.count                                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
   57ed8:	4fef 0010      	lea %sp@(16),%sp                            
   57edc:	4a80           	tstl %d0                                    
   57ede:	6718           	beqs 57ef8 <_Region_Process_queue+0x84>     
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   57ee0:	206a 0028      	moveal %a2@(40),%a0                         
    the_region->number_of_used_blocks += 1;                           
   57ee4:	52ab 0064      	addql #1,%a3@(100)                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   57ee8:	2080           	movel %d0,%a0@                              
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   57eea:	2f0a           	movel %a2,%sp@-                             
   57eec:	2f02           	movel %d2,%sp@-                             
   57eee:	4e94           	jsr %a4@                                    
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
   57ef0:	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;                  
   57ef2:	42aa 0034      	clrl %a2@(52)                               
  }                                                                   
   57ef6:	60c6           	bras 57ebe <_Region_Process_queue+0x4a>     
  _Thread_Enable_dispatch();                                          
}                                                                     
   57ef8:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   57efe:	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();                                          
   57f00:	4ef9 0005 47f6 	jmp 547f6 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

00046170 <_TOD_Validate>: */ bool _TOD_Validate( const rtems_time_of_day *the_tod ) {
   46170:	4e56 0000      	linkw %fp,#0                                
   46174:	206e 0008      	moveal %fp@(8),%a0                          
   46178:	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();                 
   4617a:	2039 0005 e610 	movel 5e610 <Configuration+0xc>,%d0         
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  const rtems_time_of_day *the_tod                                    
)                                                                     
{                                                                     
   46180:	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)                                  ||                  
   46182:	4a88           	tstl %a0                                    
   46184:	6762           	beqs 461e8 <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->ticks  >= ticks_per_second)       ||                  
   46186:	243c 000f 4240 	movel #1000000,%d2                          
   4618c:	4c40 2002      	remul %d0,%d2,%d2                           
   46190:	b4a8 0018      	cmpl %a0@(24),%d2                           
   46194:	6352           	blss 461e8 <_TOD_Validate+0x78>             
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
   46196:	763b           	moveq #59,%d3                               
   46198:	b6a8 0014      	cmpl %a0@(20),%d3                           
   4619c:	654a           	bcss 461e8 <_TOD_Validate+0x78>             
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
   4619e:	b6a8 0010      	cmpl %a0@(16),%d3                           
   461a2:	6544           	bcss 461e8 <_TOD_Validate+0x78>             
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
   461a4:	7017           	moveq #23,%d0                               
   461a6:	b0a8 000c      	cmpl %a0@(12),%d0                           
   461aa:	653c           	bcss 461e8 <_TOD_Validate+0x78>             
      (the_tod->month  == 0)                      ||                  
   461ac:	2028 0004      	movel %a0@(4),%d0                           
  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)                                  ||                  
   461b0:	6736           	beqs 461e8 <_TOD_Validate+0x78>             <== NEVER TAKEN
   461b2:	720c           	moveq #12,%d1                               
   461b4:	b280           	cmpl %d0,%d1                                
   461b6:	6530           	bcss 461e8 <_TOD_Validate+0x78>             
      (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)          ||                  
   461b8:	2410           	movel %a0@,%d2                              
  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)                                  ||                  
   461ba:	0c82 0000 07c3 	cmpil #1987,%d2                             
   461c0:	6326           	blss 461e8 <_TOD_Validate+0x78>             
      (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)          ||                  
      (the_tod->day    == 0) )                                        
   461c2:	2228 0008      	movel %a0@(8),%d1                           
  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)                                  ||                  
   461c6:	6720           	beqs 461e8 <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
   461c8:	163c 0003      	moveb #3,%d3                                
   461cc:	41f9 0005 d3c2 	lea 5d3c2 <_TOD_Days_per_month>,%a0         
   461d2:	c483           	andl %d3,%d2                                
   461d4:	6606           	bnes 461dc <_TOD_Validate+0x6c>             
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
   461d6:	2030 0c34      	movel %a0@(00000034,%d0:l:4),%d0            
   461da:	6004           	bras 461e0 <_TOD_Validate+0x70>             
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
   461dc:	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(                                                   
   461e0:	b081           	cmpl %d1,%d0                                
   461e2:	54c0           	scc %d0                                     
   461e4:	4480           	negl %d0                                    
   461e6:	6002           	bras 461ea <_TOD_Validate+0x7a>             
   461e8:	4200           	clrb %d0                                    
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
   461ea:	241f           	movel %sp@+,%d2                             
   461ec:	261f           	movel %sp@+,%d3                             
   461ee:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047138 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
   47138:	4e56 fff0      	linkw %fp,#-16                              
   4713c:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   47140:	246e 0008      	moveal %fp@(8),%a2                          
  /*                                                                  
   * 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 );                                
   47144:	2f0a           	movel %a2,%sp@-                             
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   47146:	262e 000c      	movel %fp@(12),%d3                          
*/                                                                    
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
   4714a:	242a 0010      	movel %a2@(16),%d2                          
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   4714e:	182e 0013      	moveb %fp@(19),%d4                          
  /*                                                                  
   * 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 );                                
   47152:	4eb9 0004 7f20 	jsr 47f20 <_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 )                  
   47158:	588f           	addql #4,%sp                                
   4715a:	b6aa 0014      	cmpl %a2@(20),%d3                           
   4715e:	670c           	beqs 4716c <_Thread_Change_priority+0x34>   
    _Thread_Set_priority( the_thread, new_priority );                 
   47160:	2f03           	movel %d3,%sp@-                             
   47162:	2f0a           	movel %a2,%sp@-                             
   47164:	4eb9 0004 7dc8 	jsr 47dc8 <_Thread_Set_priority>            
   4716a:	508f           	addql #8,%sp                                
                                                                      
  _ISR_Disable( level );                                              
   4716c:	223c 0000 0700 	movel #1792,%d1                             
   47172:	40c0           	movew %sr,%d0                               
   47174:	8280           	orl %d0,%d1                                 
   47176:	46c1           	movew %d1,%sr                               
   47178:	7604           	moveq #4,%d3                                
                                                                      
  /*                                                                  
   *  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;                                  
   4717a:	222a 0010      	movel %a2@(16),%d1                          
   4717e:	c483           	andl %d3,%d2                                
  if ( state != STATES_TRANSIENT ) {                                  
   47180:	b681           	cmpl %d1,%d3                                
   47182:	6730           	beqs 471b4 <_Thread_Change_priority+0x7c>   
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
   47184:	4a82           	tstl %d2                                    
   47186:	6608           	bnes 47190 <_Thread_Change_priority+0x58>   <== NEVER TAKEN
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
   47188:	74fb           	moveq #-5,%d2                               
   4718a:	c481           	andl %d1,%d2                                
   4718c:	2542 0010      	movel %d2,%a2@(16)                          
    _ISR_Enable( level );                                             
   47190:	46c0           	movew %d0,%sr                               
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
   47192:	0281 0003 bee0 	andil #245472,%d1                           
   47198:	6700 00d2      	beqw 4726c <_Thread_Change_priority+0x134>  
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
   4719c:	2d4a 000c      	movel %a2,%fp@(12)                          
   471a0:	2d6a 0044 0008 	movel %a2@(68),%fp@(8)                      
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Context_Switch_necessary = true;                                 
  _ISR_Enable( level );                                               
}                                                                     
   471a6:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   471ac:	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 );    
   471ae:	4ef9 0004 7d2c 	jmp 47d2c <_Thread_queue_Requeue>           
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
   471b4:	4a82           	tstl %d2                                    
   471b6:	6650           	bnes 47208 <_Thread_Change_priority+0xd0>   <== NEVER TAKEN
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map (                  
  Priority_Information *the_priority_map                              
)                                                                     
{                                                                     
  *the_priority_map->minor |= the_priority_map->ready_minor;          
   471b8:	226a 008e      	moveal %a2@(142),%a1                        
   471bc:	322a 0094      	movew %a2@(148),%d1                         
   471c0:	3411           	movew %a1@,%d2                              
   471c2:	206a 008a      	moveal %a2@(138),%a0                        
   471c6:	8282           	orl %d2,%d1                                 
     *  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 );
   471c8:	42aa 0010      	clrl %a2@(16)                               
   471cc:	3281           	movew %d1,%a1@                              
  _Priority_Major_bit_map  |= the_priority_map->ready_major;          
   471ce:	3239 0005 dccc 	movew 5dccc <_Priority_Major_bit_map>,%d1   
   471d4:	342a 0092      	movew %a2@(146),%d2                         
   471d8:	8282           	orl %d2,%d1                                 
   471da:	33c1 0005 dccc 	movew %d1,5dccc <_Priority_Major_bit_map>   
                                                                      
    _Priority_Add_to_bit_map( &the_thread->Priority_map );            
    if ( prepend_it )                                                 
   471e0:	4a04           	tstb %d4                                    
   471e2:	6710           	beqs 471f4 <_Thread_Change_priority+0xbc>   
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
   471e4:	2250           	moveal %a0@,%a1                             
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
   471e6:	2548 0004      	movel %a0,%a2@(4)                           
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
   471ea:	208a           	movel %a2,%a0@                              
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
   471ec:	234a 0004      	movel %a2,%a1@(4)                           
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
   471f0:	2489           	movel %a1,%a2@                              
   471f2:	6014           	bras 47208 <_Thread_Change_priority+0xd0>   
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   471f4:	2608           	movel %a0,%d3                               
   471f6:	5883           	addql #4,%d3                                
   471f8:	2483           	movel %d3,%a2@                              
  old_last_node       = the_chain->last;                              
   471fa:	2268 0008      	moveal %a0@(8),%a1                          
  the_chain->last     = the_node;                                     
   471fe:	214a 0008      	movel %a2,%a0@(8)                           
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   47202:	2549 0004      	movel %a1,%a2@(4)                           
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   47206:	228a           	movel %a2,%a1@                              
      _Chain_Prepend_unprotected( the_thread->ready, &the_thread->Object.Node );
    else                                                              
      _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node );
  }                                                                   
                                                                      
  _ISR_Flash( level );                                                
   47208:	223c 0000 0700 	movel #1792,%d1                             
   4720e:	46c0           	movew %d0,%sr                               
   47210:	8280           	orl %d0,%d1                                 
   47212:	46c1           	movew %d1,%sr                               
RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_highest( void )   
{                                                                     
  Priority_Bit_map_control minor;                                     
  Priority_Bit_map_control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
   47214:	3239 0005 dccc 	movew 5dccc <_Priority_Major_bit_map>,%d1   
   4721a:	4841           	swap %d1                                    
   4721c:	04c1           	ff1 %d1                                     
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
   4721e:	4282           	clrl %d2                                    
   47220:	41f9 0005 dd38 	lea 5dd38 <_Priority_Bit_map>,%a0           
   47226:	3401           	movew %d1,%d2                               
   47228:	3230 2a00      	movew %a0@(00000000,%d2:l:2),%d1            
   4722c:	4841           	swap %d1                                    
   4722e:	04c1           	ff1 %d1                                     
 *  ready thread.                                                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void )              
{                                                                     
  _Thread_Heir = (Thread_Control *)                                   
   47230:	4283           	clrl %d3                                    
   47232:	e98a           	lsll #4,%d2                                 
   47234:	3601           	movew %d1,%d3                               
   47236:	2279 0005 dbc8 	moveal 5dbc8 <_Thread_Ready_chain>,%a1      
   4723c:	2202           	movel %d2,%d1                               
   4723e:	d283           	addl %d3,%d1                                
   47240:	2401           	movel %d1,%d2                               
   47242:	e58a           	lsll #2,%d2                                 
   47244:	e989           	lsll #4,%d1                                 
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
   47246:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
 *  ready thread.                                                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void )              
{                                                                     
  _Thread_Heir = (Thread_Control *)                                   
   4724c:	93c2           	subal %d2,%a1                               
   4724e:	2231 1800      	movel %a1@(00000000,%d1:l),%d1              
   47252:	23c1 0005 dcaa 	movel %d1,5dcaa <_Thread_Heir>              
   *  We altered the set of thread priorities.  So let's figure out   
   *  who is the heir and if we need to switch to them.               
   */                                                                 
  _Thread_Calculate_heir();                                           
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
   47258:	b288           	cmpl %a0,%d1                                
   4725a:	670e           	beqs 4726a <_Thread_Change_priority+0x132>  
       _Thread_Executing->is_preemptible )                            
   4725c:	4a28 0075      	tstb %a0@(117)                              
   47260:	6708           	beqs 4726a <_Thread_Change_priority+0x132>  
    _Context_Switch_necessary = true;                                 
   47262:	7201           	moveq #1,%d1                                
   47264:	13c1 0005 dce6 	moveb %d1,5dce6 <_Context_Switch_necessary> 
  _ISR_Enable( level );                                               
   4726a:	46c0           	movew %d0,%sr                               
}                                                                     
   4726c:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   47272:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047278 <_Thread_Clear_state>: void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) {
   47278:	4e56 ffec      	linkw %fp,#-20                              
   4727c:	206e 0008      	moveal %fp@(8),%a0                          
   47280:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
   47284:	263c 0000 0700 	movel #1792,%d3                             
   4728a:	2203           	movel %d3,%d1                               
                                                                      
void _Thread_Clear_state(                                             
  Thread_Control *the_thread,                                         
  States_Control  state                                               
)                                                                     
{                                                                     
   4728c:	202e 000c      	movel %fp@(12),%d0                          
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
   47290:	40c2           	movew %sr,%d2                               
   47292:	8282           	orl %d2,%d1                                 
   47294:	46c1           	movew %d1,%sr                               
    current_state = the_thread->current_state;                        
   47296:	2228 0010      	movel %a0@(16),%d1                          
                                                                      
    if ( current_state & state ) {                                    
   4729a:	2800           	movel %d0,%d4                               
   4729c:	c881           	andl %d1,%d4                                
   4729e:	6778           	beqs 47318 <_Thread_Clear_state+0xa0>       
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
   472a0:	4680           	notl %d0                                    
   472a2:	c081           	andl %d1,%d0                                
      current_state =                                                 
   472a4:	2140 0010      	movel %d0,%a0@(16)                          
      the_thread->current_state = _States_Clear( state, current_state );
                                                                      
      if ( _States_Is_ready( current_state ) ) {                      
   472a8:	666e           	bnes 47318 <_Thread_Clear_state+0xa0>       
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map (                  
  Priority_Information *the_priority_map                              
)                                                                     
{                                                                     
  *the_priority_map->minor |= the_priority_map->ready_minor;          
   472aa:	2668 008e      	moveal %a0@(142),%a3                        
   472ae:	3028 0094      	movew %a0@(148),%d0                         
   472b2:	3213           	movew %a3@,%d1                              
                                                                      
        _Priority_Add_to_bit_map( &the_thread->Priority_map );        
                                                                      
        _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node);
   472b4:	2268 008a      	moveal %a0@(138),%a1                        
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   472b8:	2809           	movel %a1,%d4                               
   472ba:	5884           	addql #4,%d4                                
   472bc:	8081           	orl %d1,%d0                                 
   472be:	2084           	movel %d4,%a0@                              
  old_last_node       = the_chain->last;                              
   472c0:	2469 0008      	moveal %a1@(8),%a2                          
   472c4:	3680           	movew %d0,%a3@                              
  the_chain->last     = the_node;                                     
   472c6:	2348 0008      	movel %a0,%a1@(8)                           
  _Priority_Major_bit_map  |= the_priority_map->ready_major;          
   472ca:	3039 0005 dccc 	movew 5dccc <_Priority_Major_bit_map>,%d0   
   472d0:	3228 0092      	movew %a0@(146),%d1                         
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   472d4:	214a 0004      	movel %a2,%a0@(4)                           
   472d8:	8081           	orl %d1,%d0                                 
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   472da:	2488           	movel %a0,%a2@                              
   472dc:	33c0 0005 dccc 	movew %d0,5dccc <_Priority_Major_bit_map>   
                                                                      
        _ISR_Flash( level );                                          
   472e2:	2003           	movel %d3,%d0                               
   472e4:	46c2           	movew %d2,%sr                               
   472e6:	8082           	orl %d2,%d0                                 
   472e8:	46c0           	movew %d0,%sr                               
         *    a context switch.                                       
         *  Pseudo-ISR case:                                          
         *    Even if the thread isn't preemptible, if the new heir is
         *    a pseudo-ISR system task, we need to do a context switch.
         */                                                           
        if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
   472ea:	2028 0014      	movel %a0@(20),%d0                          
   472ee:	2279 0005 dcaa 	moveal 5dcaa <_Thread_Heir>,%a1             
   472f4:	b0a9 0014      	cmpl %a1@(20),%d0                           
   472f8:	641e           	bccs 47318 <_Thread_Clear_state+0xa0>       
          _Thread_Heir = the_thread;                                  
   472fa:	23c8 0005 dcaa 	movel %a0,5dcaa <_Thread_Heir>              
          if ( _Thread_Executing->is_preemptible ||                   
   47300:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
   47306:	4a28 0075      	tstb %a0@(117)                              
   4730a:	6604           	bnes 47310 <_Thread_Clear_state+0x98>       
   4730c:	4a80           	tstl %d0                                    
   4730e:	6608           	bnes 47318 <_Thread_Clear_state+0xa0>       <== ALWAYS TAKEN
               the_thread->current_priority == 0 )                    
            _Context_Switch_necessary = true;                         
   47310:	7001           	moveq #1,%d0                                
   47312:	13c0 0005 dce6 	moveb %d0,5dce6 <_Context_Switch_necessary> 
        }                                                             
      }                                                               
  }                                                                   
  _ISR_Enable( level );                                               
   47318:	46c2           	movew %d2,%sr                               
}                                                                     
   4731a:	4cd7 0c1c      	moveml %sp@,%d2-%d4/%a2-%a3                 
   4731e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000474a4 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
   474a4:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   474a8:	486e fffc      	pea %fp@(-4)                                
   474ac:	2f2e 0008      	movel %fp@(8),%sp@-                         
   474b0:	4eb9 0004 7658 	jsr 47658 <_Thread_Get>                     
  switch ( location ) {                                               
   474b6:	508f           	addql #8,%sp                                
   474b8:	4aae fffc      	tstl %fp@(-4)                               
   474bc:	661e           	bnes 474dc <_Thread_Delay_ended+0x38>       <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
   474be:	2f3c 1000 0018 	movel #268435480,%sp@-                      
   474c4:	2f00           	movel %d0,%sp@-                             
   474c6:	4eb9 0004 7278 	jsr 47278 <_Thread_Clear_state>             
   474cc:	508f           	addql #8,%sp                                
   474ce:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   474d4:	5380           	subql #1,%d0                                
   474d6:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   474dc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000474e0 <_Thread_Dispatch>: Thread_Control *executing; Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level );
   474e0:	307c 0700      	moveaw #1792,%a0                            
   474e4:	2208           	movel %a0,%d1                               
 *    dispatch thread                                                 
 *    no dispatch thread                                              
 */                                                                   
                                                                      
void _Thread_Dispatch( void )                                         
{                                                                     
   474e6:	4e56 ffc8      	linkw %fp,#-56                              
   474ea:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
   474ee:	2479 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a2        
  _ISR_Disable( level );                                              
   474f4:	40c0           	movew %sr,%d0                               
   474f6:	8280           	orl %d0,%d1                                 
   474f8:	46c1           	movew %d1,%sr                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   474fa:	260e           	movel %fp,%d3                               
        _Timestamp_Subtract(                                          
   474fc:	240e           	movel %fp,%d2                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   474fe:	5183           	subql #8,%d3                                
        _Timestamp_Subtract(                                          
   47500:	0682 ffff fff0 	addil #-16,%d2                              
   47506:	2e3c 0004 8294 	movel #295572,%d7                           
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   4750c:	2c3c 0004 825c 	movel #295516,%d6                           
    if ( _Thread_libc_reent ) {                                       
      executing->libc_reent = *_Thread_libc_reent;                    
      *_Thread_libc_reent = heir->libc_reent;                         
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   47512:	2a3c 0004 850c 	movel #296204,%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 );                  
   47518:	4bf9 0004 897c 	lea 4897c <_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 );        
   4751e:	49f9 0004 895a 	lea 4895a <_CPU_Context_save_fp>,%a4        
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   47524:	283c 0004 8824 	movel #296996,%d4                           
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Context_Switch_necessary == true ) {                       
   4752a:	6000 00d0      	braw 475fc <_Thread_Dispatch+0x11c>         
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
   4752e:	7201           	moveq #1,%d1                                
   47530:	23c1 0005 dc1c 	movel %d1,5dc1c <_Thread_Dispatch_disable_level>
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Context_Switch_necessary == true ) {                       
    heir = _Thread_Heir;                                              
   47536:	2679 0005 dcaa 	moveal 5dcaa <_Thread_Heir>,%a3             
    _Thread_Dispatch_disable_level = 1;                               
    _Context_Switch_necessary = false;                                
   4753c:	4201           	clrb %d1                                    
    _Thread_Executing = heir;                                         
   4753e:	23cb 0005 dcd6 	movel %a3,5dcd6 <_Thread_Executing>         
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Context_Switch_necessary == true ) {                       
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
    _Context_Switch_necessary = false;                                
   47544:	13c1 0005 dce6 	moveb %d1,5dce6 <_Context_Switch_necessary> 
    _Thread_Executing = heir;                                         
#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 )
   4754a:	7201           	moveq #1,%d1                                
   4754c:	b2ab 007a      	cmpl %a3@(122),%d1                          
   47550:	660a           	bnes 4755c <_Thread_Dispatch+0x7c>          
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
   47552:	41f9 0005 dbcc 	lea 5dbcc <_Thread_Ticks_per_timeslice>,%a0 
   47558:	2750 0076      	movel %a0@,%a3@(118)                        
    _ISR_Enable( level );                                             
   4755c:	46c0           	movew %d0,%sr                               
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   4755e:	2f03           	movel %d3,%sp@-                             
   47560:	4eb9 0004 af00 	jsr 4af00 <_TOD_Get_uptime>                 
        _Timestamp_Subtract(                                          
   47566:	2047           	moveal %d7,%a0                              
   47568:	2f02           	movel %d2,%sp@-                             
   4756a:	2f03           	movel %d3,%sp@-                             
   4756c:	4879 0005 dcde 	pea 5dcde <_Thread_Time_of_last_context_switch>
   47572:	4e90           	jsr %a0@                                    
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   47574:	2046           	moveal %d6,%a0                              
   47576:	2f02           	movel %d2,%sp@-                             
   47578:	486a 0082      	pea %a2@(130)                               
   4757c:	4e90           	jsr %a0@                                    
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   4757e:	2079 0005 dca6 	moveal 5dca6 <_Thread_libc_reent>,%a0       
   47584:	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;                 
   47588:	202e fff8      	movel %fp@(-8),%d0                          
   4758c:	222e fffc      	movel %fp@(-4),%d1                          
   47590:	23c0 0005 dcde 	movel %d0,5dcde <_Thread_Time_of_last_context_switch>
   47596:	23c1 0005 dce2 	movel %d1,5dce2 <_Thread_Time_of_last_context_switch+0x4>
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   4759c:	4a88           	tstl %a0                                    
   4759e:	6708           	beqs 475a8 <_Thread_Dispatch+0xc8>          <== NEVER TAKEN
      executing->libc_reent = *_Thread_libc_reent;                    
   475a0:	2550 0104      	movel %a0@,%a2@(260)                        
      *_Thread_libc_reent = heir->libc_reent;                         
   475a4:	20ab 0104      	movel %a3@(260),%a0@                        
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   475a8:	2f0b           	movel %a3,%sp@-                             
   475aa:	2045           	moveal %d5,%a0                              
   475ac:	2f0a           	movel %a2,%sp@-                             
   475ae:	4e90           	jsr %a0@                                    
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   475b0:	486b 00cc      	pea %a3@(204)                               
   475b4:	2044           	moveal %d4,%a0                              
   475b6:	486a 00cc      	pea %a2@(204)                               
   475ba:	4e90           	jsr %a0@                                    
                                                                      
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
   475bc:	4fef 0010      	lea %sp@(16),%sp                            
   475c0:	4aaa 0100      	tstl %a2@(256)                              
   475c4:	6724           	beqs 475ea <_Thread_Dispatch+0x10a>         
#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 );                      
   475c6:	2079 0005 dca2 	moveal 5dca2 <_Thread_Allocated_fp>,%a0     
   475cc:	b1ca           	cmpal %a2,%a0                               
   475ce:	671a           	beqs 475ea <_Thread_Dispatch+0x10a>         
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
   475d0:	4a88           	tstl %a0                                    
   475d2:	6708           	beqs 475dc <_Thread_Dispatch+0xfc>          
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
   475d4:	4868 0100      	pea %a0@(256)                               
   475d8:	4e94           	jsr %a4@                                    
   475da:	588f           	addql #4,%sp                                
      _Context_Restore_fp( &executing->fp_context );                  
   475dc:	486a 0100      	pea %a2@(256)                               
   475e0:	4e95           	jsr %a5@                                    
      _Thread_Allocated_fp = executing;                               
   475e2:	588f           	addql #4,%sp                                
   475e4:	23ca 0005 dca2 	movel %a2,5dca2 <_Thread_Allocated_fp>      
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
   475ea:	2479 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a2        
                                                                      
    _ISR_Disable( level );                                            
   475f0:	223c 0000 0700 	movel #1792,%d1                             
   475f6:	40c0           	movew %sr,%d0                               
   475f8:	8280           	orl %d0,%d1                                 
   475fa:	46c1           	movew %d1,%sr                               
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Context_Switch_necessary == true ) {                       
   475fc:	1239 0005 dce6 	moveb 5dce6 <_Context_Switch_necessary>,%d1 
   47602:	6600 ff2a      	bnew 4752e <_Thread_Dispatch+0x4e>          
    executing = _Thread_Executing;                                    
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
  _Thread_Dispatch_disable_level = 0;                                 
   47606:	42b9 0005 dc1c 	clrl 5dc1c <_Thread_Dispatch_disable_level> 
                                                                      
  _ISR_Enable( level );                                               
   4760c:	46c0           	movew %d0,%sr                               
                                                                      
  if ( _Thread_Do_post_task_switch_extension ||                       
   4760e:	4ab9 0005 dcbe 	tstl 5dcbe <_Thread_Do_post_task_switch_extension>
   47614:	6606           	bnes 4761c <_Thread_Dispatch+0x13c>         <== NEVER TAKEN
       executing->do_post_task_switch_extension ) {                   
   47616:	4a2a 0074      	tstb %a2@(116)                              
   4761a:	670c           	beqs 47628 <_Thread_Dispatch+0x148>         
    executing->do_post_task_switch_extension = false;                 
   4761c:	4200           	clrb %d0                                    
   4761e:	1540 0074      	moveb %d0,%a2@(116)                         
    _API_extensions_Run_postswitch();                                 
   47622:	4eb9 0004 5fba 	jsr 45fba <_API_extensions_Run_postswitch>  
  }                                                                   
                                                                      
}                                                                     
   47628:	4cee 3cfc ffc8 	moveml %fp@(-56),%d2-%d7/%a2-%a5            
   4762e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004cef0 <_Thread_Evaluate_mode>: * * XXX */ bool _Thread_Evaluate_mode( void ) {
   4cef0:	4e56 0000      	linkw %fp,#0                                
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
   4cef4:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
                                                                      
  if ( !_States_Is_ready( executing->current_state ) ||               
   4cefa:	4aa8 0010      	tstl %a0@(16)                               
   4cefe:	660e           	bnes 4cf0e <_Thread_Evaluate_mode+0x1e>     <== NEVER TAKEN
   4cf00:	b1f9 0005 dcaa 	cmpal 5dcaa <_Thread_Heir>,%a0              
   4cf06:	6710           	beqs 4cf18 <_Thread_Evaluate_mode+0x28>     
       ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) {
   4cf08:	4a28 0075      	tstb %a0@(117)                              
   4cf0c:	670a           	beqs 4cf18 <_Thread_Evaluate_mode+0x28>     <== NEVER TAKEN
    _Context_Switch_necessary = true;                                 
   4cf0e:	7001           	moveq #1,%d0                                
   4cf10:	13c0 0005 dce6 	moveb %d0,5dce6 <_Context_Switch_necessary> 
    return true;                                                      
   4cf16:	6002           	bras 4cf1a <_Thread_Evaluate_mode+0x2a>     
   4cf18:	4200           	clrb %d0                                    
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   4cf1a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004cf20 <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) {
   4cf20:	4e56 0000      	linkw %fp,#0                                
   4cf24:	2f0a           	movel %a2,%sp@-                             
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    static char doneConstructors;                                     
    char doneCons;                                                    
  #endif                                                              
                                                                      
  executing = _Thread_Executing;                                      
   4cf26:	2479 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a2        
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler( void )                                          
{                                                                     
   4cf2c:	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;                                 
   4cf2e:	222a 00b4      	movel %a2@(180),%d1                         
  _ISR_Set_level(level);                                              
   4cf32:	40c0           	movew %sr,%d0                               
   4cf34:	e189           	lsll #8,%d1                                 
   4cf36:	0280 0000 f8ff 	andil #63743,%d0                            
   4cf3c:	8081           	orl %d1,%d0                                 
   4cf3e:	46c0           	movew %d0,%sr                               
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
    doneConstructors = 1;                                             
   4cf40:	7001           	moveq #1,%d0                                
                                                                      
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
   4cf42:	1439 0005 d3d4 	moveb 5d3d4 <doneConstructors.3595>,%d2     
    doneConstructors = 1;                                             
   4cf48:	13c0 0005 d3d4 	moveb %d0,5d3d4 <doneConstructors.3595>     
  #endif                                                              
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                        
      if ( (executing->fp_context != NULL) &&                         
   4cf4e:	4aaa 0100      	tstl %a2@(256)                              
   4cf52:	6720           	beqs 4cf74 <_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 );                      
   4cf54:	2079 0005 dca2 	moveal 5dca2 <_Thread_Allocated_fp>,%a0     
   4cf5a:	b1ca           	cmpal %a2,%a0                               
   4cf5c:	6716           	beqs 4cf74 <_Thread_Handler+0x54>           
            !_Thread_Is_allocated_fp( executing ) ) {                 
        if ( _Thread_Allocated_fp != NULL )                           
   4cf5e:	4a88           	tstl %a0                                    
   4cf60:	670c           	beqs 4cf6e <_Thread_Handler+0x4e>           
          _Context_Save_fp( &_Thread_Allocated_fp->fp_context );      
   4cf62:	4868 0100      	pea %a0@(256)                               
   4cf66:	4eb9 0004 895a 	jsr 4895a <_CPU_Context_save_fp>            
   4cf6c:	588f           	addql #4,%sp                                
        _Thread_Allocated_fp = executing;                             
   4cf6e:	23ca 0005 dca2 	movel %a2,5dca2 <_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 );                         
   4cf74:	2f0a           	movel %a2,%sp@-                             
   4cf76:	4eb9 0004 838c 	jsr 4838c <_User_extensions_Thread_begin>   
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
  _Thread_Enable_dispatch();                                          
   4cf7c:	4eb9 0004 7632 	jsr 47632 <_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) */ {                 
   4cf82:	588f           	addql #4,%sp                                
   4cf84:	4a02           	tstb %d2                                    
   4cf86:	6606           	bnes 4cf8e <_Thread_Handler+0x6e>           
      INIT_NAME ();                                                   
   4cf88:	4eb9 0005 a7ec 	jsr 5a7ec <_init>                           
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
   4cf8e:	4aaa 009e      	tstl %a2@(158)                              
   4cf92:	6610           	bnes 4cfa4 <_Thread_Handler+0x84>           <== NEVER TAKEN
    executing->Wait.return_argument =                                 
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
   4cf94:	2f2a 00a6      	movel %a2@(166),%sp@-                       
   4cf98:	206a 009a      	moveal %a2@(154),%a0                        
   4cf9c:	4e90           	jsr %a0@                                    
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
    executing->Wait.return_argument =                                 
   4cf9e:	588f           	addql #4,%sp                                
   4cfa0:	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 );                       
   4cfa4:	2f0a           	movel %a2,%sp@-                             
   4cfa6:	4eb9 0004 83c4 	jsr 483c4 <_User_extensions_Thread_exitted> 
                                                                      
  _Internal_error_Occurred(                                           
   4cfac:	4878 0006      	pea 6 <EXTENDSFDF>                          
   4cfb0:	4878 0001      	pea 1 <ADD>                                 
   4cfb4:	42a7           	clrl %sp@-                                  
   4cfb6:	4eb9 0004 68d4 	jsr 468d4 <_Internal_error_Occurred>        
                                                                      

000476e4 <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) {
   476e4:	4e56 ffec      	linkw %fp,#-20                              
   476e8:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
   476ec:	242e 0014      	movel %fp@(20),%d2                          
   476f0:	246e 000c      	moveal %fp@(12),%a2                         
                                                                      
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
  #if !defined(RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API) 
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
   476f4:	2f02           	movel %d2,%sp@-                             
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   476f6:	262e 0018      	movel %fp@(24),%d3                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   476fa:	42aa 0108      	clrl %a2@(264)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   476fe:	282e 001c      	movel %fp@(28),%d4                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   47702:	42aa 010c      	clrl %a2@(268)                              
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
   47706:	1a2e 0023      	moveb %fp@(35),%d5                          
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
   4770a:	42aa 0110      	clrl %a2@(272)                              
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
   4770e:	42aa 0104      	clrl %a2@(260)                              
                                                                      
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
  #if !defined(RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API) 
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
   47712:	2f0a           	movel %a2,%sp@-                             
   47714:	4eb9 0004 7f9c 	jsr 47f9c <_Thread_Stack_Allocate>          
    if ( !actual_stack_size || actual_stack_size < stack_size )       
   4771a:	508f           	addql #8,%sp                                
   4771c:	4a80           	tstl %d0                                    
   4771e:	6700 015a      	beqw 4787a <_Thread_Initialize+0x196>       
   47722:	b480           	cmpl %d0,%d2                                
   47724:	6200 0154      	bhiw 4787a <_Thread_Initialize+0x196>       
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
  the_stack->size = size;                                             
   47728:	2540 00bc      	movel %d0,%a2@(188)                         
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
   4772c:	256a 00c8 00c0 	movel %a2@(200),%a2@(192)                   
                                                                      
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
   47732:	4a03           	tstb %d3                                    
   47734:	6604           	bnes 4773a <_Thread_Initialize+0x56>        
   47736:	4283           	clrl %d3                                    
   47738:	6016           	bras 47750 <_Thread_Initialize+0x6c>        
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
   4773a:	4878 001c      	pea 1c <OPER2+0x8>                          
   4773e:	4eb9 0004 878c 	jsr 4878c <_Workspace_Allocate>             
      if ( !fp_area )                                                 
   47744:	588f           	addql #4,%sp                                
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
   47746:	2600           	movel %d0,%d3                               
      if ( !fp_area )                                                 
   47748:	6606           	bnes 47750 <_Thread_Initialize+0x6c>        
   4774a:	4282           	clrl %d2                                    
   4774c:	6000 00c6      	braw 47814 <_Thread_Initialize+0x130>       
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   47750:	2039 0005 dcba 	movel 5dcba <_Thread_Maximum_extensions>,%d0
      fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE );               
      if ( !fp_area )                                                 
        goto failed;                                                  
      fp_area = _Context_Fp_start( fp_area, 0 );                      
    }                                                                 
    the_thread->fp_context       = fp_area;                           
   47756:	2543 0100      	movel %d3,%a2@(256)                         
    the_thread->Start.fp_context = fp_area;                           
   4775a:	2543 00c4      	movel %d3,%a2@(196)                         
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   4775e:	42aa 0050      	clrl %a2@(80)                               
  the_watchdog->routine   = routine;                                  
   47762:	42aa 0064      	clrl %a2@(100)                              
  the_watchdog->id        = id;                                       
   47766:	42aa 0068      	clrl %a2@(104)                              
  the_watchdog->user_data = user_data;                                
   4776a:	42aa 006c      	clrl %a2@(108)                              
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
   4776e:	4a80           	tstl %d0                                    
   47770:	6604           	bnes 47776 <_Thread_Initialize+0x92>        
   47772:	4282           	clrl %d2                                    
   47774:	6016           	bras 4778c <_Thread_Initialize+0xa8>        
    extensions_area = _Workspace_Allocate(                            
   47776:	e588           	lsll #2,%d0                                 
   47778:	2040           	moveal %d0,%a0                              
   4777a:	4868 0004      	pea %a0@(4)                                 
   4777e:	4eb9 0004 878c 	jsr 4878c <_Workspace_Allocate>             
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   47784:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
    extensions_area = _Workspace_Allocate(                            
   47786:	2400           	movel %d0,%d2                               
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
   47788:	6700 008a      	beqw 47814 <_Thread_Initialize+0x130>       
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
   4778c:	2542 0114      	movel %d2,%a2@(276)                         
   * if they are linked to the thread. An extension user may          
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
  if ( the_thread->extensions ) {                                     
   47790:	6718           	beqs 477aa <_Thread_Initialize+0xc6>        
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
   47792:	2239 0005 dcba 	movel 5dcba <_Thread_Maximum_extensions>,%d1
   47798:	4280           	clrl %d0                                    
   4779a:	600a           	bras 477a6 <_Thread_Initialize+0xc2>        
      the_thread->extensions[i] = NULL;                               
   4779c:	206a 0114      	moveal %a2@(276),%a0                        
   477a0:	42b0 0c00      	clrl %a0@(00000000,%d0:l:4)                 
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
  if ( the_thread->extensions ) {                                     
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
   477a4:	5280           	addql #1,%d0                                
   477a6:	b280           	cmpl %d0,%d1                                
   477a8:	64f2           	bccs 4779c <_Thread_Initialize+0xb8>        
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
  the_thread->Start.initial_priority  = priority;                     
  _Thread_Set_priority( the_thread, priority );                       
   477aa:	2f04           	movel %d4,%sp@-                             
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	break;                                                               
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
   477ac:	256e 002c 00b4 	movel %fp@(44),%a2@(180)                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   477b2:	7001           	moveq #1,%d0                                
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
   477b4:	256e 0024 00ac 	movel %fp@(36),%a2@(172)                    
  the_thread->Start.budget_callout   = budget_callout;                
   477ba:	256e 0028 00b0 	movel %fp@(40),%a2@(176)                    
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
   477c0:	1545 00aa      	moveb %d5,%a2@(170)                         
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
  the_thread->Start.initial_priority  = priority;                     
  _Thread_Set_priority( the_thread, priority );                       
   477c4:	2f0a           	movel %a2,%sp@-                             
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
   477c6:	2540 0010      	movel %d0,%a2@(16)                          
  the_thread->Wait.queue              = NULL;                         
   477ca:	42aa 0044      	clrl %a2@(68)                               
  the_thread->resource_count          = 0;                            
   477ce:	42aa 001c      	clrl %a2@(28)                               
  #if defined(RTEMS_ITRON_API)                                        
    the_thread->suspend_count         = 0;                            
  #endif                                                              
  the_thread->real_priority           = priority;                     
   477d2:	2544 0018      	movel %d4,%a2@(24)                          
  the_thread->Start.initial_priority  = priority;                     
   477d6:	2544 00b8      	movel %d4,%a2@(184)                         
  _Thread_Set_priority( the_thread, priority );                       
   477da:	4eb9 0004 7dc8 	jsr 47dc8 <_Thread_Set_priority>            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   477e0:	206e 0008      	moveal %fp@(8),%a0                          
   477e4:	4280           	clrl %d0                                    
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
   477e6:	256e 0030 000c 	movel %fp@(48),%a2@(12)                     
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   477ec:	2068 0018      	moveal %a0@(24),%a0                         
   477f0:	302a 000a      	movew %a2@(10),%d0                          
                                                                      
  /*                                                                  
   *  Initialize the CPU usage statistics                             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );             
   477f4:	42aa 0082      	clrl %a2@(130)                              
   477f8:	218a 0c00      	movel %a2,%a0@(00000000,%d0:l:4)            
   477fc:	42aa 0086      	clrl %a2@(134)                              
   *  enabled when we get here.  We want to be able to run the        
   *  user extensions with dispatching enabled.  The Allocator        
   *  Mutex provides sufficient protection to let the user extensions 
   *  run safely.                                                     
   */                                                                 
  extension_status = _User_extensions_Thread_create( the_thread );    
   47800:	2f0a           	movel %a2,%sp@-                             
   47802:	4eb9 0004 8448 	jsr 48448 <_User_extensions_Thread_create>  
  if ( extension_status )                                             
   47808:	4fef 000c      	lea %sp@(12),%sp                            
   4780c:	4a00           	tstb %d0                                    
   4780e:	6704           	beqs 47814 <_Thread_Initialize+0x130>       
   47810:	7001           	moveq #1,%d0                                
   47812:	6068           	bras 4787c <_Thread_Initialize+0x198>       
    return true;                                                      
                                                                      
failed:                                                               
  if ( the_thread->libc_reent )                                       
   47814:	202a 0104      	movel %a2@(260),%d0                         
   47818:	670a           	beqs 47824 <_Thread_Initialize+0x140>       
    _Workspace_Free( the_thread->libc_reent );                        
   4781a:	2f00           	movel %d0,%sp@-                             
   4781c:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 
   47822:	588f           	addql #4,%sp                                
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   47824:	202a 0108      	movel %a2@(264),%d0                         
   47828:	670a           	beqs 47834 <_Thread_Initialize+0x150>       
      _Workspace_Free( the_thread->API_Extensions[i] );               
   4782a:	2f00           	movel %d0,%sp@-                             
   4782c:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 
   47832:	588f           	addql #4,%sp                                
failed:                                                               
  if ( the_thread->libc_reent )                                       
    _Workspace_Free( the_thread->libc_reent );                        
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   47834:	202a 010c      	movel %a2@(268),%d0                         
   47838:	670a           	beqs 47844 <_Thread_Initialize+0x160>       <== ALWAYS TAKEN
      _Workspace_Free( the_thread->API_Extensions[i] );               
   4783a:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   4783c:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 <== NOT EXECUTED
   47842:	588f           	addql #4,%sp                                <== NOT EXECUTED
failed:                                                               
  if ( the_thread->libc_reent )                                       
    _Workspace_Free( the_thread->libc_reent );                        
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    if ( the_thread->API_Extensions[i] )                              
   47844:	202a 0110      	movel %a2@(272),%d0                         
   47848:	670a           	beqs 47854 <_Thread_Initialize+0x170>       <== ALWAYS TAKEN
      _Workspace_Free( the_thread->API_Extensions[i] );               
   4784a:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   4784c:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 <== NOT EXECUTED
   47852:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
  if ( extensions_area )                                              
   47854:	4a82           	tstl %d2                                    
   47856:	670a           	beqs 47862 <_Thread_Initialize+0x17e>       
    (void) _Workspace_Free( extensions_area );                        
   47858:	2f02           	movel %d2,%sp@-                             
   4785a:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 
   47860:	588f           	addql #4,%sp                                
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( fp_area )                                                    
   47862:	4a83           	tstl %d3                                    
   47864:	670a           	beqs 47870 <_Thread_Initialize+0x18c>       
      (void) _Workspace_Free( fp_area );                              
   47866:	2f03           	movel %d3,%sp@-                             
   47868:	4eb9 0004 87a8 	jsr 487a8 <_Workspace_Free>                 
   4786e:	588f           	addql #4,%sp                                
  #endif                                                              
                                                                      
   _Thread_Stack_Free( the_thread );                                  
   47870:	2f0a           	movel %a2,%sp@-                             
   47872:	4eb9 0004 7fe8 	jsr 47fe8 <_Thread_Stack_Free>              
  return false;                                                       
   47878:	588f           	addql #4,%sp                                
   4787a:	4200           	clrb %d0                                    
                                                                      
                                                                      
}                                                                     
   4787c:	4cee 043c ffec 	moveml %fp@(-20),%d2-%d5/%a2                
   47882:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004b5b8 <_Thread_Reset_timeslice>: * ready chain * select heir */ void _Thread_Reset_timeslice( void ) {
   4b5b8:	4e56 fff4      	linkw %fp,#-12                              
  ISR_Level       level;                                              
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
   4b5bc:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
 *    ready chain                                                     
 *    select heir                                                     
 */                                                                   
                                                                      
void _Thread_Reset_timeslice( void )                                  
{                                                                     
   4b5c2:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
  ready     = executing->ready;                                       
  _ISR_Disable( level );                                              
   4b5c6:	243c 0000 0700 	movel #1792,%d2                             
   4b5cc:	2202           	movel %d2,%d1                               
  ISR_Level       level;                                              
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
  ready     = executing->ready;                                       
   4b5ce:	2268 008a      	moveal %a0@(138),%a1                        
  _ISR_Disable( level );                                              
   4b5d2:	40c0           	movew %sr,%d0                               
   4b5d4:	8280           	orl %d0,%d1                                 
   4b5d6:	46c1           	movew %d1,%sr                               
    if ( _Chain_Has_only_one_node( ready ) ) {                        
   4b5d8:	2229 0008      	movel %a1@(8),%d1                           
   4b5dc:	b291           	cmpl %a1@,%d1                               
   4b5de:	6604           	bnes 4b5e4 <_Thread_Reset_timeslice+0x2c>   
      _ISR_Enable( level );                                           
   4b5e0:	46c0           	movew %d0,%sr                               
      return;                                                         
   4b5e2:	6040           	bras 4b624 <_Thread_Reset_timeslice+0x6c>   
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4b5e4:	2450           	moveal %a0@,%a2                             
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   4b5e6:	2209           	movel %a1,%d1                               
   4b5e8:	5881           	addql #4,%d1                                
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
   4b5ea:	2668 0004      	moveal %a0@(4),%a3                          
  next->previous = previous;                                          
  previous->next = next;                                              
   4b5ee:	268a           	movel %a2,%a3@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   4b5f0:	254b 0004      	movel %a3,%a2@(4)                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   4b5f4:	2081           	movel %d1,%a0@                              
  old_last_node       = the_chain->last;                              
   4b5f6:	2469 0008      	moveal %a1@(8),%a2                          
  the_chain->last     = the_node;                                     
   4b5fa:	2348 0008      	movel %a0,%a1@(8)                           
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   4b5fe:	214a 0004      	movel %a2,%a0@(4)                           
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   4b602:	2488           	movel %a0,%a2@                              
    }                                                                 
    _Chain_Extract_unprotected( &executing->Object.Node );            
    _Chain_Append_unprotected( ready, &executing->Object.Node );      
                                                                      
  _ISR_Flash( level );                                                
   4b604:	2202           	movel %d2,%d1                               
   4b606:	46c0           	movew %d0,%sr                               
   4b608:	8280           	orl %d0,%d1                                 
   4b60a:	46c1           	movew %d1,%sr                               
                                                                      
    if ( _Thread_Is_heir( executing ) )                               
   4b60c:	b1f9 0005 dcaa 	cmpal 5dcaa <_Thread_Heir>,%a0              
   4b612:	6606           	bnes 4b61a <_Thread_Reset_timeslice+0x62>   <== NEVER TAKEN
      _Thread_Heir = (Thread_Control *) ready->first;                 
   4b614:	23d1 0005 dcaa 	movel %a1@,5dcaa <_Thread_Heir>             
                                                                      
    _Context_Switch_necessary = true;                                 
   4b61a:	7201           	moveq #1,%d1                                
   4b61c:	13c1 0005 dce6 	moveb %d1,5dce6 <_Context_Switch_necessary> 
                                                                      
  _ISR_Enable( level );                                               
   4b622:	46c0           	movew %d0,%sr                               
}                                                                     
   4b624:	4cd7 0c04      	moveml %sp@,%d2/%a2-%a3                     
   4b628:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004853c <_Thread_Restart>: Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { if ( !_States_Is_dormant( the_thread->current_state ) ) {
   4853c:	7001           	moveq #1,%d0                                
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
   4853e:	4e56 0000      	linkw %fp,#0                                
   48542:	2f0a           	movel %a2,%sp@-                             
   48544:	246e 0008      	moveal %fp@(8),%a2                          
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   48548:	c0aa 0010      	andl %a2@(16),%d0                           
   4854c:	4a00           	tstb %d0                                    
   4854e:	6704           	beqs 48554 <_Thread_Restart+0x18>           
   48550:	4200           	clrb %d0                                    
   48552:	6064           	bras 485b8 <_Thread_Restart+0x7c>           
                                                                      
    _Thread_Set_transient( the_thread );                              
   48554:	2f0a           	movel %a2,%sp@-                             
   48556:	4eb9 0004 8718 	jsr 48718 <_Thread_Set_transient>           
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
   4855c:	2f2e 0010      	movel %fp@(16),%sp@-                        
   48560:	2f2e 000c      	movel %fp@(12),%sp@-                        
   48564:	2f0a           	movel %a2,%sp@-                             
   48566:	4eb9 0004 bdf0 	jsr 4bdf0 <_Thread_Reset>                   
                                                                      
    _Thread_Load_environment( the_thread );                           
   4856c:	2f0a           	movel %a2,%sp@-                             
   4856e:	4eb9 0004 ba8c 	jsr 4ba8c <_Thread_Load_environment>        
                                                                      
    _Thread_Ready( the_thread );                                      
   48574:	2f0a           	movel %a2,%sp@-                             
   48576:	4eb9 0004 bd30 	jsr 4bd30 <_Thread_Ready>                   
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
   4857c:	2f0a           	movel %a2,%sp@-                             
   4857e:	4eb9 0004 8cc4 	jsr 48cc4 <_User_extensions_Thread_restart> 
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
   48584:	4fef 001c      	lea %sp@(28),%sp                            
   48588:	b5f9 0005 e7ce 	cmpal 5e7ce <_Thread_Executing>,%a2         
   4858e:	6626           	bnes 485b6 <_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 )                        
   48590:	4aaa 0100      	tstl %a2@(256)                              
   48594:	670c           	beqs 485a2 <_Thread_Restart+0x66>           
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
   48596:	486a 0100      	pea %a2@(256)                               
   4859a:	4eb9 0004 91b4 	jsr 491b4 <_CPU_Context_restore_fp>         
   485a0:	588f           	addql #4,%sp                                
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
   485a2:	2079 0005 e7ce 	moveal 5e7ce <_Thread_Executing>,%a0        
   485a8:	41e8 00cc      	lea %a0@(204),%a0                           
   485ac:	2f08           	movel %a0,%sp@-                             
   485ae:	4eb9 0004 9072 	jsr 49072 <_CPU_Context_Restart_self>       
   485b4:	588f           	addql #4,%sp                                <== NOT EXECUTED
   485b6:	7001           	moveq #1,%d0                                
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   485b8:	246e fffc      	moveal %fp@(-4),%a2                         
   485bc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004acb0 <_Thread_Resume>: void _Thread_Resume( Thread_Control *the_thread, bool force ) {
   4acb0:	4e56 ffec      	linkw %fp,#-20                              
   4acb4:	206e 0008      	moveal %fp@(8),%a0                          
   4acb8:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
                                                                      
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
   4acbc:	243c 0000 0700 	movel #1792,%d2                             
   4acc2:	2002           	movel %d2,%d0                               
   4acc4:	40c1           	movew %sr,%d1                               
   4acc6:	8081           	orl %d1,%d0                                 
   4acc8:	46c0           	movew %d0,%sr                               
      _ISR_Enable( level );                                           
      return;                                                         
    }                                                                 
  #endif                                                              
                                                                      
  current_state = the_thread->current_state;                          
   4acca:	2028 0010      	movel %a0@(16),%d0                          
  if ( current_state & STATES_SUSPENDED ) {                           
   4acce:	0800 0001      	btst #1,%d0                                 
   4acd2:	6778           	beqs 4ad4c <_Thread_Resume+0x9c>            <== NEVER TAKEN
   4acd4:	76fd           	moveq #-3,%d3                               
   4acd6:	c083           	andl %d3,%d0                                
    current_state =                                                   
   4acd8:	2140 0010      	movel %d0,%a0@(16)                          
    the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state);
                                                                      
    if ( _States_Is_ready( current_state ) ) {                        
   4acdc:	666e           	bnes 4ad4c <_Thread_Resume+0x9c>            
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map (                  
  Priority_Information *the_priority_map                              
)                                                                     
{                                                                     
  *the_priority_map->minor |= the_priority_map->ready_minor;          
   4acde:	2668 008e      	moveal %a0@(142),%a3                        
   4ace2:	3028 0094      	movew %a0@(148),%d0                         
   4ace6:	3613           	movew %a3@,%d3                              
                                                                      
      _Priority_Add_to_bit_map( &the_thread->Priority_map );          
                                                                      
      _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node);
   4ace8:	2268 008a      	moveal %a0@(138),%a1                        
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   4acec:	2809           	movel %a1,%d4                               
   4acee:	5884           	addql #4,%d4                                
   4acf0:	8083           	orl %d3,%d0                                 
   4acf2:	2084           	movel %d4,%a0@                              
  old_last_node       = the_chain->last;                              
   4acf4:	2469 0008      	moveal %a1@(8),%a2                          
   4acf8:	3680           	movew %d0,%a3@                              
  the_chain->last     = the_node;                                     
   4acfa:	2348 0008      	movel %a0,%a1@(8)                           
  _Priority_Major_bit_map  |= the_priority_map->ready_major;          
   4acfe:	3039 0006 1004 	movew 61004 <_Priority_Major_bit_map>,%d0   
   4ad04:	3628 0092      	movew %a0@(146),%d3                         
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   4ad08:	214a 0004      	movel %a2,%a0@(4)                           
   4ad0c:	8083           	orl %d3,%d0                                 
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   4ad0e:	2488           	movel %a0,%a2@                              
   4ad10:	33c0 0006 1004 	movew %d0,61004 <_Priority_Major_bit_map>   
                                                                      
      _ISR_Flash( level );                                            
   4ad16:	2002           	movel %d2,%d0                               
   4ad18:	46c1           	movew %d1,%sr                               
   4ad1a:	8081           	orl %d1,%d0                                 
   4ad1c:	46c0           	movew %d0,%sr                               
                                                                      
      if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
   4ad1e:	2028 0014      	movel %a0@(20),%d0                          
   4ad22:	2279 0006 0fe2 	moveal 60fe2 <_Thread_Heir>,%a1             
   4ad28:	b0a9 0014      	cmpl %a1@(20),%d0                           
   4ad2c:	641e           	bccs 4ad4c <_Thread_Resume+0x9c>            
        _Thread_Heir = the_thread;                                    
   4ad2e:	23c8 0006 0fe2 	movel %a0,60fe2 <_Thread_Heir>              
        if ( _Thread_Executing->is_preemptible ||                     
   4ad34:	2079 0006 100e 	moveal 6100e <_Thread_Executing>,%a0        
   4ad3a:	4a28 0075      	tstb %a0@(117)                              
   4ad3e:	6604           	bnes 4ad44 <_Thread_Resume+0x94>            
   4ad40:	4a80           	tstl %d0                                    
   4ad42:	6608           	bnes 4ad4c <_Thread_Resume+0x9c>            <== ALWAYS TAKEN
             the_thread->current_priority == 0 )                      
          _Context_Switch_necessary = true;                           
   4ad44:	7001           	moveq #1,%d0                                
   4ad46:	13c0 0006 101e 	moveb %d0,6101e <_Context_Switch_necessary> 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
   4ad4c:	46c1           	movew %d1,%sr                               
}                                                                     
   4ad4e:	4cd7 0c1c      	moveml %sp@,%d2-%d4/%a2-%a3                 
   4ad52:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047fe8 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) {
   47fe8:	4e56 0000      	linkw %fp,#0                                
   47fec:	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 )                                
   47ff0:	2279 0005 c4e8 	moveal 5c4e8 <Configuration+0x24>,%a1       
   47ff6:	4a89           	tstl %a1                                    
   47ff8:	670a           	beqs 48004 <_Thread_Stack_Free+0x1c>        
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
   47ffa:	2d68 00c0 0008 	movel %a0@(192),%fp@(8)                     
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
   48000:	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 );
   48002:	4ed1           	jmp %a1@                                    
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
   48004:	2d68 00c0 0008 	movel %a0@(192),%fp@(8)                     
}                                                                     
   4800a:	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 );          
   4800c:	4ef9 0004 87a8 	jmp 487a8 <_Workspace_Free>                 
	...                                                                  
                                                                      

000481e0 <_Thread_Yield_processor>: * ready chain * select heir */ void _Thread_Yield_processor( void ) {
   481e0:	4e56 fff4      	linkw %fp,#-12                              
  ISR_Level       level;                                              
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
   481e4:	2079 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a0        
 *    ready chain                                                     
 *    select heir                                                     
 */                                                                   
                                                                      
void _Thread_Yield_processor( void )                                  
{                                                                     
   481ea:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
  ready     = executing->ready;                                       
  _ISR_Disable( level );                                              
   481ee:	243c 0000 0700 	movel #1792,%d2                             
   481f4:	2002           	movel %d2,%d0                               
  ISR_Level       level;                                              
  Thread_Control *executing;                                          
  Chain_Control  *ready;                                              
                                                                      
  executing = _Thread_Executing;                                      
  ready     = executing->ready;                                       
   481f6:	2268 008a      	moveal %a0@(138),%a1                        
  _ISR_Disable( level );                                              
   481fa:	40c1           	movew %sr,%d1                               
   481fc:	8081           	orl %d1,%d0                                 
   481fe:	46c0           	movew %d0,%sr                               
    if ( !_Chain_Has_only_one_node( ready ) ) {                       
   48200:	2029 0008      	movel %a1@(8),%d0                           
   48204:	b091           	cmpl %a1@,%d0                               
   48206:	6738           	beqs 48240 <_Thread_Yield_processor+0x60>   
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   48208:	2450           	moveal %a0@,%a2                             
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   4820a:	2009           	movel %a1,%d0                               
   4820c:	5880           	addql #4,%d0                                
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
   4820e:	2668 0004      	moveal %a0@(4),%a3                          
  next->previous = previous;                                          
  previous->next = next;                                              
   48212:	268a           	movel %a2,%a3@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   48214:	254b 0004      	movel %a3,%a2@(4)                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   48218:	2080           	movel %d0,%a0@                              
  old_last_node       = the_chain->last;                              
   4821a:	2469 0008      	moveal %a1@(8),%a2                          
  the_chain->last     = the_node;                                     
   4821e:	2348 0008      	movel %a0,%a1@(8)                           
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   48222:	214a 0004      	movel %a2,%a0@(4)                           
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   48226:	2488           	movel %a0,%a2@                              
      _Chain_Extract_unprotected( &executing->Object.Node );          
      _Chain_Append_unprotected( ready, &executing->Object.Node );    
                                                                      
      _ISR_Flash( level );                                            
   48228:	2002           	movel %d2,%d0                               
   4822a:	46c1           	movew %d1,%sr                               
   4822c:	8081           	orl %d1,%d0                                 
   4822e:	46c0           	movew %d0,%sr                               
                                                                      
      if ( _Thread_Is_heir( executing ) )                             
   48230:	b1f9 0005 dcaa 	cmpal 5dcaa <_Thread_Heir>,%a0              
   48236:	6610           	bnes 48248 <_Thread_Yield_processor+0x68>   <== NEVER TAKEN
        _Thread_Heir = (Thread_Control *) ready->first;               
   48238:	23d1 0005 dcaa 	movel %a1@,5dcaa <_Thread_Heir>             
   4823e:	6008           	bras 48248 <_Thread_Yield_processor+0x68>   
      _Context_Switch_necessary = true;                               
    }                                                                 
    else if ( !_Thread_Is_heir( executing ) )                         
   48240:	b1f9 0005 dcaa 	cmpal 5dcaa <_Thread_Heir>,%a0              
   48246:	6708           	beqs 48250 <_Thread_Yield_processor+0x70>   <== ALWAYS TAKEN
      _Context_Switch_necessary = true;                               
   48248:	7001           	moveq #1,%d0                                
   4824a:	13c0 0005 dce6 	moveb %d0,5dce6 <_Context_Switch_necessary> 
                                                                      
  _ISR_Enable( level );                                               
   48250:	46c1           	movew %d1,%sr                               
}                                                                     
   48252:	4cd7 0c04      	moveml %sp@,%d2/%a2-%a3                     
   48256:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000470e8 <_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 ) ) {
   470e8:	7202           	moveq #2,%d1                                
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
   470ea:	4e56 0000      	linkw %fp,#0                                
   470ee:	202e 0010      	movel %fp@(16),%d0                          
   470f2:	2f0a           	movel %a2,%sp@-                             
   470f4:	246e 000c      	moveal %fp@(12),%a2                         
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
   470f8:	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 ) ) {                  
   470fc:	b2aa 0050      	cmpl %a2@(80),%d1                           
   47100:	6618           	bnes 4711a <_Thread_blocking_operation_Cancel+0x32>
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   47102:	123c 0003      	moveb #3,%d1                                
   47106:	2541 0050      	movel %d1,%a2@(80)                          
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4710a:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4710c:	486a 0048      	pea %a2@(72)                                
   47110:	4eb9 0004 8660 	jsr 48660 <_Watchdog_Remove>                
   47116:	588f           	addql #4,%sp                                
   47118:	6002           	bras 4711c <_Thread_blocking_operation_Cancel+0x34>
  } else                                                              
    _ISR_Enable( level );                                             
   4711a:	46c0           	movew %d0,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4711c:	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                                                                
                                                                      
}                                                                     
   47120:	246e fffc      	moveal %fp@(-4),%a2                         
   47124:	203c 1003 fff8 	movel #268697592,%d0                        
   4712a:	2d40 000c      	movel %d0,%fp@(12)                          
   4712e:	4e5e           	unlk %fp                                    
   47130:	4ef9 0004 7278 	jmp 47278 <_Thread_Clear_state>             
	...                                                                  
                                                                      

00047b3c <_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 ) {
   47b3c:	4e56 ffe4      	linkw %fp,#-28                              
   47b40:	206e 000c      	moveal %fp@(12),%a0                         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   47b44:	43e8 003c      	lea %a0@(60),%a1                            
  Priority_Control     priority;                                      
  States_Control       block_state;                                   
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
   47b48:	2028 0014      	movel %a0@(20),%d0                          
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
   47b4c:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   47b50:	2400           	movel %d0,%d2                               
   47b52:	ec8a           	lsrl #6,%d2                                 
   47b54:	2202           	movel %d2,%d1                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
   47b56:	283c 0000 0700 	movel #1792,%d4                             
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   47b5c:	e989           	lsll #4,%d1                                 
   47b5e:	e58a           	lsll #2,%d2                                 
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
   47b60:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
   47b64:	9282           	subl %d2,%d1                                
   47b66:	47f2 1800      	lea %a2@(00000000,%d1:l),%a3                
   47b6a:	2149 0038      	movel %a1,%a0@(56)                          
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
   47b6e:	43e8 0038      	lea %a0@(56),%a1                            
  block_state  = the_thread_queue->state;                             
   47b72:	2a2a 0038      	movel %a2@(56),%d5                          
   47b76:	2149 0040      	movel %a1,%a0@(64)                          
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
  the_chain->permanent_null = NULL;                                   
   47b7a:	42a8 003c      	clrl %a0@(60)                               
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
   47b7e:	0800 0005      	btst #5,%d0                                 
   47b82:	6660           	bnes 47be4 <_Thread_queue_Enqueue_priority+0xa8>
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   47b84:	2c0b           	movel %a3,%d6                               
   47b86:	5886           	addql #4,%d6                                
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
   47b88:	2404           	movel %d4,%d2                               
   47b8a:	40c1           	movew %sr,%d1                               
   47b8c:	8481           	orl %d1,%d2                                 
   47b8e:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->first;                   
   47b90:	2253           	moveal %a3@,%a1                             
   47b92:	76ff           	moveq #-1,%d3                               
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   47b94:	601e           	bras 47bb4 <_Thread_queue_Enqueue_priority+0x78>
    search_priority = search_thread->current_priority;                
   47b96:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority <= search_priority )                                
   47b9a:	b680           	cmpl %d0,%d3                                
   47b9c:	641a           	bccs 47bb8 <_Thread_queue_Enqueue_priority+0x7c>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47b9e:	2404           	movel %d4,%d2                               
   47ba0:	46c1           	movew %d1,%sr                               
   47ba2:	8481           	orl %d1,%d2                                 
   47ba4:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   47ba6:	2405           	movel %d5,%d2                               
   47ba8:	c4a9 0010      	andl %a1@(16),%d2                           
   47bac:	6604           	bnes 47bb2 <_Thread_queue_Enqueue_priority+0x76><== ALWAYS TAKEN
      _ISR_Enable( level );                                           
   47bae:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
      goto restart_forward_search;                                    
   47bb0:	60d6           	bras 47b88 <_Thread_queue_Enqueue_priority+0x4c><== NOT EXECUTED
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
   47bb2:	2251           	moveal %a1@,%a1                             
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->first;                   
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
   47bb4:	bc89           	cmpl %a1,%d6                                
   47bb6:	66de           	bnes 47b96 <_Thread_queue_Enqueue_priority+0x5a>
   47bb8:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47bba:	7801           	moveq #1,%d4                                
   47bbc:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47bc0:	6600 00a4      	bnew 47c66 <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   47bc4:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   47bc8:	b680           	cmpl %d0,%d3                                
   47bca:	677e           	beqs 47c4a <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
   47bcc:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   47bd0:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   47bd2:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47bd6:	214a 0044      	movel %a2,%a0@(68)                          
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
   47bda:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   47bdc:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47be0:	46c1           	movew %d1,%sr                               
   47be2:	6062           	bras 47c46 <_Thread_queue_Enqueue_priority+0x10a>
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   47be4:	4283           	clrl %d3                                    
   47be6:	1639 0005 c4c2 	moveb 5c4c2 <rtems_maximum_priority>,%d3    
                                                                      
  _ISR_Disable( level );                                              
   47bec:	2404           	movel %d4,%d2                               
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
   47bee:	5283           	addql #1,%d3                                
                                                                      
  _ISR_Disable( level );                                              
   47bf0:	40c1           	movew %sr,%d1                               
   47bf2:	8481           	orl %d1,%d2                                 
   47bf4:	46c2           	movew %d2,%sr                               
  search_thread = (Thread_Control *) header->last;                    
   47bf6:	226b 0008      	moveal %a3@(8),%a1                          
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   47bfa:	6020           	bras 47c1c <_Thread_queue_Enqueue_priority+0xe0>
    search_priority = search_thread->current_priority;                
   47bfc:	2629 0014      	movel %a1@(20),%d3                          
    if ( priority >= search_priority )                                
   47c00:	b680           	cmpl %d0,%d3                                
   47c02:	631c           	blss 47c20 <_Thread_queue_Enqueue_priority+0xe4>
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
   47c04:	2404           	movel %d4,%d2                               
   47c06:	46c1           	movew %d1,%sr                               
   47c08:	8481           	orl %d1,%d2                                 
   47c0a:	46c2           	movew %d2,%sr                               
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
   47c0c:	2405           	movel %d5,%d2                               
   47c0e:	c4a9 0010      	andl %a1@(16),%d2                           
   47c12:	6604           	bnes 47c18 <_Thread_queue_Enqueue_priority+0xdc>
      _ISR_Enable( level );                                           
   47c14:	46c1           	movew %d1,%sr                               
      goto restart_reverse_search;                                    
   47c16:	60cc           	bras 47be4 <_Thread_queue_Enqueue_priority+0xa8>
    }                                                                 
    search_thread = (Thread_Control *)                                
   47c18:	2269 0004      	moveal %a1@(4),%a1                          
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->last;                    
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
   47c1c:	b7c9           	cmpal %a1,%a3                               
   47c1e:	66dc           	bnes 47bfc <_Thread_queue_Enqueue_priority+0xc0>
   47c20:	2401           	movel %d1,%d2                               
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
   47c22:	7801           	moveq #1,%d4                                
   47c24:	b8aa 0030      	cmpl %a2@(48),%d4                           
   47c28:	663c           	bnes 47c66 <_Thread_queue_Enqueue_priority+0x12a>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
   47c2a:	42aa 0030      	clrl %a2@(48)                               
                                                                      
  if ( priority == search_priority )                                  
   47c2e:	b680           	cmpl %d0,%d3                                
   47c30:	6718           	beqs 47c4a <_Thread_queue_Enqueue_priority+0x10e>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
   47c32:	2651           	moveal %a1@,%a3                             
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
   47c34:	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;                                
   47c38:	208b           	movel %a3,%a0@                              
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
  next_node->previous    = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47c3a:	214a 0044      	movel %a2,%a0@(68)                          
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
   47c3e:	2288           	movel %a0,%a1@                              
  next_node->previous    = the_node;                                  
   47c40:	2748 0004      	movel %a0,%a3@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47c44:	46c1           	movew %d1,%sr                               
   47c46:	7001           	moveq #1,%d0                                
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
   47c48:	6026           	bras 47c70 <_Thread_queue_Enqueue_priority+0x134>
   47c4a:	43e9 003c      	lea %a1@(60),%a1                            
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
  previous_node = search_node->previous;                              
   47c4e:	2669 0004      	moveal %a1@(4),%a3                          
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
   47c52:	2089           	movel %a1,%a0@                              
  the_node->previous     = previous_node;                             
   47c54:	214b 0004      	movel %a3,%a0@(4)                           
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
   47c58:	214a 0044      	movel %a2,%a0@(68)                          
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
   47c5c:	2688           	movel %a0,%a3@                              
  search_node->previous  = the_node;                                  
   47c5e:	2348 0004      	movel %a0,%a1@(4)                           
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
   47c62:	46c2           	movew %d2,%sr                               
   47c64:	60e0           	bras 47c46 <_Thread_queue_Enqueue_priority+0x10a>
   *  For example, the blocking thread could have been given          
   *  the mutex by an ISR or timed out.                               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
   47c66:	206e 0010      	moveal %fp@(16),%a0                         
  return the_thread_queue->sync_state;                                
   47c6a:	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;                                                   
   47c6e:	2082           	movel %d2,%a0@                              
  return the_thread_queue->sync_state;                                
}                                                                     
   47c70:	4cd7 0c7c      	moveml %sp@,%d2-%d6/%a2-%a3                 
   47c74:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004cfbc <_Thread_queue_Extract_fifo>: Thread_Control *the_thread ) { ISR_Level level; _ISR_Disable( level );
   4cfbc:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
void _Thread_queue_Extract_fifo(                                      
  Thread_queue_Control *the_thread_queue __attribute__((unused)),     
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
   4cfc2:	4e56 0000      	linkw %fp,#0                                
   4cfc6:	2f0a           	movel %a2,%sp@-                             
   4cfc8:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4cfcc:	40c0           	movew %sr,%d0                               
   4cfce:	8280           	orl %d0,%d1                                 
   4cfd0:	46c1           	movew %d1,%sr                               
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   4cfd2:	222a 0010      	movel %a2@(16),%d1                          
   4cfd6:	0281 0003 bee0 	andil #245472,%d1                           
   4cfdc:	660a           	bnes 4cfe8 <_Thread_queue_Extract_fifo+0x2c>
    _ISR_Enable( level );                                             
   4cfde:	46c0           	movew %d0,%sr                               
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4cfe0:	246e fffc      	moveal %fp@(-4),%a2                         
   4cfe4:	4e5e           	unlk %fp                                    
   4cfe6:	4e75           	rts                                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4cfe8:	2052           	moveal %a2@,%a0                             
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4cfea:	7202           	moveq #2,%d1                                
  previous       = the_node->previous;                                
   4cfec:	226a 0004      	moveal %a2@(4),%a1                          
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
   4cff0:	42aa 0044      	clrl %a2@(68)                               
  next->previous = previous;                                          
  previous->next = next;                                              
   4cff4:	2288           	movel %a0,%a1@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   4cff6:	2149 0004      	movel %a1,%a0@(4)                           
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4cffa:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4cffe:	6704           	beqs 4d004 <_Thread_queue_Extract_fifo+0x48>
    _ISR_Enable( level );                                             
   4d000:	46c0           	movew %d0,%sr                               
   4d002:	6014           	bras 4d018 <_Thread_queue_Extract_fifo+0x5c>
   4d004:	7203           	moveq #3,%d1                                
   4d006:	2541 0050      	movel %d1,%a2@(80)                          
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4d00a:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4d00c:	486a 0048      	pea %a2@(72)                                
   4d010:	4eb9 0004 8660 	jsr 48660 <_Watchdog_Remove>                
   4d016:	588f           	addql #4,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4d018:	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                                                                
                                                                      
}                                                                     
   4d01c:	246e fffc      	moveal %fp@(-4),%a2                         
   4d020:	203c 1003 fff8 	movel #268697592,%d0                        
   4d026:	2d40 000c      	movel %d0,%fp@(12)                          
   4d02a:	4e5e           	unlk %fp                                    
   4d02c:	4ef9 0004 7278 	jmp 47278 <_Thread_Clear_state>             
	...                                                                  
                                                                      

0004b4b0 <_Thread_queue_Process_timeout>: #include <rtems/score/tqdata.h> void _Thread_queue_Process_timeout( Thread_Control *the_thread ) {
   4b4b0:	4e56 0000      	linkw %fp,#0                                
   4b4b4:	206e 0008      	moveal %fp@(8),%a0                          
  Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;    
   4b4b8:	2268 0044      	moveal %a0@(68),%a1                         
   *  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 &&
   4b4bc:	2029 0030      	movel %a1@(48),%d0                          
   4b4c0:	671c           	beqs 4b4de <_Thread_queue_Process_timeout+0x2e>
   4b4c2:	b1f9 0005 dcd6 	cmpal 5dcd6 <_Thread_Executing>,%a0         
   4b4c8:	6614           	bnes 4b4de <_Thread_queue_Process_timeout+0x2e><== NEVER TAKEN
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
   4b4ca:	7203           	moveq #3,%d1                                
   4b4cc:	b280           	cmpl %d0,%d1                                
   4b4ce:	6722           	beqs 4b4f2 <_Thread_queue_Process_timeout+0x42>
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4b4d0:	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;
   4b4d2:	2169 003c 0034 	movel %a1@(60),%a0@(52)                     
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4b4d8:	2340 0030      	movel %d0,%a1@(48)                          
   4b4dc:	6014           	bras 4b4f2 <_Thread_queue_Process_timeout+0x42>
    }                                                                 
  } else {                                                            
    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
   4b4de:	2169 003c 0034 	movel %a1@(60),%a0@(52)                     
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
   4b4e4:	2f08           	movel %a0,%sp@-                             
   4b4e6:	2f28 0044      	movel %a0@(68),%sp@-                        
   4b4ea:	4eb9 0004 b3ac 	jsr 4b3ac <_Thread_queue_Extract>           
   4b4f0:	508f           	addql #8,%sp                                
  }                                                                   
}                                                                     
   4b4f2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047d2c <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
   47d2c:	4e56 fff0      	linkw %fp,#-16                              
   47d30:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   47d34:	246e 0008      	moveal %fp@(8),%a2                          
   47d38:	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 )                                            
   47d3c:	4a8a           	tstl %a2                                    
   47d3e:	6746           	beqs 47d86 <_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 ) {
   47d40:	7001           	moveq #1,%d0                                
   47d42:	b0aa 0034      	cmpl %a2@(52),%d0                           
   47d46:	663e           	bnes 47d86 <_Thread_queue_Requeue+0x5a>     <== NEVER TAKEN
    Thread_queue_Control *tq = the_thread_queue;                      
    ISR_Level             level;                                      
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
   47d48:	303c 0700      	movew #1792,%d0                             
   47d4c:	40c2           	movew %sr,%d2                               
   47d4e:	8082           	orl %d2,%d0                                 
   47d50:	46c0           	movew %d0,%sr                               
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   47d52:	202b 0010      	movel %a3@(16),%d0                          
   47d56:	0280 0003 bee0 	andil #245472,%d0                           
   47d5c:	6726           	beqs 47d84 <_Thread_queue_Requeue+0x58>     <== NEVER TAKEN
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
   47d5e:	4878 0001      	pea 1 <ADD>                                 
   47d62:	7001           	moveq #1,%d0                                
   47d64:	2f0b           	movel %a3,%sp@-                             
   47d66:	2540 0030      	movel %d0,%a2@(48)                          
   47d6a:	2f0a           	movel %a2,%sp@-                             
   47d6c:	4eb9 0004 b3e4 	jsr 4b3e4 <_Thread_queue_Extract_priority_helper>
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
   47d72:	486e fffc      	pea %fp@(-4)                                
   47d76:	2f0b           	movel %a3,%sp@-                             
   47d78:	2f0a           	movel %a2,%sp@-                             
   47d7a:	4eb9 0004 7b3c 	jsr 47b3c <_Thread_queue_Enqueue_priority>  
   47d80:	4fef 0018      	lea %sp@(24),%sp                            
    }                                                                 
    _ISR_Enable( level );                                             
   47d84:	46c2           	movew %d2,%sr                               
  }                                                                   
}                                                                     
   47d86:	4cee 0c04 fff0 	moveml %fp@(-16),%d2/%a2-%a3                
   47d8c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047d90 <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
   47d90:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   47d94:	486e fffc      	pea %fp@(-4)                                
   47d98:	2f2e 0008      	movel %fp@(8),%sp@-                         
   47d9c:	4eb9 0004 7658 	jsr 47658 <_Thread_Get>                     
  switch ( location ) {                                               
   47da2:	508f           	addql #8,%sp                                
   47da4:	4aae fffc      	tstl %fp@(-4)                               
   47da8:	6618           	bnes 47dc2 <_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 );                    
   47daa:	2f00           	movel %d0,%sp@-                             
   47dac:	4eb9 0004 b4b0 	jsr 4b4b0 <_Thread_queue_Process_timeout>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   47db2:	588f           	addql #4,%sp                                
   47db4:	2039 0005 dc1c 	movel 5dc1c <_Thread_Dispatch_disable_level>,%d0
   47dba:	5380           	subql #1,%d0                                
   47dbc:	23c0 0005 dc1c 	movel %d0,5dc1c <_Thread_Dispatch_disable_level>
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   47dc2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00051ed4 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
   51ed4:	4e56 ffb4      	linkw %fp,#-76                              
   51ed8:	200e           	movel %fp,%d0                               
   51eda:	0680 ffff fff4 	addil #-12,%d0                              
   51ee0:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   51ee4:	246e 0008      	moveal %fp@(8),%a2                          
   51ee8:	240e           	movel %fp,%d2                               
   51eea:	2a0e           	movel %fp,%d5                               
   51eec:	260e           	movel %fp,%d3                               
   51eee:	0682 ffff ffe8 	addil #-24,%d2                              
   51ef4:	5185           	subql #8,%d5                                
   51ef6:	0683 ffff ffec 	addil #-20,%d3                              
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   51efc:	41ea 0008      	lea %a2@(8),%a0                             
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   51f00:	4bea 0040      	lea %a2@(64),%a5                            
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51f04:	2e0a           	movel %a2,%d7                               
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   51f06:	280a           	movel %a2,%d4                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51f08:	0687 0000 0030 	addil #48,%d7                               
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   51f0e:	0684 0000 0068 	addil #104,%d4                              
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51f14:	49f9 0005 5984 	lea 55984 <_Watchdog_Adjust_to_chain>,%a4   
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   51f1a:	47f9 0005 5a14 	lea 55a14 <_Watchdog_Insert>,%a3            
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   51f20:	2d48 ffe4      	movel %a0,%fp@(-28)                         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   51f24:	2d45 fff4      	movel %d5,%fp@(-12)                         
  the_chain->permanent_null = NULL;                                   
   51f28:	42ae fff8      	clrl %fp@(-8)                               
  the_chain->last           = _Chain_Head(the_chain);                 
   51f2c:	2d40 fffc      	movel %d0,%fp@(-4)                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
   51f30:	2d43 ffe8      	movel %d3,%fp@(-24)                         
  the_chain->permanent_null = NULL;                                   
   51f34:	42ae ffec      	clrl %fp@(-20)                              
  the_chain->last           = _Chain_Head(the_chain);                 
   51f38:	2d42 fff0      	movel %d2,%fp@(-16)                         
   51f3c:	2d4d ffe0      	movel %a5,%fp@(-32)                         
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   51f40:	41ee fff4      	lea %fp@(-12),%a0                           
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   51f44:	3a7c 0700      	moveaw #1792,%a5                            
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   51f48:	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;            
   51f4c:	2039 0007 63b8 	movel 763b8 <_Watchdog_Ticks_since_boot>,%d0
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
   51f52:	222a 003c      	movel %a2@(60),%d1                          
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   51f56:	2540 003c      	movel %d0,%a2@(60)                          
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   51f5a:	486e ffe8      	pea %fp@(-24)                               
   51f5e:	9081           	subl %d1,%d0                                
   51f60:	2f00           	movel %d0,%sp@-                             
   51f62:	2f07           	movel %d7,%sp@-                             
   51f64:	4e94           	jsr %a4@                                    
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
   51f66:	2039 0007 630a 	movel 7630a <_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 ) {                                   
   51f6c:	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;         
   51f70:	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 ) {                                   
   51f74:	b280           	cmpl %d0,%d1                                
   51f76:	6414           	bccs 51f8c <_Timer_server_Body+0xb8>        
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   51f78:	486e ffe8      	pea %fp@(-24)                               
   51f7c:	2c00           	movel %d0,%d6                               
   51f7e:	9c81           	subl %d1,%d6                                
   51f80:	2f06           	movel %d6,%sp@-                             
   51f82:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   51f86:	2f04           	movel %d4,%sp@-                             
   51f88:	4e94           	jsr %a4@                                    
   51f8a:	6018           	bras 51fa4 <_Timer_server_Body+0xd0>        
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
   51f8c:	b280           	cmpl %d0,%d1                                
   51f8e:	631c           	blss 51fac <_Timer_server_Body+0xd8>        
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
   51f90:	9280           	subl %d0,%d1                                
   51f92:	2f01           	movel %d1,%sp@-                             
   51f94:	4878 0001      	pea 1 <ADD>                                 
   51f98:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   51f9c:	2f04           	movel %d4,%sp@-                             
   51f9e:	4eb9 0005 5904 	jsr 55904 <_Watchdog_Adjust>                
   51fa4:	202e ffdc      	movel %fp@(-36),%d0                         
   51fa8:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   51fac:	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 );
   51fb0:	202a 0078      	movel %a2@(120),%d0                         
   51fb4:	2f00           	movel %d0,%sp@-                             
   51fb6:	4eb9 0005 2870 	jsr 52870 <_Chain_Get>                      
                                                                      
    if ( timer == NULL ) {                                            
   51fbc:	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 );
   51fbe:	2040           	moveal %d0,%a0                              
                                                                      
    if ( timer == NULL ) {                                            
   51fc0:	4a80           	tstl %d0                                    
   51fc2:	6724           	beqs 51fe8 <_Timer_server_Body+0x114>       <== ALWAYS TAKEN
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   51fc4:	2028 0038      	movel %a0@(56),%d0                          <== NOT EXECUTED
   51fc8:	7201           	moveq #1,%d1                                <== NOT EXECUTED
   51fca:	b280           	cmpl %d0,%d1                                <== NOT EXECUTED
   51fcc:	6608           	bnes 51fd6 <_Timer_server_Body+0x102>       <== NOT EXECUTED
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   51fce:	4868 0010      	pea %a0@(16)                                <== NOT EXECUTED
   51fd2:	2f07           	movel %d7,%sp@-                             <== NOT EXECUTED
   51fd4:	600c           	bras 51fe2 <_Timer_server_Body+0x10e>       <== NOT EXECUTED
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   51fd6:	7c03           	moveq #3,%d6                                <== NOT EXECUTED
   51fd8:	bc80           	cmpl %d0,%d6                                <== NOT EXECUTED
   51fda:	66d4           	bnes 51fb0 <_Timer_server_Body+0xdc>        <== NOT EXECUTED
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   51fdc:	4868 0010      	pea %a0@(16)                                <== NOT EXECUTED
   51fe0:	2f04           	movel %d4,%sp@-                             <== NOT EXECUTED
   51fe2:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   51fe4:	508f           	addql #8,%sp                                <== NOT EXECUTED
   51fe6:	60c8           	bras 51fb0 <_Timer_server_Body+0xdc>        <== NOT EXECUTED
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   51fe8:	200d           	movel %a5,%d0                               
   51fea:	40c1           	movew %sr,%d1                               
   51fec:	8081           	orl %d1,%d0                                 
   51fee:	46c0           	movew %d0,%sr                               
    if ( _Chain_Is_empty( insert_chain ) ) {                          
   51ff0:	baae fff4      	cmpl %fp@(-12),%d5                          
   51ff4:	6612           	bnes 52008 <_Timer_server_Body+0x134>       <== NEVER TAKEN
      ts->insert_chain = NULL;                                        
   51ff6:	42aa 0078      	clrl %a2@(120)                              
      _ISR_Enable( level );                                           
   51ffa:	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 );                                        
   51ffc:	3a7c 0700      	moveaw #1792,%a5                            
  _Chain_Initialize_empty( &fire_chain );                             
                                                                      
  while ( true ) {                                                    
    _Timer_server_Get_watchdogs_that_fire_now( ts, &insert_chain, &fire_chain );
                                                                      
    if ( !_Chain_Is_empty( &fire_chain ) ) {                          
   52000:	b6ae ffe8      	cmpl %fp@(-24),%d3                          
   52004:	6608           	bnes 5200e <_Timer_server_Body+0x13a>       
   52006:	6042           	bras 5204a <_Timer_server_Body+0x176>       
      ts->insert_chain = NULL;                                        
      _ISR_Enable( level );                                           
                                                                      
      break;                                                          
    } else {                                                          
      _ISR_Enable( level );                                           
   52008:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
   5200a:	6000 ff40      	braw 51f4c <_Timer_server_Body+0x78>        <== NOT EXECUTED
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
   5200e:	220d           	movel %a5,%d1                               
   52010:	40c0           	movew %sr,%d0                               
   52012:	8280           	orl %d0,%d1                                 
   52014:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   52016:	206e ffe8      	moveal %fp@(-24),%a0                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   5201a:	b688           	cmpl %a0,%d3                                
   5201c:	6726           	beqs 52044 <_Timer_server_Body+0x170>       
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   5201e:	2250           	moveal %a0@,%a1                             
  the_chain->first    = new_first;                                    
   52020:	2d49 ffe8      	movel %a1,%fp@(-24)                         
  new_first->previous = _Chain_Head(the_chain);                       
   52024:	2342 0004      	movel %d2,%a1@(4)                           
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
   52028:	4a88           	tstl %a0                                    
   5202a:	6718           	beqs 52044 <_Timer_server_Body+0x170>       <== NEVER TAKEN
          watchdog->state = WATCHDOG_INACTIVE;                        
   5202c:	42a8 0008      	clrl %a0@(8)                                
          _ISR_Enable( level );                                       
   52030:	46c0           	movew %d0,%sr                               
        /*                                                            
         *  The timer server may block here and wait for resources or time.
         *  The system watchdogs are inactive and will remain inactive since
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
   52032:	2f28 0024      	movel %a0@(36),%sp@-                        
   52036:	2f28 0020      	movel %a0@(32),%sp@-                        
   5203a:	2068 001c      	moveal %a0@(28),%a0                         
   5203e:	4e90           	jsr %a0@                                    
      }                                                               
   52040:	508f           	addql #8,%sp                                
   52042:	60ca           	bras 5200e <_Timer_server_Body+0x13a>       
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
   52044:	46c0           	movew %d0,%sr                               
   52046:	6000 fef8      	braw 51f40 <_Timer_server_Body+0x6c>        
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
   5204a:	4200           	clrb %d0                                    
   5204c:	1540 007c      	moveb %d0,%a2@(124)                         
   52050:	2039 0007 6278 	movel 76278 <_Thread_Dispatch_disable_level>,%d0
   52056:	5280           	addql #1,%d0                                
   52058:	23c0 0007 6278 	movel %d0,76278 <_Thread_Dispatch_disable_level>
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   5205e:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   52062:	4bf9 0005 5b30 	lea 55b30 <_Watchdog_Remove>,%a5            
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   52068:	2f12           	movel %a2@,%sp@-                            
   5206a:	4eb9 0005 5158 	jsr 55158 <_Thread_Set_state>               
        _Timer_server_Reset_interval_system_watchdog( ts );           
   52070:	2f0a           	movel %a2,%sp@-                             
   52072:	4eba fd9c      	jsr %pc@(51e10 <_Timer_server_Reset_interval_system_watchdog>)
        _Timer_server_Reset_tod_system_watchdog( ts );                
   52076:	2f0a           	movel %a2,%sp@-                             
   52078:	4eba fdf6      	jsr %pc@(51e70 <_Timer_server_Reset_tod_system_watchdog>)
      _Thread_Enable_dispatch();                                      
   5207c:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
                                                                      
      ts->active = true;                                              
   52082:	7201           	moveq #1,%d1                                
   52084:	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 );        
   52088:	2f2e ffe4      	movel %fp@(-28),%sp@-                       
   5208c:	4e95           	jsr %a5@                                    
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   5208e:	2f2e ffe0      	movel %fp@(-32),%sp@-                       
   52092:	4e95           	jsr %a5@                                    
   52094:	4fef 0018      	lea %sp@(24),%sp                            
   52098:	6000 fea6      	braw 51f40 <_Timer_server_Body+0x6c>        
                                                                      

0005209c <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) {
   5209c:	4e56 fff0      	linkw %fp,#-16                              
   520a0:	206e 000c      	moveal %fp@(12),%a0                         
   520a4:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   520a8:	246e 0008      	moveal %fp@(8),%a2                          
  if ( ts->insert_chain == NULL ) {                                   
   520ac:	202a 0078      	movel %a2@(120),%d0                         
   520b0:	6600 00f8      	bnew 521aa <_Timer_server_Schedule_operation_method+0x10e>
   520b4:	2039 0007 6278 	movel 76278 <_Thread_Dispatch_disable_level>,%d0
   520ba:	5280           	addql #1,%d0                                
   520bc:	23c0 0007 6278 	movel %d0,76278 <_Thread_Dispatch_disable_level>
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   520c2:	2028 0038      	movel %a0@(56),%d0                          
   520c6:	7201           	moveq #1,%d1                                
   520c8:	b280           	cmpl %d0,%d1                                
   520ca:	6660           	bnes 5212c <_Timer_server_Schedule_operation_method+0x90>
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   520cc:	203c 0000 0700 	movel #1792,%d0                             
   520d2:	40c3           	movew %sr,%d3                               
   520d4:	8083           	orl %d3,%d0                                 
   520d6:	46c0           	movew %d0,%sr                               
    snapshot = _Watchdog_Ticks_since_boot;                            
   520d8:	2039 0007 63b8 	movel 763b8 <_Watchdog_Ticks_since_boot>,%d0
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   520de:	220a           	movel %a2,%d1                               
   520e0:	0681 0000 0034 	addil #52,%d1                               
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
   520e6:	242a 003c      	movel %a2@(60),%d2                          
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   520ea:	226a 0030      	moveal %a2@(48),%a1                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   520ee:	b289           	cmpl %a1,%d1                                
   520f0:	6716           	beqs 52108 <_Timer_server_Schedule_operation_method+0x6c>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
   520f2:	2800           	movel %d0,%d4                               
   520f4:	9882           	subl %d2,%d4                                
                                                                      
      delta_interval = first_watchdog->delta_interval;                
   520f6:	2229 0010      	movel %a1@(16),%d1                          
      if (delta_interval > delta) {                                   
   520fa:	b881           	cmpl %d1,%d4                                
   520fc:	6504           	bcss 52102 <_Timer_server_Schedule_operation_method+0x66>
   520fe:	4281           	clrl %d1                                    
   52100:	6002           	bras 52104 <_Timer_server_Schedule_operation_method+0x68>
        delta_interval -= delta;                                      
   52102:	9284           	subl %d4,%d1                                
      } else {                                                        
        delta_interval = 0;                                           
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   52104:	2341 0010      	movel %d1,%a1@(16)                          
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
   52108:	2540 003c      	movel %d0,%a2@(60)                          
    _ISR_Enable( level );                                             
   5210c:	46c3           	movew %d3,%sr                               
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   5210e:	4868 0010      	pea %a0@(16)                                
   52112:	486a 0030      	pea %a2@(48)                                
   52116:	4eb9 0005 5a14 	jsr 55a14 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   5211c:	508f           	addql #8,%sp                                
   5211e:	102a 007c      	moveb %a2@(124),%d0                         
   52122:	6678           	bnes 5219c <_Timer_server_Schedule_operation_method+0x100>
      _Timer_server_Reset_interval_system_watchdog( ts );             
   52124:	2f0a           	movel %a2,%sp@-                             
   52126:	4eba fce8      	jsr %pc@(51e10 <_Timer_server_Reset_interval_system_watchdog>)
   5212a:	606e           	bras 5219a <_Timer_server_Schedule_operation_method+0xfe>
    }                                                                 
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   5212c:	7203           	moveq #3,%d1                                
   5212e:	b280           	cmpl %d0,%d1                                
   52130:	666a           	bnes 5219c <_Timer_server_Schedule_operation_method+0x100>
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   52132:	203c 0000 0700 	movel #1792,%d0                             
   52138:	40c3           	movew %sr,%d3                               
   5213a:	8083           	orl %d3,%d0                                 
   5213c:	46c0           	movew %d0,%sr                               
   5213e:	200a           	movel %a2,%d0                               
   52140:	0680 0000 006c 	addil #108,%d0                              
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
   52146:	2239 0007 630a 	movel 7630a <_TOD_Now>,%d1                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
   5214c:	242a 0074      	movel %a2@(116),%d2                         
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   52150:	226a 0068      	moveal %a2@(104),%a1                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
   52154:	b089           	cmpl %a1,%d0                                
   52156:	6720           	beqs 52178 <_Timer_server_Schedule_operation_method+0xdc>
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
   52158:	2029 0010      	movel %a1@(16),%d0                          
      if ( snapshot > last_snapshot ) {                               
   5215c:	b481           	cmpl %d1,%d2                                
   5215e:	6410           	bccs 52170 <_Timer_server_Schedule_operation_method+0xd4>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
   52160:	2801           	movel %d1,%d4                               
   52162:	9882           	subl %d2,%d4                                
        if (delta_interval > delta) {                                 
   52164:	b880           	cmpl %d0,%d4                                
   52166:	6504           	bcss 5216c <_Timer_server_Schedule_operation_method+0xd0><== ALWAYS TAKEN
   52168:	4280           	clrl %d0                                    <== NOT EXECUTED
   5216a:	6008           	bras 52174 <_Timer_server_Schedule_operation_method+0xd8><== NOT EXECUTED
          delta_interval -= delta;                                    
   5216c:	9084           	subl %d4,%d0                                
   5216e:	6004           	bras 52174 <_Timer_server_Schedule_operation_method+0xd8>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
   52170:	d082           	addl %d2,%d0                                
        delta_interval += delta;                                      
   52172:	9081           	subl %d1,%d0                                
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   52174:	2340 0010      	movel %d0,%a1@(16)                          
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
   52178:	2541 0074      	movel %d1,%a2@(116)                         
    _ISR_Enable( level );                                             
   5217c:	46c3           	movew %d3,%sr                               
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   5217e:	4868 0010      	pea %a0@(16)                                
   52182:	486a 0068      	pea %a2@(104)                               
   52186:	4eb9 0005 5a14 	jsr 55a14 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   5218c:	508f           	addql #8,%sp                                
   5218e:	102a 007c      	moveb %a2@(124),%d0                         
   52192:	6608           	bnes 5219c <_Timer_server_Schedule_operation_method+0x100>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
   52194:	2f0a           	movel %a2,%sp@-                             
   52196:	4eba fcd8      	jsr %pc@(51e70 <_Timer_server_Reset_tod_system_watchdog>)
   5219a:	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 );           
  }                                                                   
}                                                                     
   5219c:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   521a2:	4e5e           	unlk %fp                                    
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
   521a4:	4ef9 0005 47f6 	jmp 547f6 <_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 );           
   521aa:	202a 0078      	movel %a2@(120),%d0                         <== NOT EXECUTED
   521ae:	2d48 000c      	movel %a0,%fp@(12)                          <== NOT EXECUTED
  }                                                                   
}                                                                     
   521b2:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                <== NOT EXECUTED
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   521b8:	2d40 0008      	movel %d0,%fp@(8)                           <== NOT EXECUTED
  }                                                                   
}                                                                     
   521bc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   521be:	4ef9 0005 2810 	jmp 52810 <_Chain_Append>                   <== NOT EXECUTED
                                                                      

0004991c <_Timespec_Greater_than>: bool _Timespec_Greater_than( const struct timespec *lhs, const struct timespec *rhs ) {
   4991c:	4e56 0000      	linkw %fp,#0                                
   49920:	226e 0008      	moveal %fp@(8),%a1                          
   49924:	206e 000c      	moveal %fp@(12),%a0                         
  if ( lhs->tv_sec > rhs->tv_sec )                                    
   49928:	2211           	movel %a1@,%d1                              
   4992a:	2010           	movel %a0@,%d0                              
   4992c:	b081           	cmpl %d1,%d0                                
   4992e:	6c04           	bges 49934 <_Timespec_Greater_than+0x18>    
   49930:	7001           	moveq #1,%d0                                
   49932:	6014           	bras 49948 <_Timespec_Greater_than+0x2c>    
    return true;                                                      
                                                                      
  if ( lhs->tv_sec < rhs->tv_sec )                                    
   49934:	b081           	cmpl %d1,%d0                                
   49936:	6f04           	bles 4993c <_Timespec_Greater_than+0x20>    <== ALWAYS TAKEN
   49938:	4200           	clrb %d0                                    
   4993a:	600c           	bras 49948 <_Timespec_Greater_than+0x2c>    <== NOT EXECUTED
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Greater_than(                                          
   4993c:	2068 0004      	moveal %a0@(4),%a0                          
   49940:	b1e9 0004      	cmpal %a1@(4),%a0                           
   49944:	5dc0           	slt %d0                                     
   49946:	4480           	negl %d0                                    
  /* ASSERT: lhs->tv_sec == rhs->tv_sec */                            
  if ( lhs->tv_nsec > rhs->tv_nsec )                                  
    return true;                                                      
                                                                      
  return false;                                                       
}                                                                     
   49948:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000483c4 <_User_extensions_Thread_exitted>: void _User_extensions_Thread_exitted ( Thread_Control *executing ) {
   483c4:	4e56 0000      	linkw %fp,#0                                
   483c8:	2f0a           	movel %a2,%sp@-                             
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
   483ca:	2479 0005 ddb2 	moveal 5ddb2 <_User_extensions_List+0x8>,%a2
}                                                                     
                                                                      
void _User_extensions_Thread_exitted (                                
  Thread_Control *executing                                           
)                                                                     
{                                                                     
   483d0:	2f02           	movel %d2,%sp@-                             
   483d2:	242e 0008      	movel %fp@(8),%d2                           
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
   483d6:	6012           	bras 483ea <_User_extensions_Thread_exitted+0x26>
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_exitted != NULL )             
   483d8:	206a 002c      	moveal %a2@(44),%a0                         
   483dc:	4a88           	tstl %a0                                    
   483de:	6706           	beqs 483e6 <_User_extensions_Thread_exitted+0x22>
      (*the_extension->Callouts.thread_exitted)( executing );         
   483e0:	2f02           	movel %d2,%sp@-                             
   483e2:	4e90           	jsr %a0@                                    
   483e4:	588f           	addql #4,%sp                                <== NOT EXECUTED
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
   483e6:	246a 0004      	moveal %a2@(4),%a2                          
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
   483ea:	b5fc 0005 ddaa 	cmpal #384426,%a2                           
   483f0:	66e6           	bnes 483d8 <_User_extensions_Thread_exitted+0x14>
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_exitted != NULL )             
      (*the_extension->Callouts.thread_exitted)( executing );         
  }                                                                   
}                                                                     
   483f2:	242e fff8      	movel %fp@(-8),%d2                          
   483f6:	246e fffc      	moveal %fp@(-4),%a2                         
   483fa:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00049a7c <_Watchdog_Adjust>: Watchdog_Interval units ) { ISR_Level level; _ISR_Disable( level );
   49a7c:	327c 0700      	moveaw #1792,%a1                            
   49a80:	2209           	movel %a1,%d1                               
void _Watchdog_Adjust(                                                
  Chain_Control               *header,                                
  Watchdog_Adjust_directions   direction,                             
  Watchdog_Interval            units                                  
)                                                                     
{                                                                     
   49a82:	4e56 ffe8      	linkw %fp,#-24                              
   49a86:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
   49a8a:	266e 0008      	moveal %fp@(8),%a3                          
   49a8e:	262e 000c      	movel %fp@(12),%d3                          
   49a92:	242e 0010      	movel %fp@(16),%d2                          
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   49a96:	40c0           	movew %sr,%d0                               
   49a98:	8280           	orl %d0,%d1                                 
   49a9a:	46c1           	movew %d1,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   49a9c:	244b           	moveal %a3,%a2                              
   49a9e:	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 ) ) {                                 
   49aa0:	b5c8           	cmpal %a0,%a2                               
   49aa2:	674c           	beqs 49af0 <_Watchdog_Adjust+0x74>          
    switch ( direction ) {                                            
   49aa4:	4a83           	tstl %d3                                    
   49aa6:	673c           	beqs 49ae4 <_Watchdog_Adjust+0x68>          
   49aa8:	7201           	moveq #1,%d1                                
   49aaa:	b283           	cmpl %d3,%d1                                
   49aac:	6642           	bnes 49af0 <_Watchdog_Adjust+0x74>          <== NEVER TAKEN
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
   49aae:	d5a8 0010      	addl %d2,%a0@(16)                           
        break;                                                        
   49ab2:	603c           	bras 49af0 <_Watchdog_Adjust+0x74>          
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) header->first );                      
   49ab4:	2053           	moveal %a3@,%a0                             
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
   49ab6:	2628 0010      	movel %a0@(16),%d3                          
   49aba:	b682           	cmpl %d2,%d3                                
   49abc:	6308           	blss 49ac6 <_Watchdog_Adjust+0x4a>          
            _Watchdog_First( header )->delta_interval -= units;       
   49abe:	9682           	subl %d2,%d3                                
   49ac0:	2143 0010      	movel %d3,%a0@(16)                          
            break;                                                    
   49ac4:	602a           	bras 49af0 <_Watchdog_Adjust+0x74>          
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
   49ac6:	7201           	moveq #1,%d1                                
   49ac8:	2141 0010      	movel %d1,%a0@(16)                          
                                                                      
            _ISR_Enable( level );                                     
   49acc:	46c0           	movew %d0,%sr                               
                                                                      
            _Watchdog_Tickle( header );                               
   49ace:	2f0b           	movel %a3,%sp@-                             
   49ad0:	4e94           	jsr %a4@                                    
                                                                      
            _ISR_Disable( level );                                    
   49ad2:	2204           	movel %d4,%d1                               
   49ad4:	40c0           	movew %sr,%d0                               
   49ad6:	8280           	orl %d0,%d1                                 
   49ad8:	46c1           	movew %d1,%sr                               
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
   49ada:	9483           	subl %d3,%d2                                
                                                                      
            _Watchdog_Tickle( header );                               
                                                                      
            _ISR_Disable( level );                                    
                                                                      
            if ( _Chain_Is_empty( header ) )                          
   49adc:	588f           	addql #4,%sp                                
   49ade:	b5d3           	cmpal %a3@,%a2                              
   49ae0:	660a           	bnes 49aec <_Watchdog_Adjust+0x70>          
   49ae2:	600c           	bras 49af0 <_Watchdog_Adjust+0x74>          
                                                                      
            _ISR_Enable( level );                                     
                                                                      
            _Watchdog_Tickle( header );                               
                                                                      
            _ISR_Disable( level );                                    
   49ae4:	2809           	movel %a1,%d4                               
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
                                                                      
            _ISR_Enable( level );                                     
                                                                      
            _Watchdog_Tickle( header );                               
   49ae6:	49f9 0004 9c94 	lea 49c94 <_Watchdog_Tickle>,%a4            
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
   49aec:	4a82           	tstl %d2                                    
   49aee:	66c4           	bnes 49ab4 <_Watchdog_Adjust+0x38>          <== ALWAYS TAKEN
        }                                                             
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
   49af0:	46c0           	movew %d0,%sr                               
                                                                      
}                                                                     
   49af2:	4cee 1c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a4            
   49af8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048660 <_Watchdog_Remove>: { ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level );
   48660:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
Watchdog_States _Watchdog_Remove(                                     
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
   48666:	4e56 0000      	linkw %fp,#0                                
   4866a:	206e 0008      	moveal %fp@(8),%a0                          
   4866e:	2f0a           	movel %a2,%sp@-                             
   48670:	2f02           	movel %d2,%sp@-                             
  ISR_Level         level;                                            
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
   48672:	40c1           	movew %sr,%d1                               
   48674:	8081           	orl %d1,%d0                                 
   48676:	46c0           	movew %d0,%sr                               
  previous_state = the_watchdog->state;                               
   48678:	2028 0008      	movel %a0@(8),%d0                           
  switch ( previous_state ) {                                         
   4867c:	7401           	moveq #1,%d2                                
   4867e:	b480           	cmpl %d0,%d2                                
   48680:	670c           	beqs 4868e <_Watchdog_Remove+0x2e>          
   48682:	6244           	bhis 486c8 <_Watchdog_Remove+0x68>          
   48684:	143c 0003      	moveb #3,%d2                                
   48688:	b480           	cmpl %d0,%d2                                
   4868a:	653c           	bcss 486c8 <_Watchdog_Remove+0x68>          <== NEVER TAKEN
   4868c:	6006           	bras 48694 <_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;                        
   4868e:	42a8 0008      	clrl %a0@(8)                                
      break;                                                          
   48692:	6034           	bras 486c8 <_Watchdog_Remove+0x68>          
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next(                
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) the_watchdog->Node.next );            
   48694:	2250           	moveal %a0@,%a1                             
                                                                      
    case WATCHDOG_ACTIVE:                                             
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
   48696:	42a8 0008      	clrl %a0@(8)                                
      next_watchdog = _Watchdog_Next( the_watchdog );                 
                                                                      
      if ( _Watchdog_Next(next_watchdog) )                            
   4869a:	4a91           	tstl %a1@                                   
   4869c:	6708           	beqs 486a6 <_Watchdog_Remove+0x46>          
        next_watchdog->delta_interval += the_watchdog->delta_interval;
   4869e:	2428 0010      	movel %a0@(16),%d2                          
   486a2:	d5a9 0010      	addl %d2,%a1@(16)                           
                                                                      
      if ( _Watchdog_Sync_count )                                     
   486a6:	2279 0005 dd58 	moveal 5dd58 <_Watchdog_Sync_count>,%a1     
   486ac:	4a89           	tstl %a1                                    
   486ae:	670c           	beqs 486bc <_Watchdog_Remove+0x5c>          
        _Watchdog_Sync_level = _ISR_Nest_level;                       
   486b0:	2279 0005 dcb6 	moveal 5dcb6 <_ISR_Nest_level>,%a1          
   486b6:	23c9 0005 dcd2 	movel %a1,5dcd2 <_Watchdog_Sync_level>      
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   486bc:	2250           	moveal %a0@,%a1                             
  previous       = the_node->previous;                                
   486be:	2468 0004      	moveal %a0@(4),%a2                          
  next->previous = previous;                                          
  previous->next = next;                                              
   486c2:	2489           	movel %a1,%a2@                              
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
   486c4:	234a 0004      	movel %a2,%a1@(4)                           
                                                                      
      _Chain_Extract_unprotected( &the_watchdog->Node );              
      break;                                                          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
   486c8:	2279 0005 dd5c 	moveal 5dd5c <_Watchdog_Ticks_since_boot>,%a1
   486ce:	2149 0018      	movel %a1,%a0@(24)                          
                                                                      
  _ISR_Enable( level );                                               
   486d2:	46c1           	movew %d1,%sr                               
  return( previous_state );                                           
}                                                                     
   486d4:	241f           	movel %sp@+,%d2                             
   486d6:	245f           	moveal %sp@+,%a2                            
   486d8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00049684 <_Watchdog_Report_chain>: ) { ISR_Level level; Chain_Node *node; _ISR_Disable( level );
   49684:	203c 0000 0700 	movel #1792,%d0                             
                                                                      
void _Watchdog_Report_chain(                                          
  const char        *name,                                            
  Chain_Control     *header                                           
)                                                                     
{                                                                     
   4968a:	4e56 ffec      	linkw %fp,#-20                              
   4968e:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   49692:	242e 0008      	movel %fp@(8),%d2                           
   49696:	266e 000c      	moveal %fp@(12),%a3                         
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
   4969a:	40c3           	movew %sr,%d3                               
   4969c:	8083           	orl %d3,%d0                                 
   4969e:	46c0           	movew %d0,%sr                               
    printk( "Watchdog Chain: %s %p\n", name, header );                
   496a0:	2f0b           	movel %a3,%sp@-                             
   496a2:	49f9 0004 3e90 	lea 43e90 <printk>,%a4                      
   496a8:	2f02           	movel %d2,%sp@-                             
   496aa:	4879 0005 cf96 	pea 5cf96 <C.30.3388+0xe>                   
   496b0:	4e94           	jsr %a4@                                    
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   496b2:	245b           	moveal %a3@+,%a2                            
    if ( !_Chain_Is_empty( header ) ) {                               
   496b4:	4fef 000c      	lea %sp@(12),%sp                            
   496b8:	b7ca           	cmpal %a2,%a3                               
   496ba:	6726           	beqs 496e2 <_Watchdog_Report_chain+0x5e>    
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
   496bc:	49f9 0004 96f8 	lea 496f8 <_Watchdog_Report>,%a4            
   496c2:	2f0a           	movel %a2,%sp@-                             
   496c4:	42a7           	clrl %sp@-                                  
   496c6:	4e94           	jsr %a4@                                    
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = header->first ;                                    
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
   496c8:	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 = header->first ;                                    
   496ca:	508f           	addql #8,%sp                                
   496cc:	b7ca           	cmpal %a2,%a3                               
   496ce:	66f2           	bnes 496c2 <_Watchdog_Report_chain+0x3e>    <== NEVER TAKEN
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
   496d0:	2f02           	movel %d2,%sp@-                             
   496d2:	4879 0005 cfad 	pea 5cfad <C.30.3388+0x25>                  
   496d8:	4eb9 0004 3e90 	jsr 43e90 <printk>                          
   496de:	508f           	addql #8,%sp                                
   496e0:	600a           	bras 496ec <_Watchdog_Report_chain+0x68>    
    } else {                                                          
      printk( "Chain is empty\n" );                                   
   496e2:	4879 0005 cfbc 	pea 5cfbc <C.30.3388+0x34>                  
   496e8:	4e94           	jsr %a4@                                    
   496ea:	588f           	addql #4,%sp                                
    }                                                                 
  _ISR_Enable( level );                                               
   496ec:	46c3           	movew %d3,%sr                               
}                                                                     
   496ee:	4cee 1c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a4            
   496f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000486dc <_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 );
   486dc:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Watchdog_Tickle(                                                
  Chain_Control *header                                               
)                                                                     
{                                                                     
   486e2:	4e56 ffe8      	linkw %fp,#-24                              
   486e6:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
   486ea:	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 );                                              
   486ee:	40c2           	movew %sr,%d2                               
   486f0:	8082           	orl %d2,%d0                                 
   486f2:	46c0           	movew %d0,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   486f4:	264c           	moveal %a4,%a3                              
   486f6:	245b           	moveal %a3@+,%a2                            
                                                                      
  if ( _Chain_Is_empty( header ) )                                    
   486f8:	b7ca           	cmpal %a2,%a3                               
   486fa:	674e           	beqs 4874a <_Watchdog_Tickle+0x6e>          
   * 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) {                            
   486fc:	202a 0010      	movel %a2@(16),%d0                          
   48700:	6708           	beqs 4870a <_Watchdog_Tickle+0x2e>          
    the_watchdog->delta_interval--;                                   
   48702:	5380           	subql #1,%d0                                
   48704:	2540 0010      	movel %d0,%a2@(16)                          
    if ( the_watchdog->delta_interval != 0 )                          
   48708:	6640           	bnes 4874a <_Watchdog_Tickle+0x6e>          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   4870a:	4bf9 0004 8660 	lea 48660 <_Watchdog_Remove>,%a5            
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48710:	263c 0000 0700 	movel #1792,%d3                             
    if ( the_watchdog->delta_interval != 0 )                          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   48716:	2f0a           	movel %a2,%sp@-                             
   48718:	4e95           	jsr %a5@                                    
                                                                      
     _ISR_Enable( level );                                            
   4871a:	46c2           	movew %d2,%sr                               
                                                                      
     switch( watchdog_state ) {                                       
   4871c:	7202           	moveq #2,%d1                                
   4871e:	588f           	addql #4,%sp                                
   48720:	b280           	cmpl %d0,%d1                                
   48722:	6610           	bnes 48734 <_Watchdog_Tickle+0x58>          <== NEVER TAKEN
       case WATCHDOG_ACTIVE:                                          
         (*the_watchdog->routine)(                                    
   48724:	2f2a 0024      	movel %a2@(36),%sp@-                        
   48728:	2f2a 0020      	movel %a2@(32),%sp@-                        
   4872c:	206a 001c      	moveal %a2@(28),%a0                         
   48730:	4e90           	jsr %a0@                                    
   48732:	508f           	addql #8,%sp                                
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48734:	2003           	movel %d3,%d0                               
   48736:	40c2           	movew %sr,%d2                               
   48738:	8082           	orl %d2,%d0                                 
   4873a:	46c0           	movew %d0,%sr                               
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) header->first );                      
   4873c:	2014           	movel %a4@,%d0                              
   4873e:	2440           	moveal %d0,%a2                              
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
   48740:	b7c0           	cmpal %d0,%a3                               
   48742:	6706           	beqs 4874a <_Watchdog_Tickle+0x6e>          
   48744:	4aaa 0010      	tstl %a2@(16)                               
   48748:	67cc           	beqs 48716 <_Watchdog_Tickle+0x3a>          
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
   4874a:	46c2           	movew %d2,%sr                               
}                                                                     
   4874c:	4cee 3c0c ffe8 	moveml %fp@(-24),%d2-%d3/%a2-%a5            
   48752:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046e2c <rtems_io_register_driver>: rtems_status_code rtems_io_register_driver( rtems_device_major_number major, const rtems_driver_address_table *driver_table, rtems_device_major_number *registered_major ) {
   46e2c:	4e56 0000      	linkw %fp,#0                                
   46e30:	206e 000c      	moveal %fp@(12),%a0                         
   46e34:	2f0a           	movel %a2,%sp@-                             
   46e36:	226e 0010      	moveal %fp@(16),%a1                         
   46e3a:	2f02           	movel %d2,%sp@-                             
   46e3c:	242e 0008      	movel %fp@(8),%d2                           
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
   46e40:	2039 0006 13fa 	movel 613fa <_IO_Number_of_drivers>,%d0     
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
   46e46:	2239 0006 124e 	movel 6124e <_ISR_Nest_level>,%d1           
   46e4c:	6706           	beqs 46e54 <rtems_io_register_driver+0x28>  
   46e4e:	7012           	moveq #18,%d0                               
   46e50:	6000 00d6      	braw 46f28 <rtems_io_register_driver+0xfc>  
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
   46e54:	4a89           	tstl %a1                                    
   46e56:	6700 00ce      	beqw 46f26 <rtems_io_register_driver+0xfa>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
   46e5a:	2280           	movel %d0,%a1@                              
                                                                      
  if ( driver_table == NULL )                                         
   46e5c:	4a88           	tstl %a0                                    
   46e5e:	6700 00c6      	beqw 46f26 <rtems_io_register_driver+0xfa>  
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46e62:	4a90           	tstl %a0@                                   
   46e64:	6600 00ce      	bnew 46f34 <rtems_io_register_driver+0x108> 
   46e68:	4aa8 0004      	tstl %a0@(4)                                
   46e6c:	6600 00c6      	bnew 46f34 <rtems_io_register_driver+0x108> 
   46e70:	6000 00b4      	braw 46f26 <rtems_io_register_driver+0xfa>  
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46e74:	2039 0006 11b4 	movel 611b4 <_Thread_Dispatch_disable_level>,%d0
   46e7a:	5280           	addql #1,%d0                                
   46e7c:	23c0 0006 11b4 	movel %d0,611b4 <_Thread_Dispatch_disable_level>
  if ( major >= major_limit )                                         
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
   46e82:	4a82           	tstl %d2                                    
   46e84:	662c           	bnes 46eb2 <rtems_io_register_driver+0x86>  
                                                                      
static rtems_status_code rtems_io_obtain_major_number(                
  rtems_device_major_number *major                                    
)                                                                     
{                                                                     
  rtems_device_major_number n = _IO_Number_of_drivers;                
   46e86:	2039 0006 13fa 	movel 613fa <_IO_Number_of_drivers>,%d0     
   46e8c:	2479 0006 13fe 	moveal 613fe <_IO_Driver_address_table>,%a2 
   46e92:	6010           	bras 46ea4 <rtems_io_register_driver+0x78>  
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46e94:	4a92           	tstl %a2@                                   
   46e96:	6600 00a6      	bnew 46f3e <rtems_io_register_driver+0x112> 
   46e9a:	4aaa 0004      	tstl %a2@(4)                                
   46e9e:	6600 009e      	bnew 46f3e <rtems_io_register_driver+0x112> 
   46ea2:	6004           	bras 46ea8 <rtems_io_register_driver+0x7c>  
  rtems_device_major_number n = _IO_Number_of_drivers;                
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
   46ea4:	b082           	cmpl %d2,%d0                                
   46ea6:	62ec           	bhis 46e94 <rtems_io_register_driver+0x68>  
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
   46ea8:	2282           	movel %d2,%a1@                              
                                                                      
  if ( m != n )                                                       
   46eaa:	b082           	cmpl %d2,%d0                                
   46eac:	6634           	bnes 46ee2 <rtems_io_register_driver+0xb6>  
   46eae:	6000 0098      	braw 46f48 <rtems_io_register_driver+0x11c> 
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
   46eb2:	2202           	movel %d2,%d1                               
   46eb4:	2002           	movel %d2,%d0                               
   46eb6:	e789           	lsll #3,%d1                                 
   46eb8:	eb88           	lsll #5,%d0                                 
   46eba:	2479 0006 13fe 	moveal 613fe <_IO_Driver_address_table>,%a2 
   46ec0:	9081           	subl %d1,%d0                                
   46ec2:	d5c0           	addal %d0,%a2                               
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
   46ec4:	4a92           	tstl %a2@                                   
   46ec6:	660e           	bnes 46ed6 <rtems_io_register_driver+0xaa>  
   46ec8:	4aaa 0004      	tstl %a2@(4)                                
   46ecc:	57c0           	seq %d0                                     
   46ece:	49c0           	extbl %d0                                   
   46ed0:	4480           	negl %d0                                    
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
                                                                      
    if ( !rtems_io_is_empty_table( table ) ) {                        
   46ed2:	4a00           	tstb %d0                                    
   46ed4:	660a           	bnes 46ee0 <rtems_io_register_driver+0xb4>  
      _Thread_Enable_dispatch();                                      
   46ed6:	4eb9 0004 86da 	jsr 486da <_Thread_Enable_dispatch>         
   46edc:	700c           	moveq #12,%d0                               
      return RTEMS_RESOURCE_IN_USE;                                   
   46ede:	6048           	bras 46f28 <rtems_io_register_driver+0xfc>  
    }                                                                 
                                                                      
    *registered_major = major;                                        
   46ee0:	2282           	movel %d2,%a1@                              
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
   46ee2:	4878 0018      	pea 18 <OPER2+0x4>                          
   46ee6:	2202           	movel %d2,%d1                               
   46ee8:	2002           	movel %d2,%d0                               
   46eea:	e789           	lsll #3,%d1                                 
   46eec:	eb88           	lsll #5,%d0                                 
   46eee:	2f08           	movel %a0,%sp@-                             
   46ef0:	9081           	subl %d1,%d0                                
   46ef2:	d0b9 0006 13fe 	addl 613fe <_IO_Driver_address_table>,%d0   
   46ef8:	2f00           	movel %d0,%sp@-                             
   46efa:	4eb9 0005 0f98 	jsr 50f98 <memcpy>                          
                                                                      
  _Thread_Enable_dispatch();                                          
   46f00:	4eb9 0004 86da 	jsr 486da <_Thread_Enable_dispatch>         
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
   46f06:	246e fffc      	moveal %fp@(-4),%a2                         
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46f0a:	4fef 000c      	lea %sp@(12),%sp                            
   46f0e:	2d42 0008      	movel %d2,%fp@(8)                           
}                                                                     
   46f12:	242e fff8      	movel %fp@(-8),%d2                          
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46f16:	42ae 0010      	clrl %fp@(16)                               
   46f1a:	42ae 000c      	clrl %fp@(12)                               
}                                                                     
   46f1e:	4e5e           	unlk %fp                                    
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
   46f20:	4ef9 0004 e4ac 	jmp 4e4ac <rtems_io_initialize>             
   46f26:	7009           	moveq #9,%d0                                
}                                                                     
   46f28:	242e fff8      	movel %fp@(-8),%d2                          
   46f2c:	246e fffc      	moveal %fp@(-4),%a2                         
   46f30:	4e5e           	unlk %fp                                    
   46f32:	4e75           	rts                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
   46f34:	b082           	cmpl %d2,%d0                                
   46f36:	6200 ff3c      	bhiw 46e74 <rtems_io_register_driver+0x48>  
   46f3a:	700a           	moveq #10,%d0                               
   46f3c:	60ea           	bras 46f28 <rtems_io_register_driver+0xfc>  
  rtems_device_major_number n = _IO_Number_of_drivers;                
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
   46f3e:	5282           	addql #1,%d2                                
   46f40:	45ea 0018      	lea %a2@(24),%a2                            
   46f44:	6000 ff5e      	braw 46ea4 <rtems_io_register_driver+0x78>  
                                                                      
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
   46f48:	4eb9 0004 86da 	jsr 486da <_Thread_Enable_dispatch>         
   46f4e:	7005           	moveq #5,%d0                                
      return sc;                                                      
   46f50:	60d6           	bras 46f28 <rtems_io_register_driver+0xfc>  
	...                                                                  
                                                                      

00047c20 <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) {
   47c20:	4e56 fff0      	linkw %fp,#-16                              
   47c24:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   47c28:	286e 0008      	moveal %fp@(8),%a4                          
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
   47c2c:	4a8c           	tstl %a4                                    
   47c2e:	6740           	beqs 47c70 <rtems_iterate_over_all_threads+0x50><== NEVER TAKEN
   47c30:	45f9 0006 00f8 	lea 600f8 <_Objects_Information_table+0x4>,%a2
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
    if ( !_Objects_Information_table[ api_index ] )                   
   47c36:	2052           	moveal %a2@,%a0                             
   47c38:	4a88           	tstl %a0                                    
   47c3a:	672a           	beqs 47c66 <rtems_iterate_over_all_threads+0x46>
      continue;                                                       
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
   47c3c:	2668 0004      	moveal %a0@(4),%a3                          
    if ( !information )                                               
   47c40:	4a8b           	tstl %a3                                    
   47c42:	6722           	beqs 47c66 <rtems_iterate_over_all_threads+0x46>
   47c44:	7401           	moveq #1,%d2                                
   47c46:	6014           	bras 47c5c <rtems_iterate_over_all_threads+0x3c>
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
      the_thread = (Thread_Control *)information->local_table[ i ];   
   47c48:	206b 0018      	moveal %a3@(24),%a0                         
   47c4c:	2030 2c00      	movel %a0@(00000000,%d2:l:4),%d0            
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
   47c50:	5282           	addql #1,%d2                                
      the_thread = (Thread_Control *)information->local_table[ i ];   
                                                                      
      if ( !the_thread )                                              
   47c52:	4a80           	tstl %d0                                    
   47c54:	6706           	beqs 47c5c <rtems_iterate_over_all_threads+0x3c><== NEVER TAKEN
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
   47c56:	2f00           	movel %d0,%sp@-                             
   47c58:	4e94           	jsr %a4@                                    
   47c5a:	588f           	addql #4,%sp                                
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
   47c5c:	4280           	clrl %d0                                    
   47c5e:	302b 000e      	movew %a3@(14),%d0                          
   47c62:	b082           	cmpl %d2,%d0                                
   47c64:	64e2           	bccs 47c48 <rtems_iterate_over_all_threads+0x28>
   47c66:	588a           	addql #4,%a2                                
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
   47c68:	b5fc 0006 0108 	cmpal #393480,%a2                           
   47c6e:	66c6           	bnes 47c36 <rtems_iterate_over_all_threads+0x16>
                                                                      
      (*routine)(the_thread);                                         
    }                                                                 
  }                                                                   
                                                                      
}                                                                     
   47c70:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   47c76:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004fc20 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
   4fc20:	4e56 fffc      	linkw %fp,#-4                               
   4fc24:	2f0a           	movel %a2,%sp@-                             
   4fc26:	2f02           	movel %d2,%sp@-                             
RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get (              
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
   4fc28:	486e fffc      	pea %fp@(-4)                                
   4fc2c:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4fc30:	4879 0007 610c 	pea 7610c <_Partition_Information>          
   4fc36:	242e 000c      	movel %fp@(12),%d2                          
   4fc3a:	4eb9 0005 3f24 	jsr 53f24 <_Objects_Get>                    
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
   4fc40:	4fef 000c      	lea %sp@(12),%sp                            
   4fc44:	2440           	moveal %d0,%a2                              
   4fc46:	4aae fffc      	tstl %fp@(-4)                               
   4fc4a:	6704           	beqs 4fc50 <rtems_partition_return_buffer+0x30>
   4fc4c:	7004           	moveq #4,%d0                                
   4fc4e:	603c           	bras 4fc8c <rtems_partition_return_buffer+0x6c>
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
   4fc50:	202a 0010      	movel %a2@(16),%d0                          
  ending   = _Addresses_Add_offset( starting, the_partition->length );
   4fc54:	222a 0014      	movel %a2@(20),%d1                          
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   4fc58:	b082           	cmpl %d2,%d0                                
   4fc5a:	623c           	bhis 4fc98 <rtems_partition_return_buffer+0x78>
   4fc5c:	d280           	addl %d0,%d1                                
   4fc5e:	b282           	cmpl %d2,%d1                                
   4fc60:	6536           	bcss 4fc98 <rtems_partition_return_buffer+0x78><== NEVER TAKEN
                                                                      
  return (                                                            
   4fc62:	2202           	movel %d2,%d1                               
   4fc64:	9280           	subl %d0,%d1                                
   4fc66:	2001           	movel %d1,%d0                               
   4fc68:	4c6a 0001 0018 	remul %a2@(24),%d1,%d0                      
   4fc6e:	4a81           	tstl %d1                                    
   4fc70:	6626           	bnes 4fc98 <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 );                
   4fc72:	2f02           	movel %d2,%sp@-                             
   4fc74:	486a 0024      	pea %a2@(36)                                
   4fc78:	4eb9 0005 2810 	jsr 52810 <_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;                    
   4fc7e:	53aa 0020      	subql #1,%a2@(32)                           
        _Thread_Enable_dispatch();                                    
   4fc82:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   4fc88:	508f           	addql #8,%sp                                
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
   4fc8a:	4280           	clrl %d0                                    
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   4fc8c:	242e fff4      	movel %fp@(-12),%d2                         
   4fc90:	246e fff8      	moveal %fp@(-8),%a2                         
   4fc94:	4e5e           	unlk %fp                                    
   4fc96:	4e75           	rts                                         
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
   4fc98:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
   4fc9e:	7009           	moveq #9,%d0                                
      return RTEMS_INVALID_ADDRESS;                                   
   4fca0:	60ea           	bras 4fc8c <rtems_partition_return_buffer+0x6c>
	...                                                                  
                                                                      

000464c0 <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
   464c0:	4e56 ffec      	linkw %fp,#-20                              
   464c4:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get (    
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
   464c8:	486e fffc      	pea %fp@(-4)                                
   464cc:	262e 0008      	movel %fp@(8),%d3                           
   464d0:	2f03           	movel %d3,%sp@-                             
   464d2:	4879 0005 f748 	pea 5f748 <_Rate_monotonic_Information>     
   464d8:	242e 000c      	movel %fp@(12),%d2                          
   464dc:	4eb9 0004 83ac 	jsr 483ac <_Objects_Get>                    
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
   464e2:	4fef 000c      	lea %sp@(12),%sp                            
   464e6:	2440           	moveal %d0,%a2                              
   464e8:	4aae fffc      	tstl %fp@(-4)                               
   464ec:	6600 0138      	bnew 46626 <rtems_rate_monotonic_period+0x166>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
   464f0:	2039 0005 f8fe 	movel 5f8fe <_Thread_Executing>,%d0         
   464f6:	b0aa 0040      	cmpl %a2@(64),%d0                           
   464fa:	670c           	beqs 46508 <rtems_rate_monotonic_period+0x48>
        _Thread_Enable_dispatch();                                    
   464fc:	4eb9 0004 8bfa 	jsr 48bfa <_Thread_Enable_dispatch>         
   46502:	7817           	moveq #23,%d4                               
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
   46504:	6000 0122      	braw 46628 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
   46508:	4a82           	tstl %d2                                    
   4650a:	6622           	bnes 4652e <rtems_rate_monotonic_period+0x6e>
        switch ( the_period->state ) {                                
   4650c:	202a 0038      	movel %a2@(56),%d0                          
   46510:	7204           	moveq #4,%d1                                
   46512:	b280           	cmpl %d0,%d1                                
   46514:	6404           	bccs 4651a <rtems_rate_monotonic_period+0x5a><== ALWAYS TAKEN
   46516:	4284           	clrl %d4                                    <== NOT EXECUTED
   46518:	600a           	bras 46524 <rtems_rate_monotonic_period+0x64><== NOT EXECUTED
   4651a:	41f9 0005 cd42 	lea 5cd42 <CSWTCH.43>,%a0                   
   46520:	2830 0c00      	movel %a0@(00000000,%d0:l:4),%d4            
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
   46524:	4eb9 0004 8bfa 	jsr 48bfa <_Thread_Enable_dispatch>         
        return( return_value );                                       
   4652a:	6000 00fc      	braw 46628 <rtems_rate_monotonic_period+0x168>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
   4652e:	203c 0000 0700 	movel #1792,%d0                             
   46534:	40c4           	movew %sr,%d4                               
   46536:	8084           	orl %d4,%d0                                 
   46538:	46c0           	movew %d0,%sr                               
      switch ( the_period->state ) {                                  
   4653a:	202a 0038      	movel %a2@(56),%d0                          
   4653e:	7202           	moveq #2,%d1                                
   46540:	b280           	cmpl %d0,%d1                                
   46542:	6740           	beqs 46584 <rtems_rate_monotonic_period+0xc4>
   46544:	123c 0004      	moveb #4,%d1                                
   46548:	b280           	cmpl %d0,%d1                                
   4654a:	6700 00a4      	beqw 465f0 <rtems_rate_monotonic_period+0x130>
   4654e:	4a80           	tstl %d0                                    
   46550:	6600 00d4      	bnew 46626 <rtems_rate_monotonic_period+0x166>
        case RATE_MONOTONIC_INACTIVE: {                               
                                                                      
          _ISR_Enable( level );                                       
   46554:	46c4           	movew %d4,%sr                               
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   46556:	2f0a           	movel %a2,%sp@-                             
          );                                                          
                                                                      
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   46558:	4284           	clrl %d4                                    
          _ISR_Enable( level );                                       
                                                                      
          /*                                                          
           *  Baseline statistics information for the beginning of a period.
           */                                                         
          _Rate_monotonic_Initiate_statistics( the_period );          
   4655a:	4eb9 0004 62ac 	jsr 462ac <_Rate_monotonic_Initiate_statistics>
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   46560:	203c 0004 686c 	movel #288876,%d0                           
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   46566:	7202           	moveq #2,%d1                                
   46568:	2540 002c      	movel %d0,%a2@(44)                          
  the_watchdog->id        = id;                                       
   4656c:	2543 0030      	movel %d3,%a2@(48)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   46570:	2542 001c      	movel %d2,%a2@(28)                          
   46574:	2541 0038      	movel %d1,%a2@(56)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   46578:	42aa 0018      	clrl %a2@(24)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   4657c:	42aa 0034      	clrl %a2@(52)                               
   46580:	6000 0084      	braw 46606 <rtems_rate_monotonic_period+0x146>
        case RATE_MONOTONIC_ACTIVE:                                   
                                                                      
          /*                                                          
           *  Update statistics from the concluding period.           
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   46584:	2f0a           	movel %a2,%sp@-                             
   46586:	4eb9 0004 63cc 	jsr 463cc <_Rate_monotonic_Update_statistics>
           *  This tells the _Rate_monotonic_Timeout that this task is
           *  in the process of blocking on the period and that we    
           *  may be changing the length of the next period.          
           */                                                         
          the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;       
          the_period->next_length = length;                           
   4658c:	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;       
   46590:	7401           	moveq #1,%d2                                
   46592:	2542 0038      	movel %d2,%a2@(56)                          
          the_period->next_length = length;                           
                                                                      
          _ISR_Enable( level );                                       
   46596:	46c4           	movew %d4,%sr                               
                                                                      
          _Thread_Executing->Wait.id = the_period->Object.id;         
   46598:	2079 0005 f8fe 	moveal 5f8fe <_Thread_Executing>,%a0        
   4659e:	216a 0008 0020 	movel %a2@(8),%a0@(32)                      
          _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   465a4:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   465a8:	2f08           	movel %a0,%sp@-                             
   465aa:	4eb9 0004 9430 	jsr 49430 <_Thread_Set_state>               
                                                                      
          /*                                                          
           *  Did the watchdog timer expire while we were actually blocking
           *  on it?                                                  
           */                                                         
          _ISR_Disable( level );                                      
   465b0:	203c 0000 0700 	movel #1792,%d0                             
   465b6:	40c1           	movew %sr,%d1                               
   465b8:	8081           	orl %d1,%d0                                 
   465ba:	46c0           	movew %d0,%sr                               
            local_state = the_period->state;                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   465bc:	143c 0002      	moveb #2,%d2                                
          /*                                                          
           *  Did the watchdog timer expire while we were actually blocking
           *  on it?                                                  
           */                                                         
          _ISR_Disable( level );                                      
            local_state = the_period->state;                          
   465c0:	202a 0038      	movel %a2@(56),%d0                          
            the_period->state = RATE_MONOTONIC_ACTIVE;                
   465c4:	2542 0038      	movel %d2,%a2@(56)                          
          _ISR_Enable( level );                                       
   465c8:	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 ) 
   465ca:	7203           	moveq #3,%d1                                
   465cc:	4fef 000c      	lea %sp@(12),%sp                            
   465d0:	b280           	cmpl %d0,%d1                                
   465d2:	6612           	bnes 465e6 <rtems_rate_monotonic_period+0x126>
            _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   465d4:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   465d8:	2f39 0005 f8fe 	movel 5f8fe <_Thread_Executing>,%sp@-       
   465de:	4eb9 0004 8840 	jsr 48840 <_Thread_Clear_state>             
   465e4:	508f           	addql #8,%sp                                
                                                                      
          _Thread_Enable_dispatch();                                  
   465e6:	4eb9 0004 8bfa 	jsr 48bfa <_Thread_Enable_dispatch>         
   465ec:	4284           	clrl %d4                                    
          return RTEMS_SUCCESSFUL;                                    
   465ee:	6038           	bras 46628 <rtems_rate_monotonic_period+0x168>
        case RATE_MONOTONIC_EXPIRED:                                  
                                                                      
          /*                                                          
           *  Update statistics from the concluding period            
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
   465f0:	2f0a           	movel %a2,%sp@-                             
   465f2:	4eb9 0004 63cc 	jsr 463cc <_Rate_monotonic_Update_statistics>
                                                                      
          _ISR_Enable( level );                                       
   465f8:	46c4           	movew %d4,%sr                               
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   465fa:	7002           	moveq #2,%d0                                
          the_period->next_length = length;                           
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   465fc:	7806           	moveq #6,%d4                                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   465fe:	2542 001c      	movel %d2,%a2@(28)                          
           */                                                         
          _Rate_monotonic_Update_statistics( the_period );            
                                                                      
          _ISR_Enable( level );                                       
                                                                      
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   46602:	2540 0038      	movel %d0,%a2@(56)                          
          the_period->next_length = length;                           
   46606:	2542 003c      	movel %d2,%a2@(60)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   4660a:	486a 0010      	pea %a2@(16)                                
   4660e:	4879 0005 f91c 	pea 5f91c <_Watchdog_Ticks_chain>           
   46614:	4eb9 0004 9c2c 	jsr 49c2c <_Watchdog_Insert>                
                                                                      
          _Watchdog_Insert_ticks( &the_period->Timer, length );       
          _Thread_Enable_dispatch();                                  
   4661a:	4eb9 0004 8bfa 	jsr 48bfa <_Thread_Enable_dispatch>         
          return RTEMS_TIMEOUT;                                       
   46620:	4fef 000c      	lea %sp@(12),%sp                            
   46624:	6002           	bras 46628 <rtems_rate_monotonic_period+0x168>
   46626:	7804           	moveq #4,%d4                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   46628:	2004           	movel %d4,%d0                               
   4662a:	4cee 041c ffec 	moveml %fp@(-20),%d2-%d4/%a2                
   46630:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00050818 <rtems_region_get_segment_size>: rtems_status_code rtems_region_get_segment_size( rtems_id id, void *segment, uintptr_t *size ) {
   50818:	4e56 fffc      	linkw %fp,#-4                               
   5081c:	2f03           	movel %d3,%sp@-                             
   5081e:	262e 0010      	movel %fp@(16),%d3                          
   50822:	2f02           	movel %d2,%sp@-                             
   50824:	242e 000c      	movel %fp@(12),%d2                          
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
   50828:	6766           	beqs 50890 <rtems_region_get_segment_size+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
   5082a:	4a83           	tstl %d3                                    
   5082c:	6762           	beqs 50890 <rtems_region_get_segment_size+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
   5082e:	2f39 0007 632a 	movel 7632a <_RTEMS_Allocator_Mutex>,%sp@-  
   50834:	4eb9 0005 277c 	jsr 5277c <_API_Mutex_Lock>                 
   5083a:	486e fffc      	pea %fp@(-4)                                
   5083e:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50842:	4879 0007 617c 	pea 7617c <_Region_Information>             
   50848:	4eb9 0005 3eec 	jsr 53eec <_Objects_Get_no_protection>      
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
   5084e:	222e fffc      	movel %fp@(-4),%d1                          
   50852:	4fef 0010      	lea %sp@(16),%sp                            
   50856:	670a           	beqs 50862 <rtems_region_get_segment_size+0x4a>
   50858:	7001           	moveq #1,%d0                                
   5085a:	b081           	cmpl %d1,%d0                                
   5085c:	6620           	bnes 5087e <rtems_region_get_segment_size+0x66><== NEVER TAKEN
   5085e:	7404           	moveq #4,%d2                                
   50860:	601e           	bras 50880 <rtems_region_get_segment_size+0x68>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
   50862:	2f03           	movel %d3,%sp@-                             
   50864:	2040           	moveal %d0,%a0                              
   50866:	2f02           	movel %d2,%sp@-                             
   50868:	4868 0068      	pea %a0@(104)                               
   5086c:	4eb9 0005 396c 	jsr 5396c <_Heap_Size_of_alloc_area>        
   50872:	4fef 000c      	lea %sp@(12),%sp                            
   50876:	4a00           	tstb %d0                                    
   50878:	6604           	bnes 5087e <rtems_region_get_segment_size+0x66>
   5087a:	7409           	moveq #9,%d2                                <== NOT EXECUTED
   5087c:	6002           	bras 50880 <rtems_region_get_segment_size+0x68><== NOT EXECUTED
   5087e:	4282           	clrl %d2                                    
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
   50880:	2f39 0007 632a 	movel 7632a <_RTEMS_Allocator_Mutex>,%sp@-  
   50886:	4eb9 0005 27dc 	jsr 527dc <_API_Mutex_Unlock>               
  return return_status;                                               
   5088c:	588f           	addql #4,%sp                                
   5088e:	6002           	bras 50892 <rtems_region_get_segment_size+0x7a>
   50890:	7409           	moveq #9,%d2                                
}                                                                     
   50892:	2002           	movel %d2,%d0                               
   50894:	242e fff4      	movel %fp@(-12),%d2                         
   50898:	262e fff8      	movel %fp@(-8),%d3                          
   5089c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00050eb0 <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
   50eb0:	4e56 fffc      	linkw %fp,#-4                               
   50eb4:	2f03           	movel %d3,%sp@-                             
   50eb6:	2f02           	movel %d2,%sp@-                             
   50eb8:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
   50ebc:	6606           	bnes 50ec4 <rtems_signal_send+0x14>         
   50ebe:	700a           	moveq #10,%d0                               
   50ec0:	6000 0084      	braw 50f46 <rtems_signal_send+0x96>         
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   50ec4:	486e fffc      	pea %fp@(-4)                                
   50ec8:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50ecc:	4eb9 0005 484c 	jsr 5484c <_Thread_Get>                     
  switch ( location ) {                                               
   50ed2:	508f           	addql #8,%sp                                
   50ed4:	4aae fffc      	tstl %fp@(-4)                               
   50ed8:	6704           	beqs 50ede <rtems_signal_send+0x2e>         
   50eda:	7004           	moveq #4,%d0                                
   50edc:	6068           	bras 50f46 <rtems_signal_send+0x96>         
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
   50ede:	2240           	moveal %d0,%a1                              
   50ee0:	2069 0108      	moveal %a1@(264),%a0                        
      asr = &api->Signal;                                             
   50ee4:	4aa8 000a      	tstl %a0@(10)                               
   50ee8:	6754           	beqs 50f3e <rtems_signal_send+0x8e>         
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
        if ( asr->is_enabled ) {                                      
   50eea:	4a28 0008      	tstb %a0@(8)                                
   50eee:	6732           	beqs 50f22 <rtems_signal_send+0x72>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   50ef0:	223c 0000 0700 	movel #1792,%d1                             
   50ef6:	40c3           	movew %sr,%d3                               
   50ef8:	8283           	orl %d3,%d1                                 
   50efa:	46c1           	movew %d1,%sr                               
    *signal_set |= signals;                                           
   50efc:	85a8 0012      	orl %d2,%a0@(18)                            
  _ISR_Enable( _level );                                              
   50f00:	46c3           	movew %d3,%sr                               
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          the_thread->do_post_task_switch_extension = true;           
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   50f02:	2239 0007 6312 	movel 76312 <_ISR_Nest_level>,%d1           
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
        if ( asr->is_enabled ) {                                      
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          the_thread->do_post_task_switch_extension = true;           
   50f08:	7401           	moveq #1,%d2                                
   50f0a:	1342 0074      	moveb %d2,%a1@(116)                         
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   50f0e:	4a81           	tstl %d1                                    
   50f10:	6722           	beqs 50f34 <rtems_signal_send+0x84>         
   50f12:	b0b9 0007 6332 	cmpl 76332 <_Thread_Executing>,%d0          
   50f18:	661a           	bnes 50f34 <rtems_signal_send+0x84>         <== NEVER TAKEN
            _ISR_Signals_to_thread_executing = true;                  
   50f1a:	13c2 0007 63bc 	moveb %d2,763bc <_ISR_Signals_to_thread_executing>
   50f20:	6012           	bras 50f34 <rtems_signal_send+0x84>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   50f22:	203c 0000 0700 	movel #1792,%d0                             
   50f28:	40c1           	movew %sr,%d1                               
   50f2a:	8081           	orl %d1,%d0                                 
   50f2c:	46c0           	movew %d0,%sr                               
    *signal_set |= signals;                                           
   50f2e:	85a8 0016      	orl %d2,%a0@(22)                            
  _ISR_Enable( _level );                                              
   50f32:	46c1           	movew %d1,%sr                               
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
   50f34:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
   50f3a:	4280           	clrl %d0                                    
        return RTEMS_SUCCESSFUL;                                      
   50f3c:	6008           	bras 50f46 <rtems_signal_send+0x96>         
      }                                                               
      _Thread_Enable_dispatch();                                      
   50f3e:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
   50f44:	700b           	moveq #11,%d0                               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   50f46:	242e fff4      	movel %fp@(-12),%d2                         
   50f4a:	262e fff8      	movel %fp@(-8),%d3                          
   50f4e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004cc14 <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
   4cc14:	4e56 ffe4      	linkw %fp,#-28                              
   4cc18:	48d7 1c3c      	moveml %d2-%d5/%a2-%a4,%sp@                 
   4cc1c:	262e 0008      	movel %fp@(8),%d3                           
   4cc20:	282e 000c      	movel %fp@(12),%d4                          
   4cc24:	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 )                                           
   4cc28:	4a8c           	tstl %a4                                    
   4cc2a:	6606           	bnes 4cc32 <rtems_task_mode+0x1e>           
   4cc2c:	7009           	moveq #9,%d0                                
   4cc2e:	6000 00fc      	braw 4cd2c <rtems_task_mode+0x118>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
   4cc32:	2479 0005 dcd6 	moveal 5dcd6 <_Thread_Executing>,%a2        
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4cc38:	4a2a 0075      	tstb %a2@(117)                              
   4cc3c:	57c0           	seq %d0                                     
   4cc3e:	243c 0000 0100 	movel #256,%d2                              
   4cc44:	49c0           	extbl %d0                                   
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   4cc46:	266a 0108      	moveal %a2@(264),%a3                        
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4cc4a:	c480           	andl %d0,%d2                                
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
   4cc4c:	4aaa 007a      	tstl %a2@(122)                              
   4cc50:	6704           	beqs 4cc56 <rtems_task_mode+0x42>           
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
   4cc52:	08c2 0009      	bset #9,%d2                                 
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
   4cc56:	4a2b 0008      	tstb %a3@(8)                                
   4cc5a:	57c0           	seq %d0                                     
   4cc5c:	2a3c 0000 0400 	movel #1024,%d5                             
   4cc62:	49c0           	extbl %d0                                   
   4cc64:	ca80           	andl %d0,%d5                                
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
  old_mode |= _ISR_Get_level();                                       
   4cc66:	4eb9 0004 88f0 	jsr 488f0 <_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;           
   4cc6c:	8085           	orl %d5,%d0                                 
  old_mode |= _ISR_Get_level();                                       
                                                                      
  *previous_mode_set = old_mode;                                      
   4cc6e:	8082           	orl %d2,%d0                                 
   4cc70:	2880           	movel %d0,%a4@                              
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
                                                                      
  if ( mask & RTEMS_PREEMPT_MASK )                                    
   4cc72:	0804 0008      	btst #8,%d4                                 
   4cc76:	670e           	beqs 4cc86 <rtems_task_mode+0x72>           
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
   4cc78:	2003           	movel %d3,%d0                               
   4cc7a:	7201           	moveq #1,%d1                                
   4cc7c:	e088           	lsrl #8,%d0                                 
   4cc7e:	b380           	eorl %d1,%d0                                
   4cc80:	c081           	andl %d1,%d0                                
   4cc82:	1540 0075      	moveb %d0,%a2@(117)                         
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
   4cc86:	0804 0009      	btst #9,%d4                                 
   4cc8a:	671c           	beqs 4cca8 <rtems_task_mode+0x94>           
    if ( _Modes_Is_timeslice(mode_set) ) {                            
   4cc8c:	0803 0009      	btst #9,%d3                                 
   4cc90:	6712           	beqs 4cca4 <rtems_task_mode+0x90>           
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4cc92:	41f9 0005 dbcc 	lea 5dbcc <_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;
   4cc98:	7001           	moveq #1,%d0                                
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4cc9a:	2550 0076      	movel %a0@,%a2@(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;
   4cc9e:	2540 007a      	movel %d0,%a2@(122)                         
   4cca2:	6004           	bras 4cca8 <rtems_task_mode+0x94>           
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
    } else                                                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 
   4cca4:	42aa 007a      	clrl %a2@(122)                              
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
                                                                      
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
   4cca8:	7007           	moveq #7,%d0                                
   4ccaa:	c084           	andl %d4,%d0                                
   4ccac:	6712           	beqs 4ccc0 <rtems_task_mode+0xac>           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
   4ccae:	40c0           	movew %sr,%d0                               
   4ccb0:	7207           	moveq #7,%d1                                
   4ccb2:	c283           	andl %d3,%d1                                
   4ccb4:	0280 0000 f8ff 	andil #63743,%d0                            
   4ccba:	e189           	lsll #8,%d1                                 
   4ccbc:	8081           	orl %d1,%d0                                 
   4ccbe:	46c0           	movew %d0,%sr                               
   */                                                                 
                                                                      
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
   4ccc0:	0804 000a      	btst #10,%d4                                
   4ccc4:	6744           	beqs 4cd0a <rtems_task_mode+0xf6>           
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
   4ccc6:	700a           	moveq #10,%d0                               
   4ccc8:	e0ab           	lsrl %d0,%d3                                
   4ccca:	7201           	moveq #1,%d1                                
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
   4cccc:	4280           	clrl %d0                                    
   4ccce:	102b 0008      	moveb %a3@(8),%d0                           
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
   4ccd2:	b383           	eorl %d1,%d3                                
   4ccd4:	c681           	andl %d1,%d3                                
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
   4ccd6:	b083           	cmpl %d3,%d0                                
   4ccd8:	6730           	beqs 4cd0a <rtems_task_mode+0xf6>           
)                                                                     
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
   4ccda:	203c 0000 0700 	movel #1792,%d0                             
  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 ) {                        
      asr->is_enabled = is_asr_enabled;                               
   4cce0:	1743 0008      	moveb %d3,%a3@(8)                           
   4cce4:	40c1           	movew %sr,%d1                               
   4cce6:	8081           	orl %d1,%d0                                 
   4cce8:	46c0           	movew %d0,%sr                               
    _signals                     = information->signals_pending;      
   4ccea:	202b 0016      	movel %a3@(22),%d0                          
    information->signals_pending = information->signals_posted;       
   4ccee:	276b 0012 0016 	movel %a3@(18),%a3@(22)                     
    information->signals_posted  = _signals;                          
   4ccf4:	2740 0012      	movel %d0,%a3@(18)                          
  _ISR_Enable( _level );                                              
   4ccf8:	46c1           	movew %d1,%sr                               
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
   4ccfa:	4aab 0012      	tstl %a3@(18)                               
   4ccfe:	670a           	beqs 4cd0a <rtems_task_mode+0xf6>           
    if ( is_asr_enabled != asr->is_enabled ) {                        
      asr->is_enabled = is_asr_enabled;                               
      _ASR_Swap_signals( asr );                                       
      if ( _ASR_Are_signals_pending( asr ) ) {                        
        needs_asr_dispatching = true;                                 
        executing->do_post_task_switch_extension = true;              
   4cd00:	7001           	moveq #1,%d0                                
   4cd02:	7401           	moveq #1,%d2                                
   4cd04:	1540 0074      	moveb %d0,%a2@(116)                         
   4cd08:	6002           	bras 4cd0c <rtems_task_mode+0xf8>           
   4cd0a:	4202           	clrb %d2                                    
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) )                   
   4cd0c:	7203           	moveq #3,%d1                                
   4cd0e:	b2b9 0005 dd9e 	cmpl 5dd9e <_System_state_Current>,%d1      
   4cd14:	6614           	bnes 4cd2a <rtems_task_mode+0x116>          <== NEVER TAKEN
    if ( _Thread_Evaluate_mode() || needs_asr_dispatching )           
   4cd16:	4eb9 0004 cef0 	jsr 4cef0 <_Thread_Evaluate_mode>           
   4cd1c:	4a00           	tstb %d0                                    
   4cd1e:	6604           	bnes 4cd24 <rtems_task_mode+0x110>          
   4cd20:	4a02           	tstb %d2                                    
   4cd22:	6706           	beqs 4cd2a <rtems_task_mode+0x116>          
      _Thread_Dispatch();                                             
   4cd24:	4eb9 0004 74e0 	jsr 474e0 <_Thread_Dispatch>                
   4cd2a:	4280           	clrl %d0                                    
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4cd2c:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            
   4cd32:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004955c <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
   4955c:	4e56 fffc      	linkw %fp,#-4                               
   49560:	2f0a           	movel %a2,%sp@-                             
   49562:	246e 0010      	moveal %fp@(16),%a2                         
   49566:	2f02           	movel %d2,%sp@-                             
   49568:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations               location;                           
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
   4956c:	6710           	beqs 4957e <rtems_task_set_priority+0x22>   
   4956e:	4280           	clrl %d0                                    
   49570:	1039 0005 fd62 	moveb 5fd62 <rtems_maximum_priority>,%d0    
   49576:	b082           	cmpl %d2,%d0                                
   49578:	6404           	bccs 4957e <rtems_task_set_priority+0x22>   
   4957a:	7013           	moveq #19,%d0                               
   4957c:	6054           	bras 495d2 <rtems_task_set_priority+0x76>   
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
   4957e:	4a8a           	tstl %a2                                    
   49580:	6604           	bnes 49586 <rtems_task_set_priority+0x2a>   
   49582:	7009           	moveq #9,%d0                                
   49584:	604c           	bras 495d2 <rtems_task_set_priority+0x76>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   49586:	486e fffc      	pea %fp@(-4)                                
   4958a:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4958e:	4eb9 0004 b1e8 	jsr 4b1e8 <_Thread_Get>                     
  switch ( location ) {                                               
   49594:	508f           	addql #8,%sp                                
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   49596:	2040           	moveal %d0,%a0                              
  switch ( location ) {                                               
   49598:	4aae fffc      	tstl %fp@(-4)                               
   4959c:	6704           	beqs 495a2 <rtems_task_set_priority+0x46>   
   4959e:	7004           	moveq #4,%d0                                
   495a0:	6030           	bras 495d2 <rtems_task_set_priority+0x76>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
   495a2:	24a8 0014      	movel %a0@(20),%a2@                         
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
   495a6:	4a82           	tstl %d2                                    
   495a8:	6720           	beqs 495ca <rtems_task_set_priority+0x6e>   
        the_thread->real_priority = new_priority;                     
   495aa:	2142 0018      	movel %d2,%a0@(24)                          
        if ( the_thread->resource_count == 0 ||                       
   495ae:	4aa8 001c      	tstl %a0@(28)                               
   495b2:	6706           	beqs 495ba <rtems_task_set_priority+0x5e>   
             the_thread->current_priority > new_priority )            
   495b4:	b4a8 0014      	cmpl %a0@(20),%d2                           
   495b8:	6410           	bccs 495ca <rtems_task_set_priority+0x6e>   <== ALWAYS TAKEN
          _Thread_Change_priority( the_thread, new_priority, false ); 
   495ba:	42a7           	clrl %sp@-                                  
   495bc:	2f02           	movel %d2,%sp@-                             
   495be:	2f08           	movel %a0,%sp@-                             
   495c0:	4eb9 0004 ac98 	jsr 4ac98 <_Thread_Change_priority>         
   495c6:	4fef 000c      	lea %sp@(12),%sp                            
      }                                                               
      _Thread_Enable_dispatch();                                      
   495ca:	4eb9 0004 b192 	jsr 4b192 <_Thread_Enable_dispatch>         
   495d0:	4280           	clrl %d0                                    
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   495d2:	242e fff4      	movel %fp@(-12),%d2                         
   495d6:	246e fff8      	moveal %fp@(-8),%a2                         
   495da:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00051738 <rtems_timer_cancel>: */ rtems_status_code rtems_timer_cancel( rtems_id id ) {
   51738:	4e56 fffc      	linkw %fp,#-4                               
RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get (                      
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
   5173c:	486e fffc      	pea %fp@(-4)                                
   51740:	2f2e 0008      	movel %fp@(8),%sp@-                         
   51744:	4879 0007 64c6 	pea 764c6 <_Timer_Information>              
   5174a:	4eb9 0005 3f24 	jsr 53f24 <_Objects_Get>                    
  Timer_Control   *the_timer;                                         
  Objects_Locations       location;                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51750:	4fef 000c      	lea %sp@(12),%sp                            
   51754:	4aae fffc      	tstl %fp@(-4)                               
   51758:	6704           	beqs 5175e <rtems_timer_cancel+0x26>        
   5175a:	7004           	moveq #4,%d0                                
   5175c:	601e           	bras 5177c <rtems_timer_cancel+0x44>        
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Timer_Is_dormant_class( the_timer->the_class ) )         
   5175e:	7204           	moveq #4,%d1                                
   51760:	2040           	moveal %d0,%a0                              
   51762:	b2a8 0038      	cmpl %a0@(56),%d1                           
   51766:	670c           	beqs 51774 <rtems_timer_cancel+0x3c>        <== NEVER TAKEN
        (void) _Watchdog_Remove( &the_timer->Ticker );                
   51768:	4868 0010      	pea %a0@(16)                                
   5176c:	4eb9 0005 5b30 	jsr 55b30 <_Watchdog_Remove>                
   51772:	588f           	addql #4,%sp                                
      _Thread_Enable_dispatch();                                      
   51774:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
   5177a:	4280           	clrl %d0                                    
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   5177c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00051bbc <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
   51bbc:	4e56 ffe8      	linkw %fp,#-24                              
   51bc0:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   51bc4:	282e 0008      	movel %fp@(8),%d4                           
   51bc8:	262e 000c      	movel %fp@(12),%d3                          
   51bcc:	242e 0010      	movel %fp@(16),%d2                          
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
   51bd0:	2679 0007 64fe 	moveal 764fe <_Timer_server>,%a3            
                                                                      
  if ( !timer_server )                                                
   51bd6:	4a8b           	tstl %a3                                    
   51bd8:	6606           	bnes 51be0 <rtems_timer_server_fire_when+0x24>
   51bda:	700e           	moveq #14,%d0                               
   51bdc:	6000 00a4      	braw 51c82 <rtems_timer_server_fire_when+0xc6>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   51be0:	4a39 0007 628c 	tstb 7628c <_TOD_Is_set>                    
   51be6:	6606           	bnes 51bee <rtems_timer_server_fire_when+0x32><== ALWAYS TAKEN
   51be8:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   51bea:	6000 0096      	braw 51c82 <rtems_timer_server_fire_when+0xc6><== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
   51bee:	4a82           	tstl %d2                                    
   51bf0:	6606           	bnes 51bf8 <rtems_timer_server_fire_when+0x3c>
   51bf2:	7009           	moveq #9,%d0                                
   51bf4:	6000 008c      	braw 51c82 <rtems_timer_server_fire_when+0xc6>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
   51bf8:	2f03           	movel %d3,%sp@-                             
   51bfa:	4eb9 0004 f038 	jsr 4f038 <_TOD_Validate>                   
   51c00:	588f           	addql #4,%sp                                
   51c02:	4a00           	tstb %d0                                    
   51c04:	677a           	beqs 51c80 <rtems_timer_server_fire_when+0xc4>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   51c06:	2f03           	movel %d3,%sp@-                             
   51c08:	4eb9 0004 ef98 	jsr 4ef98 <_TOD_To_seconds>                 
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   51c0e:	588f           	addql #4,%sp                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   51c10:	2600           	movel %d0,%d3                               
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   51c12:	b0b9 0007 630a 	cmpl 7630a <_TOD_Now>,%d0                   
   51c18:	6366           	blss 51c80 <rtems_timer_server_fire_when+0xc4>
   51c1a:	486e fffc      	pea %fp@(-4)                                
   51c1e:	2f04           	movel %d4,%sp@-                             
   51c20:	4879 0007 64c6 	pea 764c6 <_Timer_Information>              
   51c26:	4eb9 0005 3f24 	jsr 53f24 <_Objects_Get>                    
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51c2c:	4fef 000c      	lea %sp@(12),%sp                            
   51c30:	2440           	moveal %d0,%a2                              
   51c32:	4aae fffc      	tstl %fp@(-4)                               
   51c36:	6704           	beqs 51c3c <rtems_timer_server_fire_when+0x80>
   51c38:	7004           	moveq #4,%d0                                
   51c3a:	6046           	bras 51c82 <rtems_timer_server_fire_when+0xc6>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   51c3c:	486a 0010      	pea %a2@(16)                                
   51c40:	4eb9 0005 5b30 	jsr 55b30 <_Watchdog_Remove>                
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   51c46:	256e 0014 0034 	movel %fp@(20),%a2@(52)                     
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
   51c4c:	7003           	moveq #3,%d0                                
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   51c4e:	2544 0030      	movel %d4,%a2@(48)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   51c52:	96b9 0007 630a 	subl 7630a <_TOD_Now>,%d3                   
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
   51c58:	2540 0038      	movel %d0,%a2@(56)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   51c5c:	2543 001c      	movel %d3,%a2@(28)                          
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   51c60:	2542 002c      	movel %d2,%a2@(44)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   51c64:	42aa 0018      	clrl %a2@(24)                               
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
   51c68:	2f0a           	movel %a2,%sp@-                             
   51c6a:	2f0b           	movel %a3,%sp@-                             
   51c6c:	206b 0004      	moveal %a3@(4),%a0                          
   51c70:	4e90           	jsr %a0@                                    
                                                                      
      _Thread_Enable_dispatch();                                      
   51c72:	4eb9 0005 47f6 	jsr 547f6 <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   51c78:	4fef 000c      	lea %sp@(12),%sp                            
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
                                                                      
      _Thread_Enable_dispatch();                                      
   51c7c:	4280           	clrl %d0                                    
      return RTEMS_SUCCESSFUL;                                        
   51c7e:	6002           	bras 51c82 <rtems_timer_server_fire_when+0xc6>
   51c80:	7014           	moveq #20,%d0                               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   51c82:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            
   51c88:	4e5e           	unlk %fp                                    <== NOT EXECUTED