RTEMS 4.11
Annotated Report
Wed Mar 9 17:49:25 2011

0010bee4 <_API_extensions_Run_postdriver>: * * _API_extensions_Run_postdriver */ void _API_extensions_Run_postdriver( void ) {
  10bee4:	55                   	push   %ebp                           
  10bee5:	89 e5                	mov    %esp,%ebp                      
  10bee7:	53                   	push   %ebx                           
  10bee8:	83 ec 04             	sub    $0x4,%esp                      
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10beeb:	8b 1d 78 80 12 00    	mov    0x128078,%ebx                  
void _API_extensions_Run_postdriver( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10bef1:	81 fb 7c 80 12 00    	cmp    $0x12807c,%ebx                 
  10bef7:	74 10                	je     10bf09 <_API_extensions_Run_postdriver+0x25><== NEVER TAKEN
  10bef9:	8d 76 00             	lea    0x0(%esi),%esi                 
     *  Currently all APIs configure this hook so it is always non-NULL.
     */                                                               
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)              
    if ( the_extension->postdriver_hook )                             
#endif                                                                
      (*the_extension->postdriver_hook)();                            
  10befc:	ff 53 08             	call   *0x8(%ebx)                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
        !_Chain_Is_tail( &_API_extensions_List, the_node ) ;          
        the_node = the_node->next ) {                                 
  10beff:	8b 1b                	mov    (%ebx),%ebx                    
void _API_extensions_Run_postdriver( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10bf01:	81 fb 7c 80 12 00    	cmp    $0x12807c,%ebx                 
  10bf07:	75 f3                	jne    10befc <_API_extensions_Run_postdriver+0x18>
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)              
    if ( the_extension->postdriver_hook )                             
#endif                                                                
      (*the_extension->postdriver_hook)();                            
  }                                                                   
}                                                                     
  10bf09:	58                   	pop    %eax                           
  10bf0a:	5b                   	pop    %ebx                           
  10bf0b:	c9                   	leave                                 
  10bf0c:	c3                   	ret                                   
                                                                      

0010bf10 <_API_extensions_Run_postswitch>: * * _API_extensions_Run_postswitch */ void _API_extensions_Run_postswitch( void ) {
  10bf10:	55                   	push   %ebp                           
  10bf11:	89 e5                	mov    %esp,%ebp                      
  10bf13:	53                   	push   %ebx                           
  10bf14:	83 ec 04             	sub    $0x4,%esp                      
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10bf17:	8b 1d 78 80 12 00    	mov    0x128078,%ebx                  
void _API_extensions_Run_postswitch( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10bf1d:	81 fb 7c 80 12 00    	cmp    $0x12807c,%ebx                 
  10bf23:	74 1c                	je     10bf41 <_API_extensions_Run_postswitch+0x31><== NEVER TAKEN
  10bf25:	8d 76 00             	lea    0x0(%esi),%esi                 
        !_Chain_Is_tail( &_API_extensions_List, the_node ) ;          
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  10bf28:	83 ec 0c             	sub    $0xc,%esp                      
  10bf2b:	ff 35 f8 83 12 00    	pushl  0x1283f8                       
  10bf31:	ff 53 0c             	call   *0xc(%ebx)                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
        !_Chain_Is_tail( &_API_extensions_List, the_node ) ;          
        the_node = the_node->next ) {                                 
  10bf34:	8b 1b                	mov    (%ebx),%ebx                    
void _API_extensions_Run_postswitch( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10bf36:	83 c4 10             	add    $0x10,%esp                     
  10bf39:	81 fb 7c 80 12 00    	cmp    $0x12807c,%ebx                 
  10bf3f:	75 e7                	jne    10bf28 <_API_extensions_Run_postswitch+0x18>
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10bf41:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bf44:	c9                   	leave                                 
  10bf45:	c3                   	ret                                   
                                                                      

0010e428 <_CORE_RWLock_Obtain_for_reading>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) {
  10e428:	55                   	push   %ebp                           
  10e429:	89 e5                	mov    %esp,%ebp                      
  10e42b:	57                   	push   %edi                           
  10e42c:	56                   	push   %esi                           
  10e42d:	53                   	push   %ebx                           
  10e42e:	83 ec 1c             	sub    $0x1c,%esp                     
  10e431:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10e434:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10e437:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10e43a:	8a 55 10             	mov    0x10(%ebp),%dl                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10e43d:	8b 35 78 bd 12 00    	mov    0x12bd78,%esi                  
   *  If unlocked, then OK to read.                                   
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
  10e443:	9c                   	pushf                                 
  10e444:	fa                   	cli                                   
  10e445:	8f 45 e4             	popl   -0x1c(%ebp)                    
    switch ( the_rwlock->current_state ) {                            
  10e448:	8b 43 44             	mov    0x44(%ebx),%eax                
  10e44b:	85 c0                	test   %eax,%eax                      
  10e44d:	75 1d                	jne    10e46c <_CORE_RWLock_Obtain_for_reading+0x44>
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
  10e44f:	c7 43 44 01 00 00 00 	movl   $0x1,0x44(%ebx)                
	the_rwlock->number_of_readers += 1;                                  
  10e456:	ff 43 48             	incl   0x48(%ebx)                     
	_ISR_Enable( level );                                                
  10e459:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e45c:	9d                   	popf                                  
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
  10e45d:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)                
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e464:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e467:	5b                   	pop    %ebx                           
  10e468:	5e                   	pop    %esi                           
  10e469:	5f                   	pop    %edi                           
  10e46a:	c9                   	leave                                 
  10e46b:	c3                   	ret                                   
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    switch ( the_rwlock->current_state ) {                            
  10e46c:	48                   	dec    %eax                           
  10e46d:	74 51                	je     10e4c0 <_CORE_RWLock_Obtain_for_reading+0x98>
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
  10e46f:	84 d2                	test   %dl,%dl                        
  10e471:	75 15                	jne    10e488 <_CORE_RWLock_Obtain_for_reading+0x60>
      _ISR_Enable( level );                                           
  10e473:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e476:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10e477:	c7 46 34 02 00 00 00 	movl   $0x2,0x34(%esi)                
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e47e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e481:	5b                   	pop    %ebx                           
  10e482:	5e                   	pop    %esi                           
  10e483:	5f                   	pop    %edi                           
  10e484:	c9                   	leave                                 
  10e485:	c3                   	ret                                   
  10e486:	66 90                	xchg   %ax,%ax                        
  10e488:	c7 43 30 01 00 00 00 	movl   $0x1,0x30(%ebx)                
    /*                                                                
     *  We need to wait to enter this critical section                
     */                                                               
                                                                      
    _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue );  
    executing->Wait.queue       = &the_rwlock->Wait_queue;            
  10e48f:	89 5e 44             	mov    %ebx,0x44(%esi)                
    executing->Wait.id          = id;                                 
  10e492:	89 7e 20             	mov    %edi,0x20(%esi)                
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
  10e495:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)                
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10e49c:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)                
    _ISR_Enable( level );                                             
  10e4a3:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e4a6:	9d                   	popf                                  
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10e4a7:	c7 45 10 2c e6 10 00 	movl   $0x10e62c,0x10(%ebp)           
  10e4ae:	89 4d 0c             	mov    %ecx,0xc(%ebp)                 
  10e4b1:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e4b4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e4b7:	5b                   	pop    %ebx                           
  10e4b8:	5e                   	pop    %esi                           
  10e4b9:	5f                   	pop    %edi                           
  10e4ba:	c9                   	leave                                 
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10e4bb:	e9 30 1c 00 00       	jmp    1100f0 <_Thread_queue_Enqueue_with_handler>
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
	return;                                                              
                                                                      
      case CORE_RWLOCK_LOCKED_FOR_READING: {                          
        Thread_Control *waiter;                                       
        waiter = _Thread_queue_First( &the_rwlock->Wait_queue );      
  10e4c0:	83 ec 0c             	sub    $0xc,%esp                      
  10e4c3:	53                   	push   %ebx                           
  10e4c4:	88 55 e0             	mov    %dl,-0x20(%ebp)                
  10e4c7:	89 4d dc             	mov    %ecx,-0x24(%ebp)               
  10e4ca:	e8 49 1f 00 00       	call   110418 <_Thread_queue_First>   
        if ( !waiter ) {                                              
  10e4cf:	83 c4 10             	add    $0x10,%esp                     
  10e4d2:	85 c0                	test   %eax,%eax                      
  10e4d4:	8a 55 e0             	mov    -0x20(%ebp),%dl                
  10e4d7:	8b 4d dc             	mov    -0x24(%ebp),%ecx               
  10e4da:	75 93                	jne    10e46f <_CORE_RWLock_Obtain_for_reading+0x47>
	  the_rwlock->number_of_readers += 1;                                
  10e4dc:	ff 43 48             	incl   0x48(%ebx)                     
	  _ISR_Enable( level );                                              
  10e4df:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e4e2:	9d                   	popf                                  
	  executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;              
  10e4e3:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)                
          return;                                                     
  10e4ea:	e9 75 ff ff ff       	jmp    10e464 <_CORE_RWLock_Obtain_for_reading+0x3c>
                                                                      

0010e4f0 <_CORE_RWLock_Obtain_for_writing>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) {
  10e4f0:	55                   	push   %ebp                           
  10e4f1:	89 e5                	mov    %esp,%ebp                      
  10e4f3:	57                   	push   %edi                           
  10e4f4:	56                   	push   %esi                           
  10e4f5:	53                   	push   %ebx                           
  10e4f6:	83 ec 0c             	sub    $0xc,%esp                      
  10e4f9:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e4fc:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10e4ff:	8b 75 14             	mov    0x14(%ebp),%esi                
  10e502:	8a 5d 10             	mov    0x10(%ebp),%bl                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10e505:	8b 15 78 bd 12 00    	mov    0x12bd78,%edx                  
   *  Otherwise, we have to block.                                    
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
  10e50b:	9c                   	pushf                                 
  10e50c:	fa                   	cli                                   
  10e50d:	59                   	pop    %ecx                           
    switch ( the_rwlock->current_state ) {                            
  10e50e:	83 78 44 00          	cmpl   $0x0,0x44(%eax)                
  10e512:	75 18                	jne    10e52c <_CORE_RWLock_Obtain_for_writing+0x3c>
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;          
  10e514:	c7 40 44 02 00 00 00 	movl   $0x2,0x44(%eax)                
	_ISR_Enable( level );                                                
  10e51b:	51                   	push   %ecx                           
  10e51c:	9d                   	popf                                  
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
  10e51d:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e524:	83 c4 0c             	add    $0xc,%esp                      
  10e527:	5b                   	pop    %ebx                           
  10e528:	5e                   	pop    %esi                           
  10e529:	5f                   	pop    %edi                           
  10e52a:	c9                   	leave                                 
  10e52b:	c3                   	ret                                   
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
  10e52c:	84 db                	test   %bl,%bl                        
  10e52e:	75 14                	jne    10e544 <_CORE_RWLock_Obtain_for_writing+0x54>
      _ISR_Enable( level );                                           
  10e530:	51                   	push   %ecx                           
  10e531:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10e532:	c7 42 34 02 00 00 00 	movl   $0x2,0x34(%edx)                
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e539:	83 c4 0c             	add    $0xc,%esp                      
  10e53c:	5b                   	pop    %ebx                           
  10e53d:	5e                   	pop    %esi                           
  10e53e:	5f                   	pop    %edi                           
  10e53f:	c9                   	leave                                 
  10e540:	c3                   	ret                                   
  10e541:	8d 76 00             	lea    0x0(%esi),%esi                 
  10e544:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)                
    /*                                                                
     *  We need to wait to enter this critical section                
     */                                                               
                                                                      
    _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue );  
    executing->Wait.queue       = &the_rwlock->Wait_queue;            
  10e54b:	89 42 44             	mov    %eax,0x44(%edx)                
    executing->Wait.id          = id;                                 
  10e54e:	89 7a 20             	mov    %edi,0x20(%edx)                
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE;
  10e551:	c7 42 30 01 00 00 00 	movl   $0x1,0x30(%edx)                
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10e558:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
    _ISR_Enable( level );                                             
  10e55f:	51                   	push   %ecx                           
  10e560:	9d                   	popf                                  
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10e561:	c7 45 10 2c e6 10 00 	movl   $0x10e62c,0x10(%ebp)           
  10e568:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10e56b:	89 45 08             	mov    %eax,0x8(%ebp)                 
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10e56e:	83 c4 0c             	add    $0xc,%esp                      
  10e571:	5b                   	pop    %ebx                           
  10e572:	5e                   	pop    %esi                           
  10e573:	5f                   	pop    %edi                           
  10e574:	c9                   	leave                                 
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE;
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10e575:	e9 76 1b 00 00       	jmp    1100f0 <_Thread_queue_Enqueue_with_handler>
                                                                      

0010e57c <_CORE_RWLock_Release>: */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) {
  10e57c:	55                   	push   %ebp                           
  10e57d:	89 e5                	mov    %esp,%ebp                      
  10e57f:	53                   	push   %ebx                           
  10e580:	83 ec 04             	sub    $0x4,%esp                      
  10e583:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10e586:	8b 0d 78 bd 12 00    	mov    0x12bd78,%ecx                  
   *  Otherwise, we have to block.                                    
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
  10e58c:	9c                   	pushf                                 
  10e58d:	fa                   	cli                                   
  10e58e:	5a                   	pop    %edx                           
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
  10e58f:	8b 43 44             	mov    0x44(%ebx),%eax                
  10e592:	85 c0                	test   %eax,%eax                      
  10e594:	74 7a                	je     10e610 <_CORE_RWLock_Release+0x94>
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
      return CORE_RWLOCK_SUCCESSFUL;                                  
    }                                                                 
    if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) {
  10e596:	48                   	dec    %eax                           
  10e597:	74 63                	je     10e5fc <_CORE_RWLock_Release+0x80>
          return CORE_RWLOCK_SUCCESSFUL;                              
        }                                                             
    }                                                                 
                                                                      
    /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */      
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10e599:	c7 41 34 00 00 00 00 	movl   $0x0,0x34(%ecx)                
                                                                      
    /*                                                                
     * Implicitly transition to "unlocked" and find another thread interested
     * in obtaining this rwlock.                                      
     */                                                               
    the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                 
  10e5a0:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
  _ISR_Enable( level );                                               
  10e5a7:	52                   	push   %edx                           
  10e5a8:	9d                   	popf                                  
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
  10e5a9:	83 ec 0c             	sub    $0xc,%esp                      
  10e5ac:	53                   	push   %ebx                           
  10e5ad:	e8 16 1a 00 00       	call   10ffc8 <_Thread_queue_Dequeue> 
                                                                      
  if ( next ) {                                                       
  10e5b2:	83 c4 10             	add    $0x10,%esp                     
  10e5b5:	85 c0                	test   %eax,%eax                      
  10e5b7:	74 39                	je     10e5f2 <_CORE_RWLock_Release+0x76>
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
  10e5b9:	83 78 30 01          	cmpl   $0x1,0x30(%eax)                
  10e5bd:	74 61                	je     10e620 <_CORE_RWLock_Release+0xa4>
    }                                                                 
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
  10e5bf:	ff 43 48             	incl   0x48(%ebx)                     
    the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;       
  10e5c2:	c7 43 44 01 00 00 00 	movl   $0x1,0x44(%ebx)                
  10e5c9:	eb 17                	jmp    10e5e2 <_CORE_RWLock_Release+0x66>
  10e5cb:	90                   	nop                                   
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
      if ( !next ||                                                   
  10e5cc:	83 78 30 01          	cmpl   $0x1,0x30(%eax)                
  10e5d0:	74 20                	je     10e5f2 <_CORE_RWLock_Release+0x76><== NEVER TAKEN
           next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE )
        return CORE_RWLOCK_SUCCESSFUL;                                
      the_rwlock->number_of_readers += 1;                             
  10e5d2:	ff 43 48             	incl   0x48(%ebx)                     
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
  10e5d5:	83 ec 08             	sub    $0x8,%esp                      
  10e5d8:	50                   	push   %eax                           
  10e5d9:	53                   	push   %ebx                           
  10e5da:	e8 21 1d 00 00       	call   110300 <_Thread_queue_Extract> 
    }                                                                 
  10e5df:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
  10e5e2:	83 ec 0c             	sub    $0xc,%esp                      
  10e5e5:	53                   	push   %ebx                           
  10e5e6:	e8 2d 1e 00 00       	call   110418 <_Thread_queue_First>   
      if ( !next ||                                                   
  10e5eb:	83 c4 10             	add    $0x10,%esp                     
  10e5ee:	85 c0                	test   %eax,%eax                      
  10e5f0:	75 da                	jne    10e5cc <_CORE_RWLock_Release+0x50>
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10e5f2:	31 c0                	xor    %eax,%eax                      
  10e5f4:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e5f7:	c9                   	leave                                 
  10e5f8:	c3                   	ret                                   
  10e5f9:	8d 76 00             	lea    0x0(%esi),%esi                 
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
      return CORE_RWLOCK_SUCCESSFUL;                                  
    }                                                                 
    if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) {
	the_rwlock->number_of_readers -= 1;                                  
  10e5fc:	8b 43 48             	mov    0x48(%ebx),%eax                
  10e5ff:	48                   	dec    %eax                           
  10e600:	89 43 48             	mov    %eax,0x48(%ebx)                
	if ( the_rwlock->number_of_readers != 0 ) {                          
  10e603:	85 c0                	test   %eax,%eax                      
  10e605:	74 92                	je     10e599 <_CORE_RWLock_Release+0x1d>
          /* must be unlocked again */                                
	  _ISR_Enable( level );                                              
  10e607:	52                   	push   %edx                           
  10e608:	9d                   	popf                                  
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10e609:	31 c0                	xor    %eax,%eax                      
  10e60b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e60e:	c9                   	leave                                 
  10e60f:	c3                   	ret                                   
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
      _ISR_Enable( level );                                           
  10e610:	52                   	push   %edx                           
  10e611:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10e612:	c7 41 34 02 00 00 00 	movl   $0x2,0x34(%ecx)                
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10e619:	31 c0                	xor    %eax,%eax                      
  10e61b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e61e:	c9                   	leave                                 
  10e61f:	c3                   	ret                                   
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
                                                                      
  if ( next ) {                                                       
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
      the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;     
  10e620:	c7 43 44 02 00 00 00 	movl   $0x2,0x44(%ebx)                
      return CORE_RWLOCK_SUCCESSFUL;                                  
  10e627:	eb c9                	jmp    10e5f2 <_CORE_RWLock_Release+0x76>
                                                                      

0010e62c <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) {
  10e62c:	55                   	push   %ebp                           
  10e62d:	89 e5                	mov    %esp,%ebp                      
  10e62f:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10e632:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e635:	50                   	push   %eax                           
  10e636:	ff 75 08             	pushl  0x8(%ebp)                      
  10e639:	e8 2e 16 00 00       	call   10fc6c <_Thread_Get>           
  switch ( location ) {                                               
  10e63e:	83 c4 10             	add    $0x10,%esp                     
  10e641:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e644:	85 d2                	test   %edx,%edx                      
  10e646:	75 17                	jne    10e65f <_CORE_RWLock_Timeout+0x33><== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
  10e648:	83 ec 0c             	sub    $0xc,%esp                      
  10e64b:	50                   	push   %eax                           
  10e64c:	e8 a7 1e 00 00       	call   1104f8 <_Thread_queue_Process_timeout>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10e651:	a1 d0 b7 12 00       	mov    0x12b7d0,%eax                  
  10e656:	48                   	dec    %eax                           
  10e657:	a3 d0 b7 12 00       	mov    %eax,0x12b7d0                  
  10e65c:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10e65f:	c9                   	leave                                 
  10e660:	c3                   	ret                                   
                                                                      

00119924 <_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 ) {
  119924:	55                   	push   %ebp                           
  119925:	89 e5                	mov    %esp,%ebp                      
  119927:	57                   	push   %edi                           
  119928:	56                   	push   %esi                           
  119929:	53                   	push   %ebx                           
  11992a:	83 ec 1c             	sub    $0x1c,%esp                     
  11992d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
  119930:	8b 45 10             	mov    0x10(%ebp),%eax                
  119933:	39 43 4c             	cmp    %eax,0x4c(%ebx)                
  119936:	72 60                	jb     119998 <_CORE_message_queue_Broadcast+0x74><== NEVER TAKEN
   *  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 ) {         
  119938:	8b 43 48             	mov    0x48(%ebx),%eax                
  11993b:	85 c0                	test   %eax,%eax                      
  11993d:	75 45                	jne    119984 <_CORE_message_queue_Broadcast+0x60>
  11993f:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  119946:	eb 18                	jmp    119960 <_CORE_message_queue_Broadcast+0x3c>
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
    waitp = &the_thread->Wait;                                        
    number_broadcasted += 1;                                          
  119948:	ff 45 e4             	incl   -0x1c(%ebp)                    
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  11994b:	8b 42 2c             	mov    0x2c(%edx),%eax                
  11994e:	89 c7                	mov    %eax,%edi                      
  119950:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  119953:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  119956:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
  119958:	8b 42 28             	mov    0x28(%edx),%eax                
  11995b:	8b 55 10             	mov    0x10(%ebp),%edx                
  11995e:	89 10                	mov    %edx,(%eax)                    
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
  119960:	83 ec 0c             	sub    $0xc,%esp                      
  119963:	53                   	push   %ebx                           
  119964:	e8 d7 28 00 00       	call   11c240 <_Thread_queue_Dequeue> 
  119969:	89 c2                	mov    %eax,%edx                      
  11996b:	83 c4 10             	add    $0x10,%esp                     
  11996e:	85 c0                	test   %eax,%eax                      
  119970:	75 d6                	jne    119948 <_CORE_message_queue_Broadcast+0x24>
      if ( !_Objects_Is_local_id( the_thread->Object.id ) )           
        (*api_message_queue_mp_support) ( the_thread, id );           
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
  119972:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  119975:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  119978:	89 10                	mov    %edx,(%eax)                    
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
  11997a:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11997c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11997f:	5b                   	pop    %ebx                           
  119980:	5e                   	pop    %esi                           
  119981:	5f                   	pop    %edi                           
  119982:	c9                   	leave                                 
  119983:	c3                   	ret                                   
   *        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;                                                       
  119984:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  119987:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    
    return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                      
  11998d:	31 c0                	xor    %eax,%eax                      
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
  11998f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  119992:	5b                   	pop    %ebx                           
  119993:	5e                   	pop    %esi                           
  119994:	5f                   	pop    %edi                           
  119995:	c9                   	leave                                 
  119996:	c3                   	ret                                   
  119997:	90                   	nop                                   
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
    return CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE;                    
  119998:	b8 01 00 00 00       	mov    $0x1,%eax                      <== NOT EXECUTED
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
  11999d:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  1199a0:	5b                   	pop    %ebx                           <== NOT EXECUTED
  1199a1:	5e                   	pop    %esi                           <== NOT EXECUTED
  1199a2:	5f                   	pop    %edi                           <== NOT EXECUTED
  1199a3:	c9                   	leave                                 <== NOT EXECUTED
  1199a4:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

00114a64 <_CORE_message_queue_Initialize>: 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 ) {
  114a64:	55                   	push   %ebp                           
  114a65:	89 e5                	mov    %esp,%ebp                      
  114a67:	57                   	push   %edi                           
  114a68:	56                   	push   %esi                           
  114a69:	53                   	push   %ebx                           
  114a6a:	83 ec 0c             	sub    $0xc,%esp                      
  114a6d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  114a70:	8b 75 10             	mov    0x10(%ebp),%esi                
  114a73:	8b 45 14             	mov    0x14(%ebp),%eax                
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
  114a76:	89 73 44             	mov    %esi,0x44(%ebx)                
  the_message_queue->number_of_pending_messages = 0;                  
  114a79:	c7 43 48 00 00 00 00 	movl   $0x0,0x48(%ebx)                
  the_message_queue->maximum_message_size       = maximum_message_size;
  114a80:	89 43 4c             	mov    %eax,0x4c(%ebx)                
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
  114a83:	c7 43 60 00 00 00 00 	movl   $0x0,0x60(%ebx)                
    the_message_queue->notify_argument = the_argument;                
  114a8a:	c7 43 64 00 00 00 00 	movl   $0x0,0x64(%ebx)                
  /*                                                                  
   *  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)) {              
  114a91:	a8 03                	test   $0x3,%al                       
  114a93:	74 17                	je     114aac <_CORE_message_queue_Initialize+0x48>
    allocated_message_size += sizeof(uint32_t);                       
  114a95:	8d 50 04             	lea    0x4(%eax),%edx                 
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
  114a98:	83 e2 fc             	and    $0xfffffffc,%edx               
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
  114a9b:	39 d0                	cmp    %edx,%eax                      
  114a9d:	76 0f                	jbe    114aae <_CORE_message_queue_Initialize+0x4a><== ALWAYS TAKEN
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
    return false;                                                     
  114a9f:	31 c0                	xor    %eax,%eax                      
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
  114aa1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114aa4:	5b                   	pop    %ebx                           
  114aa5:	5e                   	pop    %esi                           
  114aa6:	5f                   	pop    %edi                           
  114aa7:	c9                   	leave                                 
  114aa8:	c3                   	ret                                   
  114aa9:	8d 76 00             	lea    0x0(%esi),%esi                 
  /*                                                                  
   *  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)) {              
  114aac:	89 c2                	mov    %eax,%edx                      
  /*                                                                  
   *  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));
  114aae:	8d 7a 14             	lea    0x14(%edx),%edi                
                                                                      
  /*                                                                  
   *  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 *    
  114ab1:	89 f8                	mov    %edi,%eax                      
  114ab3:	0f af c6             	imul   %esi,%eax                      
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
  114ab6:	39 d0                	cmp    %edx,%eax                      
  114ab8:	72 e5                	jb     114a9f <_CORE_message_queue_Initialize+0x3b><== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
  114aba:	83 ec 0c             	sub    $0xc,%esp                      
  114abd:	50                   	push   %eax                           
  114abe:	e8 61 2b 00 00       	call   117624 <_Workspace_Allocate>   
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
  114ac3:	89 43 5c             	mov    %eax,0x5c(%ebx)                
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
  114ac6:	83 c4 10             	add    $0x10,%esp                     
  114ac9:	85 c0                	test   %eax,%eax                      
  114acb:	74 d2                	je     114a9f <_CORE_message_queue_Initialize+0x3b>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
  114acd:	57                   	push   %edi                           
  114ace:	56                   	push   %esi                           
  114acf:	50                   	push   %eax                           
  114ad0:	8d 43 68             	lea    0x68(%ebx),%eax                
  114ad3:	50                   	push   %eax                           
  114ad4:	e8 5f 52 00 00       	call   119d38 <_Chain_Initialize>     
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  114ad9:	8d 43 54             	lea    0x54(%ebx),%eax                
  114adc:	89 43 50             	mov    %eax,0x50(%ebx)                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  114adf:	c7 43 54 00 00 00 00 	movl   $0x0,0x54(%ebx)                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  114ae6:	8d 43 50             	lea    0x50(%ebx),%eax                
  114ae9:	89 43 58             	mov    %eax,0x58(%ebx)                
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
  114aec:	6a 06                	push   $0x6                           
  114aee:	68 80 00 00 00       	push   $0x80                          
  114af3:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  114af6:	83 38 01             	cmpl   $0x1,(%eax)                    
  114af9:	0f 94 c0             	sete   %al                            
  114afc:	0f b6 c0             	movzbl %al,%eax                       
  114aff:	50                   	push   %eax                           
  114b00:	53                   	push   %ebx                           
  114b01:	e8 52 22 00 00       	call   116d58 <_Thread_queue_Initialize>
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
  114b06:	83 c4 20             	add    $0x20,%esp                     
  114b09:	b0 01                	mov    $0x1,%al                       
}                                                                     
  114b0b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114b0e:	5b                   	pop    %ebx                           
  114b0f:	5e                   	pop    %esi                           
  114b10:	5f                   	pop    %edi                           
  114b11:	c9                   	leave                                 
  114b12:	c3                   	ret                                   
                                                                      

00111140 <_CORE_message_queue_Insert_message>: void _CORE_message_queue_Insert_message( CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message, CORE_message_queue_Submit_types submit_type ) {
  111140:	55                   	push   %ebp                           
  111141:	89 e5                	mov    %esp,%ebp                      
  111143:	56                   	push   %esi                           
  111144:	53                   	push   %ebx                           
  111145:	83 ec 10             	sub    $0x10,%esp                     
  111148:	8b 45 08             	mov    0x8(%ebp),%eax                 
  11114b:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  11114e:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  111151:	89 4a 08             	mov    %ecx,0x8(%edx)                 
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      else                                                            
        _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message);
    _ISR_Enable( level );                                             
  #else                                                               
    if ( submit_type == CORE_MESSAGE_QUEUE_SEND_REQUEST ) {           
  111154:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx               
  11115a:	74 70                	je     1111cc <_CORE_message_queue_Insert_message+0x8c>
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
    } else if ( submit_type == CORE_MESSAGE_QUEUE_URGENT_REQUEST ) {  
  11115c:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx               
  111162:	0f 84 88 00 00 00    	je     1111f0 <_CORE_message_queue_Insert_message+0xb0>
     *  the message is actually in the queue at this point.           
     */                                                               
    if ( notify && the_message_queue->notify_handler )                
      (*the_message_queue->notify_handler)(the_message_queue->notify_argument);
  #endif                                                              
}                                                                     
  111168:	8b 58 50             	mov    0x50(%eax),%ebx                
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
  11116b:	8d 70 54             	lea    0x54(%eax),%esi                
      int                                the_priority;                
                                                                      
      the_priority = _CORE_message_queue_Get_message_priority(the_message);
      the_header = &the_message_queue->Pending_messages;              
      the_node = _Chain_First( the_header );                          
      while ( !_Chain_Is_tail( the_header, the_node ) ) {             
  11116e:	39 de                	cmp    %ebx,%esi                      
  111170:	74 05                	je     111177 <_CORE_message_queue_Insert_message+0x37>
                                                                      
        this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
        this_priority = _CORE_message_queue_Get_message_priority(this_message);
                                                                      
        if ( this_priority <= the_priority ) {                        
  111172:	3b 4b 08             	cmp    0x8(%ebx),%ecx                 
  111175:	7d 45                	jge    1111bc <_CORE_message_queue_Insert_message+0x7c>
          the_node = the_node->next;                                  
          continue;                                                   
        }                                                             
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
  111177:	9c                   	pushf                                 
  111178:	fa                   	cli                                   
  111179:	5e                   	pop    %esi                           
        SET_NOTIFY();                                                 
  11117a:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  11117d:	85 c9                	test   %ecx,%ecx                      
  11117f:	0f 94 45 f7          	sete   -0x9(%ebp)                     
        }                                                             
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
  111183:	41                   	inc    %ecx                           
  111184:	89 48 48             	mov    %ecx,0x48(%eax)                
        _Chain_Insert_unprotected( the_node->previous, &the_message->Node );
  111187:	8b 4b 04             	mov    0x4(%ebx),%ecx                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  11118a:	89 4a 04             	mov    %ecx,0x4(%edx)                 
  before_node           = after_node->next;                           
  11118d:	8b 19                	mov    (%ecx),%ebx                    
  after_node->next      = the_node;                                   
  11118f:	89 11                	mov    %edx,(%ecx)                    
  the_node->next        = before_node;                                
  111191:	89 1a                	mov    %ebx,(%edx)                    
  before_node->previous = the_node;                                   
  111193:	89 53 04             	mov    %edx,0x4(%ebx)                 
      _ISR_Enable( level );                                           
  111196:	56                   	push   %esi                           
  111197:	9d                   	popf                                  
    /*                                                                
     *  According to POSIX, does this happen before or after the message
     *  is actually enqueued.  It is logical to think afterwards, because
     *  the message is actually in the queue at this point.           
     */                                                               
    if ( notify && the_message_queue->notify_handler )                
  111198:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)                
  11119c:	74 16                	je     1111b4 <_CORE_message_queue_Insert_message+0x74>
  11119e:	8b 50 60             	mov    0x60(%eax),%edx                
  1111a1:	85 d2                	test   %edx,%edx                      
  1111a3:	74 0f                	je     1111b4 <_CORE_message_queue_Insert_message+0x74>
      (*the_message_queue->notify_handler)(the_message_queue->notify_argument);
  1111a5:	8b 40 64             	mov    0x64(%eax),%eax                
  1111a8:	89 45 08             	mov    %eax,0x8(%ebp)                 
  #endif                                                              
}                                                                     
  1111ab:	83 c4 10             	add    $0x10,%esp                     
  1111ae:	5b                   	pop    %ebx                           
  1111af:	5e                   	pop    %esi                           
  1111b0:	c9                   	leave                                 
     *  According to POSIX, does this happen before or after the message
     *  is actually enqueued.  It is logical to think afterwards, because
     *  the message is actually in the queue at this point.           
     */                                                               
    if ( notify && the_message_queue->notify_handler )                
      (*the_message_queue->notify_handler)(the_message_queue->notify_argument);
  1111b1:	ff e2                	jmp    *%edx                          
  1111b3:	90                   	nop                                   
  #endif                                                              
}                                                                     
  1111b4:	83 c4 10             	add    $0x10,%esp                     
  1111b7:	5b                   	pop    %ebx                           
  1111b8:	5e                   	pop    %esi                           
  1111b9:	c9                   	leave                                 
  1111ba:	c3                   	ret                                   
  1111bb:	90                   	nop                                   
        this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
        this_priority = _CORE_message_queue_Get_message_priority(this_message);
                                                                      
        if ( this_priority <= the_priority ) {                        
          the_node = the_node->next;                                  
  1111bc:	8b 1b                	mov    (%ebx),%ebx                    
      int                                the_priority;                
                                                                      
      the_priority = _CORE_message_queue_Get_message_priority(the_message);
      the_header = &the_message_queue->Pending_messages;              
      the_node = _Chain_First( the_header );                          
      while ( !_Chain_Is_tail( the_header, the_node ) ) {             
  1111be:	39 de                	cmp    %ebx,%esi                      
  1111c0:	74 b5                	je     111177 <_CORE_message_queue_Insert_message+0x37>
                                                                      
        this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
        this_priority = _CORE_message_queue_Get_message_priority(this_message);
                                                                      
        if ( this_priority <= the_priority ) {                        
  1111c2:	3b 4b 08             	cmp    0x8(%ebx),%ecx                 
  1111c5:	7c b0                	jl     111177 <_CORE_message_queue_Insert_message+0x37>
  1111c7:	eb f3                	jmp    1111bc <_CORE_message_queue_Insert_message+0x7c>
  1111c9:	8d 76 00             	lea    0x0(%esi),%esi                 
      else                                                            
        _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message);
    _ISR_Enable( level );                                             
  #else                                                               
    if ( submit_type == CORE_MESSAGE_QUEUE_SEND_REQUEST ) {           
      _ISR_Disable( level );                                          
  1111cc:	9c                   	pushf                                 
  1111cd:	fa                   	cli                                   
  1111ce:	5b                   	pop    %ebx                           
        SET_NOTIFY();                                                 
  1111cf:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  1111d2:	85 c9                	test   %ecx,%ecx                      
  1111d4:	0f 94 45 f7          	sete   -0x9(%ebp)                     
    _ISR_Enable( level );                                             
  #else                                                               
    if ( submit_type == CORE_MESSAGE_QUEUE_SEND_REQUEST ) {           
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
  1111d8:	41                   	inc    %ecx                           
  1111d9:	89 48 48             	mov    %ecx,0x48(%eax)                
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
  1111dc:	8b 48 58             	mov    0x58(%eax),%ecx                
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(                  
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  1111df:	8d 70 54             	lea    0x54(%eax),%esi                
  1111e2:	89 32                	mov    %esi,(%edx)                    
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
  1111e4:	89 50 58             	mov    %edx,0x58(%eax)                
  old_last->next = the_node;                                          
  1111e7:	89 11                	mov    %edx,(%ecx)                    
  the_node->previous = old_last;                                      
  1111e9:	89 4a 04             	mov    %ecx,0x4(%edx)                 
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
  1111ec:	53                   	push   %ebx                           
  1111ed:	9d                   	popf                                  
  1111ee:	eb a8                	jmp    111198 <_CORE_message_queue_Insert_message+0x58>
    } else if ( submit_type == CORE_MESSAGE_QUEUE_URGENT_REQUEST ) {  
      _ISR_Disable( level );                                          
  1111f0:	9c                   	pushf                                 
  1111f1:	fa                   	cli                                   
  1111f2:	5b                   	pop    %ebx                           
        SET_NOTIFY();                                                 
  1111f3:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  1111f6:	85 c9                	test   %ecx,%ecx                      
  1111f8:	0f 94 45 f7          	sete   -0x9(%ebp)                     
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
    } else if ( submit_type == CORE_MESSAGE_QUEUE_URGENT_REQUEST ) {  
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
  1111fc:	41                   	inc    %ecx                           
  1111fd:	89 48 48             	mov    %ecx,0x48(%eax)                
RTEMS_INLINE_ROUTINE void _Chain_Prepend_unprotected(                 
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert_unprotected(_Chain_Head(the_chain), the_node);        
  111200:	8d 48 50             	lea    0x50(%eax),%ecx                
  111203:	89 4a 04             	mov    %ecx,0x4(%edx)                 
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  111206:	8b 48 50             	mov    0x50(%eax),%ecx                
  after_node->next      = the_node;                                   
  111209:	89 50 50             	mov    %edx,0x50(%eax)                
  the_node->next        = before_node;                                
  11120c:	89 0a                	mov    %ecx,(%edx)                    
  before_node->previous = the_node;                                   
  11120e:	89 51 04             	mov    %edx,0x4(%ecx)                 
        _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
  111211:	53                   	push   %ebx                           
  111212:	9d                   	popf                                  
  111213:	eb 83                	jmp    111198 <_CORE_message_queue_Insert_message+0x58>
                                                                      

00114b14 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) {
  114b14:	55                   	push   %ebp                           
  114b15:	89 e5                	mov    %esp,%ebp                      
  114b17:	57                   	push   %edi                           
  114b18:	56                   	push   %esi                           
  114b19:	53                   	push   %ebx                           
  114b1a:	83 ec 2c             	sub    $0x2c,%esp                     
  114b1d:	8b 55 08             	mov    0x8(%ebp),%edx                 
  114b20:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  114b23:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  114b26:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  114b29:	89 4d e0             	mov    %ecx,-0x20(%ebp)               
  114b2c:	8b 45 14             	mov    0x14(%ebp),%eax                
  114b2f:	8b 5d 1c             	mov    0x1c(%ebp),%ebx                
  114b32:	89 5d d8             	mov    %ebx,-0x28(%ebp)               
  114b35:	0f b6 7d 18          	movzbl 0x18(%ebp),%edi                
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  114b39:	8b 0d d8 0c 13 00    	mov    0x130cd8,%ecx                  
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  114b3f:	c7 41 34 00 00 00 00 	movl   $0x0,0x34(%ecx)                
  _ISR_Disable( level );                                              
  114b46:	9c                   	pushf                                 
  114b47:	fa                   	cli                                   
  114b48:	8f 45 e4             	popl   -0x1c(%ebp)                    
  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 );   
}                                                                     
  114b4b:	8b 5a 50             	mov    0x50(%edx),%ebx                
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  114b4e:	8d 72 54             	lea    0x54(%edx),%esi                
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
  114b51:	39 f3                	cmp    %esi,%ebx                      
  114b53:	74 7b                	je     114bd0 <_CORE_message_queue_Seize+0xbc>
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
  114b55:	8b 0b                	mov    (%ebx),%ecx                    
                                                                      
  head->next = new_first;                                             
  114b57:	89 4a 50             	mov    %ecx,0x50(%edx)                
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  114b5a:	8d 72 50             	lea    0x50(%edx),%esi                
  114b5d:	89 71 04             	mov    %esi,0x4(%ecx)                 
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
  114b60:	ff 4a 48             	decl   0x48(%edx)                     
    _ISR_Enable( level );                                             
  114b63:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114b66:	9d                   	popf                                  
                                                                      
    *size_p = the_message->Contents.size;                             
  114b67:	8b 4b 0c             	mov    0xc(%ebx),%ecx                 
  114b6a:	89 08                	mov    %ecx,(%eax)                    
    _Thread_Executing->Wait.count =                                   
  114b6c:	8b 73 08             	mov    0x8(%ebx),%esi                 
  114b6f:	8b 0d d8 0c 13 00    	mov    0x130cd8,%ecx                  
  114b75:	89 71 24             	mov    %esi,0x24(%ecx)                
      _CORE_message_queue_Get_message_priority( the_message );        
    _CORE_message_queue_Copy_buffer(                                  
      the_message->Contents.buffer,                                   
  114b78:	8d 4b 10             	lea    0x10(%ebx),%ecx                
  114b7b:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  114b7e:	8b 08                	mov    (%eax),%ecx                    
  114b80:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  114b83:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  114b86:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
       *  is not, then we can go ahead and free the buffer.           
       *                                                              
       *  NOTE: If we note that the queue was not full before this receive,
       *  then we can avoid this dequeue.                             
       */                                                             
      the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
  114b88:	83 ec 0c             	sub    $0xc,%esp                      
  114b8b:	52                   	push   %edx                           
  114b8c:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  114b8f:	e8 34 1e 00 00       	call   1169c8 <_Thread_queue_Dequeue> 
      if ( !the_thread ) {                                            
  114b94:	83 c4 10             	add    $0x10,%esp                     
  114b97:	85 c0                	test   %eax,%eax                      
  114b99:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  114b9c:	0f 84 86 00 00 00    	je     114c28 <_CORE_message_queue_Seize+0x114>
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
  114ba2:	8b 48 24             	mov    0x24(%eax),%ecx                
  114ba5:	89 4b 08             	mov    %ecx,0x8(%ebx)                 
       */                                                             
      _CORE_message_queue_Set_message_priority(                       
        the_message,                                                  
        the_thread->Wait.count                                        
      );                                                              
      the_message->Contents.size = (size_t) the_thread->Wait.option;  
  114ba8:	8b 48 30             	mov    0x30(%eax),%ecx                
  114bab:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  114bae:	8b 70 2c             	mov    0x2c(%eax),%esi                
  114bb1:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  114bb4:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
  114bb6:	8b 43 08             	mov    0x8(%ebx),%eax                 
  114bb9:	89 45 10             	mov    %eax,0x10(%ebp)                
  114bbc:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  114bbf:	89 55 08             	mov    %edx,0x8(%ebp)                 
  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 );   
}                                                                     
  114bc2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114bc5:	5b                   	pop    %ebx                           
  114bc6:	5e                   	pop    %esi                           
  114bc7:	5f                   	pop    %edi                           
  114bc8:	c9                   	leave                                 
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
  114bc9:	e9 c6 51 00 00       	jmp    119d94 <_CORE_message_queue_Insert_message>
  114bce:	66 90                	xchg   %ax,%ax                        
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
  114bd0:	89 fb                	mov    %edi,%ebx                      
  114bd2:	84 db                	test   %bl,%bl                        
  114bd4:	75 16                	jne    114bec <_CORE_message_queue_Seize+0xd8>
    _ISR_Enable( level );                                             
  114bd6:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114bd9:	9d                   	popf                                  
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
  114bda:	c7 41 34 04 00 00 00 	movl   $0x4,0x34(%ecx)                
  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 );   
}                                                                     
  114be1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114be4:	5b                   	pop    %ebx                           
  114be5:	5e                   	pop    %esi                           
  114be6:	5f                   	pop    %edi                           
  114be7:	c9                   	leave                                 
  114be8:	c3                   	ret                                   
  114be9:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
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;
  114bec:	c7 42 30 01 00 00 00 	movl   $0x1,0x30(%edx)                
    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;             
  114bf3:	89 51 44             	mov    %edx,0x44(%ecx)                
  executing->Wait.id = id;                                            
  114bf6:	8b 5d dc             	mov    -0x24(%ebp),%ebx               
  114bf9:	89 59 20             	mov    %ebx,0x20(%ecx)                
  executing->Wait.return_argument_second.mutable_object = buffer;     
  114bfc:	8b 5d e0             	mov    -0x20(%ebp),%ebx               
  114bff:	89 59 2c             	mov    %ebx,0x2c(%ecx)                
  executing->Wait.return_argument = size_p;                           
  114c02:	89 41 28             	mov    %eax,0x28(%ecx)                
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
  114c05:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114c08:	9d                   	popf                                  
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
  114c09:	c7 45 10 1c 6e 11 00 	movl   $0x116e1c,0x10(%ebp)           
  114c10:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  114c13:	89 45 0c             	mov    %eax,0xc(%ebp)                 
  114c16:	89 55 08             	mov    %edx,0x8(%ebp)                 
}                                                                     
  114c19:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114c1c:	5b                   	pop    %ebx                           
  114c1d:	5e                   	pop    %esi                           
  114c1e:	5f                   	pop    %edi                           
  114c1f:	c9                   	leave                                 
  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 );   
  114c20:	e9 cb 1e 00 00       	jmp    116af0 <_Thread_queue_Enqueue_with_handler>
  114c25:	8d 76 00             	lea    0x0(%esi),%esi                 
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 );
  114c28:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  114c2b:	83 c2 68             	add    $0x68,%edx                     
  114c2e:	89 55 08             	mov    %edx,0x8(%ebp)                 
}                                                                     
  114c31:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  114c34:	5b                   	pop    %ebx                           
  114c35:	5e                   	pop    %esi                           
  114c36:	5f                   	pop    %edi                           
  114c37:	c9                   	leave                                 
  114c38:	e9 a7 fd ff ff       	jmp    1149e4 <_Chain_Append>         
                                                                      

0010c080 <_CORE_message_queue_Submit>: #endif CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout ) {
  10c080:	55                   	push   %ebp                           
  10c081:	89 e5                	mov    %esp,%ebp                      
  10c083:	57                   	push   %edi                           
  10c084:	56                   	push   %esi                           
  10c085:	53                   	push   %ebx                           
  10c086:	83 ec 1c             	sub    $0x1c,%esp                     
  10c089:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c08c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10c08f:	8a 4d 20             	mov    0x20(%ebp),%cl                 
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
  10c092:	8b 45 10             	mov    0x10(%ebp),%eax                
  10c095:	39 43 4c             	cmp    %eax,0x4c(%ebx)                
  10c098:	72 32                	jb     10c0cc <_CORE_message_queue_Submit+0x4c>
  }                                                                   
                                                                      
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
  10c09a:	8b 43 48             	mov    0x48(%ebx),%eax                
  10c09d:	85 c0                	test   %eax,%eax                      
  10c09f:	74 3b                	je     10c0dc <_CORE_message_queue_Submit+0x5c>
                                                                      
  /*                                                                  
   *  No one waiting on the message queue at this time, so attempt to 
   *  queue the message up for a future receive.                      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages <                
  10c0a1:	39 43 44             	cmp    %eax,0x44(%ebx)                
  10c0a4:	0f 87 ba 00 00 00    	ja     10c164 <_CORE_message_queue_Submit+0xe4>
    /*                                                                
     *  No message buffers were available so we may need to return an 
     *  overflow error or block the sender until the message is placed
     *  on the queue.                                                 
     */                                                               
    if ( !wait ) {                                                    
  10c0aa:	84 c9                	test   %cl,%cl                        
  10c0ac:	0f 84 ee 00 00 00    	je     10c1a0 <_CORE_message_queue_Submit+0x120>
                                                                      
    /*                                                                
     *  Do NOT block on a send if the caller is in an ISR.  It is     
     *  deadly to block in an ISR.                                    
     */                                                               
    if ( _ISR_Is_in_progress() ) {                                    
  10c0b2:	8b 15 f4 83 12 00    	mov    0x1283f4,%edx                  
  10c0b8:	85 d2                	test   %edx,%edx                      
  10c0ba:	74 60                	je     10c11c <_CORE_message_queue_Submit+0x9c>
      return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;                   
  10c0bc:	b8 03 00 00 00       	mov    $0x3,%eax                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
  10c0c1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0c4:	5b                   	pop    %ebx                           
  10c0c5:	5e                   	pop    %esi                           
  10c0c6:	5f                   	pop    %edi                           
  10c0c7:	c9                   	leave                                 
  10c0c8:	c3                   	ret                                   
  10c0c9:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
    return CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE;                    
  10c0cc:	b8 01 00 00 00       	mov    $0x1,%eax                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
  10c0d1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0d4:	5b                   	pop    %ebx                           
  10c0d5:	5e                   	pop    %esi                           
  10c0d6:	5f                   	pop    %edi                           
  10c0d7:	c9                   	leave                                 
  10c0d8:	c3                   	ret                                   
  10c0d9:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
    the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
  10c0dc:	83 ec 0c             	sub    $0xc,%esp                      
  10c0df:	53                   	push   %ebx                           
  10c0e0:	88 4d e4             	mov    %cl,-0x1c(%ebp)                
  10c0e3:	e8 a0 1c 00 00       	call   10dd88 <_Thread_queue_Dequeue> 
  10c0e8:	89 c2                	mov    %eax,%edx                      
    if ( the_thread ) {                                               
  10c0ea:	83 c4 10             	add    $0x10,%esp                     
  10c0ed:	85 c0                	test   %eax,%eax                      
  10c0ef:	8a 4d e4             	mov    -0x1c(%ebp),%cl                
  10c0f2:	0f 84 b8 00 00 00    	je     10c1b0 <_CORE_message_queue_Submit+0x130>
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  10c0f8:	8b 40 2c             	mov    0x2c(%eax),%eax                
  10c0fb:	89 c7                	mov    %eax,%edi                      
  10c0fd:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10c100:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
      _CORE_message_queue_Copy_buffer(                                
        buffer,                                                       
        the_thread->Wait.return_argument_second.mutable_object,       
        size                                                          
      );                                                              
      *(size_t *) the_thread->Wait.return_argument = size;            
  10c102:	8b 42 28             	mov    0x28(%edx),%eax                
  10c105:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10c108:	89 08                	mov    %ecx,(%eax)                    
      the_thread->Wait.count = (uint32_t) submit_type;                
  10c10a:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  10c10d:	89 42 24             	mov    %eax,0x24(%edx)                
                                                                      
      #if defined(RTEMS_MULTIPROCESSING)                              
        if ( !_Objects_Is_local_id( the_thread->Object.id ) )         
          (*api_message_queue_mp_support) ( the_thread, id );         
      #endif                                                          
      return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                    
  10c110:	31 c0                	xor    %eax,%eax                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
  10c112:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c115:	5b                   	pop    %ebx                           
  10c116:	5e                   	pop    %esi                           
  10c117:	5f                   	pop    %edi                           
  10c118:	c9                   	leave                                 
  10c119:	c3                   	ret                                   
  10c11a:	66 90                	xchg   %ax,%ax                        
     *  Thus the unusual choice to open a new scope and declare       
     *  it as a variable.  Doing this emphasizes how dangerous it     
     *  would be to use this variable prior to here.                  
     */                                                               
    {                                                                 
      Thread_Control  *executing = _Thread_Executing;                 
  10c11c:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
      ISR_Level        level;                                         
                                                                      
      _ISR_Disable( level );                                          
  10c121:	9c                   	pushf                                 
  10c122:	fa                   	cli                                   
  10c123:	59                   	pop    %ecx                           
                                                                      
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;
  10c124:	c7 43 30 01 00 00 00 	movl   $0x1,0x30(%ebx)                
      _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
      executing->Wait.queue = &the_message_queue->Wait_queue;         
  10c12b:	89 58 44             	mov    %ebx,0x44(%eax)                
      executing->Wait.id = id;                                        
  10c12e:	8b 55 14             	mov    0x14(%ebp),%edx                
  10c131:	89 50 20             	mov    %edx,0x20(%eax)                
      executing->Wait.return_argument_second.immutable_object = buffer;
  10c134:	89 70 2c             	mov    %esi,0x2c(%eax)                
      executing->Wait.option = (uint32_t) size;                       
  10c137:	8b 55 10             	mov    0x10(%ebp),%edx                
  10c13a:	89 50 30             	mov    %edx,0x30(%eax)                
      executing->Wait.count = submit_type;                            
  10c13d:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  10c140:	89 50 24             	mov    %edx,0x24(%eax)                
      _ISR_Enable( level );                                           
  10c143:	51                   	push   %ecx                           
  10c144:	9d                   	popf                                  
                                                                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
  10c145:	50                   	push   %eax                           
  10c146:	68 dc e1 10 00       	push   $0x10e1dc                      
  10c14b:	ff 75 24             	pushl  0x24(%ebp)                     
  10c14e:	53                   	push   %ebx                           
  10c14f:	e8 5c 1d 00 00       	call   10deb0 <_Thread_queue_Enqueue_with_handler>
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  10c154:	83 c4 10             	add    $0x10,%esp                     
  10c157:	b8 07 00 00 00       	mov    $0x7,%eax                      
  #endif                                                              
}                                                                     
  10c15c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c15f:	5b                   	pop    %ebx                           
  10c160:	5e                   	pop    %esi                           
  10c161:	5f                   	pop    %edi                           
  10c162:	c9                   	leave                                 
  10c163:	c3                   	ret                                   
_CORE_message_queue_Allocate_message_buffer (                         
    CORE_message_queue_Control *the_message_queue                     
)                                                                     
{                                                                     
   return (CORE_message_queue_Buffer_control *)                       
     _Chain_Get( &the_message_queue->Inactive_messages );             
  10c164:	83 ec 0c             	sub    $0xc,%esp                      
  10c167:	8d 43 68             	lea    0x68(%ebx),%eax                
  10c16a:	50                   	push   %eax                           
  10c16b:	e8 ec fe ff ff       	call   10c05c <_Chain_Get>            
  10c170:	89 c2                	mov    %eax,%edx                      
        return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;                 
     #endif                                                           
                                                                      
    _CORE_message_queue_Copy_buffer(                                  
      buffer,                                                         
      the_message->Contents.buffer,                                   
  10c172:	8d 40 10             	lea    0x10(%eax),%eax                
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  10c175:	89 c7                	mov    %eax,%edi                      
  10c177:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10c17a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
  10c17c:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10c17f:	89 4a 0c             	mov    %ecx,0xc(%edx)                 
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
  10c182:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  10c185:	89 42 08             	mov    %eax,0x8(%edx)                 
    _CORE_message_queue_Set_message_priority( the_message, submit_type );
                                                                      
    _CORE_message_queue_Insert_message(                               
  10c188:	83 c4 0c             	add    $0xc,%esp                      
  10c18b:	50                   	push   %eax                           
  10c18c:	52                   	push   %edx                           
  10c18d:	53                   	push   %ebx                           
  10c18e:	e8 ad 4f 00 00       	call   111140 <_CORE_message_queue_Insert_message>
       the_message_queue,                                             
       the_message,                                                   
       submit_type                                                    
    );                                                                
    return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                      
  10c193:	83 c4 10             	add    $0x10,%esp                     
  10c196:	31 c0                	xor    %eax,%eax                      
  10c198:	e9 34 ff ff ff       	jmp    10c0d1 <_CORE_message_queue_Submit+0x51>
  10c19d:	8d 76 00             	lea    0x0(%esi),%esi                 
     *  No message buffers were available so we may need to return an 
     *  overflow error or block the sender until the message is placed
     *  on the queue.                                                 
     */                                                               
    if ( !wait ) {                                                    
      return CORE_MESSAGE_QUEUE_STATUS_TOO_MANY;                      
  10c1a0:	b8 02 00 00 00       	mov    $0x2,%eax                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
  10c1a5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c1a8:	5b                   	pop    %ebx                           
  10c1a9:	5e                   	pop    %esi                           
  10c1aa:	5f                   	pop    %edi                           
  10c1ab:	c9                   	leave                                 
  10c1ac:	c3                   	ret                                   
  10c1ad:	8d 76 00             	lea    0x0(%esi),%esi                 
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
    the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
    if ( the_thread ) {                                               
  10c1b0:	8b 43 48             	mov    0x48(%ebx),%eax                
  10c1b3:	e9 e9 fe ff ff       	jmp    10c0a1 <_CORE_message_queue_Submit+0x21>
                                                                      

0010c1c4 <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) {
  10c1c4:	55                   	push   %ebp                           
  10c1c5:	89 e5                	mov    %esp,%ebp                      
  10c1c7:	57                   	push   %edi                           
  10c1c8:	56                   	push   %esi                           
  10c1c9:	53                   	push   %ebx                           
  10c1ca:	83 ec 0c             	sub    $0xc,%esp                      
  10c1cd:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c1d0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c1d3:	8b 55 10             	mov    0x10(%ebp),%edx                
/* Add this to the RTEMS environment later ?????????                  
  rtems_assert( initial_lock == CORE_MUTEX_LOCKED ||                  
                initial_lock == CORE_MUTEX_UNLOCKED );                
 */                                                                   
                                                                      
  the_mutex->Attributes    = *the_mutex_attributes;                   
  10c1d6:	8d 78 40             	lea    0x40(%eax),%edi                
  10c1d9:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10c1de:	89 de                	mov    %ebx,%esi                      
  10c1e0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  the_mutex->lock          = initial_lock;                            
  10c1e2:	89 50 50             	mov    %edx,0x50(%eax)                
  the_mutex->blocked_count = 0;                                       
  10c1e5:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)                
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
  10c1ec:	85 d2                	test   %edx,%edx                      
  10c1ee:	75 30                	jne    10c220 <_CORE_mutex_Initialize+0x5c>
    the_mutex->nest_count = 1;                                        
  10c1f0:	c7 40 54 01 00 00 00 	movl   $0x1,0x54(%eax)                
    the_mutex->holder     = _Thread_Executing;                        
  10c1f7:	8b 15 f8 83 12 00    	mov    0x1283f8,%edx                  
  10c1fd:	89 50 5c             	mov    %edx,0x5c(%eax)                
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
  10c200:	8b 4a 08             	mov    0x8(%edx),%ecx                 
  10c203:	89 48 60             	mov    %ecx,0x60(%eax)                
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10c206:	8b 48 48             	mov    0x48(%eax),%ecx                
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
    the_mutex->nest_count = 1;                                        
    the_mutex->holder     = _Thread_Executing;                        
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
  10c209:	83 f9 02             	cmp    $0x2,%ecx                      
  10c20c:	74 05                	je     10c213 <_CORE_mutex_Initialize+0x4f>
  10c20e:	83 f9 03             	cmp    $0x3,%ecx                      
  10c211:	75 22                	jne    10c235 <_CORE_mutex_Initialize+0x71>
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
  10c213:	8b 48 4c             	mov    0x4c(%eax),%ecx                
  10c216:	39 4a 14             	cmp    %ecx,0x14(%edx)                
  10c219:	72 41                	jb     10c25c <_CORE_mutex_Initialize+0x98>
       _Chain_Prepend_unprotected( &_Thread_Executing->lock_mutex,    
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = _Thread_Executing->current_priority;
#endif                                                                
                                                                      
      _Thread_Executing->resource_count++;                            
  10c21b:	ff 42 1c             	incl   0x1c(%edx)                     
  10c21e:	eb 15                	jmp    10c235 <_CORE_mutex_Initialize+0x71>
    }                                                                 
  } else {                                                            
    the_mutex->nest_count = 0;                                        
  10c220:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
    the_mutex->holder     = NULL;                                     
  10c227:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)                
    the_mutex->holder_id  = 0;                                        
  10c22e:	c7 40 60 00 00 00 00 	movl   $0x0,0x60(%eax)                
  }                                                                   
                                                                      
  _Thread_queue_Initialize(                                           
  10c235:	6a 05                	push   $0x5                           
  10c237:	68 00 04 00 00       	push   $0x400                         
  10c23c:	31 d2                	xor    %edx,%edx                      
  10c23e:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)                 
  10c242:	0f 95 c2             	setne  %dl                            
  10c245:	52                   	push   %edx                           
  10c246:	50                   	push   %eax                           
  10c247:	e8 cc 1e 00 00       	call   10e118 <_Thread_queue_Initialize>
      THREAD_QUEUE_DISCIPLINE_FIFO : THREAD_QUEUE_DISCIPLINE_PRIORITY,
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10c24c:	83 c4 10             	add    $0x10,%esp                     
  10c24f:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c251:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c254:	5b                   	pop    %ebx                           
  10c255:	5e                   	pop    %esi                           
  10c256:	5f                   	pop    %edi                           
  10c257:	c9                   	leave                                 
  10c258:	c3                   	ret                                   
  10c259:	8d 76 00             	lea    0x0(%esi),%esi                 
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
             the_mutex->Attributes.priority_ceiling )                 
       return CORE_MUTEX_STATUS_CEILING_VIOLATED;                     
  10c25c:	b8 06 00 00 00       	mov    $0x6,%eax                      
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10c261:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c264:	5b                   	pop    %ebx                           
  10c265:	5e                   	pop    %esi                           
  10c266:	5f                   	pop    %edi                           
  10c267:	c9                   	leave                                 
  10c268:	c3                   	ret                                   
                                                                      

0010c2bc <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
  10c2bc:	55                   	push   %ebp                           
  10c2bd:	89 e5                	mov    %esp,%ebp                      
  10c2bf:	53                   	push   %ebx                           
  10c2c0:	83 ec 14             	sub    $0x14,%esp                     
  10c2c3:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c2c6:	8a 55 10             	mov    0x10(%ebp),%dl                 
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
  10c2c9:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10c2ce:	85 c0                	test   %eax,%eax                      
  10c2d0:	74 04                	je     10c2d6 <_CORE_mutex_Seize+0x1a>
  10c2d2:	84 d2                	test   %dl,%dl                        
  10c2d4:	75 36                	jne    10c30c <_CORE_mutex_Seize+0x50><== ALWAYS TAKEN
  10c2d6:	83 ec 08             	sub    $0x8,%esp                      
  10c2d9:	8d 45 18             	lea    0x18(%ebp),%eax                
  10c2dc:	50                   	push   %eax                           
  10c2dd:	53                   	push   %ebx                           
  10c2de:	88 55 f4             	mov    %dl,-0xc(%ebp)                 
  10c2e1:	e8 32 4f 00 00       	call   111218 <_CORE_mutex_Seize_interrupt_trylock>
  10c2e6:	83 c4 10             	add    $0x10,%esp                     
  10c2e9:	85 c0                	test   %eax,%eax                      
  10c2eb:	8a 55 f4             	mov    -0xc(%ebp),%dl                 
  10c2ee:	74 14                	je     10c304 <_CORE_mutex_Seize+0x48>
  10c2f0:	84 d2                	test   %dl,%dl                        
  10c2f2:	75 30                	jne    10c324 <_CORE_mutex_Seize+0x68>
  10c2f4:	ff 75 18             	pushl  0x18(%ebp)                     
  10c2f7:	9d                   	popf                                  
  10c2f8:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
  10c2fd:	c7 40 34 01 00 00 00 	movl   $0x1,0x34(%eax)                
}                                                                     
  10c304:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c307:	c9                   	leave                                 
  10c308:	c3                   	ret                                   
  10c309:	8d 76 00             	lea    0x0(%esi),%esi                 
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
  10c30c:	83 3d e0 7f 12 00 01 	cmpl   $0x1,0x127fe0                  
  10c313:	76 c1                	jbe    10c2d6 <_CORE_mutex_Seize+0x1a>
  10c315:	53                   	push   %ebx                           
  10c316:	6a 12                	push   $0x12                          
  10c318:	6a 00                	push   $0x0                           
  10c31a:	6a 00                	push   $0x0                           
  10c31c:	e8 1b 06 00 00       	call   10c93c <_Internal_error_Occurred>
  10c321:	8d 76 00             	lea    0x0(%esi),%esi                 
  10c324:	c7 43 30 01 00 00 00 	movl   $0x1,0x30(%ebx)                
  10c32b:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
  10c330:	89 58 44             	mov    %ebx,0x44(%eax)                
  10c333:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10c336:	89 50 20             	mov    %edx,0x20(%eax)                
  10c339:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10c33e:	40                   	inc    %eax                           
  10c33f:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
  10c344:	ff 75 18             	pushl  0x18(%ebp)                     
  10c347:	9d                   	popf                                  
  10c348:	83 ec 08             	sub    $0x8,%esp                      
  10c34b:	ff 75 14             	pushl  0x14(%ebp)                     
  10c34e:	53                   	push   %ebx                           
  10c34f:	e8 18 ff ff ff       	call   10c26c <_CORE_mutex_Seize_interrupt_blocking>
  10c354:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10c357:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c35a:	c9                   	leave                                 
  10c35b:	c3                   	ret                                   
                                                                      

00111218 <_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 ) {
  111218:	55                   	push   %ebp                           
  111219:	89 e5                	mov    %esp,%ebp                      
  11121b:	56                   	push   %esi                           
  11121c:	53                   	push   %ebx                           
  11121d:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111220:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
{                                                                     
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  111223:	8b 15 f8 83 12 00    	mov    0x1283f8,%edx                  
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  111229:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
  111230:	8b 58 50             	mov    0x50(%eax),%ebx                
  111233:	85 db                	test   %ebx,%ebx                      
  111235:	74 31                	je     111268 <_CORE_mutex_Seize_interrupt_trylock+0x50>
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
  111237:	c7 40 50 00 00 00 00 	movl   $0x0,0x50(%eax)                
    the_mutex->holder     = executing;                                
  11123e:	89 50 5c             	mov    %edx,0x5c(%eax)                
    the_mutex->holder_id  = executing->Object.id;                     
  111241:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  111244:	89 58 60             	mov    %ebx,0x60(%eax)                
    the_mutex->nest_count = 1;                                        
  111247:	c7 40 54 01 00 00 00 	movl   $0x1,0x54(%eax)                
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
  11124e:	8b 58 48             	mov    0x48(%eax),%ebx                
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
  111251:	83 fb 02             	cmp    $0x2,%ebx                      
  111254:	74 26                	je     11127c <_CORE_mutex_Seize_interrupt_trylock+0x64>
  111256:	83 fb 03             	cmp    $0x3,%ebx                      
  111259:	74 3d                	je     111298 <_CORE_mutex_Seize_interrupt_trylock+0x80>
                                                                      
      executing->resource_count++;                                    
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
      _ISR_Enable( *level_p );                                        
  11125b:	ff 31                	pushl  (%ecx)                         
  11125d:	9d                   	popf                                  
      return 0;                                                       
  11125e:	31 c0                	xor    %eax,%eax                      
  111260:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  111263:	5b                   	pop    %ebx                           
  111264:	5e                   	pop    %esi                           
  111265:	c9                   	leave                                 
  111266:	c3                   	ret                                   
  111267:	90                   	nop                                   
  /*                                                                  
   *  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 ) ) {                  
  111268:	3b 50 5c             	cmp    0x5c(%eax),%edx                
  11126b:	74 17                	je     111284 <_CORE_mutex_Seize_interrupt_trylock+0x6c>
                                                                      
  /*                                                                  
   *  The mutex is not available and the caller must deal with the possibility
   *  of blocking.                                                    
   */                                                                 
  return 1;                                                           
  11126d:	b8 01 00 00 00       	mov    $0x1,%eax                      
  111272:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  111275:	5b                   	pop    %ebx                           
  111276:	5e                   	pop    %esi                           
  111277:	c9                   	leave                                 
  111278:	c3                   	ret                                   
  111279:	8d 76 00             	lea    0x0(%esi),%esi                 
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
  11127c:	ff 42 1c             	incl   0x1c(%edx)                     
  11127f:	eb da                	jmp    11125b <_CORE_mutex_Seize_interrupt_trylock+0x43>
  111281:	8d 76 00             	lea    0x0(%esi),%esi                 
   *  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 ) ) {                  
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
  111284:	8b 58 40             	mov    0x40(%eax),%ebx                
  111287:	85 db                	test   %ebx,%ebx                      
  111289:	75 45                	jne    1112d0 <_CORE_mutex_Seize_interrupt_trylock+0xb8>
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
  11128b:	ff 40 54             	incl   0x54(%eax)                     
        _ISR_Enable( *level_p );                                      
  11128e:	ff 31                	pushl  (%ecx)                         
  111290:	9d                   	popf                                  
        return 0;                                                     
  111291:	31 c0                	xor    %eax,%eax                      
  111293:	eb dd                	jmp    111272 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  111295:	8d 76 00             	lea    0x0(%esi),%esi                 
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
  111298:	8b 5a 1c             	mov    0x1c(%edx),%ebx                
  11129b:	8d 73 01             	lea    0x1(%ebx),%esi                 
  11129e:	89 72 1c             	mov    %esi,0x1c(%edx)                
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
      current = executing->current_priority;                          
      if ( current == ceiling ) {                                     
  1112a1:	8b 72 14             	mov    0x14(%edx),%esi                
  1112a4:	39 70 4c             	cmp    %esi,0x4c(%eax)                
  1112a7:	74 6b                	je     111314 <_CORE_mutex_Seize_interrupt_trylock+0xfc>
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
  1112a9:	72 39                	jb     1112e4 <_CORE_mutex_Seize_interrupt_trylock+0xcc>
        );                                                            
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
  1112ab:	c7 42 34 06 00 00 00 	movl   $0x6,0x34(%edx)                
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
  1112b2:	c7 40 50 01 00 00 00 	movl   $0x1,0x50(%eax)                
        the_mutex->nest_count = 0;     /* undo locking above */       
  1112b9:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
        executing->resource_count--;   /* undo locking above */       
  1112c0:	89 5a 1c             	mov    %ebx,0x1c(%edx)                
        _ISR_Enable( *level_p );                                      
  1112c3:	ff 31                	pushl  (%ecx)                         
  1112c5:	9d                   	popf                                  
        return 0;                                                     
  1112c6:	31 c0                	xor    %eax,%eax                      
  1112c8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1112cb:	5b                   	pop    %ebx                           
  1112cc:	5e                   	pop    %esi                           
  1112cd:	c9                   	leave                                 
  1112ce:	c3                   	ret                                   
  1112cf:	90                   	nop                                   
   *  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 ) ) {                  
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
  1112d0:	4b                   	dec    %ebx                           
  1112d1:	75 9a                	jne    11126d <_CORE_mutex_Seize_interrupt_trylock+0x55>
        the_mutex->nest_count++;                                      
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
      #if defined(RTEMS_POSIX_API)                                    
        case CORE_MUTEX_NESTING_IS_ERROR:                             
          executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED;
  1112d3:	c7 42 34 02 00 00 00 	movl   $0x2,0x34(%edx)                
          _ISR_Enable( *level_p );                                    
  1112da:	ff 31                	pushl  (%ecx)                         
  1112dc:	9d                   	popf                                  
          return 0;                                                   
  1112dd:	31 c0                	xor    %eax,%eax                      
  1112df:	eb 91                	jmp    111272 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  1112e1:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  1112e4:	8b 15 50 7e 12 00    	mov    0x127e50,%edx                  
  1112ea:	42                   	inc    %edx                           
  1112eb:	89 15 50 7e 12 00    	mov    %edx,0x127e50                  
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( *level_p );                                      
  1112f1:	ff 31                	pushl  (%ecx)                         
  1112f3:	9d                   	popf                                  
        _Thread_Change_priority(                                      
  1112f4:	52                   	push   %edx                           
  1112f5:	6a 00                	push   $0x0                           
  1112f7:	ff 70 4c             	pushl  0x4c(%eax)                     
  1112fa:	ff 70 5c             	pushl  0x5c(%eax)                     
  1112fd:	e8 ce c2 ff ff       	call   10d5d0 <_Thread_Change_priority>
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         false                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
  111302:	e8 01 c7 ff ff       	call   10da08 <_Thread_Enable_dispatch>
  111307:	83 c4 10             	add    $0x10,%esp                     
        return 0;                                                     
  11130a:	31 c0                	xor    %eax,%eax                      
  11130c:	e9 61 ff ff ff       	jmp    111272 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  111311:	8d 76 00             	lea    0x0(%esi),%esi                 
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
      current = executing->current_priority;                          
      if ( current == ceiling ) {                                     
        _ISR_Enable( *level_p );                                      
  111314:	ff 31                	pushl  (%ecx)                         
  111316:	9d                   	popf                                  
        return 0;                                                     
  111317:	31 c0                	xor    %eax,%eax                      
  111319:	e9 54 ff ff ff       	jmp    111272 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
                                                                      

0010c35c <_CORE_mutex_Surrender>: #else Objects_Id id __attribute__((unused)), CORE_mutex_API_mp_support_callout api_mutex_mp_support __attribute__((unused)) #endif ) {
  10c35c:	55                   	push   %ebp                           
  10c35d:	89 e5                	mov    %esp,%ebp                      
  10c35f:	53                   	push   %ebx                           
  10c360:	83 ec 04             	sub    $0x4,%esp                      
  10c363:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Thread_Control *the_thread;                                         
  Thread_Control *holder;                                             
                                                                      
  holder = the_mutex->holder;                                         
  10c366:	8b 43 5c             	mov    0x5c(%ebx),%eax                
   *  allowed when the mutex in quetion is FIFO or simple Priority    
   *  discipline.  But Priority Ceiling or Priority Inheritance mutexes
   *  must be released by the thread which acquired them.             
   */                                                                 
                                                                      
  if ( the_mutex->Attributes.only_owner_release ) {                   
  10c369:	80 7b 44 00          	cmpb   $0x0,0x44(%ebx)                
  10c36d:	74 15                	je     10c384 <_CORE_mutex_Surrender+0x28>
    if ( !_Thread_Is_executing( holder ) )                            
  10c36f:	3b 05 f8 83 12 00    	cmp    0x1283f8,%eax                  
  10c375:	74 0d                	je     10c384 <_CORE_mutex_Surrender+0x28>
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
  10c377:	b8 03 00 00 00       	mov    $0x3,%eax                      
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10c37c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c37f:	c9                   	leave                                 
  10c380:	c3                   	ret                                   
  10c381:	8d 76 00             	lea    0x0(%esi),%esi                 
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
  }                                                                   
                                                                      
  /* XXX already unlocked -- not right status */                      
                                                                      
  if ( !the_mutex->nest_count )                                       
  10c384:	8b 53 54             	mov    0x54(%ebx),%edx                
  10c387:	85 d2                	test   %edx,%edx                      
  10c389:	74 51                	je     10c3dc <_CORE_mutex_Surrender+0x80>
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
  10c38b:	4a                   	dec    %edx                           
  10c38c:	89 53 54             	mov    %edx,0x54(%ebx)                
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
  10c38f:	85 d2                	test   %edx,%edx                      
  10c391:	75 49                	jne    10c3dc <_CORE_mutex_Surrender+0x80>
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10c393:	8b 53 48             	mov    0x48(%ebx),%edx                
                                                                      
  /*                                                                  
   *  Formally release the mutex before possibly transferring it to a 
   *  blocked thread.                                                 
   */                                                                 
  if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||   
  10c396:	83 fa 02             	cmp    $0x2,%edx                      
  10c399:	74 69                	je     10c404 <_CORE_mutex_Surrender+0xa8>
  10c39b:	83 fa 03             	cmp    $0x3,%edx                      
  10c39e:	74 64                	je     10c404 <_CORE_mutex_Surrender+0xa8>
    if ( holder->resource_count == 0 &&                               
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, true ); 
    }                                                                 
  }                                                                   
  the_mutex->holder    = NULL;                                        
  10c3a0:	c7 43 5c 00 00 00 00 	movl   $0x0,0x5c(%ebx)                
  the_mutex->holder_id = 0;                                           
  10c3a7:	c7 43 60 00 00 00 00 	movl   $0x0,0x60(%ebx)                
                                                                      
  /*                                                                  
   *  Now we check if another thread was waiting for this mutex.  If so,
   *  transfer the mutex to that thread.                              
   */                                                                 
  if ( ( the_thread = _Thread_queue_Dequeue( &the_mutex->Wait_queue ) ) ) {
  10c3ae:	83 ec 0c             	sub    $0xc,%esp                      
  10c3b1:	53                   	push   %ebx                           
  10c3b2:	e8 d1 19 00 00       	call   10dd88 <_Thread_queue_Dequeue> 
  10c3b7:	83 c4 10             	add    $0x10,%esp                     
  10c3ba:	85 c0                	test   %eax,%eax                      
  10c3bc:	74 7a                	je     10c438 <_CORE_mutex_Surrender+0xdc>
                                                                      
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
  10c3be:	89 43 5c             	mov    %eax,0x5c(%ebx)                
      the_mutex->holder_id  = the_thread->Object.id;                  
  10c3c1:	8b 50 08             	mov    0x8(%eax),%edx                 
  10c3c4:	89 53 60             	mov    %edx,0x60(%ebx)                
      the_mutex->nest_count = 1;                                      
  10c3c7:	c7 43 54 01 00 00 00 	movl   $0x1,0x54(%ebx)                
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
  10c3ce:	8b 53 48             	mov    0x48(%ebx),%edx                
  10c3d1:	83 fa 02             	cmp    $0x2,%edx                      
  10c3d4:	74 56                	je     10c42c <_CORE_mutex_Surrender+0xd0>
  10c3d6:	83 fa 03             	cmp    $0x3,%edx                      
  10c3d9:	74 09                	je     10c3e4 <_CORE_mutex_Surrender+0x88>
  10c3db:	90                   	nop                                   
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10c3dc:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c3de:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c3e1:	c9                   	leave                                 
  10c3e2:	c3                   	ret                                   
  10c3e3:	90                   	nop                                   
          _CORE_mutex_Push_priority( the_mutex, the_thread );         
          the_thread->resource_count++;                               
          break;                                                      
        case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:                 
          _CORE_mutex_Push_priority( the_mutex, the_thread );         
          the_thread->resource_count++;                               
  10c3e4:	ff 40 1c             	incl   0x1c(%eax)                     
          if (the_mutex->Attributes.priority_ceiling <                
  10c3e7:	8b 53 4c             	mov    0x4c(%ebx),%edx                
  10c3ea:	3b 50 14             	cmp    0x14(%eax),%edx                
  10c3ed:	73 ed                	jae    10c3dc <_CORE_mutex_Surrender+0x80>
              the_thread->current_priority){                          
              _Thread_Change_priority(                                
  10c3ef:	51                   	push   %ecx                           
  10c3f0:	6a 00                	push   $0x0                           
  10c3f2:	52                   	push   %edx                           
  10c3f3:	50                   	push   %eax                           
  10c3f4:	e8 d7 11 00 00       	call   10d5d0 <_Thread_Change_priority>
  10c3f9:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10c3fc:	31 c0                	xor    %eax,%eax                      
  10c3fe:	e9 79 ff ff ff       	jmp    10c37c <_CORE_mutex_Surrender+0x20>
  10c403:	90                   	nop                                   
      _CORE_mutex_Pop_priority( the_mutex, holder );                  
                                                                      
    if ( pop_status != CORE_MUTEX_STATUS_SUCCESSFUL )                 
      return pop_status;                                              
                                                                      
    holder->resource_count--;                                         
  10c404:	8b 50 1c             	mov    0x1c(%eax),%edx                
  10c407:	4a                   	dec    %edx                           
  10c408:	89 50 1c             	mov    %edx,0x1c(%eax)                
    /*                                                                
     *  Whether or not someone is waiting for the mutex, an           
     *  inherited priority must be lowered if this is the last        
     *  mutex (i.e. resource) this task has.                          
     */                                                               
    if ( holder->resource_count == 0 &&                               
  10c40b:	85 d2                	test   %edx,%edx                      
  10c40d:	75 91                	jne    10c3a0 <_CORE_mutex_Surrender+0x44>
         holder->real_priority != holder->current_priority ) {        
  10c40f:	8b 50 18             	mov    0x18(%eax),%edx                
    /*                                                                
     *  Whether or not someone is waiting for the mutex, an           
     *  inherited priority must be lowered if this is the last        
     *  mutex (i.e. resource) this task has.                          
     */                                                               
    if ( holder->resource_count == 0 &&                               
  10c412:	3b 50 14             	cmp    0x14(%eax),%edx                
  10c415:	74 89                	je     10c3a0 <_CORE_mutex_Surrender+0x44>
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, true ); 
  10c417:	51                   	push   %ecx                           
  10c418:	6a 01                	push   $0x1                           
  10c41a:	52                   	push   %edx                           
  10c41b:	50                   	push   %eax                           
  10c41c:	e8 af 11 00 00       	call   10d5d0 <_Thread_Change_priority>
  10c421:	83 c4 10             	add    $0x10,%esp                     
  10c424:	e9 77 ff ff ff       	jmp    10c3a0 <_CORE_mutex_Surrender+0x44>
  10c429:	8d 76 00             	lea    0x0(%esi),%esi                 
        case CORE_MUTEX_DISCIPLINES_FIFO:                             
        case CORE_MUTEX_DISCIPLINES_PRIORITY:                         
          break;                                                      
        case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:                 
          _CORE_mutex_Push_priority( the_mutex, the_thread );         
          the_thread->resource_count++;                               
  10c42c:	ff 40 1c             	incl   0x1c(%eax)                     
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10c42f:	31 c0                	xor    %eax,%eax                      
        case CORE_MUTEX_DISCIPLINES_PRIORITY:                         
          break;                                                      
        case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:                 
          _CORE_mutex_Push_priority( the_mutex, the_thread );         
          the_thread->resource_count++;                               
          break;                                                      
  10c431:	e9 46 ff ff ff       	jmp    10c37c <_CORE_mutex_Surrender+0x20>
  10c436:	66 90                	xchg   %ax,%ax                        
          }                                                           
          break;                                                      
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
  10c438:	c7 43 50 01 00 00 00 	movl   $0x1,0x50(%ebx)                
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10c43f:	31 c0                	xor    %eax,%eax                      
  10c441:	e9 36 ff ff ff       	jmp    10c37c <_CORE_mutex_Surrender+0x20>
                                                                      

00115318 <_CORE_semaphore_Seize>: CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) {
  115318:	55                   	push   %ebp                           
  115319:	89 e5                	mov    %esp,%ebp                      
  11531b:	57                   	push   %edi                           
  11531c:	56                   	push   %esi                           
  11531d:	53                   	push   %ebx                           
  11531e:	83 ec 1c             	sub    $0x1c,%esp                     
  115321:	8b 45 08             	mov    0x8(%ebp),%eax                 
  115324:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  115327:	8b 75 14             	mov    0x14(%ebp),%esi                
  11532a:	8a 5d 10             	mov    0x10(%ebp),%bl                 
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  11532d:	8b 15 78 e1 12 00    	mov    0x12e178,%edx                  
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  115333:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  _ISR_Disable( level );                                              
  11533a:	9c                   	pushf                                 
  11533b:	fa                   	cli                                   
  11533c:	8f 45 e4             	popl   -0x1c(%ebp)                    
  if ( the_semaphore->count != 0 ) {                                  
  11533f:	8b 48 48             	mov    0x48(%eax),%ecx                
  115342:	85 c9                	test   %ecx,%ecx                      
  115344:	75 46                	jne    11538c <_CORE_semaphore_Seize+0x74>
  /*                                                                  
   *  If the semaphore was not available and the caller was not willing
   *  to block, then return immediately with a status indicating that 
   *  the semaphore was not available and the caller never blocked.   
   */                                                                 
  if ( !wait ) {                                                      
  115346:	84 db                	test   %bl,%bl                        
  115348:	75 16                	jne    115360 <_CORE_semaphore_Seize+0x48>
    _ISR_Enable( level );                                             
  11534a:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  11534d:	9d                   	popf                                  
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
  11534e:	c7 42 34 01 00 00 00 	movl   $0x1,0x34(%edx)                
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue = &the_semaphore->Wait_queue;                 
  executing->Wait.id    = id;                                         
  _ISR_Enable( level );                                               
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
}                                                                     
  115355:	83 c4 1c             	add    $0x1c,%esp                     
  115358:	5b                   	pop    %ebx                           
  115359:	5e                   	pop    %esi                           
  11535a:	5f                   	pop    %edi                           
  11535b:	c9                   	leave                                 
  11535c:	c3                   	ret                                   
  11535d:	8d 76 00             	lea    0x0(%esi),%esi                 
  115360:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)                
  /*                                                                  
   *  If the semaphore is not available and the caller is willing to  
   *  block, then we now block the caller with optional timeout.      
   */                                                                 
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue = &the_semaphore->Wait_queue;                 
  115367:	89 42 44             	mov    %eax,0x44(%edx)                
  executing->Wait.id    = id;                                         
  11536a:	89 7a 20             	mov    %edi,0x20(%edx)                
  _ISR_Enable( level );                                               
  11536d:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  115370:	9d                   	popf                                  
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
  115371:	c7 45 10 00 1c 11 00 	movl   $0x111c00,0x10(%ebp)           
  115378:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  11537b:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  11537e:	83 c4 1c             	add    $0x1c,%esp                     
  115381:	5b                   	pop    %ebx                           
  115382:	5e                   	pop    %esi                           
  115383:	5f                   	pop    %edi                           
  115384:	c9                   	leave                                 
   */                                                                 
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue = &the_semaphore->Wait_queue;                 
  executing->Wait.id    = id;                                         
  _ISR_Enable( level );                                               
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
  115385:	e9 4a c5 ff ff       	jmp    1118d4 <_Thread_queue_Enqueue_with_handler>
  11538a:	66 90                	xchg   %ax,%ax                        
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  _ISR_Disable( level );                                              
  if ( the_semaphore->count != 0 ) {                                  
    the_semaphore->count -= 1;                                        
  11538c:	49                   	dec    %ecx                           
  11538d:	89 48 48             	mov    %ecx,0x48(%eax)                
    _ISR_Enable( level );                                             
  115390:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  115393:	9d                   	popf                                  
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue = &the_semaphore->Wait_queue;                 
  executing->Wait.id    = id;                                         
  _ISR_Enable( level );                                               
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
}                                                                     
  115394:	83 c4 1c             	add    $0x1c,%esp                     
  115397:	5b                   	pop    %ebx                           
  115398:	5e                   	pop    %esi                           
  115399:	5f                   	pop    %edi                           
  11539a:	c9                   	leave                                 
  11539b:	c3                   	ret                                   
                                                                      

0010c494 <_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 ) {
  10c494:	55                   	push   %ebp                           
  10c495:	89 e5                	mov    %esp,%ebp                      
  10c497:	53                   	push   %ebx                           
  10c498:	83 ec 10             	sub    $0x10,%esp                     
  10c49b:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
                                                                      
  if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) {
  10c49e:	53                   	push   %ebx                           
  10c49f:	e8 e4 18 00 00       	call   10dd88 <_Thread_queue_Dequeue> 
  10c4a4:	83 c4 10             	add    $0x10,%esp                     
  10c4a7:	85 c0                	test   %eax,%eax                      
  10c4a9:	74 09                	je     10c4b4 <_CORE_semaphore_Surrender+0x20>
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
  10c4ab:	31 c0                	xor    %eax,%eax                      
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
  10c4ad:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c4b0:	c9                   	leave                                 
  10c4b1:	c3                   	ret                                   
  10c4b2:	66 90                	xchg   %ax,%ax                        
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      (*api_semaphore_mp_support) ( the_thread, id );                 
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
  10c4b4:	9c                   	pushf                                 
  10c4b5:	fa                   	cli                                   
  10c4b6:	5a                   	pop    %edx                           
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
  10c4b7:	8b 43 48             	mov    0x48(%ebx),%eax                
  10c4ba:	3b 43 40             	cmp    0x40(%ebx),%eax                
  10c4bd:	72 0d                	jb     10c4cc <_CORE_semaphore_Surrender+0x38><== ALWAYS TAKEN
        the_semaphore->count += 1;                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
  10c4bf:	b8 04 00 00 00       	mov    $0x4,%eax                      <== NOT EXECUTED
    _ISR_Enable( level );                                             
  10c4c4:	52                   	push   %edx                           
  10c4c5:	9d                   	popf                                  
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
  10c4c6:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c4c9:	c9                   	leave                                 
  10c4ca:	c3                   	ret                                   
  10c4cb:	90                   	nop                                   
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
        the_semaphore->count += 1;                                    
  10c4cc:	40                   	inc    %eax                           
  10c4cd:	89 43 48             	mov    %eax,0x48(%ebx)                
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
  10c4d0:	31 c0                	xor    %eax,%eax                      
  10c4d2:	eb f0                	jmp    10c4c4 <_CORE_semaphore_Surrender+0x30>
                                                                      

0010c7d4 <_Chain_Get_with_empty_check>: bool _Chain_Get_with_empty_check( Chain_Control *chain, Chain_Node **node ) {
  10c7d4:	55                   	push   %ebp                           
  10c7d5:	89 e5                	mov    %esp,%ebp                      
  10c7d7:	57                   	push   %edi                           
  10c7d8:	56                   	push   %esi                           
  10c7d9:	53                   	push   %ebx                           
  10c7da:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c7dd:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  ISR_Level level;                                                    
  bool is_empty_now;                                                  
                                                                      
  _ISR_Disable( level );                                              
  10c7e0:	9c                   	pushf                                 
  10c7e1:	fa                   	cli                                   
  10c7e2:	5e                   	pop    %esi                           
  Chain_Node **the_node                                               
)                                                                     
{                                                                     
  bool is_empty_now = true;                                           
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10c7e3:	8d 58 04             	lea    0x4(%eax),%ebx                 
  Chain_Node *old_first = head->next;                                 
  10c7e6:	8b 10                	mov    (%eax),%edx                    
                                                                      
  if ( old_first != tail ) {                                          
  10c7e8:	39 d3                	cmp    %edx,%ebx                      
  10c7ea:	74 18                	je     10c804 <_Chain_Get_with_empty_check+0x30>
    Chain_Node *new_first = old_first->next;                          
  10c7ec:	8b 0a                	mov    (%edx),%ecx                    
                                                                      
    head->next = new_first;                                           
  10c7ee:	89 08                	mov    %ecx,(%eax)                    
    new_first->previous = head;                                       
  10c7f0:	89 41 04             	mov    %eax,0x4(%ecx)                 
                                                                      
    *the_node = old_first;                                            
  10c7f3:	89 17                	mov    %edx,(%edi)                    
                                                                      
    is_empty_now = new_first == tail;                                 
  10c7f5:	39 cb                	cmp    %ecx,%ebx                      
  10c7f7:	0f 94 c0             	sete   %al                            
  is_empty_now = _Chain_Get_with_empty_check_unprotected( chain, node );
  _ISR_Enable( level );                                               
  10c7fa:	56                   	push   %esi                           
  10c7fb:	9d                   	popf                                  
                                                                      
  return is_empty_now;                                                
}                                                                     
  10c7fc:	5b                   	pop    %ebx                           
  10c7fd:	5e                   	pop    %esi                           
  10c7fe:	5f                   	pop    %edi                           
  10c7ff:	c9                   	leave                                 
  10c800:	c3                   	ret                                   
  10c801:	8d 76 00             	lea    0x0(%esi),%esi                 
  } else                                                              
    *the_node = NULL;                                                 
  10c804:	c7 07 00 00 00 00    	movl   $0x0,(%edi)                    
RTEMS_INLINE_ROUTINE bool _Chain_Get_with_empty_check_unprotected(    
  Chain_Control *the_chain,                                           
  Chain_Node **the_node                                               
)                                                                     
{                                                                     
  bool is_empty_now = true;                                           
  10c80a:	b0 01                	mov    $0x1,%al                       
  10c80c:	eb ec                	jmp    10c7fa <_Chain_Get_with_empty_check+0x26>
                                                                      

001110e4 <_Chain_Initialize>: Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) {
  1110e4:	55                   	push   %ebp                           
  1110e5:	89 e5                	mov    %esp,%ebp                      
  1110e7:	57                   	push   %edi                           
  1110e8:	56                   	push   %esi                           
  1110e9:	53                   	push   %ebx                           
  1110ea:	83 ec 08             	sub    $0x8,%esp                      
  1110ed:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  1110f0:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  1110f3:	8b 75 14             	mov    0x14(%ebp),%esi                
  size_t count = number_nodes;                                        
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  1110f6:	8d 47 04             	lea    0x4(%edi),%eax                 
  1110f9:	89 45 f0             	mov    %eax,-0x10(%ebp)               
  Chain_Node *current = head;                                         
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
  1110fc:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)                 
                                                                      
  while ( count-- ) {                                                 
  111103:	85 c9                	test   %ecx,%ecx                      
  111105:	74 35                	je     11113c <_Chain_Initialize+0x58><== NEVER TAKEN
  111107:	49                   	dec    %ecx                           
  111108:	89 4d ec             	mov    %ecx,-0x14(%ebp)               
{                                                                     
  size_t count = number_nodes;                                        
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *current = head;                                         
  Chain_Node *next = starting_address;                                
  11110b:	8b 45 0c             	mov    0xc(%ebp),%eax                 
)                                                                     
{                                                                     
  size_t count = number_nodes;                                        
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *current = head;                                         
  11110e:	89 fa                	mov    %edi,%edx                      
  111110:	eb 07                	jmp    111119 <_Chain_Initialize+0x35>
  111112:	66 90                	xchg   %ax,%ax                        
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
  111114:	89 c2                	mov    %eax,%edx                      
    current->next  = next;                                            
    next->previous = current;                                         
    current        = next;                                            
    next           = (Chain_Node *)                                   
  111116:	89 d8                	mov    %ebx,%eax                      
  111118:	49                   	dec    %ecx                           
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
    current->next  = next;                                            
  111119:	89 02                	mov    %eax,(%edx)                    
    next->previous = current;                                         
  11111b:	89 50 04             	mov    %edx,0x4(%eax)                 
 *    node_size        - size of node in bytes                        
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Chain_Initialize(                                               
  11111e:	8d 1c 30             	lea    (%eax,%esi,1),%ebx             
  Chain_Node *current = head;                                         
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
  111121:	85 c9                	test   %ecx,%ecx                      
  111123:	75 ef                	jne    111114 <_Chain_Initialize+0x30>
 *    node_size        - size of node in bytes                        
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Chain_Initialize(                                               
  111125:	0f af 75 ec          	imul   -0x14(%ebp),%esi               
  111129:	03 75 0c             	add    0xc(%ebp),%esi                 
    current        = next;                                            
    next           = (Chain_Node *)                                   
                        _Addresses_Add_offset( (void *) next, node_size );
  }                                                                   
                                                                      
  current->next = tail;                                               
  11112c:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  11112f:	89 06                	mov    %eax,(%esi)                    
  tail->previous = current;                                           
  111131:	89 77 08             	mov    %esi,0x8(%edi)                 
}                                                                     
  111134:	83 c4 08             	add    $0x8,%esp                      
  111137:	5b                   	pop    %ebx                           
  111138:	5e                   	pop    %esi                           
  111139:	5f                   	pop    %edi                           
  11113a:	c9                   	leave                                 
  11113b:	c3                   	ret                                   
)                                                                     
{                                                                     
  size_t count = number_nodes;                                        
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *current = head;                                         
  11113c:	89 fe                	mov    %edi,%esi                      <== NOT EXECUTED
  11113e:	eb ec                	jmp    11112c <_Chain_Initialize+0x48><== NOT EXECUTED
                                                                      

0010b0b8 <_Event_Seize>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) {
  10b0b8:	55                   	push   %ebp                           
  10b0b9:	89 e5                	mov    %esp,%ebp                      
  10b0bb:	57                   	push   %edi                           
  10b0bc:	56                   	push   %esi                           
  10b0bd:	53                   	push   %ebx                           
  10b0be:	83 ec 2c             	sub    $0x2c,%esp                     
  10b0c1:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b0c4:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10b0c7:	8b 55 10             	mov    0x10(%ebp),%edx                
  10b0ca:	89 55 dc             	mov    %edx,-0x24(%ebp)               
  10b0cd:	8b 7d 14             	mov    0x14(%ebp),%edi                
  rtems_event_set                   pending_events;                   
  ISR_Level                         level;                            
  RTEMS_API_Control                *api;                              
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
  10b0d0:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
  10b0d6:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)                
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  10b0dd:	8b b3 e8 00 00 00    	mov    0xe8(%ebx),%esi                
                                                                      
  _ISR_Disable( level );                                              
  10b0e3:	9c                   	pushf                                 
  10b0e4:	fa                   	cli                                   
  10b0e5:	8f 45 e0             	popl   -0x20(%ebp)                    
  pending_events = api->pending_events;                               
  10b0e8:	8b 16                	mov    (%esi),%edx                    
  10b0ea:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
  10b0ed:	21 c2                	and    %eax,%edx                      
  10b0ef:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10b0f2:	74 0d                	je     10b101 <_Event_Seize+0x49>     
  10b0f4:	39 d0                	cmp    %edx,%eax                      
  10b0f6:	0f 84 84 00 00 00    	je     10b180 <_Event_Seize+0xc8>     
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
  10b0fc:	f6 c1 02             	test   $0x2,%cl                       
  10b0ff:	75 7f                	jne    10b180 <_Event_Seize+0xc8>     
    _ISR_Enable( level );                                             
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
  10b101:	f6 c1 01             	test   $0x1,%cl                       
  10b104:	75 62                	jne    10b168 <_Event_Seize+0xb0>     
   *  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;          
  10b106:	89 4b 30             	mov    %ecx,0x30(%ebx)                
  executing->Wait.count             = (uint32_t) event_in;            
  10b109:	89 43 24             	mov    %eax,0x24(%ebx)                
  executing->Wait.return_argument   = event_out;                      
  10b10c:	89 7b 28             	mov    %edi,0x28(%ebx)                
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
  10b10f:	c7 05 28 88 12 00 01 	movl   $0x1,0x128828                  
  10b116:	00 00 00                                                    
                                                                      
  _ISR_Enable( level );                                               
  10b119:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b11c:	9d                   	popf                                  
                                                                      
  if ( ticks ) {                                                      
  10b11d:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10b120:	85 c0                	test   %eax,%eax                      
  10b122:	0f 85 80 00 00 00    	jne    10b1a8 <_Event_Seize+0xf0>     
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  }                                                                   
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
  10b128:	83 ec 08             	sub    $0x8,%esp                      
  10b12b:	68 00 01 00 00       	push   $0x100                         
  10b130:	53                   	push   %ebx                           
  10b131:	e8 f6 30 00 00       	call   10e22c <_Thread_Set_state>     
                                                                      
  _ISR_Disable( level );                                              
  10b136:	9c                   	pushf                                 
  10b137:	fa                   	cli                                   
  10b138:	5a                   	pop    %edx                           
                                                                      
  sync_state = _Event_Sync_state;                                     
  10b139:	a1 28 88 12 00       	mov    0x128828,%eax                  
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
  10b13e:	c7 05 28 88 12 00 00 	movl   $0x0,0x128828                  
  10b145:	00 00 00                                                    
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
  10b148:	83 c4 10             	add    $0x10,%esp                     
  10b14b:	83 f8 01             	cmp    $0x1,%eax                      
  10b14e:	74 4c                	je     10b19c <_Event_Seize+0xe4>     
   *  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 );  
  10b150:	89 55 10             	mov    %edx,0x10(%ebp)                
  10b153:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  10b156:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10b159:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b15c:	5b                   	pop    %ebx                           
  10b15d:	5e                   	pop    %esi                           
  10b15e:	5f                   	pop    %edi                           
  10b15f:	c9                   	leave                                 
   *  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 );  
  10b160:	e9 1f 24 00 00       	jmp    10d584 <_Thread_blocking_operation_Cancel>
  10b165:	8d 76 00             	lea    0x0(%esi),%esi                 
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
    _ISR_Enable( level );                                             
  10b168:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b16b:	9d                   	popf                                  
    executing->Wait.return_code = RTEMS_UNSATISFIED;                  
  10b16c:	c7 43 34 0d 00 00 00 	movl   $0xd,0x34(%ebx)                
    *event_out = seized_events;                                       
  10b173:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b176:	89 17                	mov    %edx,(%edi)                    
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
}                                                                     
  10b178:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b17b:	5b                   	pop    %ebx                           
  10b17c:	5e                   	pop    %esi                           
  10b17d:	5f                   	pop    %edi                           
  10b17e:	c9                   	leave                                 
  10b17f:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Clear(               
 rtems_event_set the_event_set,                                       
 rtems_event_set the_mask                                             
)                                                                     
{                                                                     
   return ( the_event_set & ~(the_mask) );                            
  10b180:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b183:	f7 d0                	not    %eax                           
  10b185:	23 45 d4             	and    -0x2c(%ebp),%eax               
  10b188:	89 06                	mov    %eax,(%esi)                    
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
    api->pending_events =                                             
      _Event_sets_Clear( pending_events, seized_events );             
    _ISR_Enable( level );                                             
  10b18a:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b18d:	9d                   	popf                                  
    *event_out = seized_events;                                       
  10b18e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b191:	89 07                	mov    %eax,(%edi)                    
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
}                                                                     
  10b193:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b196:	5b                   	pop    %ebx                           
  10b197:	5e                   	pop    %esi                           
  10b198:	5f                   	pop    %edi                           
  10b199:	c9                   	leave                                 
  10b19a:	c3                   	ret                                   
  10b19b:	90                   	nop                                   
  _ISR_Disable( level );                                              
                                                                      
  sync_state = _Event_Sync_state;                                     
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
    _ISR_Enable( level );                                             
  10b19c:	52                   	push   %edx                           
  10b19d:	9d                   	popf                                  
   *  The blocking thread was satisfied by an ISR or timed out.       
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  _Thread_blocking_operation_Cancel( sync_state, executing, level );  
}                                                                     
  10b19e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b1a1:	5b                   	pop    %ebx                           
  10b1a2:	5e                   	pop    %esi                           
  10b1a3:	5f                   	pop    %edi                           
  10b1a4:	c9                   	leave                                 
  10b1a5:	c3                   	ret                                   
  10b1a6:	66 90                	xchg   %ax,%ax                        
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  if ( ticks ) {                                                      
    _Watchdog_Initialize(                                             
  10b1a8:	8b 43 08             	mov    0x8(%ebx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10b1ab:	c7 43 50 00 00 00 00 	movl   $0x0,0x50(%ebx)                
  the_watchdog->routine   = routine;                                  
  10b1b2:	c7 43 64 5c b3 10 00 	movl   $0x10b35c,0x64(%ebx)           
  the_watchdog->id        = id;                                       
  10b1b9:	89 43 68             	mov    %eax,0x68(%ebx)                
  the_watchdog->user_data = user_data;                                
  10b1bc:	c7 43 6c 00 00 00 00 	movl   $0x0,0x6c(%ebx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10b1c3:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10b1c6:	89 43 54             	mov    %eax,0x54(%ebx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10b1c9:	83 ec 08             	sub    $0x8,%esp                      
      &executing->Timer,                                              
      _Event_Timeout,                                                 
      executing->Object.id,                                           
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  10b1cc:	8d 43 48             	lea    0x48(%ebx),%eax                
  10b1cf:	50                   	push   %eax                           
  10b1d0:	68 20 7f 12 00       	push   $0x127f20                      
  10b1d5:	e8 a2 35 00 00       	call   10e77c <_Watchdog_Insert>      
  10b1da:	83 c4 10             	add    $0x10,%esp                     
  10b1dd:	e9 46 ff ff ff       	jmp    10b128 <_Event_Seize+0x70>     
                                                                      

0010b238 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) {
  10b238:	55                   	push   %ebp                           
  10b239:	89 e5                	mov    %esp,%ebp                      
  10b23b:	57                   	push   %edi                           
  10b23c:	56                   	push   %esi                           
  10b23d:	53                   	push   %ebx                           
  10b23e:	83 ec 2c             	sub    $0x2c,%esp                     
  10b241:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  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 ];               
  10b244:	8b 8b e8 00 00 00    	mov    0xe8(%ebx),%ecx                
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
  10b24a:	8b 7b 30             	mov    0x30(%ebx),%edi                
                                                                      
  _ISR_Disable( level );                                              
  10b24d:	9c                   	pushf                                 
  10b24e:	fa                   	cli                                   
  10b24f:	8f 45 d4             	popl   -0x2c(%ebp)                    
  pending_events  = api->pending_events;                              
  10b252:	8b 11                	mov    (%ecx),%edx                    
  event_condition = (rtems_event_set) the_thread->Wait.count;         
  10b254:	8b 43 24             	mov    0x24(%ebx),%eax                
  seized_events = _Event_sets_Get( pending_events, event_condition ); 
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
  10b257:	89 c6                	mov    %eax,%esi                      
  10b259:	21 d6                	and    %edx,%esi                      
  10b25b:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
  10b25e:	74 74                	je     10b2d4 <_Event_Surrender+0x9c> 
                                                                      
  /*                                                                  
   *  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() &&                                       
  10b260:	8b 35 f4 83 12 00    	mov    0x1283f4,%esi                  
  10b266:	85 f6                	test   %esi,%esi                      
  10b268:	74 0c                	je     10b276 <_Event_Surrender+0x3e> 
  10b26a:	3b 1d f8 83 12 00    	cmp    0x1283f8,%ebx                  
  10b270:	0f 84 96 00 00 00    	je     10b30c <_Event_Surrender+0xd4> 
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
  10b276:	f6 43 11 01          	testb  $0x1,0x11(%ebx)                
  10b27a:	74 4c                	je     10b2c8 <_Event_Surrender+0x90> 
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
  10b27c:	3b 45 e4             	cmp    -0x1c(%ebp),%eax               
  10b27f:	74 05                	je     10b286 <_Event_Surrender+0x4e> 
  10b281:	83 e7 02             	and    $0x2,%edi                      
  10b284:	74 42                	je     10b2c8 <_Event_Surrender+0x90> <== NEVER TAKEN
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Clear(               
 rtems_event_set the_event_set,                                       
 rtems_event_set the_mask                                             
)                                                                     
{                                                                     
   return ( the_event_set & ~(the_mask) );                            
  10b286:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b289:	f7 d0                	not    %eax                           
  10b28b:	21 d0                	and    %edx,%eax                      
  10b28d:	89 01                	mov    %eax,(%ecx)                    
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
  10b28f:	c7 43 24 00 00 00 00 	movl   $0x0,0x24(%ebx)                
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
  10b296:	8b 43 28             	mov    0x28(%ebx),%eax                
  10b299:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  10b29c:	89 30                	mov    %esi,(%eax)                    
                                                                      
      _ISR_Flash( level );                                            
  10b29e:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b2a1:	9d                   	popf                                  
  10b2a2:	fa                   	cli                                   
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
  10b2a3:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  10b2a7:	74 37                	je     10b2e0 <_Event_Surrender+0xa8> 
        _ISR_Enable( level );                                         
  10b2a9:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b2ac:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10b2ad:	83 ec 08             	sub    $0x8,%esp                      
  10b2b0:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10b2b5:	53                   	push   %ebx                           
  10b2b6:	e8 e9 23 00 00       	call   10d6a4 <_Thread_Clear_state>   
  10b2bb:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
  10b2be:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b2c1:	5b                   	pop    %ebx                           
  10b2c2:	5e                   	pop    %esi                           
  10b2c3:	5f                   	pop    %edi                           
  10b2c4:	c9                   	leave                                 
  10b2c5:	c3                   	ret                                   
  10b2c6:	66 90                	xchg   %ax,%ax                        
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
  10b2c8:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b2cb:	9d                   	popf                                  
}                                                                     
  10b2cc:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b2cf:	5b                   	pop    %ebx                           
  10b2d0:	5e                   	pop    %esi                           
  10b2d1:	5f                   	pop    %edi                           
  10b2d2:	c9                   	leave                                 
  10b2d3:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
    _ISR_Enable( level );                                             
  10b2d4:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b2d7:	9d                   	popf                                  
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
  10b2d8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b2db:	5b                   	pop    %ebx                           
  10b2dc:	5e                   	pop    %esi                           
  10b2dd:	5f                   	pop    %edi                           
  10b2de:	c9                   	leave                                 
  10b2df:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
  10b2e0:	c7 43 50 03 00 00 00 	movl   $0x3,0x50(%ebx)                
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
        _ISR_Enable( level );                                         
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
  10b2e7:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b2ea:	9d                   	popf                                  
        (void) _Watchdog_Remove( &the_thread->Timer );                
  10b2eb:	83 ec 0c             	sub    $0xc,%esp                      
  10b2ee:	8d 43 48             	lea    0x48(%ebx),%eax                
  10b2f1:	50                   	push   %eax                           
  10b2f2:	e8 c5 35 00 00       	call   10e8bc <_Watchdog_Remove>      
  10b2f7:	58                   	pop    %eax                           
  10b2f8:	5a                   	pop    %edx                           
  10b2f9:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10b2fe:	53                   	push   %ebx                           
  10b2ff:	e8 a0 23 00 00       	call   10d6a4 <_Thread_Clear_state>   
  10b304:	83 c4 10             	add    $0x10,%esp                     
  10b307:	eb c3                	jmp    10b2cc <_Event_Surrender+0x94> 
  10b309:	8d 76 00             	lea    0x0(%esi),%esi                 
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
  10b30c:	8b 35 28 88 12 00    	mov    0x128828,%esi                  
  /*                                                                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
  10b312:	83 fe 02             	cmp    $0x2,%esi                      
  10b315:	74 0d                	je     10b324 <_Event_Surrender+0xec> <== NEVER TAKEN
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
  10b317:	8b 35 28 88 12 00    	mov    0x128828,%esi                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
  10b31d:	4e                   	dec    %esi                           
  10b31e:	0f 85 52 ff ff ff    	jne    10b276 <_Event_Surrender+0x3e> 
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
  10b324:	3b 45 e4             	cmp    -0x1c(%ebp),%eax               
  10b327:	74 05                	je     10b32e <_Event_Surrender+0xf6> 
  10b329:	83 e7 02             	and    $0x2,%edi                      
  10b32c:	74 22                	je     10b350 <_Event_Surrender+0x118><== NEVER TAKEN
  10b32e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b331:	f7 d0                	not    %eax                           
  10b333:	21 d0                	and    %edx,%eax                      
  10b335:	89 01                	mov    %eax,(%ecx)                    
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
  10b337:	c7 43 24 00 00 00 00 	movl   $0x0,0x24(%ebx)                
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
  10b33e:	8b 43 28             	mov    0x28(%ebx),%eax                
  10b341:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b344:	89 10                	mov    %edx,(%eax)                    
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
  10b346:	c7 05 28 88 12 00 03 	movl   $0x3,0x128828                  
  10b34d:	00 00 00                                                    
    }                                                                 
    _ISR_Enable( level );                                             
  10b350:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10b353:	9d                   	popf                                  
    return;                                                           
  10b354:	e9 73 ff ff ff       	jmp    10b2cc <_Event_Surrender+0x94> 
                                                                      

0010b35c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
  10b35c:	55                   	push   %ebp                           
  10b35d:	89 e5                	mov    %esp,%ebp                      
  10b35f:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10b362:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b365:	50                   	push   %eax                           
  10b366:	ff 75 08             	pushl  0x8(%ebp)                      
  10b369:	e8 be 26 00 00       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  10b36e:	83 c4 10             	add    $0x10,%esp                     
  10b371:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b374:	85 d2                	test   %edx,%edx                      
  10b376:	75 37                	jne    10b3af <_Event_Timeout+0x53>   <== 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 );                                          
  10b378:	9c                   	pushf                                 
  10b379:	fa                   	cli                                   
  10b37a:	5a                   	pop    %edx                           
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
  10b37b:	c7 40 24 00 00 00 00 	movl   $0x0,0x24(%eax)                
        if ( _Thread_Is_executing( the_thread ) ) {                   
  10b382:	3b 05 f8 83 12 00    	cmp    0x1283f8,%eax                  
  10b388:	74 2a                	je     10b3b4 <_Event_Timeout+0x58>   
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
  10b38a:	c7 40 34 06 00 00 00 	movl   $0x6,0x34(%eax)                
      _ISR_Enable( level );                                           
  10b391:	52                   	push   %edx                           
  10b392:	9d                   	popf                                  
  10b393:	83 ec 08             	sub    $0x8,%esp                      
  10b396:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10b39b:	50                   	push   %eax                           
  10b39c:	e8 03 23 00 00       	call   10d6a4 <_Thread_Clear_state>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10b3a1:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10b3a6:	48                   	dec    %eax                           
  10b3a7:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
      _Thread_Unblock( the_thread );                                  
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  10b3ac:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
  10b3af:	c9                   	leave                                 
  10b3b0:	c3                   	ret                                   
  10b3b1:	8d 76 00             	lea    0x0(%esi),%esi                 
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
        if ( _Thread_Is_executing( the_thread ) ) {                   
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
  10b3b4:	8b 0d 28 88 12 00    	mov    0x128828,%ecx                  
  10b3ba:	49                   	dec    %ecx                           
  10b3bb:	75 cd                	jne    10b38a <_Event_Timeout+0x2e>   
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
  10b3bd:	c7 05 28 88 12 00 02 	movl   $0x2,0x128828                  
  10b3c4:	00 00 00                                                    
  10b3c7:	eb c1                	jmp    10b38a <_Event_Timeout+0x2e>   
                                                                      

00111374 <_Heap_Allocate_aligned_with_boundary>: Heap_Control *heap, uintptr_t alloc_size, uintptr_t alignment, uintptr_t boundary ) {
  111374:	55                   	push   %ebp                           
  111375:	89 e5                	mov    %esp,%ebp                      
  111377:	57                   	push   %edi                           
  111378:	56                   	push   %esi                           
  111379:	53                   	push   %ebx                           
  11137a:	83 ec 2c             	sub    $0x2c,%esp                     
  11137d:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
  111380:	8d 47 04             	lea    0x4(%edi),%eax                 
  111383:	89 45 dc             	mov    %eax,-0x24(%ebp)               
    - HEAP_ALLOC_BONUS;                                               
  uintptr_t const page_size = heap->page_size;                        
  111386:	8b 55 08             	mov    0x8(%ebp),%edx                 
  111389:	8b 52 10             	mov    0x10(%edx),%edx                
  11138c:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  Heap_Block *block = NULL;                                           
  uintptr_t alloc_begin = 0;                                          
  uint32_t search_count = 0;                                          
  bool search_again = false;                                          
                                                                      
  if ( block_size_floor < alloc_size ) {                              
  11138f:	39 c7                	cmp    %eax,%edi                      
  111391:	0f 87 69 01 00 00    	ja     111500 <_Heap_Allocate_aligned_with_boundary+0x18c>
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
  111397:	8b 5d 14             	mov    0x14(%ebp),%ebx                
  11139a:	85 db                	test   %ebx,%ebx                      
  11139c:	0f 85 56 01 00 00    	jne    1114f8 <_Heap_Allocate_aligned_with_boundary+0x184>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  1113a2:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1113a5:	8b 48 08             	mov    0x8(%eax),%ecx                 
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
  1113a8:	39 c8                	cmp    %ecx,%eax                      
  1113aa:	0f 84 50 01 00 00    	je     111500 <_Heap_Allocate_aligned_with_boundary+0x18c>
  1113b0:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)               
  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;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
  1113b7:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  1113ba:	83 c2 07             	add    $0x7,%edx                      
  1113bd:	89 55 c8             	mov    %edx,-0x38(%ebp)               
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
  1113c0:	c7 45 d0 04 00 00 00 	movl   $0x4,-0x30(%ebp)               
  1113c7:	29 7d d0             	sub    %edi,-0x30(%ebp)               
  1113ca:	eb 1e                	jmp    1113ea <_Heap_Allocate_aligned_with_boundary+0x76>
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
  1113cc:	8d 59 08             	lea    0x8(%ecx),%ebx                 
      }                                                               
                                                                      
      /* Statistics */                                                
      ++search_count;                                                 
                                                                      
      if ( alloc_begin != 0 ) {                                       
  1113cf:	85 db                	test   %ebx,%ebx                      
  1113d1:	0f 85 f1 00 00 00    	jne    1114c8 <_Heap_Allocate_aligned_with_boundary+0x154><== ALWAYS TAKEN
        break;                                                        
      }                                                               
                                                                      
      block = block->next;                                            
  1113d7:	8b 49 08             	mov    0x8(%ecx),%ecx                 
  1113da:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1113dd:	40                   	inc    %eax                           
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
  1113de:	39 4d 08             	cmp    %ecx,0x8(%ebp)                 
  1113e1:	0f 84 25 01 00 00    	je     11150c <_Heap_Allocate_aligned_with_boundary+0x198>
  1113e7:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
      /*                                                              
       * 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 ) {                
  1113ea:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  1113ed:	39 5d dc             	cmp    %ebx,-0x24(%ebp)               
  1113f0:	73 e5                	jae    1113d7 <_Heap_Allocate_aligned_with_boundary+0x63>
        if ( alignment == 0 ) {                                       
  1113f2:	8b 55 10             	mov    0x10(%ebp),%edx                
  1113f5:	85 d2                	test   %edx,%edx                      
  1113f7:	74 d3                	je     1113cc <_Heap_Allocate_aligned_with_boundary+0x58>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  1113f9:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1113fc:	8b 40 14             	mov    0x14(%eax),%eax                
  1113ff:	89 45 d8             	mov    %eax,-0x28(%ebp)               
    - 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;                
  111402:	83 e3 fe             	and    $0xfffffffe,%ebx               
  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;               
  111405:	8d 1c 19             	lea    (%ecx,%ebx,1),%ebx             
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
  111408:	8d 51 08             	lea    0x8(%ecx),%edx                 
  11140b:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
                                                                      
  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;                         
  11140e:	8b 75 c8             	mov    -0x38(%ebp),%esi               
  111411:	29 c6                	sub    %eax,%esi                      
  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;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
  111413:	01 de                	add    %ebx,%esi                      
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
  111415:	03 5d d0             	add    -0x30(%ebp),%ebx               
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  111418:	89 d8                	mov    %ebx,%eax                      
  11141a:	31 d2                	xor    %edx,%edx                      
  11141c:	f7 75 10             	divl   0x10(%ebp)                     
  11141f:	29 d3                	sub    %edx,%ebx                      
                                                                      
  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 ) {                          
  111421:	39 de                	cmp    %ebx,%esi                      
  111423:	73 0b                	jae    111430 <_Heap_Allocate_aligned_with_boundary+0xbc>
  111425:	89 f0                	mov    %esi,%eax                      
  111427:	31 d2                	xor    %edx,%edx                      
  111429:	f7 75 10             	divl   0x10(%ebp)                     
  11142c:	89 f3                	mov    %esi,%ebx                      
  11142e:	29 d3                	sub    %edx,%ebx                      
  }                                                                   
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
  111430:	8b 45 14             	mov    0x14(%ebp),%eax                
  111433:	85 c0                	test   %eax,%eax                      
  111435:	74 5b                	je     111492 <_Heap_Allocate_aligned_with_boundary+0x11e>
  /* 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;                               
  111437:	8d 34 3b             	lea    (%ebx,%edi,1),%esi             
  11143a:	89 f0                	mov    %esi,%eax                      
  11143c:	31 d2                	xor    %edx,%edx                      
  11143e:	f7 75 14             	divl   0x14(%ebp)                     
  111441:	89 f0                	mov    %esi,%eax                      
  111443:	29 d0                	sub    %edx,%eax                      
  /* 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 ) {
  111445:	39 c3                	cmp    %eax,%ebx                      
  111447:	73 49                	jae    111492 <_Heap_Allocate_aligned_with_boundary+0x11e>
  111449:	39 c6                	cmp    %eax,%esi                      
  11144b:	76 45                	jbe    111492 <_Heap_Allocate_aligned_with_boundary+0x11e>
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
    uintptr_t const boundary_floor = alloc_begin_floor + alloc_size;  
  11144d:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  111450:	01 fa                	add    %edi,%edx                      
  111452:	89 55 e0             	mov    %edx,-0x20(%ebp)               
    uintptr_t boundary_line = _Heap_Align_down( alloc_end, boundary );
                                                                      
    while ( alloc_begin < boundary_line && boundary_line < alloc_end ) {
      if ( boundary_line < boundary_floor ) {                         
  111455:	39 c2                	cmp    %eax,%edx                      
  111457:	0f 87 7a ff ff ff    	ja     1113d7 <_Heap_Allocate_aligned_with_boundary+0x63>
  11145d:	89 ce                	mov    %ecx,%esi                      
  11145f:	eb 10                	jmp    111471 <_Heap_Allocate_aligned_with_boundary+0xfd>
  111461:	8d 76 00             	lea    0x0(%esi),%esi                 
  /* 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 ) {
  111464:	39 c1                	cmp    %eax,%ecx                      
  111466:	76 28                	jbe    111490 <_Heap_Allocate_aligned_with_boundary+0x11c>
      if ( boundary_line < boundary_floor ) {                         
  111468:	39 45 e0             	cmp    %eax,-0x20(%ebp)               
  11146b:	0f 87 9f 00 00 00    	ja     111510 <_Heap_Allocate_aligned_with_boundary+0x19c><== NEVER TAKEN
        return 0;                                                     
      }                                                               
      alloc_begin = boundary_line - alloc_size;                       
  111471:	89 c3                	mov    %eax,%ebx                      
  111473:	29 fb                	sub    %edi,%ebx                      
  111475:	89 d8                	mov    %ebx,%eax                      
  111477:	31 d2                	xor    %edx,%edx                      
  111479:	f7 75 10             	divl   0x10(%ebp)                     
  11147c:	29 d3                	sub    %edx,%ebx                      
      alloc_begin = _Heap_Align_down( alloc_begin, alignment );       
      alloc_end = alloc_begin + alloc_size;                           
  11147e:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx             
  111481:	89 c8                	mov    %ecx,%eax                      
  111483:	31 d2                	xor    %edx,%edx                      
  111485:	f7 75 14             	divl   0x14(%ebp)                     
  111488:	89 c8                	mov    %ecx,%eax                      
  11148a:	29 d0                	sub    %edx,%eax                      
  /* 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 ) {
  11148c:	39 c3                	cmp    %eax,%ebx                      
  11148e:	72 d4                	jb     111464 <_Heap_Allocate_aligned_with_boundary+0xf0>
  111490:	89 f1                	mov    %esi,%ecx                      
      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 ) {                           
  111492:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)               
  111495:	0f 87 3c ff ff ff    	ja     1113d7 <_Heap_Allocate_aligned_with_boundary+0x63>
  11149b:	be f8 ff ff ff       	mov    $0xfffffff8,%esi               
  1114a0:	29 ce                	sub    %ecx,%esi                      
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
  1114a2:	01 de                	add    %ebx,%esi                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  1114a4:	89 d8                	mov    %ebx,%eax                      
  1114a6:	31 d2                	xor    %edx,%edx                      
  1114a8:	f7 75 cc             	divl   -0x34(%ebp)                    
    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;      
  1114ab:	29 d6                	sub    %edx,%esi                      
                                                                      
    if ( free_size >= min_block_size || free_size == 0 ) {            
  1114ad:	39 75 d8             	cmp    %esi,-0x28(%ebp)               
  1114b0:	0f 86 19 ff ff ff    	jbe    1113cf <_Heap_Allocate_aligned_with_boundary+0x5b>
  1114b6:	85 f6                	test   %esi,%esi                      
  1114b8:	0f 85 19 ff ff ff    	jne    1113d7 <_Heap_Allocate_aligned_with_boundary+0x63>
      }                                                               
                                                                      
      /* Statistics */                                                
      ++search_count;                                                 
                                                                      
      if ( alloc_begin != 0 ) {                                       
  1114be:	85 db                	test   %ebx,%ebx                      
  1114c0:	0f 84 11 ff ff ff    	je     1113d7 <_Heap_Allocate_aligned_with_boundary+0x63><== NEVER TAKEN
  1114c6:	66 90                	xchg   %ax,%ax                        
    search_again = _Heap_Protection_free_delayed_blocks( heap, alloc_begin );
  } while ( search_again );                                           
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    ++stats->allocs;                                                  
  1114c8:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1114cb:	ff 40 48             	incl   0x48(%eax)                     
    stats->searches += search_count;                                  
  1114ce:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  1114d1:	01 50 4c             	add    %edx,0x4c(%eax)                
                                                                      
    block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );
  1114d4:	57                   	push   %edi                           
  1114d5:	53                   	push   %ebx                           
  1114d6:	51                   	push   %ecx                           
  1114d7:	50                   	push   %eax                           
  1114d8:	e8 6b b3 ff ff       	call   10c848 <_Heap_Block_allocate>  
  1114dd:	89 d8                	mov    %ebx,%eax                      
  1114df:	83 c4 10             	add    $0x10,%esp                     
      boundary                                                        
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->max_search < search_count ) {                           
  1114e2:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  1114e5:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  1114e8:	39 51 44             	cmp    %edx,0x44(%ecx)                
  1114eb:	73 15                	jae    111502 <_Heap_Allocate_aligned_with_boundary+0x18e>
    stats->max_search = search_count;                                 
  1114ed:	89 51 44             	mov    %edx,0x44(%ecx)                
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  1114f0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1114f3:	5b                   	pop    %ebx                           
  1114f4:	5e                   	pop    %esi                           
  1114f5:	5f                   	pop    %edi                           
  1114f6:	c9                   	leave                                 
  1114f7:	c3                   	ret                                   
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
  1114f8:	3b 7d 14             	cmp    0x14(%ebp),%edi                
  1114fb:	76 1a                	jbe    111517 <_Heap_Allocate_aligned_with_boundary+0x1a3>
  1114fd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
  111500:	31 c0                	xor    %eax,%eax                      
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  111502:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111505:	5b                   	pop    %ebx                           
  111506:	5e                   	pop    %esi                           
  111507:	5f                   	pop    %edi                           
  111508:	c9                   	leave                                 
  111509:	c3                   	ret                                   
  11150a:	66 90                	xchg   %ax,%ax                        
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
  11150c:	31 c0                	xor    %eax,%eax                      
  11150e:	eb d2                	jmp    1114e2 <_Heap_Allocate_aligned_with_boundary+0x16e>
  111510:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
  111512:	e9 c0 fe ff ff       	jmp    1113d7 <_Heap_Allocate_aligned_with_boundary+0x63><== NOT EXECUTED
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
      return NULL;                                                    
    }                                                                 
                                                                      
    if ( alignment == 0 ) {                                           
  111517:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  11151a:	85 c9                	test   %ecx,%ecx                      
  11151c:	0f 85 80 fe ff ff    	jne    1113a2 <_Heap_Allocate_aligned_with_boundary+0x2e>
      alignment = page_size;                                          
  111522:	89 55 10             	mov    %edx,0x10(%ebp)                
  111525:	e9 78 fe ff ff       	jmp    1113a2 <_Heap_Allocate_aligned_with_boundary+0x2e>
                                                                      

00111908 <_Heap_Extend>: Heap_Control *heap, void *extend_area_begin_ptr, uintptr_t extend_area_size, uintptr_t *extended_size_ptr ) {
  111908:	55                   	push   %ebp                           
  111909:	89 e5                	mov    %esp,%ebp                      
  11190b:	57                   	push   %edi                           
  11190c:	56                   	push   %esi                           
  11190d:	53                   	push   %ebx                           
  11190e:	83 ec 4c             	sub    $0x4c,%esp                     
  111911:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  111914:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const first_block = heap->first_block;                  
  111917:	8b 43 20             	mov    0x20(%ebx),%eax                
  11191a:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  Heap_Block *start_block = first_block;                              
  Heap_Block *merge_below_block = NULL;                               
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
  11191d:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  Heap_Block *extend_last_block = NULL;                               
  111924:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  uintptr_t const page_size = heap->page_size;                        
  11192b:	8b 53 10             	mov    0x10(%ebx),%edx                
  11192e:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  uintptr_t const min_block_size = heap->min_block_size;              
  111931:	8b 43 14             	mov    0x14(%ebx),%eax                
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
  uintptr_t const free_size = stats->free_size;                       
  111934:	8b 73 30             	mov    0x30(%ebx),%esi                
  111937:	89 75 c0             	mov    %esi,-0x40(%ebp)               
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
  11193a:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  11193d:	01 ca                	add    %ecx,%edx                      
  11193f:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  111942:	73 0c                	jae    111950 <_Heap_Extend+0x48>     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
  111944:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
  111946:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111949:	5b                   	pop    %ebx                           
  11194a:	5e                   	pop    %esi                           
  11194b:	5f                   	pop    %edi                           
  11194c:	c9                   	leave                                 
  11194d:	c3                   	ret                                   
  11194e:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
    return false;                                                     
  }                                                                   
                                                                      
  extend_area_ok = _Heap_Get_first_and_last_block(                    
  111950:	83 ec 08             	sub    $0x8,%esp                      
  111953:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  111956:	52                   	push   %edx                           
  111957:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
  11195a:	52                   	push   %edx                           
  11195b:	50                   	push   %eax                           
  11195c:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  11195f:	51                   	push   %ecx                           
  111960:	ff 75 0c             	pushl  0xc(%ebp)                      
  111963:	e8 fc b0 ff ff       	call   10ca64 <_Heap_Get_first_and_last_block>
    page_size,                                                        
    min_block_size,                                                   
    &extend_first_block,                                              
    &extend_last_block                                                
  );                                                                  
  if (!extend_area_ok ) {                                             
  111968:	83 c4 20             	add    $0x20,%esp                     
  11196b:	84 c0                	test   %al,%al                        
  11196d:	74 d5                	je     111944 <_Heap_Extend+0x3c>     
  11196f:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  111972:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)               
  111979:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)               
  111980:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)               
  111987:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)               
  11198e:	8b 75 cc             	mov    -0x34(%ebp),%esi               
  111991:	89 5d b4             	mov    %ebx,-0x4c(%ebp)               
  111994:	eb 30                	jmp    1119c6 <_Heap_Extend+0xbe>     
  111996:	66 90                	xchg   %ax,%ax                        
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
  111998:	39 ce                	cmp    %ecx,%esi                      
  11199a:	73 03                	jae    11199f <_Heap_Extend+0x97>     
  11199c:	89 7d b8             	mov    %edi,-0x48(%ebp)               
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  11199f:	8d 59 f8             	lea    -0x8(%ecx),%ebx                
  1119a2:	89 c8                	mov    %ecx,%eax                      
  1119a4:	31 d2                	xor    %edx,%edx                      
  1119a6:	f7 75 d4             	divl   -0x2c(%ebp)                    
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
  1119a9:	29 d3                	sub    %edx,%ebx                      
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
  1119ab:	3b 4d 0c             	cmp    0xc(%ebp),%ecx                 
  1119ae:	74 3c                	je     1119ec <_Heap_Extend+0xe4>     
      start_block->prev_size = extend_area_end;                       
                                                                      
      merge_above_block = end_block;                                  
    } else if ( sub_area_end < extend_area_begin ) {                  
  1119b0:	39 4d 0c             	cmp    %ecx,0xc(%ebp)                 
  1119b3:	76 03                	jbe    1119b8 <_Heap_Extend+0xb0>     
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 )   
  1119b5:	89 5d bc             	mov    %ebx,-0x44(%ebp)               
    - 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;                
  1119b8:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  1119bb:	83 e7 fe             	and    $0xfffffffe,%edi               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  1119be:	8d 3c 3b             	lea    (%ebx,%edi,1),%edi             
      link_above_block = end_block;                                   
    }                                                                 
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
  1119c1:	39 7d d0             	cmp    %edi,-0x30(%ebp)               
  1119c4:	74 39                	je     1119ff <_Heap_Extend+0xf7>     
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
  1119c6:	3b 7d d0             	cmp    -0x30(%ebp),%edi               
  1119c9:	0f 84 39 01 00 00    	je     111b08 <_Heap_Extend+0x200>    
  1119cf:	89 f8                	mov    %edi,%eax                      
    uintptr_t const sub_area_end = start_block->prev_size;            
  1119d1:	8b 0f                	mov    (%edi),%ecx                    
    Heap_Block *const end_block =                                     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
  1119d3:	39 4d 0c             	cmp    %ecx,0xc(%ebp)                 
  1119d6:	73 08                	jae    1119e0 <_Heap_Extend+0xd8>     
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
  1119d8:	39 f0                	cmp    %esi,%eax                      
  1119da:	0f 82 64 ff ff ff    	jb     111944 <_Heap_Extend+0x3c>     
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
  1119e0:	39 f0                	cmp    %esi,%eax                      
  1119e2:	75 b4                	jne    111998 <_Heap_Extend+0x90>     
  1119e4:	89 7d c4             	mov    %edi,-0x3c(%ebp)               
  1119e7:	eb b6                	jmp    11199f <_Heap_Extend+0x97>     
  1119e9:	8d 76 00             	lea    0x0(%esi),%esi                 
    } else if ( extend_area_end < sub_area_end ) {                    
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
      start_block->prev_size = extend_area_end;                       
  1119ec:	89 37                	mov    %esi,(%edi)                    
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 )   
  1119ee:	89 5d c8             	mov    %ebx,-0x38(%ebp)               
    - 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;                
  1119f1:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  1119f4:	83 e7 fe             	and    $0xfffffffe,%edi               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  1119f7:	8d 3c 3b             	lea    (%ebx,%edi,1),%edi             
    } else if ( sub_area_end < extend_area_begin ) {                  
      link_above_block = end_block;                                   
    }                                                                 
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
  1119fa:	39 7d d0             	cmp    %edi,-0x30(%ebp)               
  1119fd:	75 c7                	jne    1119c6 <_Heap_Extend+0xbe>     <== NEVER TAKEN
  1119ff:	8b 5d b4             	mov    -0x4c(%ebp),%ebx               
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
  111a02:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  111a05:	3b 73 18             	cmp    0x18(%ebx),%esi                
  111a08:	0f 82 06 01 00 00    	jb     111b14 <_Heap_Extend+0x20c>    
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
  111a0e:	8b 45 cc             	mov    -0x34(%ebp),%eax               
  111a11:	3b 43 1c             	cmp    0x1c(%ebx),%eax                
  111a14:	76 03                	jbe    111a19 <_Heap_Extend+0x111>    
    heap->area_end = extend_area_end;                                 
  111a16:	89 43 1c             	mov    %eax,0x1c(%ebx)                
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
  111a19:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  111a1c:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
  111a1f:	89 d1                	mov    %edx,%ecx                      
  111a21:	29 c1                	sub    %eax,%ecx                      
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  111a23:	8b 75 cc             	mov    -0x34(%ebp),%esi               
  111a26:	89 30                	mov    %esi,(%eax)                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
  111a28:	89 ce                	mov    %ecx,%esi                      
  111a2a:	83 ce 01             	or     $0x1,%esi                      
  111a2d:	89 70 04             	mov    %esi,0x4(%eax)                 
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  111a30:	89 0a                	mov    %ecx,(%edx)                    
  extend_last_block->size_and_flag = 0;                               
  111a32:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)                 
  _Heap_Protection_block_initialize( heap, extend_last_block );       
                                                                      
  if ( (uintptr_t) extend_first_block < (uintptr_t) heap->first_block ) {
  111a39:	39 43 20             	cmp    %eax,0x20(%ebx)                
  111a3c:	0f 86 da 00 00 00    	jbe    111b1c <_Heap_Extend+0x214>    
    heap->first_block = extend_first_block;                           
  111a42:	89 43 20             	mov    %eax,0x20(%ebx)                
  } else if ( (uintptr_t) extend_last_block > (uintptr_t) heap->last_block ) {
    heap->last_block = extend_last_block;                             
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
  111a45:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  111a48:	85 f6                	test   %esi,%esi                      
  111a4a:	0f 84 10 01 00 00    	je     111b60 <_Heap_Extend+0x258>    
  Heap_Control *heap,                                                 
  uintptr_t extend_area_begin,                                        
  Heap_Block *first_block                                             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  111a50:	8b 73 10             	mov    0x10(%ebx),%esi                
  uintptr_t const new_first_block_alloc_begin =                       
    _Heap_Align_up( extend_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
  111a53:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  111a56:	83 c1 08             	add    $0x8,%ecx                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
  111a59:	89 c8                	mov    %ecx,%eax                      
  111a5b:	31 d2                	xor    %edx,%edx                      
  111a5d:	f7 f6                	div    %esi                           
                                                                      
  if ( remainder != 0 ) {                                             
  111a5f:	85 d2                	test   %edx,%edx                      
  111a61:	0f 84 c9 00 00 00    	je     111b30 <_Heap_Extend+0x228>    
    return value - remainder + alignment;                             
  111a67:	8d 04 31             	lea    (%ecx,%esi,1),%eax             
  111a6a:	29 d0                	sub    %edx,%eax                      
  uintptr_t const new_first_block_begin =                             
  111a6c:	8d 50 f8             	lea    -0x8(%eax),%edx                
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
  111a6f:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  111a72:	8b 0e                	mov    (%esi),%ecx                    
  111a74:	89 48 f8             	mov    %ecx,-0x8(%eax)                
  uintptr_t const new_first_block_alloc_begin =                       
    _Heap_Align_up( extend_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
  uintptr_t const new_first_block_begin =                             
    new_first_block_alloc_begin - HEAP_BLOCK_HEADER_SIZE;             
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
  111a77:	89 f0                	mov    %esi,%eax                      
  111a79:	29 d0                	sub    %edx,%eax                      
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
  111a7b:	83 c8 01             	or     $0x1,%eax                      
  111a7e:	89 42 04             	mov    %eax,0x4(%edx)                 
                                                                      
  _Heap_Free_block( heap, new_first_block );                          
  111a81:	89 d8                	mov    %ebx,%eax                      
  111a83:	e8 64 fe ff ff       	call   1118ec <_Heap_Free_block>      
      link_below_block,                                               
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
  111a88:	8b 45 c8             	mov    -0x38(%ebp),%eax               
  111a8b:	85 c0                	test   %eax,%eax                      
  111a8d:	0f 84 a5 00 00 00    	je     111b38 <_Heap_Extend+0x230>    
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
    extend_area_end - last_block_begin - HEAP_BLOCK_HEADER_SIZE,      
  111a93:	8b 4d cc             	mov    -0x34(%ebp),%ecx               
  111a96:	83 e9 08             	sub    $0x8,%ecx                      
  uintptr_t extend_area_end                                           
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
  111a99:	2b 4d c8             	sub    -0x38(%ebp),%ecx               
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  111a9c:	89 c8                	mov    %ecx,%eax                      
  111a9e:	31 d2                	xor    %edx,%edx                      
  111aa0:	f7 73 10             	divl   0x10(%ebx)                     
  111aa3:	29 d1                	sub    %edx,%ecx                      
  );                                                                  
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
    (last_block->size_and_flag - last_block_new_size)                 
  111aa5:	8b 55 c8             	mov    -0x38(%ebp),%edx               
  111aa8:	8b 42 04             	mov    0x4(%edx),%eax                 
  111aab:	29 c8                	sub    %ecx,%eax                      
      | HEAP_PREV_BLOCK_USED;                                         
  111aad:	83 c8 01             	or     $0x1,%eax                      
  111ab0:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)          
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
  111ab4:	8b 42 04             	mov    0x4(%edx),%eax                 
  111ab7:	83 e0 01             	and    $0x1,%eax                      
                                                                      
  block->size_and_flag = size | flag;                                 
  111aba:	09 c8                	or     %ecx,%eax                      
  111abc:	89 42 04             	mov    %eax,0x4(%edx)                 
                                                                      
  _Heap_Block_set_size( last_block, last_block_new_size );            
                                                                      
  _Heap_Free_block( heap, last_block );                               
  111abf:	89 d8                	mov    %ebx,%eax                      
  111ac1:	e8 26 fe ff ff       	call   1118ec <_Heap_Free_block>      
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
  111ac6:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  111ac9:	85 f6                	test   %esi,%esi                      
  111acb:	0f 84 ab 00 00 00    	je     111b7c <_Heap_Extend+0x274>    
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
  111ad1:	8b 53 24             	mov    0x24(%ebx),%edx                
 * This feature will be used to terminate the scattered heap area list.  See
 * also _Heap_Extend().                                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Heap_Set_last_block_size( Heap_Control *heap )
{                                                                     
  _Heap_Block_set_size(                                               
  111ad4:	8b 43 20             	mov    0x20(%ebx),%eax                
  111ad7:	29 d0                	sub    %edx,%eax                      
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
  111ad9:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  111adc:	83 e1 01             	and    $0x1,%ecx                      
                                                                      
  block->size_and_flag = size | flag;                                 
  111adf:	09 c8                	or     %ecx,%eax                      
  111ae1:	89 42 04             	mov    %eax,0x4(%edx)                 
    _Heap_Free_block( heap, extend_first_block );                     
  }                                                                   
                                                                      
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
  111ae4:	8b 43 30             	mov    0x30(%ebx),%eax                
  111ae7:	2b 45 c0             	sub    -0x40(%ebp),%eax               
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
  111aea:	01 43 2c             	add    %eax,0x2c(%ebx)                
                                                                      
  if ( extended_size_ptr != NULL )                                    
  111aed:	8b 55 14             	mov    0x14(%ebp),%edx                
  111af0:	85 d2                	test   %edx,%edx                      
  111af2:	0f 84 a0 00 00 00    	je     111b98 <_Heap_Extend+0x290>    <== NEVER TAKEN
    *extended_size_ptr = extended_size;                               
  111af8:	8b 55 14             	mov    0x14(%ebp),%edx                
  111afb:	89 02                	mov    %eax,(%edx)                    
                                                                      
  return true;                                                        
  111afd:	b0 01                	mov    $0x1,%al                       
}                                                                     
  111aff:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111b02:	5b                   	pop    %ebx                           
  111b03:	5e                   	pop    %esi                           
  111b04:	5f                   	pop    %edi                           
  111b05:	c9                   	leave                                 
  111b06:	c3                   	ret                                   
  111b07:	90                   	nop                                   
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
  111b08:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  111b0b:	8b 42 18             	mov    0x18(%edx),%eax                
  111b0e:	e9 be fe ff ff       	jmp    1119d1 <_Heap_Extend+0xc9>     
  111b13:	90                   	nop                                   
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
    heap->area_begin = extend_area_begin;                             
  111b14:	89 73 18             	mov    %esi,0x18(%ebx)                
  111b17:	e9 fd fe ff ff       	jmp    111a19 <_Heap_Extend+0x111>    
  extend_last_block->size_and_flag = 0;                               
  _Heap_Protection_block_initialize( heap, extend_last_block );       
                                                                      
  if ( (uintptr_t) extend_first_block < (uintptr_t) heap->first_block ) {
    heap->first_block = extend_first_block;                           
  } else if ( (uintptr_t) extend_last_block > (uintptr_t) heap->last_block ) {
  111b1c:	39 53 24             	cmp    %edx,0x24(%ebx)                
  111b1f:	0f 83 20 ff ff ff    	jae    111a45 <_Heap_Extend+0x13d>    
    heap->last_block = extend_last_block;                             
  111b25:	89 53 24             	mov    %edx,0x24(%ebx)                
  111b28:	e9 18 ff ff ff       	jmp    111a45 <_Heap_Extend+0x13d>    
  111b2d:	8d 76 00             	lea    0x0(%esi),%esi                 
  uintptr_t remainder = value % alignment;                            
                                                                      
  if ( remainder != 0 ) {                                             
    return value - remainder + alignment;                             
  } else {                                                            
    return value;                                                     
  111b30:	89 c8                	mov    %ecx,%eax                      
  111b32:	e9 35 ff ff ff       	jmp    111a6c <_Heap_Extend+0x164>    
  111b37:	90                   	nop                                   
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
  111b38:	8b 7d bc             	mov    -0x44(%ebp),%edi               
  111b3b:	85 ff                	test   %edi,%edi                      
  111b3d:	74 87                	je     111ac6 <_Heap_Extend+0x1be>    
    _Heap_Link_above(                                                 
  111b3f:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
)                                                                     
{                                                                     
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
  111b42:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  111b45:	2b 45 bc             	sub    -0x44(%ebp),%eax               
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
  111b48:	8b 75 bc             	mov    -0x44(%ebp),%esi               
  111b4b:	8b 56 04             	mov    0x4(%esi),%edx                 
  111b4e:	83 e2 01             	and    $0x1,%edx                      
                                                                      
  block->size_and_flag = size | flag;                                 
  111b51:	09 d0                	or     %edx,%eax                      
  111b53:	89 46 04             	mov    %eax,0x4(%esi)                 
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
  111b56:	83 49 04 01          	orl    $0x1,0x4(%ecx)                 
  111b5a:	e9 67 ff ff ff       	jmp    111ac6 <_Heap_Extend+0x1be>    
  111b5f:	90                   	nop                                   
    heap->last_block = extend_last_block;                             
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
    _Heap_Merge_below( heap, extend_area_begin, merge_below_block );  
  } else if ( link_below_block != NULL ) {                            
  111b60:	8b 4d b8             	mov    -0x48(%ebp),%ecx               
  111b63:	85 c9                	test   %ecx,%ecx                      
  111b65:	0f 84 1d ff ff ff    	je     111a88 <_Heap_Extend+0x180>    
{                                                                     
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const link_begin = (uintptr_t) link;                      
                                                                      
  last_block->size_and_flag =                                         
    (link_begin - last_block_begin) | HEAP_PREV_BLOCK_USED;           
  111b6b:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  111b6e:	29 d0                	sub    %edx,%eax                      
  111b70:	83 c8 01             	or     $0x1,%eax                      
  111b73:	89 42 04             	mov    %eax,0x4(%edx)                 
  111b76:	e9 0d ff ff ff       	jmp    111a88 <_Heap_Extend+0x180>    
  111b7b:	90                   	nop                                   
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
  111b7c:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  111b7f:	85 c9                	test   %ecx,%ecx                      
  111b81:	0f 85 4a ff ff ff    	jne    111ad1 <_Heap_Extend+0x1c9>    
    _Heap_Free_block( heap, extend_first_block );                     
  111b87:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  111b8a:	89 d8                	mov    %ebx,%eax                      
  111b8c:	e8 5b fd ff ff       	call   1118ec <_Heap_Free_block>      
  111b91:	e9 3b ff ff ff       	jmp    111ad1 <_Heap_Extend+0x1c9>    
  111b96:	66 90                	xchg   %ax,%ax                        
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
  111b98:	b0 01                	mov    $0x1,%al                       <== NOT EXECUTED
  111b9a:	e9 a7 fd ff ff       	jmp    111946 <_Heap_Extend+0x3e>     <== NOT EXECUTED
                                                                      

0011152c <_Heap_Free>: return do_free; } #endif bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr ) {
  11152c:	55                   	push   %ebp                           
  11152d:	89 e5                	mov    %esp,%ebp                      
  11152f:	57                   	push   %edi                           
  111530:	56                   	push   %esi                           
  111531:	53                   	push   %ebx                           
  111532:	83 ec 10             	sub    $0x10,%esp                     
  111535:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  111538:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  /*                                                                  
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
  11153b:	85 c0                	test   %eax,%eax                      
  11153d:	0f 84 e9 00 00 00    	je     11162c <_Heap_Free+0x100>      
  111543:	8d 58 f8             	lea    -0x8(%eax),%ebx                
  111546:	31 d2                	xor    %edx,%edx                      
  111548:	f7 71 10             	divl   0x10(%ecx)                     
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
  11154b:	29 d3                	sub    %edx,%ebx                      
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           
  11154d:	8b 41 20             	mov    0x20(%ecx),%eax                
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
  111550:	39 c3                	cmp    %eax,%ebx                      
  111552:	72 1c                	jb     111570 <_Heap_Free+0x44>       
  111554:	8b 71 24             	mov    0x24(%ecx),%esi                
  111557:	39 f3                	cmp    %esi,%ebx                      
  111559:	77 15                	ja     111570 <_Heap_Free+0x44>       
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  11155b:	8b 53 04             	mov    0x4(%ebx),%edx                 
  11155e:	89 55 f0             	mov    %edx,-0x10(%ebp)               
    - 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;                
  111561:	83 e2 fe             	and    $0xfffffffe,%edx               
  111564:	89 55 ec             	mov    %edx,-0x14(%ebp)               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  111567:	8d 14 13             	lea    (%ebx,%edx,1),%edx             
  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;             
  11156a:	39 d0                	cmp    %edx,%eax                      
  11156c:	76 0e                	jbe    11157c <_Heap_Free+0x50>       <== ALWAYS TAKEN
  11156e:	66 90                	xchg   %ax,%ax                        
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
      _HAssert( false );                                              
      return( false );                                                
  111570:	31 c0                	xor    %eax,%eax                      
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  111572:	83 c4 10             	add    $0x10,%esp                     
  111575:	5b                   	pop    %ebx                           
  111576:	5e                   	pop    %esi                           
  111577:	5f                   	pop    %edi                           
  111578:	c9                   	leave                                 
  111579:	c3                   	ret                                   
  11157a:	66 90                	xchg   %ax,%ax                        
  11157c:	39 d6                	cmp    %edx,%esi                      
  11157e:	72 f0                	jb     111570 <_Heap_Free+0x44>       <== NEVER TAKEN
  111580:	8b 7a 04             	mov    0x4(%edx),%edi                 
    return false;                                                     
  }                                                                   
                                                                      
  _Heap_Protection_block_check( heap, next_block );                   
                                                                      
  if ( !_Heap_Is_prev_used( next_block ) ) {                          
  111583:	f7 c7 01 00 00 00    	test   $0x1,%edi                      
  111589:	74 e5                	je     111570 <_Heap_Free+0x44>       <== NEVER TAKEN
    - 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;                
  11158b:	83 e7 fe             	and    $0xfffffffe,%edi               
  11158e:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
  111591:	39 d6                	cmp    %edx,%esi                      
  111593:	0f 84 d3 00 00 00    	je     11166c <_Heap_Free+0x140>      
                                                                      
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
  111599:	f6 44 3a 04 01       	testb  $0x1,0x4(%edx,%edi,1)          
  11159e:	0f 94 45 eb          	sete   -0x15(%ebp)                    
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
                                                                      
  if ( !_Heap_Is_prev_used( block ) ) {                               
  1115a2:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)               
  1115a6:	75 44                	jne    1115ec <_Heap_Free+0xc0>       
    uintptr_t const prev_size = block->prev_size;                     
  1115a8:	8b 3b                	mov    (%ebx),%edi                    
  1115aa:	89 7d f0             	mov    %edi,-0x10(%ebp)               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  1115ad:	29 fb                	sub    %edi,%ebx                      
  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;             
  1115af:	39 d8                	cmp    %ebx,%eax                      
  1115b1:	77 bd                	ja     111570 <_Heap_Free+0x44>       <== NEVER TAKEN
  1115b3:	39 de                	cmp    %ebx,%esi                      
  1115b5:	72 b9                	jb     111570 <_Heap_Free+0x44>       <== NEVER TAKEN
      return( false );                                                
    }                                                                 
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
  1115b7:	f6 43 04 01          	testb  $0x1,0x4(%ebx)                 
  1115bb:	74 b3                	je     111570 <_Heap_Free+0x44>       <== NEVER TAKEN
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
  1115bd:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)               
  1115c1:	0f 84 b1 00 00 00    	je     111678 <_Heap_Free+0x14c>      
      uintptr_t const size = block_size + prev_size + next_block_size;
  1115c7:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  1115ca:	03 7d ec             	add    -0x14(%ebp),%edi               
  1115cd:	03 7d f0             	add    -0x10(%ebp),%edi               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  1115d0:	8b 42 08             	mov    0x8(%edx),%eax                 
  1115d3:	8b 52 0c             	mov    0xc(%edx),%edx                 
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
                                                                      
  prev->next = next;                                                  
  1115d6:	89 42 08             	mov    %eax,0x8(%edx)                 
  next->prev = prev;                                                  
  1115d9:	89 50 0c             	mov    %edx,0xc(%eax)                 
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
  1115dc:	ff 49 38             	decl   0x38(%ecx)                     
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
  1115df:	89 f8                	mov    %edi,%eax                      
  1115e1:	83 c8 01             	or     $0x1,%eax                      
  1115e4:	89 43 04             	mov    %eax,0x4(%ebx)                 
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
  1115e7:	89 3c 3b             	mov    %edi,(%ebx,%edi,1)             
  1115ea:	eb 29                	jmp    111615 <_Heap_Free+0xe9>       
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
  1115ec:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)               
  1115f0:	74 46                	je     111638 <_Heap_Free+0x10c>      
    uintptr_t const size = block_size + next_block_size;              
  1115f2:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  1115f5:	03 7d ec             	add    -0x14(%ebp),%edi               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  1115f8:	8b 42 08             	mov    0x8(%edx),%eax                 
  1115fb:	8b 52 0c             	mov    0xc(%edx),%edx                 
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
  1115fe:	89 43 08             	mov    %eax,0x8(%ebx)                 
  new_block->prev = prev;                                             
  111601:	89 53 0c             	mov    %edx,0xc(%ebx)                 
                                                                      
  next->prev = new_block;                                             
  111604:	89 58 0c             	mov    %ebx,0xc(%eax)                 
  prev->next = new_block;                                             
  111607:	89 5a 08             	mov    %ebx,0x8(%edx)                 
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
    uintptr_t const size = block_size + next_block_size;              
    _Heap_Free_list_replace( next_block, block );                     
    block->size_and_flag = size | HEAP_PREV_BLOCK_USED;               
  11160a:	89 f8                	mov    %edi,%eax                      
  11160c:	83 c8 01             	or     $0x1,%eax                      
  11160f:	89 43 04             	mov    %eax,0x4(%ebx)                 
    next_block  = _Heap_Block_at( block, size );                      
    next_block->prev_size = size;                                     
  111612:	89 3c 3b             	mov    %edi,(%ebx,%edi,1)             
      stats->max_free_blocks = stats->free_blocks;                    
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
  111615:	ff 49 40             	decl   0x40(%ecx)                     
  ++stats->frees;                                                     
  111618:	ff 41 50             	incl   0x50(%ecx)                     
  stats->free_size += block_size;                                     
  11161b:	8b 55 ec             	mov    -0x14(%ebp),%edx               
  11161e:	01 51 30             	add    %edx,0x30(%ecx)                
                                                                      
  return( true );                                                     
  111621:	b0 01                	mov    $0x1,%al                       
}                                                                     
  111623:	83 c4 10             	add    $0x10,%esp                     
  111626:	5b                   	pop    %ebx                           
  111627:	5e                   	pop    %esi                           
  111628:	5f                   	pop    %edi                           
  111629:	c9                   	leave                                 
  11162a:	c3                   	ret                                   
  11162b:	90                   	nop                                   
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
    return true;                                                      
  11162c:	b0 01                	mov    $0x1,%al                       
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  11162e:	83 c4 10             	add    $0x10,%esp                     
  111631:	5b                   	pop    %ebx                           
  111632:	5e                   	pop    %esi                           
  111633:	5f                   	pop    %edi                           
  111634:	c9                   	leave                                 
  111635:	c3                   	ret                                   
  111636:	66 90                	xchg   %ax,%ax                        
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
  111638:	8b 41 08             	mov    0x8(%ecx),%eax                 
                                                                      
  new_block->next = next;                                             
  11163b:	89 43 08             	mov    %eax,0x8(%ebx)                 
  new_block->prev = block_before;                                     
  11163e:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
  block_before->next = new_block;                                     
  111641:	89 59 08             	mov    %ebx,0x8(%ecx)                 
  next->prev = new_block;                                             
  111644:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    next_block->prev_size = size;                                     
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
  111647:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  11164a:	83 c8 01             	or     $0x1,%eax                      
  11164d:	89 43 04             	mov    %eax,0x4(%ebx)                 
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
  111650:	83 62 04 fe          	andl   $0xfffffffe,0x4(%edx)          
    next_block->prev_size = block_size;                               
  111654:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  111657:	89 02                	mov    %eax,(%edx)                    
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
  111659:	8b 41 38             	mov    0x38(%ecx),%eax                
  11165c:	40                   	inc    %eax                           
  11165d:	89 41 38             	mov    %eax,0x38(%ecx)                
    if ( stats->max_free_blocks < stats->free_blocks ) {              
  111660:	3b 41 3c             	cmp    0x3c(%ecx),%eax                
  111663:	76 b0                	jbe    111615 <_Heap_Free+0xe9>       
      stats->max_free_blocks = stats->free_blocks;                    
  111665:	89 41 3c             	mov    %eax,0x3c(%ecx)                
  111668:	eb ab                	jmp    111615 <_Heap_Free+0xe9>       
  11166a:	66 90                	xchg   %ax,%ax                        
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
  11166c:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)               
  111670:	e9 2d ff ff ff       	jmp    1115a2 <_Heap_Free+0x76>       
  111675:	8d 76 00             	lea    0x0(%esi),%esi                 
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
  111678:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  11167b:	03 45 f0             	add    -0x10(%ebp),%eax               
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
  11167e:	89 c6                	mov    %eax,%esi                      
  111680:	83 ce 01             	or     $0x1,%esi                      
  111683:	89 73 04             	mov    %esi,0x4(%ebx)                 
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
  111686:	83 62 04 fe          	andl   $0xfffffffe,0x4(%edx)          
      next_block->prev_size = size;                                   
  11168a:	89 02                	mov    %eax,(%edx)                    
  11168c:	eb 87                	jmp    111615 <_Heap_Free+0xe9>       
                                                                      

0010c6d8 <_Heap_Get_first_and_last_block>: uintptr_t page_size, uintptr_t min_block_size, Heap_Block **first_block_ptr, Heap_Block **last_block_ptr ) {
  10c6d8:	55                   	push   %ebp                           
  10c6d9:	89 e5                	mov    %esp,%ebp                      
  10c6db:	57                   	push   %edi                           
  10c6dc:	56                   	push   %esi                           
  10c6dd:	53                   	push   %ebx                           
  10c6de:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10c6e1:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  uintptr_t const heap_area_end = heap_area_begin + heap_area_size;   
  10c6e4:	8d 34 0f             	lea    (%edi,%ecx,1),%esi             
  uintptr_t const alloc_area_begin =                                  
    _Heap_Align_up( heap_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
  10c6e7:	8d 59 08             	lea    0x8(%ecx),%ebx                 
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
  10c6ea:	89 d8                	mov    %ebx,%eax                      
  10c6ec:	31 d2                	xor    %edx,%edx                      
  10c6ee:	f7 75 10             	divl   0x10(%ebp)                     
                                                                      
  if ( remainder != 0 ) {                                             
  10c6f1:	85 d2                	test   %edx,%edx                      
  10c6f3:	74 05                	je     10c6fa <_Heap_Get_first_and_last_block+0x22>
    return value - remainder + alignment;                             
  10c6f5:	03 5d 10             	add    0x10(%ebp),%ebx                
  10c6f8:	29 d3                	sub    %edx,%ebx                      
    _Heap_Align_down( heap_area_size - overhead, page_size );         
  Heap_Block *const first_block = (Heap_Block *) first_block_begin;   
  Heap_Block *const last_block =                                      
    _Heap_Block_at( first_block, first_block_size );                  
                                                                      
  if (                                                                
  10c6fa:	39 f1                	cmp    %esi,%ecx                      
  10c6fc:	77 2e                	ja     10c72c <_Heap_Get_first_and_last_block+0x54>
  uintptr_t const alloc_area_begin =                                  
    _Heap_Align_up( heap_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
  uintptr_t const first_block_begin =                                 
    alloc_area_begin - HEAP_BLOCK_HEADER_SIZE;                        
  uintptr_t const overhead =                                          
    HEAP_BLOCK_HEADER_SIZE + (first_block_begin - heap_area_begin);   
  10c6fe:	8d 73 f8             	lea    -0x8(%ebx),%esi                
  uintptr_t const heap_area_end = heap_area_begin + heap_area_size;   
  uintptr_t const alloc_area_begin =                                  
    _Heap_Align_up( heap_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
  uintptr_t const first_block_begin =                                 
    alloc_area_begin - HEAP_BLOCK_HEADER_SIZE;                        
  uintptr_t const overhead =                                          
  10c701:	29 cb                	sub    %ecx,%ebx                      
  Heap_Block *const last_block =                                      
    _Heap_Block_at( first_block, first_block_size );                  
                                                                      
  if (                                                                
    heap_area_end < heap_area_begin                                   
      || heap_area_size <= overhead                                   
  10c703:	39 df                	cmp    %ebx,%edi                      
  10c705:	76 25                	jbe    10c72c <_Heap_Get_first_and_last_block+0x54>
  uintptr_t const first_block_begin =                                 
    alloc_area_begin - HEAP_BLOCK_HEADER_SIZE;                        
  uintptr_t const overhead =                                          
    HEAP_BLOCK_HEADER_SIZE + (first_block_begin - heap_area_begin);   
  uintptr_t const first_block_size =                                  
    _Heap_Align_down( heap_area_size - overhead, page_size );         
  10c707:	29 df                	sub    %ebx,%edi                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  10c709:	89 f8                	mov    %edi,%eax                      
  10c70b:	31 d2                	xor    %edx,%edx                      
  10c70d:	f7 75 10             	divl   0x10(%ebp)                     
  10c710:	29 d7                	sub    %edx,%edi                      
    _Heap_Block_at( first_block, first_block_size );                  
                                                                      
  if (                                                                
    heap_area_end < heap_area_begin                                   
      || heap_area_size <= overhead                                   
      || first_block_size < min_block_size                            
  10c712:	39 7d 14             	cmp    %edi,0x14(%ebp)                
  10c715:	77 15                	ja     10c72c <_Heap_Get_first_and_last_block+0x54>
  ) {                                                                 
    /* Invalid area or area too small */                              
    return false;                                                     
  }                                                                   
                                                                      
  *first_block_ptr = first_block;                                     
  10c717:	8b 45 18             	mov    0x18(%ebp),%eax                
  10c71a:	89 30                	mov    %esi,(%eax)                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  10c71c:	01 f7                	add    %esi,%edi                      
  10c71e:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  10c721:	89 38                	mov    %edi,(%eax)                    
  *last_block_ptr = last_block;                                       
                                                                      
  return true;                                                        
  10c723:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10c725:	5b                   	pop    %ebx                           
  10c726:	5e                   	pop    %esi                           
  10c727:	5f                   	pop    %edi                           
  10c728:	c9                   	leave                                 
  10c729:	c3                   	ret                                   
  10c72a:	66 90                	xchg   %ax,%ax                        
    heap_area_end < heap_area_begin                                   
      || heap_area_size <= overhead                                   
      || first_block_size < min_block_size                            
  ) {                                                                 
    /* Invalid area or area too small */                              
    return false;                                                     
  10c72c:	31 c0                	xor    %eax,%eax                      
                                                                      
  *first_block_ptr = first_block;                                     
  *last_block_ptr = last_block;                                       
                                                                      
  return true;                                                        
}                                                                     
  10c72e:	5b                   	pop    %ebx                           
  10c72f:	5e                   	pop    %esi                           
  10c730:	5f                   	pop    %edi                           
  10c731:	c9                   	leave                                 
  10c732:	c3                   	ret                                   
                                                                      

001152b0 <_Heap_Get_free_information>: void _Heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) {
  1152b0:	55                   	push   %ebp                           
  1152b1:	89 e5                	mov    %esp,%ebp                      
  1152b3:	57                   	push   %edi                           
  1152b4:	56                   	push   %esi                           
  1152b5:	53                   	push   %ebx                           
  1152b6:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Heap_Block *the_block;                                              
  Heap_Block *const tail = _Heap_Free_list_tail(the_heap);            
                                                                      
  info->number = 0;                                                   
  1152b9:	c7 07 00 00 00 00    	movl   $0x0,(%edi)                    
  info->largest = 0;                                                  
  1152bf:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)                 
  info->total = 0;                                                    
  1152c6:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)                 
    info->number++;                                                   
    info->total += the_size;                                          
    if ( info->largest < the_size )                                   
        info->largest = the_size;                                     
  }                                                                   
}                                                                     
  1152cd:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1152d0:	8b 50 08             	mov    0x8(%eax),%edx                 
                                                                      
  info->number = 0;                                                   
  info->largest = 0;                                                  
  info->total = 0;                                                    
                                                                      
  for(the_block = _Heap_Free_list_first(the_heap);                    
  1152d3:	39 d0                	cmp    %edx,%eax                      
  1152d5:	74 31                	je     115308 <_Heap_Get_free_information+0x58>
  1152d7:	b9 01 00 00 00       	mov    $0x1,%ecx                      
  1152dc:	31 f6                	xor    %esi,%esi                      
  1152de:	31 db                	xor    %ebx,%ebx                      
  1152e0:	eb 07                	jmp    1152e9 <_Heap_Get_free_information+0x39>
  1152e2:	66 90                	xchg   %ax,%ax                        
  1152e4:	8b 77 04             	mov    0x4(%edi),%esi                 
  1152e7:	89 c1                	mov    %eax,%ecx                      
    - 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;                
  1152e9:	8b 42 04             	mov    0x4(%edx),%eax                 
  1152ec:	83 e0 fe             	and    $0xfffffffe,%eax               
                                                                      
    /* As we always coalesce free blocks, prev block must have been used. */
    _HAssert(_Heap_Is_prev_used(the_block));                          
                                                                      
    info->number++;                                                   
    info->total += the_size;                                          
  1152ef:	01 c3                	add    %eax,%ebx                      
    if ( info->largest < the_size )                                   
  1152f1:	39 f0                	cmp    %esi,%eax                      
  1152f3:	76 03                	jbe    1152f8 <_Heap_Get_free_information+0x48>
        info->largest = the_size;                                     
  1152f5:	89 47 04             	mov    %eax,0x4(%edi)                 
  info->largest = 0;                                                  
  info->total = 0;                                                    
                                                                      
  for(the_block = _Heap_Free_list_first(the_heap);                    
      the_block != tail;                                              
      the_block = the_block->next)                                    
  1152f8:	8b 52 08             	mov    0x8(%edx),%edx                 
  1152fb:	8d 41 01             	lea    0x1(%ecx),%eax                 
                                                                      
  info->number = 0;                                                   
  info->largest = 0;                                                  
  info->total = 0;                                                    
                                                                      
  for(the_block = _Heap_Free_list_first(the_heap);                    
  1152fe:	39 55 08             	cmp    %edx,0x8(%ebp)                 
  115301:	75 e1                	jne    1152e4 <_Heap_Get_free_information+0x34>
  115303:	89 0f                	mov    %ecx,(%edi)                    
  115305:	89 5f 08             	mov    %ebx,0x8(%edi)                 
    info->number++;                                                   
    info->total += the_size;                                          
    if ( info->largest < the_size )                                   
        info->largest = the_size;                                     
  }                                                                   
}                                                                     
  115308:	5b                   	pop    %ebx                           
  115309:	5e                   	pop    %esi                           
  11530a:	5f                   	pop    %edi                           
  11530b:	c9                   	leave                                 
  11530c:	c3                   	ret                                   
                                                                      

001120b8 <_Heap_Get_information>: void _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
  1120b8:	55                   	push   %ebp                           
  1120b9:	89 e5                	mov    %esp,%ebp                      
  1120bb:	57                   	push   %edi                           
  1120bc:	56                   	push   %esi                           
  1120bd:	53                   	push   %ebx                           
  1120be:	83 ec 04             	sub    $0x4,%esp                      
  1120c1:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1120c4:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Heap_Block *the_block = the_heap->first_block;                      
  1120c7:	8b 50 20             	mov    0x20(%eax),%edx                
  Heap_Block *const end = the_heap->last_block;                       
  1120ca:	8b 40 24             	mov    0x24(%eax),%eax                
  1120cd:	89 45 f0             	mov    %eax,-0x10(%ebp)               
                                                                      
  memset(the_info, 0, sizeof(*the_info));                             
  1120d0:	b9 18 00 00 00       	mov    $0x18,%ecx                     
  1120d5:	31 c0                	xor    %eax,%eax                      
  1120d7:	89 df                	mov    %ebx,%edi                      
  1120d9:	f3 aa                	rep stos %al,%es:(%edi)               
                                                                      
  while ( the_block != end ) {                                        
  1120db:	3b 55 f0             	cmp    -0x10(%ebp),%edx               
  1120de:	74 38                	je     112118 <_Heap_Get_information+0x60><== NEVER TAKEN
  1120e0:	8b 7a 04             	mov    0x4(%edx),%edi                 
  1120e3:	eb 18                	jmp    1120fd <_Heap_Get_information+0x45>
  1120e5:	8d 76 00             	lea    0x0(%esi),%esi                 
    uintptr_t const     the_size = _Heap_Block_size(the_block);       
    Heap_Block *const  next_block = _Heap_Block_at(the_block, the_size);
    Heap_Information  *info;                                          
                                                                      
    if ( _Heap_Is_prev_used(next_block) )                             
      info = &the_info->Used;                                         
  1120e8:	8d 43 0c             	lea    0xc(%ebx),%eax                 
    else                                                              
      info = &the_info->Free;                                         
                                                                      
    info->number++;                                                   
  1120eb:	ff 00                	incl   (%eax)                         
    info->total += the_size;                                          
  1120ed:	01 48 08             	add    %ecx,0x8(%eax)                 
    if ( info->largest < the_size )                                   
  1120f0:	39 48 04             	cmp    %ecx,0x4(%eax)                 
  1120f3:	73 03                	jae    1120f8 <_Heap_Get_information+0x40>
      info->largest = the_size;                                       
  1120f5:	89 48 04             	mov    %ecx,0x4(%eax)                 
  Heap_Block *the_block = the_heap->first_block;                      
  Heap_Block *const end = the_heap->last_block;                       
                                                                      
  memset(the_info, 0, sizeof(*the_info));                             
                                                                      
  while ( the_block != end ) {                                        
  1120f8:	39 75 f0             	cmp    %esi,-0x10(%ebp)               
  1120fb:	74 1b                	je     112118 <_Heap_Get_information+0x60>
    - 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;                
  1120fd:	89 f9                	mov    %edi,%ecx                      
  1120ff:	83 e1 fe             	and    $0xfffffffe,%ecx               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  112102:	8d 34 0a             	lea    (%edx,%ecx,1),%esi             
  112105:	89 f2                	mov    %esi,%edx                      
    if ( info->largest < the_size )                                   
      info->largest = the_size;                                       
                                                                      
    the_block = next_block;                                           
  }                                                                   
}                                                                     
  112107:	8b 7e 04             	mov    0x4(%esi),%edi                 
  while ( the_block != end ) {                                        
    uintptr_t const     the_size = _Heap_Block_size(the_block);       
    Heap_Block *const  next_block = _Heap_Block_at(the_block, the_size);
    Heap_Information  *info;                                          
                                                                      
    if ( _Heap_Is_prev_used(next_block) )                             
  11210a:	f7 c7 01 00 00 00    	test   $0x1,%edi                      
  112110:	75 d6                	jne    1120e8 <_Heap_Get_information+0x30>
      info = &the_info->Used;                                         
    else                                                              
      info = &the_info->Free;                                         
  112112:	89 d8                	mov    %ebx,%eax                      
  112114:	eb d5                	jmp    1120eb <_Heap_Get_information+0x33>
  112116:	66 90                	xchg   %ax,%ax                        
    if ( info->largest < the_size )                                   
      info->largest = the_size;                                       
                                                                      
    the_block = next_block;                                           
  }                                                                   
}                                                                     
  112118:	58                   	pop    %eax                           
  112119:	5b                   	pop    %ebx                           
  11211a:	5e                   	pop    %esi                           
  11211b:	5f                   	pop    %edi                           
  11211c:	c9                   	leave                                 
  11211d:	c3                   	ret                                   
                                                                      

0011f5a8 <_Heap_Resize_block>: void *alloc_begin_ptr, uintptr_t new_alloc_size, uintptr_t *old_size, uintptr_t *new_size ) {
  11f5a8:	55                   	push   %ebp                           
  11f5a9:	89 e5                	mov    %esp,%ebp                      
  11f5ab:	57                   	push   %edi                           
  11f5ac:	56                   	push   %esi                           
  11f5ad:	53                   	push   %ebx                           
  11f5ae:	83 ec 2c             	sub    $0x2c,%esp                     
  11f5b1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  11f5b4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  11f5b7:	8d 4e f8             	lea    -0x8(%esi),%ecx                
  11f5ba:	89 f0                	mov    %esi,%eax                      
  11f5bc:	31 d2                	xor    %edx,%edx                      
  11f5be:	f7 73 10             	divl   0x10(%ebx)                     
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
  11f5c1:	29 d1                	sub    %edx,%ecx                      
                                                                      
  uintptr_t const alloc_begin = (uintptr_t) alloc_begin_ptr;          
                                                                      
  Heap_Block *const block = _Heap_Block_of_alloc_area( alloc_begin, page_size );
                                                                      
  *old_size = 0;                                                      
  11f5c3:	8b 45 14             	mov    0x14(%ebp),%eax                
  11f5c6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  *new_size = 0;                                                      
  11f5cc:	8b 55 18             	mov    0x18(%ebp),%edx                
  11f5cf:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    
  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;             
  11f5d5:	39 4b 20             	cmp    %ecx,0x20(%ebx)                
  11f5d8:	77 05                	ja     11f5df <_Heap_Resize_block+0x37>
  11f5da:	39 4b 24             	cmp    %ecx,0x24(%ebx)                
  11f5dd:	73 0d                	jae    11f5ec <_Heap_Resize_block+0x44>
      new_alloc_size,                                                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
  11f5df:	b8 02 00 00 00       	mov    $0x2,%eax                      
}                                                                     
  11f5e4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f5e7:	5b                   	pop    %ebx                           
  11f5e8:	5e                   	pop    %esi                           
  11f5e9:	5f                   	pop    %edi                           
  11f5ea:	c9                   	leave                                 
  11f5eb:	c3                   	ret                                   
    - 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;                
  11f5ec:	8b 41 04             	mov    0x4(%ecx),%eax                 
  11f5ef:	83 e0 fe             	and    $0xfffffffe,%eax               
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  uintptr_t const block_begin = (uintptr_t) block;                    
  uintptr_t block_size = _Heap_Block_size( block );                   
  uintptr_t block_end = block_begin + block_size;                     
  11f5f2:	8d 3c 01             	lea    (%ecx,%eax,1),%edi             
  11f5f5:	89 7d d4             	mov    %edi,-0x2c(%ebp)               
                                                                      
  uintptr_t alloc_size = block_end - alloc_begin + HEAP_ALLOC_BONUS;  
  11f5f8:	89 fa                	mov    %edi,%edx                      
  11f5fa:	29 f2                	sub    %esi,%edx                      
  11f5fc:	83 c2 04             	add    $0x4,%edx                      
  11f5ff:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  11f602:	8b 57 04             	mov    0x4(%edi),%edx                 
  11f605:	83 e2 fe             	and    $0xfffffffe,%edx               
  11f608:	89 55 d0             	mov    %edx,-0x30(%ebp)               
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_free(                              
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return !_Heap_Is_used( block );                                     
  11f60b:	f6 44 17 04 01       	testb  $0x1,0x4(%edi,%edx,1)          
  11f610:	0f 94 45 df          	sete   -0x21(%ebp)                    
  bool next_block_is_free = _Heap_Is_free( next_block );;             
                                                                      
  _HAssert( _Heap_Is_block_in_heap( heap, next_block ) );             
  _HAssert( _Heap_Is_prev_used( next_block ) );                       
                                                                      
  *old_size = alloc_size;                                             
  11f614:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f617:	8b 7d 14             	mov    0x14(%ebp),%edi                
  11f61a:	89 17                	mov    %edx,(%edi)                    
                                                                      
  if ( next_block_is_free ) {                                         
  11f61c:	80 7d df 00          	cmpb   $0x0,-0x21(%ebp)               
  11f620:	75 6e                	jne    11f690 <_Heap_Resize_block+0xe8>
    block_size += next_block_size;                                    
    alloc_size += next_block_size;                                    
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
  11f622:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f625:	39 55 10             	cmp    %edx,0x10(%ebp)                
  11f628:	77 79                	ja     11f6a3 <_Heap_Resize_block+0xfb>
    return HEAP_RESIZE_UNSATISFIED;                                   
  }                                                                   
                                                                      
  if ( next_block_is_free ) {                                         
  11f62a:	80 7d df 00          	cmpb   $0x0,-0x21(%ebp)               
  11f62e:	74 31                	je     11f661 <_Heap_Resize_block+0xb9>
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
  11f630:	8b 79 04             	mov    0x4(%ecx),%edi                 
  11f633:	83 e7 01             	and    $0x1,%edi                      
                                                                      
  block->size_and_flag = size | flag;                                 
  11f636:	09 c7                	or     %eax,%edi                      
  11f638:	89 79 04             	mov    %edi,0x4(%ecx)                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f63b:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  11f63e:	8b 7f 08             	mov    0x8(%edi),%edi                 
  11f641:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
  11f644:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  11f647:	8b 7a 0c             	mov    0xc(%edx),%edi                 
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
                                                                      
  prev->next = next;                                                  
  11f64a:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  11f64d:	89 57 08             	mov    %edx,0x8(%edi)                 
  next->prev = prev;                                                  
  11f650:	89 7a 0c             	mov    %edi,0xc(%edx)                 
    _Heap_Block_set_size( block, block_size );                        
                                                                      
    _Heap_Free_list_remove( next_block );                             
                                                                      
    next_block = _Heap_Block_at( block, block_size );                 
    next_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                
  11f653:	83 4c 01 04 01       	orl    $0x1,0x4(%ecx,%eax,1)          
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
  11f658:	ff 4b 38             	decl   0x38(%ebx)                     
    stats->free_size -= next_block_size;                              
  11f65b:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  11f65e:	29 7b 30             	sub    %edi,0x30(%ebx)                
  }                                                                   
                                                                      
  block = _Heap_Block_allocate( heap, block, alloc_begin, new_alloc_size );
  11f661:	ff 75 10             	pushl  0x10(%ebp)                     
  11f664:	56                   	push   %esi                           
  11f665:	51                   	push   %ecx                           
  11f666:	53                   	push   %ebx                           
  11f667:	e8 dc d1 fe ff       	call   10c848 <_Heap_Block_allocate>  
    - 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;                
  11f66c:	8b 50 04             	mov    0x4(%eax),%edx                 
  11f66f:	83 e2 fe             	and    $0xfffffffe,%edx               
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
  *new_size = (uintptr_t) next_block - alloc_begin + HEAP_ALLOC_BONUS;
  11f672:	29 f0                	sub    %esi,%eax                      
  11f674:	8d 44 10 04          	lea    0x4(%eax,%edx,1),%eax          
  11f678:	8b 55 18             	mov    0x18(%ebp),%edx                
  11f67b:	89 02                	mov    %eax,(%edx)                    
                                                                      
  /* Statistics */                                                    
  ++stats->resizes;                                                   
  11f67d:	ff 43 54             	incl   0x54(%ebx)                     
  11f680:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  return HEAP_RESIZE_SUCCESSFUL;                                      
  11f683:	31 c0                	xor    %eax,%eax                      
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f685:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f688:	5b                   	pop    %ebx                           
  11f689:	5e                   	pop    %esi                           
  11f68a:	5f                   	pop    %edi                           
  11f68b:	c9                   	leave                                 
  11f68c:	c3                   	ret                                   
  11f68d:	8d 76 00             	lea    0x0(%esi),%esi                 
  _HAssert( _Heap_Is_prev_used( next_block ) );                       
                                                                      
  *old_size = alloc_size;                                             
                                                                      
  if ( next_block_is_free ) {                                         
    block_size += next_block_size;                                    
  11f690:	03 45 d0             	add    -0x30(%ebp),%eax               
    alloc_size += next_block_size;                                    
  11f693:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  11f696:	01 fa                	add    %edi,%edx                      
  11f698:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
  11f69b:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f69e:	39 55 10             	cmp    %edx,0x10(%ebp)                
  11f6a1:	76 87                	jbe    11f62a <_Heap_Resize_block+0x82>
    return HEAP_RESIZE_UNSATISFIED;                                   
  11f6a3:	b8 01 00 00 00       	mov    $0x1,%eax                      
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f6a8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f6ab:	5b                   	pop    %ebx                           
  11f6ac:	5e                   	pop    %esi                           
  11f6ad:	5f                   	pop    %edi                           
  11f6ae:	c9                   	leave                                 
  11f6af:	c3                   	ret                                   
                                                                      

0011f6b0 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
  11f6b0:	55                   	push   %ebp                           
  11f6b1:	89 e5                	mov    %esp,%ebp                      
  11f6b3:	56                   	push   %esi                           
  11f6b4:	53                   	push   %ebx                           
  11f6b5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  11f6b8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  11f6bb:	8d 4e f8             	lea    -0x8(%esi),%ecx                
  11f6be:	89 f0                	mov    %esi,%eax                      
  11f6c0:	31 d2                	xor    %edx,%edx                      
  11f6c2:	f7 73 10             	divl   0x10(%ebx)                     
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
  11f6c5:	29 d1                	sub    %edx,%ecx                      
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           
  11f6c7:	8b 43 20             	mov    0x20(%ebx),%eax                
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
  11f6ca:	39 c1                	cmp    %eax,%ecx                      
  11f6cc:	72 07                	jb     11f6d5 <_Heap_Size_of_alloc_area+0x25>
  11f6ce:	8b 53 24             	mov    0x24(%ebx),%edx                
  11f6d1:	39 d1                	cmp    %edx,%ecx                      
  11f6d3:	76 07                	jbe    11f6dc <_Heap_Size_of_alloc_area+0x2c><== ALWAYS TAKEN
                                                                      
  if (                                                                
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
  ) {                                                                 
    return false;                                                     
  11f6d5:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
                                                                      
  return true;                                                        
}                                                                     
  11f6d7:	5b                   	pop    %ebx                           
  11f6d8:	5e                   	pop    %esi                           
  11f6d9:	c9                   	leave                                 
  11f6da:	c3                   	ret                                   
  11f6db:	90                   	nop                                   
    - 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;                
  11f6dc:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  11f6df:	83 e3 fe             	and    $0xfffffffe,%ebx               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  11f6e2:	01 d9                	add    %ebx,%ecx                      
  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;             
  11f6e4:	39 c8                	cmp    %ecx,%eax                      
  11f6e6:	77 ed                	ja     11f6d5 <_Heap_Size_of_alloc_area+0x25><== NEVER TAKEN
  11f6e8:	39 ca                	cmp    %ecx,%edx                      
  11f6ea:	72 e9                	jb     11f6d5 <_Heap_Size_of_alloc_area+0x25><== NEVER TAKEN
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if (                                                                
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
  11f6ec:	f6 41 04 01          	testb  $0x1,0x4(%ecx)                 
  11f6f0:	74 e3                	je     11f6d5 <_Heap_Size_of_alloc_area+0x25><== NEVER TAKEN
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
  11f6f2:	29 f1                	sub    %esi,%ecx                      
  11f6f4:	8d 51 04             	lea    0x4(%ecx),%edx                 
  11f6f7:	8b 45 10             	mov    0x10(%ebp),%eax                
  11f6fa:	89 10                	mov    %edx,(%eax)                    
                                                                      
  return true;                                                        
  11f6fc:	b0 01                	mov    $0x1,%al                       
}                                                                     
  11f6fe:	5b                   	pop    %ebx                           
  11f6ff:	5e                   	pop    %esi                           
  11f700:	c9                   	leave                                 
  11f701:	c3                   	ret                                   
                                                                      

0010d390 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
  10d390:	55                   	push   %ebp                           
  10d391:	89 e5                	mov    %esp,%ebp                      
  10d393:	57                   	push   %edi                           
  10d394:	56                   	push   %esi                           
  10d395:	53                   	push   %ebx                           
  10d396:	83 ec 4c             	sub    $0x4c,%esp                     
  10d399:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  uintptr_t const page_size = heap->page_size;                        
  10d39c:	8b 43 10             	mov    0x10(%ebx),%eax                
  10d39f:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  uintptr_t const min_block_size = heap->min_block_size;              
  10d3a2:	8b 53 14             	mov    0x14(%ebx),%edx                
  10d3a5:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  Heap_Block *const first_block = heap->first_block;                  
  10d3a8:	8b 43 20             	mov    0x20(%ebx),%eax                
  10d3ab:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  Heap_Block *const last_block = heap->last_block;                    
  10d3ae:	8b 53 24             	mov    0x24(%ebx),%edx                
  10d3b1:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
  10d3b4:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)                
  10d3b8:	74 1a                	je     10d3d4 <_Heap_Walk+0x44>       
  10d3ba:	c7 45 d8 48 d3 10 00 	movl   $0x10d348,-0x28(%ebp)          
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
  10d3c1:	83 3d e0 a4 12 00 03 	cmpl   $0x3,0x12a4e0                  
  10d3c8:	74 1a                	je     10d3e4 <_Heap_Walk+0x54>       <== ALWAYS TAKEN
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
  10d3ca:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10d3cc:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d3cf:	5b                   	pop    %ebx                           
  10d3d0:	5e                   	pop    %esi                           
  10d3d1:	5f                   	pop    %edi                           
  10d3d2:	c9                   	leave                                 
  10d3d3:	c3                   	ret                                   
  uintptr_t const min_block_size = heap->min_block_size;              
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
  10d3d4:	c7 45 d8 40 d3 10 00 	movl   $0x10d340,-0x28(%ebp)          
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
  10d3db:	83 3d e0 a4 12 00 03 	cmpl   $0x3,0x12a4e0                  
  10d3e2:	75 e6                	jne    10d3ca <_Heap_Walk+0x3a>       
  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)(                                                         
  10d3e4:	52                   	push   %edx                           
  10d3e5:	ff 73 0c             	pushl  0xc(%ebx)                      
  10d3e8:	ff 73 08             	pushl  0x8(%ebx)                      
  10d3eb:	ff 75 cc             	pushl  -0x34(%ebp)                    
  10d3ee:	ff 75 dc             	pushl  -0x24(%ebp)                    
  10d3f1:	ff 73 1c             	pushl  0x1c(%ebx)                     
  10d3f4:	ff 73 18             	pushl  0x18(%ebx)                     
  10d3f7:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10d3fa:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10d3fd:	68 64 26 12 00       	push   $0x122664                      
  10d402:	6a 00                	push   $0x0                           
  10d404:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d407:	ff 55 d8             	call   *-0x28(%ebp)                   
    heap->area_begin, heap->area_end,                                 
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
  10d40a:	83 c4 30             	add    $0x30,%esp                     
  10d40d:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10d410:	85 c0                	test   %eax,%eax                      
  10d412:	74 70                	je     10d484 <_Heap_Walk+0xf4>       
    (*printer)( source, true, "page size is zero\n" );                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
  10d414:	f6 45 e0 03          	testb  $0x3,-0x20(%ebp)               
  10d418:	75 72                	jne    10d48c <_Heap_Walk+0xfc>       
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10d41a:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10d41d:	31 d2                	xor    %edx,%edx                      
  10d41f:	f7 75 e0             	divl   -0x20(%ebp)                    
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
  10d422:	85 d2                	test   %edx,%edx                      
  10d424:	75 72                	jne    10d498 <_Heap_Walk+0x108>      
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
  10d426:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10d429:	83 c0 08             	add    $0x8,%eax                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10d42c:	31 d2                	xor    %edx,%edx                      
  10d42e:	f7 75 e0             	divl   -0x20(%ebp)                    
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
  10d431:	85 d2                	test   %edx,%edx                      
  10d433:	75 6f                	jne    10d4a4 <_Heap_Walk+0x114>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d435:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10d438:	8b 40 04             	mov    0x4(%eax),%eax                 
  10d43b:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
  10d43e:	a8 01                	test   $0x1,%al                       
  10d440:	0f 84 ce 02 00 00    	je     10d714 <_Heap_Walk+0x384>      
    - 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;                
  10d446:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10d449:	8b 42 04             	mov    0x4(%edx),%eax                 
  10d44c:	83 e0 fe             	and    $0xfffffffe,%eax               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  10d44f:	01 d0                	add    %edx,%eax                      
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
  10d451:	f6 40 04 01          	testb  $0x1,0x4(%eax)                 
  10d455:	74 25                	je     10d47c <_Heap_Walk+0xec>       
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
  10d457:	39 45 dc             	cmp    %eax,-0x24(%ebp)               
  10d45a:	74 54                	je     10d4b0 <_Heap_Walk+0x120>      <== ALWAYS TAKEN
    _Heap_Block_at( last_block, _Heap_Block_size( last_block ) ) != first_block
  ) {                                                                 
    (*printer)(                                                       
  10d45c:	51                   	push   %ecx                           <== NOT EXECUTED
  10d45d:	68 80 27 12 00       	push   $0x122780                      <== NOT EXECUTED
  10d462:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
  10d464:	6a 01                	push   $0x1                           
  10d466:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d469:	ff 55 d8             	call   *-0x28(%ebp)                   
  10d46c:	83 c4 10             	add    $0x10,%esp                     
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
  10d46f:	31 c0                	xor    %eax,%eax                      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d471:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d474:	5b                   	pop    %ebx                           
  10d475:	5e                   	pop    %esi                           
  10d476:	5f                   	pop    %edi                           
  10d477:	c9                   	leave                                 
  10d478:	c3                   	ret                                   
  10d479:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
    (*printer)(                                                       
  10d47c:	53                   	push   %ebx                           
  10d47d:	68 1a 26 12 00       	push   $0x12261a                      
  10d482:	eb e0                	jmp    10d464 <_Heap_Walk+0xd4>       
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
    (*printer)( source, true, "page size is zero\n" );                
  10d484:	57                   	push   %edi                           
  10d485:	68 e9 25 12 00       	push   $0x1225e9                      
  10d48a:	eb d8                	jmp    10d464 <_Heap_Walk+0xd4>       
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
    (*printer)(                                                       
  10d48c:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10d48f:	68 fc 25 12 00       	push   $0x1225fc                      
  10d494:	eb ce                	jmp    10d464 <_Heap_Walk+0xd4>       
  10d496:	66 90                	xchg   %ax,%ax                        
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
    (*printer)(                                                       
  10d498:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10d49b:	68 f8 26 12 00       	push   $0x1226f8                      
  10d4a0:	eb c2                	jmp    10d464 <_Heap_Walk+0xd4>       
  10d4a2:	66 90                	xchg   %ax,%ax                        
  }                                                                   
                                                                      
  if (                                                                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
  10d4a4:	ff 75 dc             	pushl  -0x24(%ebp)                    
  10d4a7:	68 1c 27 12 00       	push   $0x12271c                      
  10d4ac:	eb b6                	jmp    10d464 <_Heap_Walk+0xd4>       
  10d4ae:	66 90                	xchg   %ax,%ax                        
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  10d4b0:	8b 43 10             	mov    0x10(%ebx),%eax                
  10d4b3:	89 45 c8             	mov    %eax,-0x38(%ebp)               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d4b6:	8b 73 08             	mov    0x8(%ebx),%esi                 
  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 ) {                            
  10d4b9:	39 f3                	cmp    %esi,%ebx                      
  10d4bb:	74 65                	je     10d522 <_Heap_Walk+0x192>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d4bd:	8b 43 20             	mov    0x20(%ebx),%eax                
  10d4c0:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  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;             
  10d4c3:	39 f0                	cmp    %esi,%eax                      
  10d4c5:	0f 87 55 02 00 00    	ja     10d720 <_Heap_Walk+0x390>      <== NEVER TAKEN
  10d4cb:	8b 7b 24             	mov    0x24(%ebx),%edi                
  10d4ce:	39 f7                	cmp    %esi,%edi                      
  10d4d0:	0f 82 4a 02 00 00    	jb     10d720 <_Heap_Walk+0x390>      <== NEVER TAKEN
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
  10d4d6:	8d 46 08             	lea    0x8(%esi),%eax                 
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10d4d9:	31 d2                	xor    %edx,%edx                      
  10d4db:	f7 75 c8             	divl   -0x38(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10d4de:	85 d2                	test   %edx,%edx                      
  10d4e0:	0f 85 71 02 00 00    	jne    10d757 <_Heap_Walk+0x3c7>      <== NEVER TAKEN
    - 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;                
  10d4e6:	8b 46 04             	mov    0x4(%esi),%eax                 
  10d4e9:	83 e0 fe             	and    $0xfffffffe,%eax               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10d4ec:	f6 44 06 04 01       	testb  $0x1,0x4(%esi,%eax,1)          
  10d4f1:	0f 85 6d 02 00 00    	jne    10d764 <_Heap_Walk+0x3d4>      <== NEVER TAKEN
  10d4f7:	89 da                	mov    %ebx,%edx                      
  10d4f9:	8d 76 00             	lea    0x0(%esi),%esi                 
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
  10d4fc:	8b 46 0c             	mov    0xc(%esi),%eax                 
  10d4ff:	39 d0                	cmp    %edx,%eax                      
  10d501:	0f 85 6a 02 00 00    	jne    10d771 <_Heap_Walk+0x3e1>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
  10d507:	8b 4e 08             	mov    0x8(%esi),%ecx                 
  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 ) {                            
  10d50a:	39 cb                	cmp    %ecx,%ebx                      
  10d50c:	74 1a                	je     10d528 <_Heap_Walk+0x198>      
  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;             
  10d50e:	39 4d d4             	cmp    %ecx,-0x2c(%ebp)               
  10d511:	0f 86 7d 01 00 00    	jbe    10d694 <_Heap_Walk+0x304>      
    if ( !_Heap_Is_block_in_heap( heap, free_block ) ) {              
      (*printer)(                                                     
  10d517:	51                   	push   %ecx                           
  10d518:	68 b0 27 12 00       	push   $0x1227b0                      
  10d51d:	e9 42 ff ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
  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 ) {                            
  10d522:	8b 53 20             	mov    0x20(%ebx),%edx                
  10d525:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10d528:	8b 7d dc             	mov    -0x24(%ebp),%edi               
  10d52b:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10d52e:	66 90                	xchg   %ax,%ax                        
    - 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;                
  10d530:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10d533:	83 e1 fe             	and    $0xfffffffe,%ecx               
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
  10d536:	8d 34 39             	lea    (%ecx,%edi,1),%esi             
  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;             
  10d539:	39 f0                	cmp    %esi,%eax                      
  10d53b:	76 23                	jbe    10d560 <_Heap_Walk+0x1d0>      <== ALWAYS TAKEN
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {              
      (*printer)(                                                     
  10d53d:	83 ec 0c             	sub    $0xc,%esp                      
  10d540:	56                   	push   %esi                           
  10d541:	57                   	push   %edi                           
  10d542:	68 34 28 12 00       	push   $0x122834                      
  10d547:	90                   	nop                                   
  10d548:	6a 01                	push   $0x1                           
  10d54a:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d54d:	ff 55 d8             	call   *-0x28(%ebp)                   
        "block 0x%08x: next block 0x%08x not in heap\n",              
        block,                                                        
        next_block                                                    
      );                                                              
                                                                      
      return false;                                                   
  10d550:	83 c4 20             	add    $0x20,%esp                     
  10d553:	31 c0                	xor    %eax,%eax                      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d555:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d558:	5b                   	pop    %ebx                           
  10d559:	5e                   	pop    %esi                           
  10d55a:	5f                   	pop    %edi                           
  10d55b:	c9                   	leave                                 
  10d55c:	c3                   	ret                                   
  10d55d:	8d 76 00             	lea    0x0(%esi),%esi                 
  10d560:	39 73 24             	cmp    %esi,0x24(%ebx)                
  10d563:	72 d8                	jb     10d53d <_Heap_Walk+0x1ad>      
    uintptr_t const block_begin = (uintptr_t) block;                  
    uintptr_t const block_size = _Heap_Block_size( block );           
    bool const prev_used = _Heap_Is_prev_used( block );               
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
  10d565:	3b 7d cc             	cmp    -0x34(%ebp),%edi               
  10d568:	0f 95 45 d4          	setne  -0x2c(%ebp)                    
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10d56c:	89 c8                	mov    %ecx,%eax                      
  10d56e:	31 d2                	xor    %edx,%edx                      
  10d570:	f7 75 e0             	divl   -0x20(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
  10d573:	85 d2                	test   %edx,%edx                      
  10d575:	74 0a                	je     10d581 <_Heap_Walk+0x1f1>      
  10d577:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10d57b:	0f 85 a6 01 00 00    	jne    10d727 <_Heap_Walk+0x397>      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
  10d581:	39 4d d0             	cmp    %ecx,-0x30(%ebp)               
  10d584:	76 0a                	jbe    10d590 <_Heap_Walk+0x200>      
  10d586:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10d58a:	0f 85 a6 01 00 00    	jne    10d736 <_Heap_Walk+0x3a6>      <== ALWAYS TAKEN
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
  10d590:	39 f7                	cmp    %esi,%edi                      
  10d592:	72 0a                	jb     10d59e <_Heap_Walk+0x20e>      
  10d594:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10d598:	0f 85 aa 01 00 00    	jne    10d748 <_Heap_Walk+0x3b8>      
  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;                 
  10d59e:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10d5a1:	83 e2 01             	and    $0x1,%edx                      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
  10d5a4:	f6 46 04 01          	testb  $0x1,0x4(%esi)                 
  10d5a8:	74 4e                	je     10d5f8 <_Heap_Walk+0x268>      
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
      }                                                               
    } else if (prev_used) {                                           
  10d5aa:	85 d2                	test   %edx,%edx                      
  10d5ac:	74 2e                	je     10d5dc <_Heap_Walk+0x24c>      
      (*printer)(                                                     
  10d5ae:	83 ec 0c             	sub    $0xc,%esp                      
  10d5b1:	51                   	push   %ecx                           
  10d5b2:	57                   	push   %edi                           
  10d5b3:	68 4b 26 12 00       	push   $0x12264b                      
  10d5b8:	6a 00                	push   $0x0                           
  10d5ba:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d5bd:	ff 55 d8             	call   *-0x28(%ebp)                   
  10d5c0:	83 c4 20             	add    $0x20,%esp                     
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
  10d5c3:	39 75 dc             	cmp    %esi,-0x24(%ebp)               
  10d5c6:	0f 84 fe fd ff ff    	je     10d3ca <_Heap_Walk+0x3a>       
  10d5cc:	8b 56 04             	mov    0x4(%esi),%edx                 
  10d5cf:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10d5d2:	8b 43 20             	mov    0x20(%ebx),%eax                
  10d5d5:	89 f7                	mov    %esi,%edi                      
  10d5d7:	e9 54 ff ff ff       	jmp    10d530 <_Heap_Walk+0x1a0>      
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
  10d5dc:	83 ec 08             	sub    $0x8,%esp                      
  10d5df:	ff 37                	pushl  (%edi)                         
  10d5e1:	51                   	push   %ecx                           
  10d5e2:	57                   	push   %edi                           
  10d5e3:	68 98 29 12 00       	push   $0x122998                      
  10d5e8:	6a 00                	push   $0x0                           
  10d5ea:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d5ed:	ff 55 d8             	call   *-0x28(%ebp)                   
  10d5f0:	83 c4 20             	add    $0x20,%esp                     
  10d5f3:	eb ce                	jmp    10d5c3 <_Heap_Walk+0x233>      
  10d5f5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d5f8:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10d5fb:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
  10d5fe:	8b 47 08             	mov    0x8(%edi),%eax                 
  10d601:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  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)(                                                         
  10d604:	39 43 0c             	cmp    %eax,0xc(%ebx)                 
  10d607:	0f 84 cb 00 00 00    	je     10d6d8 <_Heap_Walk+0x348>      
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  10d60d:	39 c3                	cmp    %eax,%ebx                      
  10d60f:	0f 84 db 00 00 00    	je     10d6f0 <_Heap_Walk+0x360>      
  10d615:	c7 45 c8 e9 24 12 00 	movl   $0x1224e9,-0x38(%ebp)          
    false,                                                            
    "block 0x%08x: size %u, prev 0x%08x%s, next 0x%08x%s\n",          
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
  10d61c:	8b 47 0c             	mov    0xc(%edi),%eax                 
  10d61f:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  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)(                                                         
  10d622:	39 45 b4             	cmp    %eax,-0x4c(%ebp)               
  10d625:	0f 84 b9 00 00 00    	je     10d6e4 <_Heap_Walk+0x354>      
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
  10d62b:	39 c3                	cmp    %eax,%ebx                      
  10d62d:	0f 84 c9 00 00 00    	je     10d6fc <_Heap_Walk+0x36c>      
  10d633:	b8 e9 24 12 00       	mov    $0x1224e9,%eax                 
  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)(                                                         
  10d638:	83 ec 0c             	sub    $0xc,%esp                      
  10d63b:	ff 75 c8             	pushl  -0x38(%ebp)                    
  10d63e:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d641:	50                   	push   %eax                           
  10d642:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10d645:	51                   	push   %ecx                           
  10d646:	57                   	push   %edi                           
  10d647:	68 f4 28 12 00       	push   $0x1228f4                      
  10d64c:	6a 00                	push   $0x0                           
  10d64e:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d651:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10d654:	89 4d c0             	mov    %ecx,-0x40(%ebp)               
  10d657:	ff 55 d8             	call   *-0x28(%ebp)                   
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
  10d65a:	8b 06                	mov    (%esi),%eax                    
  10d65c:	83 c4 30             	add    $0x30,%esp                     
  10d65f:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10d662:	39 c1                	cmp    %eax,%ecx                      
  10d664:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10d667:	75 5f                	jne    10d6c8 <_Heap_Walk+0x338>      
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
  10d669:	85 d2                	test   %edx,%edx                      
  10d66b:	0f 84 97 00 00 00    	je     10d708 <_Heap_Walk+0x378>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10d671:	8b 43 08             	mov    0x8(%ebx),%eax                 
)                                                                     
{                                                                     
  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 ) {                            
  10d674:	39 c3                	cmp    %eax,%ebx                      
  10d676:	74 0f                	je     10d687 <_Heap_Walk+0x2f7>      <== NEVER TAKEN
    if ( free_block == block ) {                                      
  10d678:	39 c7                	cmp    %eax,%edi                      
  10d67a:	0f 84 43 ff ff ff    	je     10d5c3 <_Heap_Walk+0x233>      
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
  10d680:	8b 40 08             	mov    0x8(%eax),%eax                 
)                                                                     
{                                                                     
  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 ) {                            
  10d683:	39 c3                	cmp    %eax,%ebx                      
  10d685:	75 f1                	jne    10d678 <_Heap_Walk+0x2e8>      
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
  10d687:	57                   	push   %edi                           
  10d688:	68 c0 29 12 00       	push   $0x1229c0                      
  10d68d:	e9 d2 fd ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
  10d692:	66 90                	xchg   %ax,%ax                        
  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;             
  10d694:	39 f9                	cmp    %edi,%ecx                      
  10d696:	0f 87 7b fe ff ff    	ja     10d517 <_Heap_Walk+0x187>      <== NEVER TAKEN
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
  10d69c:	8d 41 08             	lea    0x8(%ecx),%eax                 
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10d69f:	31 d2                	xor    %edx,%edx                      
  10d6a1:	f7 75 c8             	divl   -0x38(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10d6a4:	85 d2                	test   %edx,%edx                      
  10d6a6:	0f 85 ad 00 00 00    	jne    10d759 <_Heap_Walk+0x3c9>      
    - 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;                
  10d6ac:	8b 41 04             	mov    0x4(%ecx),%eax                 
  10d6af:	83 e0 fe             	and    $0xfffffffe,%eax               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10d6b2:	f6 44 01 04 01       	testb  $0x1,0x4(%ecx,%eax,1)          
  10d6b7:	0f 85 a9 00 00 00    	jne    10d766 <_Heap_Walk+0x3d6>      
  10d6bd:	89 f2                	mov    %esi,%edx                      
  10d6bf:	89 ce                	mov    %ecx,%esi                      
  10d6c1:	e9 36 fe ff ff       	jmp    10d4fc <_Heap_Walk+0x16c>      
  10d6c6:	66 90                	xchg   %ax,%ax                        
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
    (*printer)(                                                       
  10d6c8:	52                   	push   %edx                           
  10d6c9:	56                   	push   %esi                           
  10d6ca:	50                   	push   %eax                           
  10d6cb:	51                   	push   %ecx                           
  10d6cc:	57                   	push   %edi                           
  10d6cd:	68 2c 29 12 00       	push   $0x12292c                      
  10d6d2:	e9 71 fe ff ff       	jmp    10d548 <_Heap_Walk+0x1b8>      
  10d6d7:	90                   	nop                                   
  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)(                                                         
  10d6d8:	c7 45 c8 b6 25 12 00 	movl   $0x1225b6,-0x38(%ebp)          
  10d6df:	e9 38 ff ff ff       	jmp    10d61c <_Heap_Walk+0x28c>      
  10d6e4:	b8 cf 25 12 00       	mov    $0x1225cf,%eax                 
  10d6e9:	e9 4a ff ff ff       	jmp    10d638 <_Heap_Walk+0x2a8>      
  10d6ee:	66 90                	xchg   %ax,%ax                        
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  10d6f0:	c7 45 c8 c5 25 12 00 	movl   $0x1225c5,-0x38(%ebp)          
  10d6f7:	e9 20 ff ff ff       	jmp    10d61c <_Heap_Walk+0x28c>      
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
  10d6fc:	b8 df 25 12 00       	mov    $0x1225df,%eax                 
  10d701:	e9 32 ff ff ff       	jmp    10d638 <_Heap_Walk+0x2a8>      
  10d706:	66 90                	xchg   %ax,%ax                        
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
    (*printer)(                                                       
  10d708:	57                   	push   %edi                           
  10d709:	68 68 29 12 00       	push   $0x122968                      
  10d70e:	e9 51 fd ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
  10d713:	90                   	nop                                   
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
    (*printer)(                                                       
  10d714:	56                   	push   %esi                           
  10d715:	68 50 27 12 00       	push   $0x122750                      
  10d71a:	e9 45 fd ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
  10d71f:	90                   	nop                                   
  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;             
  10d720:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
  10d722:	e9 f0 fd ff ff       	jmp    10d517 <_Heap_Walk+0x187>      <== NOT EXECUTED
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
      (*printer)(                                                     
  10d727:	83 ec 0c             	sub    $0xc,%esp                      
  10d72a:	51                   	push   %ecx                           
  10d72b:	57                   	push   %edi                           
  10d72c:	68 64 28 12 00       	push   $0x122864                      
  10d731:	e9 12 fe ff ff       	jmp    10d548 <_Heap_Walk+0x1b8>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
      (*printer)(                                                     
  10d736:	83 ec 08             	sub    $0x8,%esp                      
  10d739:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10d73c:	51                   	push   %ecx                           
  10d73d:	57                   	push   %edi                           
  10d73e:	68 94 28 12 00       	push   $0x122894                      
  10d743:	e9 00 fe ff ff       	jmp    10d548 <_Heap_Walk+0x1b8>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
      (*printer)(                                                     
  10d748:	83 ec 0c             	sub    $0xc,%esp                      
  10d74b:	56                   	push   %esi                           
  10d74c:	57                   	push   %edi                           
  10d74d:	68 c0 28 12 00       	push   $0x1228c0                      
  10d752:	e9 f1 fd ff ff       	jmp    10d548 <_Heap_Walk+0x1b8>      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10d757:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
  10d759:	51                   	push   %ecx                           
  10d75a:	68 d0 27 12 00       	push   $0x1227d0                      
  10d75f:	e9 00 fd ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10d764:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
      (*printer)(                                                     
  10d766:	51                   	push   %ecx                           
  10d767:	68 2f 26 12 00       	push   $0x12262f                      
  10d76c:	e9 f3 fc ff ff       	jmp    10d464 <_Heap_Walk+0xd4>       
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
      (*printer)(                                                     
  10d771:	83 ec 0c             	sub    $0xc,%esp                      
  10d774:	50                   	push   %eax                           
  10d775:	56                   	push   %esi                           
  10d776:	68 00 28 12 00       	push   $0x122800                      
  10d77b:	e9 c8 fd ff ff       	jmp    10d548 <_Heap_Walk+0x1b8>      
                                                                      

0010bde8 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) {
  10bde8:	55                   	push   %ebp                           
  10bde9:	89 e5                	mov    %esp,%ebp                      
  10bdeb:	53                   	push   %ebx                           
  10bdec:	83 ec 04             	sub    $0x4,%esp                      
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
  10bdef:	8b 0d c0 88 12 00    	mov    0x1288c0,%ecx                  
  10bdf5:	85 c9                	test   %ecx,%ecx                      
  10bdf7:	74 1a                	je     10be13 <_IO_Initialize_all_drivers+0x2b><== NEVER TAKEN
  10bdf9:	31 db                	xor    %ebx,%ebx                      
  10bdfb:	90                   	nop                                   
     (void) rtems_io_initialize( major, 0, NULL );                    
  10bdfc:	52                   	push   %edx                           
  10bdfd:	6a 00                	push   $0x0                           
  10bdff:	6a 00                	push   $0x0                           
  10be01:	53                   	push   %ebx                           
  10be02:	e8 9d 52 00 00       	call   1110a4 <rtems_io_initialize>   
                                                                      
void _IO_Initialize_all_drivers( void )                               
{                                                                     
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
  10be07:	43                   	inc    %ebx                           
  10be08:	83 c4 10             	add    $0x10,%esp                     
  10be0b:	39 1d c0 88 12 00    	cmp    %ebx,0x1288c0                  
  10be11:	77 e9                	ja     10bdfc <_IO_Initialize_all_drivers+0x14>
     (void) rtems_io_initialize( major, 0, NULL );                    
}                                                                     
  10be13:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10be16:	c9                   	leave                                 
  10be17:	c3                   	ret                                   
                                                                      

0010bd50 <_IO_Manager_initialization>: * workspace. * */ void _IO_Manager_initialization(void) {
  10bd50:	55                   	push   %ebp                           
  10bd51:	89 e5                	mov    %esp,%ebp                      
  10bd53:	57                   	push   %edi                           
  10bd54:	56                   	push   %esi                           
  10bd55:	53                   	push   %ebx                           
  10bd56:	83 ec 1c             	sub    $0x1c,%esp                     
  uint32_t                    index;                                  
  rtems_driver_address_table *driver_table;                           
  uint32_t                    drivers_in_table;                       
  uint32_t                    number_of_drivers;                      
                                                                      
  driver_table      = Configuration.Device_driver_table;              
  10bd59:	8b 1d 74 3b 12 00    	mov    0x123b74,%ebx                  
  drivers_in_table  = Configuration.number_of_device_drivers;         
  10bd5f:	a1 70 3b 12 00       	mov    0x123b70,%eax                  
  10bd64:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  number_of_drivers = Configuration.maximum_drivers;                  
  10bd67:	8b 35 6c 3b 12 00    	mov    0x123b6c,%esi                  
                                                                      
  /*                                                                  
   *  If the user claims there are less drivers than are actually in  
   *  the table, then let's just go with the table's count.           
   */                                                                 
  if ( number_of_drivers <= drivers_in_table )                        
  10bd6d:	39 f0                	cmp    %esi,%eax                      
  10bd6f:	73 5f                	jae    10bdd0 <_IO_Manager_initialization+0x80>
   *  The application requested extra slots in the driver table, so we
   *  have to allocate a new driver table and copy theirs to it.      
   */                                                                 
                                                                      
  _IO_Driver_address_table = (rtems_driver_address_table *)           
      _Workspace_Allocate_or_fatal_error(                             
  10bd71:	8d 0c 76             	lea    (%esi,%esi,2),%ecx             
  10bd74:	c1 e1 03             	shl    $0x3,%ecx                      
  10bd77:	83 ec 0c             	sub    $0xc,%esp                      
  10bd7a:	51                   	push   %ecx                           
  10bd7b:	89 4d dc             	mov    %ecx,-0x24(%ebp)               
  10bd7e:	e8 95 2c 00 00       	call   10ea18 <_Workspace_Allocate_or_fatal_error>
  10bd83:	89 c2                	mov    %eax,%edx                      
  /*                                                                  
   *  The application requested extra slots in the driver table, so we
   *  have to allocate a new driver table and copy theirs to it.      
   */                                                                 
                                                                      
  _IO_Driver_address_table = (rtems_driver_address_table *)           
  10bd85:	a3 c4 88 12 00       	mov    %eax,0x1288c4                  
      _Workspace_Allocate_or_fatal_error(                             
        sizeof( rtems_driver_address_table ) * ( number_of_drivers )  
      );                                                              
  _IO_Number_of_drivers = number_of_drivers;                          
  10bd8a:	89 35 c0 88 12 00    	mov    %esi,0x1288c0                  
                                                                      
  memset(                                                             
  10bd90:	31 c0                	xor    %eax,%eax                      
  10bd92:	8b 4d dc             	mov    -0x24(%ebp),%ecx               
  10bd95:	89 d7                	mov    %edx,%edi                      
  10bd97:	f3 aa                	rep stos %al,%es:(%edi)               
    _IO_Driver_address_table, 0,                                      
    sizeof( rtems_driver_address_table ) * ( number_of_drivers )      
  );                                                                  
                                                                      
  for ( index = 0 ; index < drivers_in_table ; index++ )              
  10bd99:	83 c4 10             	add    $0x10,%esp                     
  10bd9c:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10bd9f:	85 c0                	test   %eax,%eax                      
  10bda1:	74 25                	je     10bdc8 <_IO_Manager_initialization+0x78><== NEVER TAKEN
  10bda3:	a1 c4 88 12 00       	mov    0x1288c4,%eax                  
  10bda8:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10bdab:	31 c0                	xor    %eax,%eax                      
  10bdad:	31 d2                	xor    %edx,%edx                      
  10bdaf:	90                   	nop                                   
    _IO_Driver_address_table[index] = driver_table[index];            
  10bdb0:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  10bdb3:	01 c7                	add    %eax,%edi                      
  10bdb5:	8d 34 03             	lea    (%ebx,%eax,1),%esi             
  10bdb8:	b9 06 00 00 00       	mov    $0x6,%ecx                      
  10bdbd:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  memset(                                                             
    _IO_Driver_address_table, 0,                                      
    sizeof( rtems_driver_address_table ) * ( number_of_drivers )      
  );                                                                  
                                                                      
  for ( index = 0 ; index < drivers_in_table ; index++ )              
  10bdbf:	42                   	inc    %edx                           
  10bdc0:	83 c0 18             	add    $0x18,%eax                     
  10bdc3:	39 55 e4             	cmp    %edx,-0x1c(%ebp)               
  10bdc6:	77 e8                	ja     10bdb0 <_IO_Manager_initialization+0x60>
    _IO_Driver_address_table[index] = driver_table[index];            
}                                                                     
  10bdc8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bdcb:	5b                   	pop    %ebx                           
  10bdcc:	5e                   	pop    %esi                           
  10bdcd:	5f                   	pop    %edi                           
  10bdce:	c9                   	leave                                 
  10bdcf:	c3                   	ret                                   
   *  If the maximum number of driver is the same as the number in the
   *  table, then we do not have to copy the driver table.  They can't
   *  register any dynamically.                                       
   */                                                                 
  if ( number_of_drivers == drivers_in_table ) {                      
    _IO_Driver_address_table = driver_table;                          
  10bdd0:	89 1d c4 88 12 00    	mov    %ebx,0x1288c4                  
    _IO_Number_of_drivers = number_of_drivers;                        
  10bdd6:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10bdd9:	a3 c0 88 12 00       	mov    %eax,0x1288c0                  
    sizeof( rtems_driver_address_table ) * ( number_of_drivers )      
  );                                                                  
                                                                      
  for ( index = 0 ; index < drivers_in_table ; index++ )              
    _IO_Driver_address_table[index] = driver_table[index];            
}                                                                     
  10bdde:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bde1:	5b                   	pop    %ebx                           
  10bde2:	5e                   	pop    %esi                           
  10bde3:	5f                   	pop    %edi                           
  10bde4:	c9                   	leave                                 
  10bde5:	c3                   	ret                                   
                                                                      

0010c93c <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
  10c93c:	55                   	push   %ebp                           
  10c93d:	89 e5                	mov    %esp,%ebp                      
  10c93f:	53                   	push   %ebx                           
  10c940:	83 ec 08             	sub    $0x8,%esp                      
  10c943:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c946:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10c949:	8b 5d 10             	mov    0x10(%ebp),%ebx                
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  10c94c:	a3 f4 7e 12 00       	mov    %eax,0x127ef4                  
  _Internal_errors_What_happened.is_internal = is_internal;           
  10c951:	88 15 f8 7e 12 00    	mov    %dl,0x127ef8                   
  _Internal_errors_What_happened.the_error   = the_error;             
  10c957:	89 1d fc 7e 12 00    	mov    %ebx,0x127efc                  
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
  10c95d:	53                   	push   %ebx                           
  10c95e:	0f b6 d2             	movzbl %dl,%edx                       
  10c961:	52                   	push   %edx                           
  10c962:	50                   	push   %eax                           
  10c963:	e8 b0 1c 00 00       	call   10e618 <_User_extensions_Fatal>
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
  10c968:	c7 05 e0 7f 12 00 05 	movl   $0x5,0x127fe0                  <== NOT EXECUTED
  10c96f:	00 00 00                                                    
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
  10c972:	fa                   	cli                                   <== NOT EXECUTED
  10c973:	89 d8                	mov    %ebx,%eax                      <== NOT EXECUTED
  10c975:	f4                   	hlt                                   <== NOT EXECUTED
  10c976:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c979:	eb fe                	jmp    10c979 <_Internal_error_Occurred+0x3d><== NOT EXECUTED
                                                                      

00111690 <_Objects_API_maximum_class>: #include <rtems/score/object.h> unsigned int _Objects_API_maximum_class( uint32_t api ) {
  111690:	55                   	push   %ebp                           
  111691:	89 e5                	mov    %esp,%ebp                      
  111693:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111696:	48                   	dec    %eax                           
  111697:	83 f8 02             	cmp    $0x2,%eax                      
  11169a:	77 0c                	ja     1116a8 <_Objects_API_maximum_class+0x18>
  11169c:	8b 04 85 60 1c 12 00 	mov    0x121c60(,%eax,4),%eax         
    case OBJECTS_NO_API:                                              
    default:                                                          
      break;                                                          
  }                                                                   
  return 0;                                                           
}                                                                     
  1116a3:	c9                   	leave                                 
  1116a4:	c3                   	ret                                   
  1116a5:	8d 76 00             	lea    0x0(%esi),%esi                 
#include <rtems/score/object.h>                                       
                                                                      
unsigned int _Objects_API_maximum_class(                              
  uint32_t api                                                        
)                                                                     
{                                                                     
  1116a8:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_NO_API:                                              
    default:                                                          
      break;                                                          
  }                                                                   
  return 0;                                                           
}                                                                     
  1116aa:	c9                   	leave                                 
  1116ab:	c3                   	ret                                   
                                                                      

0010c9cc <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) {
  10c9cc:	55                   	push   %ebp                           
  10c9cd:	89 e5                	mov    %esp,%ebp                      
  10c9cf:	56                   	push   %esi                           
  10c9d0:	53                   	push   %ebx                           
  10c9d1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
   *  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 )                                       
  10c9d4:	8b 43 18             	mov    0x18(%ebx),%eax                
  10c9d7:	85 c0                	test   %eax,%eax                      
  10c9d9:	75 0d                	jne    10c9e8 <_Objects_Allocate+0x1c><== ALWAYS TAKEN
    return NULL;                                                      
  10c9db:	31 c9                	xor    %ecx,%ecx                      <== NOT EXECUTED
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
  10c9dd:	89 c8                	mov    %ecx,%eax                      
  10c9df:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c9e2:	5b                   	pop    %ebx                           
  10c9e3:	5e                   	pop    %esi                           
  10c9e4:	c9                   	leave                                 
  10c9e5:	c3                   	ret                                   
  10c9e6:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  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 );
  10c9e8:	8d 73 20             	lea    0x20(%ebx),%esi                
  10c9eb:	83 ec 0c             	sub    $0xc,%esp                      
  10c9ee:	56                   	push   %esi                           
  10c9ef:	e8 68 f6 ff ff       	call   10c05c <_Chain_Get>            
  10c9f4:	89 c1                	mov    %eax,%ecx                      
                                                                      
  if ( information->auto_extend ) {                                   
  10c9f6:	83 c4 10             	add    $0x10,%esp                     
  10c9f9:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)                
  10c9fd:	74 de                	je     10c9dd <_Objects_Allocate+0x11>
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
  10c9ff:	85 c0                	test   %eax,%eax                      
  10ca01:	74 29                	je     10ca2c <_Objects_Allocate+0x60>
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
  10ca03:	0f b7 41 08          	movzwl 0x8(%ecx),%eax                 
  10ca07:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  10ca0b:	29 d0                	sub    %edx,%eax                      
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
  10ca0d:	0f b7 73 14          	movzwl 0x14(%ebx),%esi                
  10ca11:	31 d2                	xor    %edx,%edx                      
  10ca13:	f7 f6                	div    %esi                           
                                                                      
      information->inactive_per_block[ block ]--;                     
  10ca15:	c1 e0 02             	shl    $0x2,%eax                      
  10ca18:	03 43 30             	add    0x30(%ebx),%eax                
  10ca1b:	ff 08                	decl   (%eax)                         
      information->inactive--;                                        
  10ca1d:	66 ff 4b 2c          	decw   0x2c(%ebx)                     
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
  10ca21:	89 c8                	mov    %ecx,%eax                      
  10ca23:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ca26:	5b                   	pop    %ebx                           
  10ca27:	5e                   	pop    %esi                           
  10ca28:	c9                   	leave                                 
  10ca29:	c3                   	ret                                   
  10ca2a:	66 90                	xchg   %ax,%ax                        
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
      _Objects_Extend_information( information );                     
  10ca2c:	83 ec 0c             	sub    $0xc,%esp                      
  10ca2f:	53                   	push   %ebx                           
  10ca30:	e8 3b 00 00 00       	call   10ca70 <_Objects_Extend_information>
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
  10ca35:	89 34 24             	mov    %esi,(%esp)                    
  10ca38:	e8 1f f6 ff ff       	call   10c05c <_Chain_Get>            
  10ca3d:	89 c1                	mov    %eax,%ecx                      
    }                                                                 
                                                                      
    if ( the_object ) {                                               
  10ca3f:	83 c4 10             	add    $0x10,%esp                     
  10ca42:	85 c0                	test   %eax,%eax                      
  10ca44:	74 97                	je     10c9dd <_Objects_Allocate+0x11>
  10ca46:	eb bb                	jmp    10ca03 <_Objects_Allocate+0x37>
                                                                      

0010ca70 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) {
  10ca70:	55                   	push   %ebp                           
  10ca71:	89 e5                	mov    %esp,%ebp                      
  10ca73:	57                   	push   %edi                           
  10ca74:	56                   	push   %esi                           
  10ca75:	53                   	push   %ebx                           
  10ca76:	83 ec 4c             	sub    $0x4c,%esp                     
  10ca79:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  10ca7c:	0f b7 43 08          	movzwl 0x8(%ebx),%eax                 
  10ca80:	89 45 cc             	mov    %eax,-0x34(%ebp)               
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
  10ca83:	8b 4b 34             	mov    0x34(%ebx),%ecx                
  10ca86:	85 c9                	test   %ecx,%ecx                      
  10ca88:	0f 84 62 02 00 00    	je     10ccf0 <_Objects_Extend_information+0x280>
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
  10ca8e:	8b 73 10             	mov    0x10(%ebx),%esi                
  10ca91:	66 89 75 d0          	mov    %si,-0x30(%ebp)                
  10ca95:	8b 7b 14             	mov    0x14(%ebx),%edi                
  10ca98:	89 f0                	mov    %esi,%eax                      
  10ca9a:	31 d2                	xor    %edx,%edx                      
  10ca9c:	66 f7 f7             	div    %di                            
  10ca9f:	0f b7 f0             	movzwl %ax,%esi                       
                                                                      
    for ( ; block < block_count; block++ ) {                          
  10caa2:	85 f6                	test   %esi,%esi                      
  10caa4:	0f 84 5f 02 00 00    	je     10cd09 <_Objects_Extend_information+0x299><== NEVER TAKEN
      if ( information->object_blocks[ block ] == NULL ) {            
  10caaa:	8b 01                	mov    (%ecx),%eax                    
  10caac:	85 c0                	test   %eax,%eax                      
  10caae:	0f 84 67 02 00 00    	je     10cd1b <_Objects_Extend_information+0x2ab><== NEVER TAKEN
  10cab4:	0f b7 ff             	movzwl %di,%edi                       
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  10cab7:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10caba:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10cabd:	31 d2                	xor    %edx,%edx                      
  10cabf:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10cac2:	eb 0a                	jmp    10cace <_Objects_Extend_information+0x5e>
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
  10cac4:	83 3c 91 00          	cmpl   $0x0,(%ecx,%edx,4)             
  10cac8:	0f 84 c2 01 00 00    	je     10cc90 <_Objects_Extend_information+0x220>
        do_extend = false;                                            
        break;                                                        
      } else                                                          
        index_base += information->allocation_size;                   
  10cace:	01 f8                	add    %edi,%eax                      
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
  10cad0:	42                   	inc    %edx                           
  10cad1:	39 d6                	cmp    %edx,%esi                      
  10cad3:	77 ef                	ja     10cac4 <_Objects_Extend_information+0x54>
  10cad5:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
                                                                      
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  10cad8:	b1 01                	mov    $0x1,%cl                       
      } else                                                          
        index_base += information->allocation_size;                   
    }                                                                 
  }                                                                   
                                                                      
  maximum = (uint32_t) information->maximum + information->allocation_size;
  10cada:	0f b7 45 d0          	movzwl -0x30(%ebp),%eax               
  10cade:	01 f8                	add    %edi,%eax                      
  10cae0:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  /*                                                                  
   *  We need to limit the number of objects to the maximum number    
   *  representable in the index portion of the object Id.  In the    
   *  case of 16-bit Ids, this is only 256 object instances.          
   */                                                                 
  if ( maximum > OBJECTS_ID_FINAL_INDEX ) {                           
  10cae3:	3d ff ff 00 00       	cmp    $0xffff,%eax                   
  10cae8:	0f 87 9a 01 00 00    	ja     10cc88 <_Objects_Extend_information+0x218><== NEVER TAKEN
                                                                      
  /*                                                                  
   * Allocate the name table, and the objects and if it fails either return or
   * generate a fatal error depending on auto-extending being active. 
   */                                                                 
  block_size = information->allocation_size * information->size;      
  10caee:	0f af 7b 18          	imul   0x18(%ebx),%edi                
  if ( information->auto_extend ) {                                   
  10caf2:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)                
  10caf6:	0f 84 a0 01 00 00    	je     10cc9c <_Objects_Extend_information+0x22c>
    new_object_block = _Workspace_Allocate( block_size );             
  10cafc:	83 ec 0c             	sub    $0xc,%esp                      
  10caff:	57                   	push   %edi                           
  10cb00:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10cb03:	88 4d b4             	mov    %cl,-0x4c(%ebp)                
  10cb06:	e8 d9 1e 00 00       	call   10e9e4 <_Workspace_Allocate>   
  10cb0b:	89 45 c8             	mov    %eax,-0x38(%ebp)               
    if ( !new_object_block )                                          
  10cb0e:	83 c4 10             	add    $0x10,%esp                     
  10cb11:	85 c0                	test   %eax,%eax                      
  10cb13:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10cb16:	8a 4d b4             	mov    -0x4c(%ebp),%cl                
  10cb19:	0f 84 69 01 00 00    	je     10cc88 <_Objects_Extend_information+0x218>
  }                                                                   
                                                                      
  /*                                                                  
   *  Do we need to grow the tables?                                  
   */                                                                 
  if ( do_extend ) {                                                  
  10cb1f:	84 c9                	test   %cl,%cl                        
  10cb21:	0f 84 e6 00 00 00    	je     10cc0d <_Objects_Extend_information+0x19d>
     */                                                               
                                                                      
    /*                                                                
     *  Up the block count and maximum                                
     */                                                               
    block_count++;                                                    
  10cb27:	8d 7e 01             	lea    0x1(%esi),%edi                 
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
    object_blocks = (void**) _Workspace_Allocate( block_size );       
  10cb2a:	83 ec 0c             	sub    $0xc,%esp                      
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
  10cb2d:	8d 04 7f             	lea    (%edi,%edi,2),%eax             
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
  10cb30:	03 45 d0             	add    -0x30(%ebp),%eax               
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
  10cb33:	03 45 cc             	add    -0x34(%ebp),%eax               
    block_count++;                                                    
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
  10cb36:	c1 e0 02             	shl    $0x2,%eax                      
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
    object_blocks = (void**) _Workspace_Allocate( block_size );       
  10cb39:	50                   	push   %eax                           
  10cb3a:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10cb3d:	e8 a2 1e 00 00       	call   10e9e4 <_Workspace_Allocate>   
  10cb42:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
                                                                      
    if ( !object_blocks ) {                                           
  10cb45:	83 c4 10             	add    $0x10,%esp                     
  10cb48:	85 c0                	test   %eax,%eax                      
  10cb4a:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10cb4d:	0f 84 da 01 00 00    	je     10cd2d <_Objects_Extend_information+0x2bd>
  10cb53:	8b 45 c4             	mov    -0x3c(%ebp),%eax               
  10cb56:	8d 04 b8             	lea    (%eax,%edi,4),%eax             
  10cb59:	89 45 bc             	mov    %eax,-0x44(%ebp)               
  10cb5c:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10cb5f:	8d 04 f9             	lea    (%ecx,%edi,8),%eax             
     *  Take the block count down. Saves all the (block_count - 1)    
     *  in the copies.                                                
     */                                                               
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
  10cb62:	0f b7 4b 10          	movzwl 0x10(%ebx),%ecx                
  10cb66:	39 4d cc             	cmp    %ecx,-0x34(%ebp)               
  10cb69:	0f 82 4d 01 00 00    	jb     10ccbc <_Objects_Extend_information+0x24c>
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
  10cb6f:	8b 4d cc             	mov    -0x34(%ebp),%ecx               
  10cb72:	85 c9                	test   %ecx,%ecx                      
  10cb74:	74 12                	je     10cb88 <_Objects_Extend_information+0x118><== NEVER TAKEN
  10cb76:	31 c9                	xor    %ecx,%ecx                      
  10cb78:	8b 7d cc             	mov    -0x34(%ebp),%edi               
  10cb7b:	90                   	nop                                   
        local_table[ index ] = NULL;                                  
  10cb7c:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)             
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
  10cb83:	41                   	inc    %ecx                           
  10cb84:	39 cf                	cmp    %ecx,%edi                      
  10cb86:	77 f4                	ja     10cb7c <_Objects_Extend_information+0x10c><== NEVER TAKEN
  10cb88:	c1 e6 02             	shl    $0x2,%esi                      
  10cb8b:	89 75 c0             	mov    %esi,-0x40(%ebp)               
    }                                                                 
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
  10cb8e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10cb91:	8b 75 c0             	mov    -0x40(%ebp),%esi               
  10cb94:	c7 04 31 00 00 00 00 	movl   $0x0,(%ecx,%esi,1)             
    inactive_per_block[block_count] = 0;                              
  10cb9b:	8b 4d bc             	mov    -0x44(%ebp),%ecx               
  10cb9e:	c7 04 31 00 00 00 00 	movl   $0x0,(%ecx,%esi,1)             
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
  10cba5:	0f b7 73 14          	movzwl 0x14(%ebx),%esi                
  10cba9:	03 75 d4             	add    -0x2c(%ebp),%esi               
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
  10cbac:	39 75 d4             	cmp    %esi,-0x2c(%ebp)               
  10cbaf:	73 0f                	jae    10cbc0 <_Objects_Extend_information+0x150><== NEVER TAKEN
  10cbb1:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
  10cbb4:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)             
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
  10cbbb:	41                   	inc    %ecx                           
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
  10cbbc:	39 f1                	cmp    %esi,%ecx                      
  10cbbe:	72 f4                	jb     10cbb4 <_Objects_Extend_information+0x144>
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
    }                                                                 
                                                                      
    _ISR_Disable( level );                                            
  10cbc0:	9c                   	pushf                                 
  10cbc1:	fa                   	cli                                   
  10cbc2:	5f                   	pop    %edi                           
                                                                      
    old_tables = information->object_blocks;                          
  10cbc3:	8b 73 34             	mov    0x34(%ebx),%esi                
                                                                      
    information->object_blocks = object_blocks;                       
  10cbc6:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10cbc9:	89 4b 34             	mov    %ecx,0x34(%ebx)                
    information->inactive_per_block = inactive_per_block;             
  10cbcc:	8b 4d bc             	mov    -0x44(%ebp),%ecx               
  10cbcf:	89 4b 30             	mov    %ecx,0x30(%ebx)                
    information->local_table = local_table;                           
  10cbd2:	89 43 1c             	mov    %eax,0x1c(%ebx)                
    information->maximum = (Objects_Maximum) maximum;                 
  10cbd5:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10cbd8:	66 89 43 10          	mov    %ax,0x10(%ebx)                 
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
  10cbdc:	8b 0b                	mov    (%ebx),%ecx                    
  10cbde:	c1 e1 18             	shl    $0x18,%ecx                     
  10cbe1:	81 c9 00 00 01 00    	or     $0x10000,%ecx                  
    information->maximum_id = _Objects_Build_id(                      
  10cbe7:	0f b7 43 04          	movzwl 0x4(%ebx),%eax                 
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
  10cbeb:	c1 e0 1b             	shl    $0x1b,%eax                     
  10cbee:	09 c1                	or     %eax,%ecx                      
  10cbf0:	0f b7 45 d0          	movzwl -0x30(%ebp),%eax               
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
  10cbf4:	09 c1                	or     %eax,%ecx                      
  10cbf6:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
        information->the_class,                                       
        _Objects_Local_node,                                          
        information->maximum                                          
      );                                                              
                                                                      
    _ISR_Enable( level );                                             
  10cbf9:	57                   	push   %edi                           
  10cbfa:	9d                   	popf                                  
                                                                      
    _Workspace_Free( old_tables );                                    
  10cbfb:	83 ec 0c             	sub    $0xc,%esp                      
  10cbfe:	56                   	push   %esi                           
  10cbff:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10cc02:	e8 f9 1d 00 00       	call   10ea00 <_Workspace_Free>       
  10cc07:	83 c4 10             	add    $0x10,%esp                     
  10cc0a:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  }                                                                   
                                                                      
  /*                                                                  
   *  Assign the new object block to the object block table.          
   */                                                                 
  information->object_blocks[ block ] = new_object_block;             
  10cc0d:	c1 e2 02             	shl    $0x2,%edx                      
  10cc10:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10cc13:	8b 43 34             	mov    0x34(%ebx),%eax                
  10cc16:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  10cc19:	89 0c 10             	mov    %ecx,(%eax,%edx,1)             
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
  _Chain_Initialize(                                                  
  10cc1c:	ff 73 18             	pushl  0x18(%ebx)                     
  10cc1f:	0f b7 43 14          	movzwl 0x14(%ebx),%eax                
  10cc23:	50                   	push   %eax                           
  10cc24:	51                   	push   %ecx                           
  10cc25:	8d 7d dc             	lea    -0x24(%ebp),%edi               
  10cc28:	57                   	push   %edi                           
  10cc29:	e8 b6 44 00 00       	call   1110e4 <_Chain_Initialize>     
  /*                                                                  
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
  index = index_base;                                                 
                                                                      
  while ((the_object = (Objects_Control *) _Chain_Get( &Inactive )) != NULL ) {
  10cc2e:	83 c4 10             	add    $0x10,%esp                     
  10cc31:	8b 75 d4             	mov    -0x2c(%ebp),%esi               
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
  10cc34:	8d 43 20             	lea    0x20(%ebx),%eax                
  10cc37:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  /*                                                                  
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
  index = index_base;                                                 
                                                                      
  while ((the_object = (Objects_Control *) _Chain_Get( &Inactive )) != NULL ) {
  10cc3a:	eb 29                	jmp    10cc65 <_Objects_Extend_information+0x1f5>
  10cc3c:	8b 13                	mov    (%ebx),%edx                    
  10cc3e:	c1 e2 18             	shl    $0x18,%edx                     
  10cc41:	81 ca 00 00 01 00    	or     $0x10000,%edx                  
                                                                      
    the_object->id = _Objects_Build_id(                               
  10cc47:	0f b7 4b 04          	movzwl 0x4(%ebx),%ecx                 
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
  10cc4b:	c1 e1 1b             	shl    $0x1b,%ecx                     
  10cc4e:	09 ca                	or     %ecx,%edx                      
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
  10cc50:	09 f2                	or     %esi,%edx                      
  10cc52:	89 50 08             	mov    %edx,0x8(%eax)                 
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
  10cc55:	83 ec 08             	sub    $0x8,%esp                      
  10cc58:	50                   	push   %eax                           
  10cc59:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10cc5c:	e8 bf f3 ff ff       	call   10c020 <_Chain_Append>         
                                                                      
    index++;                                                          
  10cc61:	46                   	inc    %esi                           
  10cc62:	83 c4 10             	add    $0x10,%esp                     
  /*                                                                  
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
  index = index_base;                                                 
                                                                      
  while ((the_object = (Objects_Control *) _Chain_Get( &Inactive )) != NULL ) {
  10cc65:	83 ec 0c             	sub    $0xc,%esp                      
  10cc68:	57                   	push   %edi                           
  10cc69:	e8 ee f3 ff ff       	call   10c05c <_Chain_Get>            
  10cc6e:	83 c4 10             	add    $0x10,%esp                     
  10cc71:	85 c0                	test   %eax,%eax                      
  10cc73:	75 c7                	jne    10cc3c <_Objects_Extend_information+0x1cc>
    _Chain_Append( &information->Inactive, &the_object->Node );       
                                                                      
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
  10cc75:	8b 43 14             	mov    0x14(%ebx),%eax                
  10cc78:	8b 53 30             	mov    0x30(%ebx),%edx                
  10cc7b:	0f b7 c8             	movzwl %ax,%ecx                       
  10cc7e:	8b 75 d0             	mov    -0x30(%ebp),%esi               
  10cc81:	89 0c 32             	mov    %ecx,(%edx,%esi,1)             
  information->inactive =                                             
    (Objects_Maximum)(information->inactive + information->allocation_size);
  10cc84:	66 01 43 2c          	add    %ax,0x2c(%ebx)                 
}                                                                     
  10cc88:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cc8b:	5b                   	pop    %ebx                           
  10cc8c:	5e                   	pop    %esi                           
  10cc8d:	5f                   	pop    %edi                           
  10cc8e:	c9                   	leave                                 
  10cc8f:	c3                   	ret                                   
  10cc90:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
        do_extend = false;                                            
  10cc93:	31 c9                	xor    %ecx,%ecx                      
  10cc95:	e9 40 fe ff ff       	jmp    10cada <_Objects_Extend_information+0x6a>
  10cc9a:	66 90                	xchg   %ax,%ax                        
  if ( information->auto_extend ) {                                   
    new_object_block = _Workspace_Allocate( block_size );             
    if ( !new_object_block )                                          
      return;                                                         
  } else {                                                            
    new_object_block = _Workspace_Allocate_or_fatal_error( block_size );
  10cc9c:	83 ec 0c             	sub    $0xc,%esp                      
  10cc9f:	57                   	push   %edi                           
  10cca0:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10cca3:	88 4d b4             	mov    %cl,-0x4c(%ebp)                
  10cca6:	e8 6d 1d 00 00       	call   10ea18 <_Workspace_Allocate_or_fatal_error>
  10ccab:	89 45 c8             	mov    %eax,-0x38(%ebp)               
  10ccae:	83 c4 10             	add    $0x10,%esp                     
  10ccb1:	8a 4d b4             	mov    -0x4c(%ebp),%cl                
  10ccb4:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10ccb7:	e9 63 fe ff ff       	jmp    10cb1f <_Objects_Extend_information+0xaf>
      /*                                                              
       *  Copy each section of the table over. This has to be performed as
       *  separate parts as size of each block has changed.           
       */                                                             
                                                                      
      memcpy( object_blocks,                                          
  10ccbc:	c1 e6 02             	shl    $0x2,%esi                      
  10ccbf:	89 75 c0             	mov    %esi,-0x40(%ebp)               
  10ccc2:	8b 73 34             	mov    0x34(%ebx),%esi                
  10ccc5:	8b 7d c4             	mov    -0x3c(%ebp),%edi               
  10ccc8:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10cccb:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
  10cccd:	8b 73 30             	mov    0x30(%ebx),%esi                
  10ccd0:	8b 7d bc             	mov    -0x44(%ebp),%edi               
  10ccd3:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10ccd6:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
              information->local_table,                               
              (information->maximum + minimum_index) * sizeof(Objects_Control *) );
  10ccd8:	0f b7 4b 10          	movzwl 0x10(%ebx),%ecx                
  10ccdc:	03 4d cc             	add    -0x34(%ebp),%ecx               
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
  10ccdf:	c1 e1 02             	shl    $0x2,%ecx                      
  10cce2:	8b 73 1c             	mov    0x1c(%ebx),%esi                
  10cce5:	89 c7                	mov    %eax,%edi                      
  10cce7:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
  10cce9:	e9 a0 fe ff ff       	jmp    10cb8e <_Objects_Extend_information+0x11e>
  10ccee:	66 90                	xchg   %ax,%ax                        
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
  10ccf0:	8b 53 10             	mov    0x10(%ebx),%edx                
  10ccf3:	66 89 55 d0          	mov    %dx,-0x30(%ebp)                
  10ccf7:	0f b7 7b 14          	movzwl 0x14(%ebx),%edi                
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  10ccfb:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
                                                                      
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  10ccfe:	b1 01                	mov    $0x1,%cl                       
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10cd00:	31 d2                	xor    %edx,%edx                      
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
  10cd02:	31 f6                	xor    %esi,%esi                      
  10cd04:	e9 d1 fd ff ff       	jmp    10cada <_Objects_Extend_information+0x6a>
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
  10cd09:	0f b7 ff             	movzwl %di,%edi                       <== NOT EXECUTED
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  10cd0c:	8b 45 cc             	mov    -0x34(%ebp),%eax               <== NOT EXECUTED
  10cd0f:	89 45 d4             	mov    %eax,-0x2c(%ebp)               <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  10cd12:	b1 01                	mov    $0x1,%cl                       <== NOT EXECUTED
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10cd14:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10cd16:	e9 bf fd ff ff       	jmp    10cada <_Objects_Extend_information+0x6a><== NOT EXECUTED
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
  10cd1b:	0f b7 ff             	movzwl %di,%edi                       <== NOT EXECUTED
  /*                                                                  
   *  Search for a free block of indexes. If we do NOT need to allocate or
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  10cd1e:	8b 4d cc             	mov    -0x34(%ebp),%ecx               <== NOT EXECUTED
  10cd21:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               <== NOT EXECUTED
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
        do_extend = false;                                            
  10cd24:	31 c9                	xor    %ecx,%ecx                      <== NOT EXECUTED
   *  extend the block table, then we will change do_extend.          
   */                                                                 
  do_extend     = true;                                               
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10cd26:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10cd28:	e9 ad fd ff ff       	jmp    10cada <_Objects_Extend_information+0x6a><== NOT EXECUTED
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
    object_blocks = (void**) _Workspace_Allocate( block_size );       
                                                                      
    if ( !object_blocks ) {                                           
      _Workspace_Free( new_object_block );                            
  10cd2d:	83 ec 0c             	sub    $0xc,%esp                      
  10cd30:	ff 75 c8             	pushl  -0x38(%ebp)                    
  10cd33:	e8 c8 1c 00 00       	call   10ea00 <_Workspace_Free>       
      return;                                                         
  10cd38:	83 c4 10             	add    $0x10,%esp                     
  10cd3b:	e9 48 ff ff ff       	jmp    10cc88 <_Objects_Extend_information+0x218>
                                                                      

0010cdd0 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint16_t the_class ) {
  10cdd0:	55                   	push   %ebp                           
  10cdd1:	89 e5                	mov    %esp,%ebp                      
  10cdd3:	56                   	push   %esi                           
  10cdd4:	53                   	push   %ebx                           
  10cdd5:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10cdd8:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
  10cddb:	66 85 db             	test   %bx,%bx                        
  10cdde:	75 0c                	jne    10cdec <_Objects_Get_information+0x1c>
  the_class_api_maximum = _Objects_API_maximum_class( the_api );      
  if ( the_class_api_maximum == 0 )                                   
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
  10cde0:	31 c0                	xor    %eax,%eax                      
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
  10cde2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cde5:	5b                   	pop    %ebx                           
  10cde6:	5e                   	pop    %esi                           
  10cde7:	c9                   	leave                                 
  10cde8:	c3                   	ret                                   
  10cde9:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /*                                                                  
   *  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 );      
  10cdec:	83 ec 0c             	sub    $0xc,%esp                      
  10cdef:	56                   	push   %esi                           
  10cdf0:	e8 9b 48 00 00       	call   111690 <_Objects_API_maximum_class>
  if ( the_class_api_maximum == 0 )                                   
  10cdf5:	83 c4 10             	add    $0x10,%esp                     
  10cdf8:	85 c0                	test   %eax,%eax                      
  10cdfa:	74 e4                	je     10cde0 <_Objects_Get_information+0x10>
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
  10cdfc:	0f b7 db             	movzwl %bx,%ebx                       
  10cdff:	39 d8                	cmp    %ebx,%eax                      
  10ce01:	72 dd                	jb     10cde0 <_Objects_Get_information+0x10>
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
  10ce03:	8b 14 b5 28 7e 12 00 	mov    0x127e28(,%esi,4),%edx         
    return NULL;                                                      
  10ce0a:	31 c0                	xor    %eax,%eax                      
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
  10ce0c:	85 d2                	test   %edx,%edx                      
  10ce0e:	74 d2                	je     10cde2 <_Objects_Get_information+0x12><== NEVER TAKEN
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
  10ce10:	8b 04 9a             	mov    (%edx,%ebx,4),%eax             
  if ( !info )                                                        
  10ce13:	85 c0                	test   %eax,%eax                      
  10ce15:	74 cb                	je     10cde2 <_Objects_Get_information+0x12><== NEVER TAKEN
   *  Thus we may have 0 local instances and still have a valid object
   *  pointer.                                                        
   */                                                                 
  #if !defined(RTEMS_MULTIPROCESSING)                                 
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  10ce17:	31 d2                	xor    %edx,%edx                      
  10ce19:	66 83 78 10 00       	cmpw   $0x0,0x10(%eax)                
  10ce1e:	0f 95 c2             	setne  %dl                            
  10ce21:	f7 da                	neg    %edx                           
  10ce23:	21 d0                	and    %edx,%eax                      
  10ce25:	eb bb                	jmp    10cde2 <_Objects_Get_information+0x12>
                                                                      

0010ce28 <_Objects_Get_isr_disable>: Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) {
  10ce28:	55                   	push   %ebp                           
  10ce29:	89 e5                	mov    %esp,%ebp                      
  10ce2b:	56                   	push   %esi                           
  10ce2c:	53                   	push   %ebx                           
  10ce2d:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10ce30:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Control *the_object;                                        
  uint32_t         index;                                             
  ISR_Level        level;                                             
                                                                      
  index = id - information->minimum_id + 1;                           
  10ce33:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10ce38:	2b 42 08             	sub    0x8(%edx),%eax                 
  10ce3b:	03 45 0c             	add    0xc(%ebp),%eax                 
                                                                      
  _ISR_Disable( level );                                              
  10ce3e:	9c                   	pushf                                 
  10ce3f:	fa                   	cli                                   
  10ce40:	5e                   	pop    %esi                           
  if ( information->maximum >= index ) {                              
  10ce41:	0f b7 4a 10          	movzwl 0x10(%edx),%ecx                
  10ce45:	39 c8                	cmp    %ecx,%eax                      
  10ce47:	77 1b                	ja     10ce64 <_Objects_Get_isr_disable+0x3c>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
  10ce49:	8b 52 1c             	mov    0x1c(%edx),%edx                
  10ce4c:	8b 04 82             	mov    (%edx,%eax,4),%eax             
  10ce4f:	85 c0                	test   %eax,%eax                      
  10ce51:	74 21                	je     10ce74 <_Objects_Get_isr_disable+0x4c>
      *location = OBJECTS_LOCAL;                                      
  10ce53:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
      *level_p = level;                                               
  10ce59:	8b 55 14             	mov    0x14(%ebp),%edx                
  10ce5c:	89 32                	mov    %esi,(%edx)                    
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
#endif                                                                
}                                                                     
  10ce5e:	5b                   	pop    %ebx                           
  10ce5f:	5e                   	pop    %esi                           
  10ce60:	c9                   	leave                                 
  10ce61:	c3                   	ret                                   
  10ce62:	66 90                	xchg   %ax,%ax                        
    }                                                                 
    _ISR_Enable( level );                                             
    *location = OBJECTS_ERROR;                                        
    return NULL;                                                      
  }                                                                   
  _ISR_Enable( level );                                               
  10ce64:	56                   	push   %esi                           
  10ce65:	9d                   	popf                                  
  *location = OBJECTS_ERROR;                                          
  10ce66:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
  10ce6c:	31 c0                	xor    %eax,%eax                      
#endif                                                                
}                                                                     
  10ce6e:	5b                   	pop    %ebx                           
  10ce6f:	5e                   	pop    %esi                           
  10ce70:	c9                   	leave                                 
  10ce71:	c3                   	ret                                   
  10ce72:	66 90                	xchg   %ax,%ax                        
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
      *location = OBJECTS_LOCAL;                                      
      *level_p = level;                                               
      return the_object;                                              
    }                                                                 
    _ISR_Enable( level );                                             
  10ce74:	56                   	push   %esi                           
  10ce75:	9d                   	popf                                  
    *location = OBJECTS_ERROR;                                        
  10ce76:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
    return NULL;                                                      
  10ce7c:	eb e0                	jmp    10ce5e <_Objects_Get_isr_disable+0x36>
                                                                      

0010e52c <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) {
  10e52c:	55                   	push   %ebp                           
  10e52d:	89 e5                	mov    %esp,%ebp                      
  10e52f:	57                   	push   %edi                           
  10e530:	56                   	push   %esi                           
  10e531:	53                   	push   %ebx                           
  10e532:	83 ec 2c             	sub    $0x2c,%esp                     
  10e535:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10e538:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10e53b:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
  10e53e:	85 f6                	test   %esi,%esi                      
  10e540:	75 0e                	jne    10e550 <_Objects_Get_name_as_string+0x24>
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:                                              
      /* not supported */                                             
#endif                                                                
    case OBJECTS_ERROR:                                               
      return NULL;                                                    
  10e542:	31 db                	xor    %ebx,%ebx                      
                                                                      
      _Thread_Enable_dispatch();                                      
      return name;                                                    
  }                                                                   
  return NULL;                  /* unreachable path */                
}                                                                     
  10e544:	89 d8                	mov    %ebx,%eax                      
  10e546:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e549:	5b                   	pop    %ebx                           
  10e54a:	5e                   	pop    %esi                           
  10e54b:	5f                   	pop    %edi                           
  10e54c:	c9                   	leave                                 
  10e54d:	c3                   	ret                                   
  10e54e:	66 90                	xchg   %ax,%ax                        
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    return NULL;                                                      
                                                                      
  if ( name == NULL )                                                 
  10e550:	85 db                	test   %ebx,%ebx                      
  10e552:	74 f0                	je     10e544 <_Objects_Get_name_as_string+0x18>
    return NULL;                                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10e554:	85 d2                	test   %edx,%edx                      
  10e556:	75 08                	jne    10e560 <_Objects_Get_name_as_string+0x34>
  10e558:	a1 78 c0 12 00       	mov    0x12c078,%eax                  
  10e55d:	8b 50 08             	mov    0x8(%eax),%edx                 
                                                                      
  information = _Objects_Get_information_id( tmpId );                 
  10e560:	83 ec 0c             	sub    $0xc,%esp                      
  10e563:	52                   	push   %edx                           
  10e564:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10e567:	e8 f0 fe ff ff       	call   10e45c <_Objects_Get_information_id>
  10e56c:	89 c7                	mov    %eax,%edi                      
  if ( !information )                                                 
  10e56e:	83 c4 10             	add    $0x10,%esp                     
  10e571:	85 c0                	test   %eax,%eax                      
  10e573:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10e576:	74 ca                	je     10e542 <_Objects_Get_name_as_string+0x16>
    return NULL;                                                      
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  10e578:	51                   	push   %ecx                           
  10e579:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10e57c:	50                   	push   %eax                           
  10e57d:	52                   	push   %edx                           
  10e57e:	57                   	push   %edi                           
  10e57f:	e8 90 00 00 00       	call   10e614 <_Objects_Get>          
  switch ( location ) {                                               
  10e584:	83 c4 10             	add    $0x10,%esp                     
  10e587:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10e58a:	85 d2                	test   %edx,%edx                      
  10e58c:	75 b4                	jne    10e542 <_Objects_Get_name_as_string+0x16>
      return NULL;                                                    
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)             
        if ( information->is_string ) {                               
  10e58e:	80 7f 38 00          	cmpb   $0x0,0x38(%edi)                
  10e592:	74 54                	je     10e5e8 <_Objects_Get_name_as_string+0xbc>
          s = the_object->name.name_p;                                
  10e594:	8b 78 0c             	mov    0xc(%eax),%edi                 
        lname[ 4 ] = '\0';                                            
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
  10e597:	85 ff                	test   %edi,%edi                      
  10e599:	74 74                	je     10e60f <_Objects_Get_name_as_string+0xe3>
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10e59b:	4e                   	dec    %esi                           
  10e59c:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
  10e59f:	74 6e                	je     10e60f <_Objects_Get_name_as_string+0xe3><== NEVER TAKEN
  10e5a1:	8a 17                	mov    (%edi),%dl                     
  10e5a3:	84 d2                	test   %dl,%dl                        
  10e5a5:	74 68                	je     10e60f <_Objects_Get_name_as_string+0xe3>
  10e5a7:	89 d9                	mov    %ebx,%ecx                      
  10e5a9:	31 c0                	xor    %eax,%eax                      
  10e5ab:	89 5d d0             	mov    %ebx,-0x30(%ebp)               
  10e5ae:	eb 07                	jmp    10e5b7 <_Objects_Get_name_as_string+0x8b>
  10e5b0:	8a 14 07             	mov    (%edi,%eax,1),%dl              
  10e5b3:	84 d2                	test   %dl,%dl                        
  10e5b5:	74 21                	je     10e5d8 <_Objects_Get_name_as_string+0xac>
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
  10e5b7:	0f b6 da             	movzbl %dl,%ebx                       
  10e5ba:	8b 35 68 93 12 00    	mov    0x129368,%esi                  
  10e5c0:	0f be 5c 1e 01       	movsbl 0x1(%esi,%ebx,1),%ebx          
  10e5c5:	81 e3 97 00 00 00    	and    $0x97,%ebx                     
  10e5cb:	75 02                	jne    10e5cf <_Objects_Get_name_as_string+0xa3>
  10e5cd:	b2 2a                	mov    $0x2a,%dl                      
  10e5cf:	88 11                	mov    %dl,(%ecx)                     
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10e5d1:	40                   	inc    %eax                           
  10e5d2:	41                   	inc    %ecx                           
  10e5d3:	3b 45 d4             	cmp    -0x2c(%ebp),%eax               
  10e5d6:	72 d8                	jb     10e5b0 <_Objects_Get_name_as_string+0x84>
  10e5d8:	8b 5d d0             	mov    -0x30(%ebp),%ebx               
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
        }                                                             
      }                                                               
      *d = '\0';                                                      
  10e5db:	c6 01 00             	movb   $0x0,(%ecx)                    
                                                                      
      _Thread_Enable_dispatch();                                      
  10e5de:	e8 b9 0b 00 00       	call   10f19c <_Thread_Enable_dispatch>
      return name;                                                    
  10e5e3:	e9 5c ff ff ff       	jmp    10e544 <_Objects_Get_name_as_string+0x18>
        if ( information->is_string ) {                               
          s = the_object->name.name_p;                                
        } else                                                        
      #endif                                                          
      {                                                               
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
  10e5e8:	8b 40 0c             	mov    0xc(%eax),%eax                 
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
  10e5eb:	89 c2                	mov    %eax,%edx                      
  10e5ed:	c1 ea 18             	shr    $0x18,%edx                     
  10e5f0:	88 55 df             	mov    %dl,-0x21(%ebp)                
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
  10e5f3:	89 c2                	mov    %eax,%edx                      
  10e5f5:	c1 ea 10             	shr    $0x10,%edx                     
  10e5f8:	88 55 e0             	mov    %dl,-0x20(%ebp)                
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
  10e5fb:	89 c2                	mov    %eax,%edx                      
  10e5fd:	c1 ea 08             	shr    $0x8,%edx                      
  10e600:	88 55 e1             	mov    %dl,-0x1f(%ebp)                
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
  10e603:	88 45 e2             	mov    %al,-0x1e(%ebp)                
        lname[ 4 ] = '\0';                                            
  10e606:	c6 45 e3 00          	movb   $0x0,-0x1d(%ebp)               
        s = lname;                                                    
  10e60a:	8d 7d df             	lea    -0x21(%ebp),%edi               
  10e60d:	eb 8c                	jmp    10e59b <_Objects_Get_name_as_string+0x6f>
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10e60f:	89 d9                	mov    %ebx,%ecx                      
  10e611:	eb c8                	jmp    10e5db <_Objects_Get_name_as_string+0xaf>
                                                                      

0010cfd8 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) {
  10cfd8:	55                   	push   %ebp                           
  10cfd9:	89 e5                	mov    %esp,%ebp                      
  10cfdb:	57                   	push   %edi                           
  10cfdc:	56                   	push   %esi                           
  10cfdd:	53                   	push   %ebx                           
  10cfde:	83 ec 0c             	sub    $0xc,%esp                      
  10cfe1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10cfe4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10cfe7:	8b 7d 10             	mov    0x10(%ebp),%edi                
    Objects_Control *object;                                          
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
  10cfea:	85 db                	test   %ebx,%ebx                      
  10cfec:	75 0a                	jne    10cff8 <_Objects_Get_next+0x20>
                                                                      
    if ( !location_p )                                                
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
      return NULL;                                                    
  10cfee:	31 c0                	xor    %eax,%eax                      
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
    return 0;                                                         
}                                                                     
  10cff0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cff3:	5b                   	pop    %ebx                           
  10cff4:	5e                   	pop    %esi                           
  10cff5:	5f                   	pop    %edi                           
  10cff6:	c9                   	leave                                 
  10cff7:	c3                   	ret                                   
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
      return NULL;                                                    
                                                                      
    if ( !location_p )                                                
  10cff8:	85 ff                	test   %edi,%edi                      
  10cffa:	74 f2                	je     10cfee <_Objects_Get_next+0x16>
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
  10cffc:	8b 45 14             	mov    0x14(%ebp),%eax                
  10cfff:	85 c0                	test   %eax,%eax                      
  10d001:	74 eb                	je     10cfee <_Objects_Get_next+0x16>
      return NULL;                                                    
                                                                      
    if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX)           
  10d003:	66 85 f6             	test   %si,%si                        
  10d006:	75 04                	jne    10d00c <_Objects_Get_next+0x34>
        next_id = information->minimum_id;                            
  10d008:	8b 73 08             	mov    0x8(%ebx),%esi                 
  10d00b:	90                   	nop                                   
    else                                                              
        next_id = id;                                                 
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
  10d00c:	66 39 73 10          	cmp    %si,0x10(%ebx)                 
  10d010:	72 22                	jb     10d034 <_Objects_Get_next+0x5c>
            *location_p = OBJECTS_ERROR;                              
            goto final;                                               
        }                                                             
                                                                      
        /* try to grab one */                                         
        object = _Objects_Get(information, next_id, location_p);      
  10d012:	51                   	push   %ecx                           
  10d013:	57                   	push   %edi                           
  10d014:	56                   	push   %esi                           
  10d015:	53                   	push   %ebx                           
  10d016:	e8 2d 00 00 00       	call   10d048 <_Objects_Get>          
                                                                      
        next_id++;                                                    
  10d01b:	46                   	inc    %esi                           
                                                                      
    } while (*location_p != OBJECTS_LOCAL);                           
  10d01c:	83 c4 10             	add    $0x10,%esp                     
  10d01f:	8b 17                	mov    (%edi),%edx                    
  10d021:	85 d2                	test   %edx,%edx                      
  10d023:	75 e7                	jne    10d00c <_Objects_Get_next+0x34>
                                                                      
    *next_id_p = next_id;                                             
  10d025:	8b 55 14             	mov    0x14(%ebp),%edx                
  10d028:	89 32                	mov    %esi,(%edx)                    
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
    return 0;                                                         
}                                                                     
  10d02a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d02d:	5b                   	pop    %ebx                           
  10d02e:	5e                   	pop    %esi                           
  10d02f:	5f                   	pop    %edi                           
  10d030:	c9                   	leave                                 
  10d031:	c3                   	ret                                   
  10d032:	66 90                	xchg   %ax,%ax                        
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
        {                                                             
            *location_p = OBJECTS_ERROR;                              
  10d034:	c7 07 01 00 00 00    	movl   $0x1,(%edi)                    
                                                                      
    *next_id_p = next_id;                                             
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
  10d03a:	8b 45 14             	mov    0x14(%ebp),%eax                
  10d03d:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)             
    return 0;                                                         
  10d043:	31 c0                	xor    %eax,%eax                      
  10d045:	eb a9                	jmp    10cff0 <_Objects_Get_next+0x18>
                                                                      

0011b2fc <_Objects_Get_no_protection>: Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) {
  11b2fc:	55                   	push   %ebp                           
  11b2fd:	89 e5                	mov    %esp,%ebp                      
  11b2ff:	53                   	push   %ebx                           
  11b300:	8b 55 08             	mov    0x8(%ebp),%edx                 
  11b303:	8b 5d 10             	mov    0x10(%ebp),%ebx                
                                                                      
  /*                                                                  
   * 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;                           
  11b306:	b8 01 00 00 00       	mov    $0x1,%eax                      
  11b30b:	2b 42 08             	sub    0x8(%edx),%eax                 
  11b30e:	03 45 0c             	add    0xc(%ebp),%eax                 
                                                                      
  if ( information->maximum >= index ) {                              
  11b311:	0f b7 4a 10          	movzwl 0x10(%edx),%ecx                
  11b315:	39 c8                	cmp    %ecx,%eax                      
  11b317:	77 13                	ja     11b32c <_Objects_Get_no_protection+0x30>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
  11b319:	8b 52 1c             	mov    0x1c(%edx),%edx                
  11b31c:	8b 04 82             	mov    (%edx,%eax,4),%eax             
  11b31f:	85 c0                	test   %eax,%eax                      
  11b321:	74 09                	je     11b32c <_Objects_Get_no_protection+0x30><== NEVER TAKEN
      *location = OBJECTS_LOCAL;                                      
  11b323:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
   *  This isn't supported or required yet for Global objects so      
   *  if it isn't local, we don't find it.                            
   */                                                                 
  *location = OBJECTS_ERROR;                                          
  return NULL;                                                        
}                                                                     
  11b329:	5b                   	pop    %ebx                           
  11b32a:	c9                   	leave                                 
  11b32b:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  This isn't supported or required yet for Global objects so      
   *  if it isn't local, we don't find it.                            
   */                                                                 
  *location = OBJECTS_ERROR;                                          
  11b32c:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
  return NULL;                                                        
  11b332:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11b334:	5b                   	pop    %ebx                           
  11b335:	c9                   	leave                                 
  11b336:	c3                   	ret                                   
                                                                      

0010e12c <_Objects_Id_to_name>: */ Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
  10e12c:	55                   	push   %ebp                           
  10e12d:	89 e5                	mov    %esp,%ebp                      
  10e12f:	83 ec 18             	sub    $0x18,%esp                     
  10e132:	8b 55 08             	mov    0x8(%ebp),%edx                 
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10e135:	85 d2                	test   %edx,%edx                      
  10e137:	75 08                	jne    10e141 <_Objects_Id_to_name+0x15>
  10e139:	a1 18 b0 12 00       	mov    0x12b018,%eax                  
  10e13e:	8b 50 08             	mov    0x8(%eax),%edx                 
  10e141:	89 d0                	mov    %edx,%eax                      
  10e143:	c1 e8 18             	shr    $0x18,%eax                     
  10e146:	83 e0 07             	and    $0x7,%eax                      
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
  10e149:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10e14c:	83 f9 02             	cmp    $0x2,%ecx                      
  10e14f:	77 1d                	ja     10e16e <_Objects_Id_to_name+0x42>
                                                                      
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
  10e151:	8b 04 85 48 aa 12 00 	mov    0x12aa48(,%eax,4),%eax         
  10e158:	85 c0                	test   %eax,%eax                      
  10e15a:	74 12                	je     10e16e <_Objects_Id_to_name+0x42>
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
  10e15c:	89 d1                	mov    %edx,%ecx                      
  10e15e:	c1 e9 1b             	shr    $0x1b,%ecx                     
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
  10e161:	8b 04 88             	mov    (%eax,%ecx,4),%eax             
  if ( !information )                                                 
  10e164:	85 c0                	test   %eax,%eax                      
  10e166:	74 06                	je     10e16e <_Objects_Id_to_name+0x42><== NEVER TAKEN
    return OBJECTS_INVALID_ID;                                        
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
  10e168:	80 78 38 00          	cmpb   $0x0,0x38(%eax)                
  10e16c:	74 0a                	je     10e178 <_Objects_Id_to_name+0x4c><== ALWAYS TAKEN
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
  10e16e:	b8 03 00 00 00       	mov    $0x3,%eax                      
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  _Thread_Enable_dispatch();                                          
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
}                                                                     
  10e173:	c9                   	leave                                 
  10e174:	c3                   	ret                                   
  10e175:	8d 76 00             	lea    0x0(%esi),%esi                 
  #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 ); 
  10e178:	51                   	push   %ecx                           
  10e179:	8d 4d f4             	lea    -0xc(%ebp),%ecx                
  10e17c:	51                   	push   %ecx                           
  10e17d:	52                   	push   %edx                           
  10e17e:	50                   	push   %eax                           
  10e17f:	e8 40 ff ff ff       	call   10e0c4 <_Objects_Get>          
  if ( !the_object )                                                  
  10e184:	83 c4 10             	add    $0x10,%esp                     
  10e187:	85 c0                	test   %eax,%eax                      
  10e189:	74 e3                	je     10e16e <_Objects_Id_to_name+0x42>
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  10e18b:	8b 50 0c             	mov    0xc(%eax),%edx                 
  10e18e:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10e191:	89 10                	mov    %edx,(%eax)                    
  _Thread_Enable_dispatch();                                          
  10e193:	e8 24 0b 00 00       	call   10ecbc <_Thread_Enable_dispatch>
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
  10e198:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10e19a:	c9                   	leave                                 
  10e19b:	c3                   	ret                                   
                                                                      

001179f8 <_Objects_Name_to_id_string>: Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string( Objects_Information *information, const char *name, Objects_Id *id ) {
  1179f8:	55                   	push   %ebp                           
  1179f9:	89 e5                	mov    %esp,%ebp                      
  1179fb:	57                   	push   %edi                           
  1179fc:	56                   	push   %esi                           
  1179fd:	53                   	push   %ebx                           
  1179fe:	83 ec 1c             	sub    $0x1c,%esp                     
  117a01:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  Objects_Control           *the_object;                              
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
  117a04:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  117a07:	85 db                	test   %ebx,%ebx                      
  117a09:	74 75                	je     117a80 <_Objects_Name_to_id_string+0x88>
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( !name )                                                        
  117a0b:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  117a0e:	85 c9                	test   %ecx,%ecx                      
  117a10:	74 4b                	je     117a5d <_Objects_Name_to_id_string+0x65>
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
  117a12:	8b 47 10             	mov    0x10(%edi),%eax                
  117a15:	66 85 c0             	test   %ax,%ax                        
  117a18:	74 43                	je     117a5d <_Objects_Name_to_id_string+0x65>
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
  117a1a:	0f b7 c0             	movzwl %ax,%eax                       
  117a1d:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  117a20:	8b 47 1c             	mov    0x1c(%edi),%eax                
  117a23:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  117a28:	89 7d e0             	mov    %edi,-0x20(%ebp)               
  117a2b:	89 c7                	mov    %eax,%edi                      
  117a2d:	8d 76 00             	lea    0x0(%esi),%esi                 
      the_object = information->local_table[ index ];                 
  117a30:	8b 34 9f             	mov    (%edi,%ebx,4),%esi             
      if ( !the_object )                                              
  117a33:	85 f6                	test   %esi,%esi                      
  117a35:	74 20                	je     117a57 <_Objects_Name_to_id_string+0x5f>
        continue;                                                     
                                                                      
      if ( !the_object->name.name_p )                                 
  117a37:	8b 46 0c             	mov    0xc(%esi),%eax                 
  117a3a:	85 c0                	test   %eax,%eax                      
  117a3c:	74 19                	je     117a57 <_Objects_Name_to_id_string+0x5f>
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
  117a3e:	52                   	push   %edx                           
  117a3f:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  117a42:	0f b7 51 3a          	movzwl 0x3a(%ecx),%edx                
  117a46:	52                   	push   %edx                           
  117a47:	50                   	push   %eax                           
  117a48:	ff 75 0c             	pushl  0xc(%ebp)                      
  117a4b:	e8 9c 34 00 00       	call   11aeec <strncmp>               
  117a50:	83 c4 10             	add    $0x10,%esp                     
  117a53:	85 c0                	test   %eax,%eax                      
  117a55:	74 15                	je     117a6c <_Objects_Name_to_id_string+0x74>
  if ( !name )                                                        
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
  117a57:	43                   	inc    %ebx                           
  117a58:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx               
  117a5b:	76 d3                	jbe    117a30 <_Objects_Name_to_id_string+0x38>
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
  117a5d:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  117a62:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117a65:	5b                   	pop    %ebx                           
  117a66:	5e                   	pop    %esi                           
  117a67:	5f                   	pop    %edi                           
  117a68:	c9                   	leave                                 
  117a69:	c3                   	ret                                   
  117a6a:	66 90                	xchg   %ax,%ax                        
                                                                      
      if ( !the_object->name.name_p )                                 
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
        *id = the_object->id;                                         
  117a6c:	8b 46 08             	mov    0x8(%esi),%eax                 
  117a6f:	8b 55 10             	mov    0x10(%ebp),%edx                
  117a72:	89 02                	mov    %eax,(%edx)                    
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
  117a74:	31 c0                	xor    %eax,%eax                      
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
}                                                                     
  117a76:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117a79:	5b                   	pop    %ebx                           
  117a7a:	5e                   	pop    %esi                           
  117a7b:	5f                   	pop    %edi                           
  117a7c:	c9                   	leave                                 
  117a7d:	c3                   	ret                                   
  117a7e:	66 90                	xchg   %ax,%ax                        
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
  117a80:	b8 02 00 00 00       	mov    $0x2,%eax                      
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
}                                                                     
  117a85:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117a88:	5b                   	pop    %ebx                           
  117a89:	5e                   	pop    %esi                           
  117a8a:	5f                   	pop    %edi                           
  117a8b:	c9                   	leave                                 
  117a8c:	c3                   	ret                                   
                                                                      

0010d000 <_Objects_Name_to_id_u32>: Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id ) {
  10d000:	55                   	push   %ebp                           
  10d001:	89 e5                	mov    %esp,%ebp                      
  10d003:	57                   	push   %edi                           
  10d004:	56                   	push   %esi                           
  10d005:	53                   	push   %ebx                           
  10d006:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d009:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10d00c:	8b 55 10             	mov    0x10(%ebp),%edx                
  10d00f:	8b 7d 14             	mov    0x14(%ebp),%edi                
  Objects_Name               name_for_mp;                             
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
  10d012:	85 ff                	test   %edi,%edi                      
  10d014:	74 56                	je     10d06c <_Objects_Name_to_id_u32+0x6c>
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( name == 0 )                                                    
  10d016:	85 c9                	test   %ecx,%ecx                      
  10d018:	74 08                	je     10d022 <_Objects_Name_to_id_u32+0x22>
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
  10d01a:	8b 70 10             	mov    0x10(%eax),%esi                
  10d01d:	66 85 f6             	test   %si,%si                        
  10d020:	75 0a                	jne    10d02c <_Objects_Name_to_id_u32+0x2c>
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  name_for_mp.name_u32 = name;                                        
  return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
#else                                                                 
  return OBJECTS_INVALID_NAME;                                        
  10d022:	b8 01 00 00 00       	mov    $0x1,%eax                      
#endif                                                                
}                                                                     
  10d027:	5b                   	pop    %ebx                           
  10d028:	5e                   	pop    %esi                           
  10d029:	5f                   	pop    %edi                           
  10d02a:	c9                   	leave                                 
  10d02b:	c3                   	ret                                   
  if ( name == 0 )                                                    
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
  10d02c:	85 d2                	test   %edx,%edx                      
  10d02e:	75 20                	jne    10d050 <_Objects_Name_to_id_u32+0x50>
       _Objects_Is_local_node( node )                                 
      ))                                                              
   search_local_node = true;                                          
                                                                      
  if ( search_local_node ) {                                          
    for ( index = 1; index <= information->maximum; index++ ) {       
  10d030:	0f b7 f6             	movzwl %si,%esi                       
  10d033:	8b 58 1c             	mov    0x1c(%eax),%ebx                
  10d036:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10d03b:	90                   	nop                                   
      the_object = information->local_table[ index ];                 
  10d03c:	8b 14 83             	mov    (%ebx,%eax,4),%edx             
      if ( !the_object )                                              
  10d03f:	85 d2                	test   %edx,%edx                      
  10d041:	74 05                	je     10d048 <_Objects_Name_to_id_u32+0x48>
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
  10d043:	39 4a 0c             	cmp    %ecx,0xc(%edx)                 
  10d046:	74 18                	je     10d060 <_Objects_Name_to_id_u32+0x60>
       _Objects_Is_local_node( node )                                 
      ))                                                              
   search_local_node = true;                                          
                                                                      
  if ( search_local_node ) {                                          
    for ( index = 1; index <= information->maximum; index++ ) {       
  10d048:	40                   	inc    %eax                           
  10d049:	39 c6                	cmp    %eax,%esi                      
  10d04b:	73 ef                	jae    10d03c <_Objects_Name_to_id_u32+0x3c>
  10d04d:	eb d3                	jmp    10d022 <_Objects_Name_to_id_u32+0x22>
  10d04f:	90                   	nop                                   
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
      (node == OBJECTS_SEARCH_ALL_NODES ||                            
  10d050:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx               
  10d056:	74 d8                	je     10d030 <_Objects_Name_to_id_u32+0x30>
       node == OBJECTS_SEARCH_LOCAL_NODE ||                           
  10d058:	4a                   	dec    %edx                           
  10d059:	75 c7                	jne    10d022 <_Objects_Name_to_id_u32+0x22>
  10d05b:	eb d3                	jmp    10d030 <_Objects_Name_to_id_u32+0x30>
  10d05d:	8d 76 00             	lea    0x0(%esi),%esi                 
      the_object = information->local_table[ index ];                 
      if ( !the_object )                                              
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
        *id = the_object->id;                                         
  10d060:	8b 42 08             	mov    0x8(%edx),%eax                 
  10d063:	89 07                	mov    %eax,(%edi)                    
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
  10d065:	31 c0                	xor    %eax,%eax                      
  name_for_mp.name_u32 = name;                                        
  return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
#else                                                                 
  return OBJECTS_INVALID_NAME;                                        
#endif                                                                
}                                                                     
  10d067:	5b                   	pop    %ebx                           
  10d068:	5e                   	pop    %esi                           
  10d069:	5f                   	pop    %edi                           
  10d06a:	c9                   	leave                                 
  10d06b:	c3                   	ret                                   
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
  10d06c:	b8 02 00 00 00       	mov    $0x2,%eax                      
  name_for_mp.name_u32 = name;                                        
  return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
#else                                                                 
  return OBJECTS_INVALID_NAME;                                        
#endif                                                                
}                                                                     
  10d071:	5b                   	pop    %ebx                           
  10d072:	5e                   	pop    %esi                           
  10d073:	5f                   	pop    %edi                           
  10d074:	c9                   	leave                                 
  10d075:	c3                   	ret                                   
                                                                      

0010d6e8 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) {
  10d6e8:	55                   	push   %ebp                           
  10d6e9:	89 e5                	mov    %esp,%ebp                      
  10d6eb:	57                   	push   %edi                           
  10d6ec:	56                   	push   %esi                           
  10d6ed:	53                   	push   %ebx                           
  10d6ee:	83 ec 14             	sub    $0x14,%esp                     
  10d6f1:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10d6f4:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
  10d6f7:	0f b7 47 3a          	movzwl 0x3a(%edi),%eax                
  10d6fb:	50                   	push   %eax                           
  10d6fc:	53                   	push   %ebx                           
  10d6fd:	e8 96 79 00 00       	call   115098 <strnlen>               
  10d702:	89 c6                	mov    %eax,%esi                      
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
  10d704:	83 c4 10             	add    $0x10,%esp                     
  10d707:	80 7f 38 00          	cmpb   $0x0,0x38(%edi)                
  10d70b:	75 57                	jne    10d764 <_Objects_Set_name+0x7c>
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10d70d:	0f be 13             	movsbl (%ebx),%edx                    
  10d710:	c1 e2 18             	shl    $0x18,%edx                     
  10d713:	83 f8 01             	cmp    $0x1,%eax                      
  10d716:	76 38                	jbe    10d750 <_Objects_Set_name+0x68>
  10d718:	0f be 43 01          	movsbl 0x1(%ebx),%eax                 
  10d71c:	c1 e0 10             	shl    $0x10,%eax                     
  10d71f:	09 d0                	or     %edx,%eax                      
  10d721:	83 fe 02             	cmp    $0x2,%esi                      
  10d724:	74 31                	je     10d757 <_Objects_Set_name+0x6f>
  10d726:	0f be 53 02          	movsbl 0x2(%ebx),%edx                 
  10d72a:	c1 e2 08             	shl    $0x8,%edx                      
  10d72d:	09 c2                	or     %eax,%edx                      
  10d72f:	83 fe 03             	cmp    $0x3,%esi                      
  10d732:	0f 84 80 00 00 00    	je     10d7b8 <_Objects_Set_name+0xd0>
  10d738:	0f be 43 03          	movsbl 0x3(%ebx),%eax                 
  10d73c:	09 c2                	or     %eax,%edx                      
  10d73e:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d741:	89 50 0c             	mov    %edx,0xc(%eax)                 
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
  10d744:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10d746:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d749:	5b                   	pop    %ebx                           
  10d74a:	5e                   	pop    %esi                           
  10d74b:	5f                   	pop    %edi                           
  10d74c:	c9                   	leave                                 
  10d74d:	c3                   	ret                                   
  10d74e:	66 90                	xchg   %ax,%ax                        
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10d750:	89 d0                	mov    %edx,%eax                      
  10d752:	0d 00 00 20 00       	or     $0x200000,%eax                 
  10d757:	89 c2                	mov    %eax,%edx                      
  10d759:	80 ce 20             	or     $0x20,%dh                      
  10d75c:	b8 20 00 00 00       	mov    $0x20,%eax                     
  10d761:	eb d9                	jmp    10d73c <_Objects_Set_name+0x54>
  10d763:	90                   	nop                                   
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
  10d764:	83 ec 0c             	sub    $0xc,%esp                      
  10d767:	8d 40 01             	lea    0x1(%eax),%eax                 
  10d76a:	50                   	push   %eax                           
  10d76b:	e8 c0 19 00 00       	call   10f130 <_Workspace_Allocate>   
  10d770:	89 c7                	mov    %eax,%edi                      
    if ( !d )                                                         
  10d772:	83 c4 10             	add    $0x10,%esp                     
  10d775:	85 c0                	test   %eax,%eax                      
  10d777:	74 3b                	je     10d7b4 <_Objects_Set_name+0xcc>
      return false;                                                   
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
  10d779:	83 ec 0c             	sub    $0xc,%esp                      
  10d77c:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d77f:	ff 70 0c             	pushl  0xc(%eax)                      
  10d782:	e8 c5 19 00 00       	call   10f14c <_Workspace_Free>       
    the_object->name.name_p = NULL;                                   
  10d787:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d78a:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
                                                                      
    strncpy( d, name, length );                                       
  10d791:	83 c4 0c             	add    $0xc,%esp                      
  10d794:	56                   	push   %esi                           
  10d795:	53                   	push   %ebx                           
  10d796:	57                   	push   %edi                           
  10d797:	e8 80 78 00 00       	call   11501c <strncpy>               
    d[length] = '\0';                                                 
  10d79c:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)             
    the_object->name.name_p = d;                                      
  10d7a0:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d7a3:	89 78 0c             	mov    %edi,0xc(%eax)                 
  10d7a6:	83 c4 10             	add    $0x10,%esp                     
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
  10d7a9:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10d7ab:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d7ae:	5b                   	pop    %ebx                           
  10d7af:	5e                   	pop    %esi                           
  10d7b0:	5f                   	pop    %edi                           
  10d7b1:	c9                   	leave                                 
  10d7b2:	c3                   	ret                                   
  10d7b3:	90                   	nop                                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
    if ( !d )                                                         
      return false;                                                   
  10d7b4:	31 c0                	xor    %eax,%eax                      
  10d7b6:	eb 8e                	jmp    10d746 <_Objects_Set_name+0x5e>
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10d7b8:	b8 20 00 00 00       	mov    $0x20,%eax                     
  10d7bd:	e9 7a ff ff ff       	jmp    10d73c <_Objects_Set_name+0x54>
                                                                      

0010d078 <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) {
  10d078:	55                   	push   %ebp                           
  10d079:	89 e5                	mov    %esp,%ebp                      
  10d07b:	57                   	push   %edi                           
  10d07c:	56                   	push   %esi                           
  10d07d:	53                   	push   %ebx                           
  10d07e:	83 ec 1c             	sub    $0x1c,%esp                     
                                                                      
  /*                                                                  
   * Search the list to find block or chunk with all objects inactive.
   */                                                                 
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
  10d081:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d084:	0f b7 58 08          	movzwl 0x8(%eax),%ebx                 
  block_count = (information->maximum - index_base) /                 
  10d088:	0f b7 48 14          	movzwl 0x14(%eax),%ecx                
  10d08c:	0f b7 40 10          	movzwl 0x10(%eax),%eax                
  10d090:	29 d8                	sub    %ebx,%eax                      
  10d092:	31 d2                	xor    %edx,%edx                      
  10d094:	f7 f1                	div    %ecx                           
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
  10d096:	85 c0                	test   %eax,%eax                      
  10d098:	74 21                	je     10d0bb <_Objects_Shrink_information+0x43><== NEVER TAKEN
    if ( information->inactive_per_block[ block ] ==                  
  10d09a:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d09d:	8b 72 30             	mov    0x30(%edx),%esi                
  10d0a0:	3b 0e                	cmp    (%esi),%ecx                    
  10d0a2:	74 1f                	je     10d0c3 <_Objects_Shrink_information+0x4b><== NEVER TAKEN
  10d0a4:	31 d2                	xor    %edx,%edx                      
  10d0a6:	eb 0e                	jmp    10d0b6 <_Objects_Shrink_information+0x3e>
      information->inactive -= information->allocation_size;          
                                                                      
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  10d0a8:	01 cb                	add    %ecx,%ebx                      
  10d0aa:	8d 3c 95 00 00 00 00 	lea    0x0(,%edx,4),%edi              
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
    if ( information->inactive_per_block[ block ] ==                  
  10d0b1:	3b 0c 96             	cmp    (%esi,%edx,4),%ecx             
  10d0b4:	74 12                	je     10d0c8 <_Objects_Shrink_information+0x50>
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
  10d0b6:	42                   	inc    %edx                           
  10d0b7:	39 d0                	cmp    %edx,%eax                      
  10d0b9:	77 ed                	ja     10d0a8 <_Objects_Shrink_information+0x30>
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  }                                                                   
}                                                                     
  10d0bb:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d0be:	5b                   	pop    %ebx                           
  10d0bf:	5e                   	pop    %esi                           
  10d0c0:	5f                   	pop    %edi                           
  10d0c1:	c9                   	leave                                 
  10d0c2:	c3                   	ret                                   
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
    if ( information->inactive_per_block[ block ] ==                  
  10d0c3:	31 ff                	xor    %edi,%edi                      <== NOT EXECUTED
  10d0c5:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
         information->allocation_size ) {                             
                                                                      
      /*                                                              
       *  Assume the Inactive chain is never empty at this point      
       */                                                             
      the_object = (Objects_Control *) _Chain_First( &information->Inactive );
  10d0c8:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d0cb:	8b 42 20             	mov    0x20(%edx),%eax                
  10d0ce:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
  10d0d1:	eb 07                	jmp    10d0da <_Objects_Shrink_information+0x62>
  10d0d3:	90                   	nop                                   
         if ((index >= index_base) &&                                 
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
         }                                                            
       }                                                              
       while ( the_object );                                          
  10d0d4:	85 f6                	test   %esi,%esi                      
  10d0d6:	74 2c                	je     10d104 <_Objects_Shrink_information+0x8c>
         index = _Objects_Get_index( the_object->id );                
         /*                                                           
          *  Get the next node before the node is extracted           
          */                                                          
         extract_me = the_object;                                     
         the_object = (Objects_Control *) the_object->Node.next;      
  10d0d8:	89 f0                	mov    %esi,%eax                      
       *  Assume the Inactive chain is never empty at this point      
       */                                                             
      the_object = (Objects_Control *) _Chain_First( &information->Inactive );
                                                                      
      do {                                                            
         index = _Objects_Get_index( the_object->id );                
  10d0da:	0f b7 50 08          	movzwl 0x8(%eax),%edx                 
         /*                                                           
          *  Get the next node before the node is extracted           
          */                                                          
         extract_me = the_object;                                     
         the_object = (Objects_Control *) the_object->Node.next;      
  10d0de:	8b 30                	mov    (%eax),%esi                    
         if ((index >= index_base) &&                                 
  10d0e0:	39 da                	cmp    %ebx,%edx                      
  10d0e2:	72 f0                	jb     10d0d4 <_Objects_Shrink_information+0x5c>
             (index < (index_base + information->allocation_size))) { 
  10d0e4:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10d0e7:	0f b7 4f 14          	movzwl 0x14(%edi),%ecx                
  10d0eb:	8d 0c 0b             	lea    (%ebx,%ecx,1),%ecx             
         /*                                                           
          *  Get the next node before the node is extracted           
          */                                                          
         extract_me = the_object;                                     
         the_object = (Objects_Control *) the_object->Node.next;      
         if ((index >= index_base) &&                                 
  10d0ee:	39 ca                	cmp    %ecx,%edx                      
  10d0f0:	73 e2                	jae    10d0d4 <_Objects_Shrink_information+0x5c>
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
  10d0f2:	83 ec 0c             	sub    $0xc,%esp                      
  10d0f5:	50                   	push   %eax                           
  10d0f6:	e8 49 ef ff ff       	call   10c044 <_Chain_Extract>        
  10d0fb:	83 c4 10             	add    $0x10,%esp                     
         }                                                            
       }                                                              
       while ( the_object );                                          
  10d0fe:	85 f6                	test   %esi,%esi                      
  10d100:	75 d6                	jne    10d0d8 <_Objects_Shrink_information+0x60>
  10d102:	66 90                	xchg   %ax,%ax                        
  10d104:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
      /*                                                              
       *  Free the memory and reset the structures in the object' information
       */                                                             
                                                                      
      _Workspace_Free( information->object_blocks[ block ] );         
  10d107:	83 ec 0c             	sub    $0xc,%esp                      
  10d10a:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d10d:	8b 42 34             	mov    0x34(%edx),%eax                
  10d110:	ff 34 38             	pushl  (%eax,%edi,1)                  
  10d113:	e8 e8 18 00 00       	call   10ea00 <_Workspace_Free>       
      information->object_blocks[ block ] = NULL;                     
  10d118:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d11b:	8b 42 34             	mov    0x34(%edx),%eax                
  10d11e:	c7 04 38 00 00 00 00 	movl   $0x0,(%eax,%edi,1)             
      information->inactive_per_block[ block ] = 0;                   
  10d125:	8b 42 30             	mov    0x30(%edx),%eax                
  10d128:	c7 04 38 00 00 00 00 	movl   $0x0,(%eax,%edi,1)             
                                                                      
      information->inactive -= information->allocation_size;          
  10d12f:	8b 42 14             	mov    0x14(%edx),%eax                
  10d132:	66 29 42 2c          	sub    %ax,0x2c(%edx)                 
                                                                      
      return;                                                         
  10d136:	83 c4 10             	add    $0x10,%esp                     
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  }                                                                   
}                                                                     
  10d139:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d13c:	5b                   	pop    %ebx                           
  10d13d:	5e                   	pop    %esi                           
  10d13e:	5f                   	pop    %edi                           
  10d13f:	c9                   	leave                                 
  10d140:	c3                   	ret                                   
                                                                      

0010d56c <_POSIX_Absolute_timeout_to_ticks>: */ POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks( const struct timespec *abstime, Watchdog_Interval *ticks_out ) {
  10d56c:	55                   	push   %ebp                           
  10d56d:	89 e5                	mov    %esp,%ebp                      
  10d56f:	57                   	push   %edi                           
  10d570:	56                   	push   %esi                           
  10d571:	53                   	push   %ebx                           
  10d572:	83 ec 38             	sub    $0x38,%esp                     
  10d575:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d578:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
                                                                      
  /*                                                                  
   *  Make sure there is always a value returned.                     
   */                                                                 
  *ticks_out = 0;                                                     
  10d57b:	c7 06 00 00 00 00    	movl   $0x0,(%esi)                    
                                                                      
  /*                                                                  
   *  Is the absolute time even valid?                                
   */                                                                 
  if ( !_Timespec_Is_valid(abstime) )                                 
  10d581:	53                   	push   %ebx                           
  10d582:	e8 cd 3d 00 00       	call   111354 <_Timespec_Is_valid>    
  10d587:	83 c4 10             	add    $0x10,%esp                     
  10d58a:	84 c0                	test   %al,%al                        
  10d58c:	75 0a                	jne    10d598 <_POSIX_Absolute_timeout_to_ticks+0x2c>
    return POSIX_ABSOLUTE_TIMEOUT_INVALID;                            
  10d58e:	31 c0                	xor    %eax,%eax                      
  /*                                                                  
   *  This is the case we were expecting and it took this long to     
   *  get here.                                                       
   */                                                                 
  return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE;                         
}                                                                     
  10d590:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d593:	5b                   	pop    %ebx                           
  10d594:	5e                   	pop    %esi                           
  10d595:	5f                   	pop    %edi                           
  10d596:	c9                   	leave                                 
  10d597:	c3                   	ret                                   
    return POSIX_ABSOLUTE_TIMEOUT_INVALID;                            
                                                                      
  /*                                                                  
   *  Is the absolute time in the past?                               
   */                                                                 
  _TOD_Get( ¤t_time );                                          
  10d598:	83 ec 0c             	sub    $0xc,%esp                      
  10d59b:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10d59e:	57                   	push   %edi                           
  10d59f:	e8 7c 1d 00 00       	call   10f320 <_TOD_Get>              
                                                                      
  if ( _Timespec_Less_than( abstime, ¤t_time ) )                
  10d5a4:	5a                   	pop    %edx                           
  10d5a5:	59                   	pop    %ecx                           
  10d5a6:	57                   	push   %edi                           
  10d5a7:	53                   	push   %ebx                           
  10d5a8:	e8 cf 3d 00 00       	call   11137c <_Timespec_Less_than>   
  10d5ad:	83 c4 10             	add    $0x10,%esp                     
  10d5b0:	84 c0                	test   %al,%al                        
  10d5b2:	74 10                	je     10d5c4 <_POSIX_Absolute_timeout_to_ticks+0x58>
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
  10d5b4:	b8 01 00 00 00       	mov    $0x1,%eax                      
  /*                                                                  
   *  This is the case we were expecting and it took this long to     
   *  get here.                                                       
   */                                                                 
  return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE;                         
}                                                                     
  10d5b9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d5bc:	5b                   	pop    %ebx                           
  10d5bd:	5e                   	pop    %esi                           
  10d5be:	5f                   	pop    %edi                           
  10d5bf:	c9                   	leave                                 
  10d5c0:	c3                   	ret                                   
  10d5c1:	8d 76 00             	lea    0x0(%esi),%esi                 
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
                                                                      
  /*                                                                  
   *  How long until the requested absolute time?                     
   */                                                                 
  _Timespec_Subtract( ¤t_time, abstime, &difference );          
  10d5c4:	50                   	push   %eax                           
  10d5c5:	8d 45 d8             	lea    -0x28(%ebp),%eax               
  10d5c8:	50                   	push   %eax                           
  10d5c9:	53                   	push   %ebx                           
  10d5ca:	57                   	push   %edi                           
  10d5cb:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10d5ce:	e8 cd 3d 00 00       	call   1113a0 <_Timespec_Subtract>    
                                                                      
  /*                                                                  
   *  Internally the SuperCore uses ticks, so convert to them.        
   */                                                                 
  *ticks_out = _Timespec_To_ticks( &difference );                     
  10d5d3:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10d5d6:	89 04 24             	mov    %eax,(%esp)                    
  10d5d9:	e8 02 3e 00 00       	call   1113e0 <_Timespec_To_ticks>    
  10d5de:	89 06                	mov    %eax,(%esi)                    
                                                                      
  /*                                                                  
   *  If the difference was 0, then the future is now.  It is so bright
   *  we better wear shades.                                          
   */                                                                 
  if ( !*ticks_out )                                                  
  10d5e0:	83 c4 10             	add    $0x10,%esp                     
    return POSIX_ABSOLUTE_TIMEOUT_IS_NOW;                             
  10d5e3:	83 f8 01             	cmp    $0x1,%eax                      
  10d5e6:	19 c0                	sbb    %eax,%eax                      
  10d5e8:	83 c0 03             	add    $0x3,%eax                      
  /*                                                                  
   *  This is the case we were expecting and it took this long to     
   *  get here.                                                       
   */                                                                 
  return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE;                         
}                                                                     
  10d5eb:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d5ee:	5b                   	pop    %ebx                           
  10d5ef:	5e                   	pop    %esi                           
  10d5f0:	5f                   	pop    %edi                           
  10d5f1:	c9                   	leave                                 
  10d5f2:	c3                   	ret                                   
                                                                      

0010c124 <_POSIX_Condition_variables_Get>: POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get ( pthread_cond_t *cond, Objects_Locations *location ) {
  10c124:	55                   	push   %ebp                           
  10c125:	89 e5                	mov    %esp,%ebp                      
  10c127:	56                   	push   %esi                           
  10c128:	53                   	push   %ebx                           
  10c129:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c12c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  int status;                                                         
                                                                      
  if ( !cond ) {                                                      
  10c12f:	85 db                	test   %ebx,%ebx                      
  10c131:	74 39                	je     10c16c <_POSIX_Condition_variables_Get+0x48>
    *location = OBJECTS_ERROR;                                        
    return (POSIX_Condition_variables_Control *) 0;                   
  }                                                                   
                                                                      
  if ( *cond == PTHREAD_COND_INITIALIZER ) {                          
  10c133:	8b 03                	mov    (%ebx),%eax                    
  10c135:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10c138:	74 1a                	je     10c154 <_POSIX_Condition_variables_Get+0x30>
  }                                                                   
                                                                      
  /*                                                                  
   *  Now call Objects_Get()                                          
   */                                                                 
  return (POSIX_Condition_variables_Control *)_Objects_Get(           
  10c13a:	52                   	push   %edx                           
  10c13b:	56                   	push   %esi                           
  10c13c:	50                   	push   %eax                           
  10c13d:	68 60 aa 12 00       	push   $0x12aa60                      
  10c142:	e8 75 2b 00 00       	call   10ecbc <_Objects_Get>          
  10c147:	83 c4 10             	add    $0x10,%esp                     
    &_POSIX_Condition_variables_Information,                          
    (Objects_Id) *cond,                                               
    location                                                          
  );                                                                  
}                                                                     
  10c14a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c14d:	5b                   	pop    %ebx                           
  10c14e:	5e                   	pop    %esi                           
  10c14f:	c9                   	leave                                 
  10c150:	c3                   	ret                                   
  10c151:	8d 76 00             	lea    0x0(%esi),%esi                 
  if ( *cond == PTHREAD_COND_INITIALIZER ) {                          
    /*                                                                
     *  Do an "auto-create" here.                                     
     */                                                               
                                                                      
    status = pthread_cond_init( cond, 0 );                            
  10c154:	83 ec 08             	sub    $0x8,%esp                      
  10c157:	6a 00                	push   $0x0                           
  10c159:	53                   	push   %ebx                           
  10c15a:	e8 19 00 00 00       	call   10c178 <pthread_cond_init>     
    if ( status ) {                                                   
  10c15f:	83 c4 10             	add    $0x10,%esp                     
  10c162:	85 c0                	test   %eax,%eax                      
  10c164:	75 06                	jne    10c16c <_POSIX_Condition_variables_Get+0x48>
  10c166:	8b 03                	mov    (%ebx),%eax                    
  10c168:	eb d0                	jmp    10c13a <_POSIX_Condition_variables_Get+0x16>
  10c16a:	66 90                	xchg   %ax,%ax                        
      *location = OBJECTS_ERROR;                                      
  10c16c:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
      return (POSIX_Condition_variables_Control *) 0;                 
  10c172:	31 c0                	xor    %eax,%eax                      
  10c174:	eb d4                	jmp    10c14a <_POSIX_Condition_variables_Get+0x26>
                                                                      

0010c240 <_POSIX_Condition_variables_Signal_support>: int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) {
  10c240:	55                   	push   %ebp                           
  10c241:	89 e5                	mov    %esp,%ebp                      
  10c243:	57                   	push   %edi                           
  10c244:	56                   	push   %esi                           
  10c245:	53                   	push   %ebx                           
  10c246:	83 ec 24             	sub    $0x24,%esp                     
  10c249:	8a 5d 0c             	mov    0xc(%ebp),%bl                  
  register POSIX_Condition_variables_Control *the_cond;               
  Objects_Locations                           location;               
  Thread_Control                             *the_thread;             
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  10c24c:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10c24f:	50                   	push   %eax                           
  10c250:	ff 75 08             	pushl  0x8(%ebp)                      
  10c253:	e8 cc fe ff ff       	call   10c124 <_POSIX_Condition_variables_Get>
  10c258:	89 c7                	mov    %eax,%edi                      
  switch ( location ) {                                               
  10c25a:	83 c4 10             	add    $0x10,%esp                     
  10c25d:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c260:	85 c0                	test   %eax,%eax                      
  10c262:	74 10                	je     10c274 <_POSIX_Condition_variables_Signal_support+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c264:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10c269:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c26c:	5b                   	pop    %ebx                           
  10c26d:	5e                   	pop    %esi                           
  10c26e:	5f                   	pop    %edi                           
  10c26f:	c9                   	leave                                 
  10c270:	c3                   	ret                                   
  10c271:	8d 76 00             	lea    0x0(%esi),%esi                 
  10c274:	8d 77 18             	lea    0x18(%edi),%esi                
  10c277:	eb 0b                	jmp    10c284 <_POSIX_Condition_variables_Signal_support+0x44>
  10c279:	8d 76 00             	lea    0x0(%esi),%esi                 
    case OBJECTS_LOCAL:                                               
      do {                                                            
        the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue );  
        if ( !the_thread )                                            
          the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;       
      } while ( is_broadcast && the_thread );                         
  10c27c:	84 db                	test   %bl,%bl                        
  10c27e:	74 20                	je     10c2a0 <_POSIX_Condition_variables_Signal_support+0x60>
  10c280:	85 c0                	test   %eax,%eax                      
  10c282:	74 1c                	je     10c2a0 <_POSIX_Condition_variables_Signal_support+0x60>
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      do {                                                            
        the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue );  
  10c284:	83 ec 0c             	sub    $0xc,%esp                      
  10c287:	56                   	push   %esi                           
  10c288:	e8 37 39 00 00       	call   10fbc4 <_Thread_queue_Dequeue> 
        if ( !the_thread )                                            
  10c28d:	83 c4 10             	add    $0x10,%esp                     
  10c290:	85 c0                	test   %eax,%eax                      
  10c292:	75 e8                	jne    10c27c <_POSIX_Condition_variables_Signal_support+0x3c>
          the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;       
  10c294:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)                
      } while ( is_broadcast && the_thread );                         
  10c29b:	84 db                	test   %bl,%bl                        
  10c29d:	75 e1                	jne    10c280 <_POSIX_Condition_variables_Signal_support+0x40>
  10c29f:	90                   	nop                                   
                                                                      
      _Thread_Enable_dispatch();                                      
  10c2a0:	e8 9f 35 00 00       	call   10f844 <_Thread_Enable_dispatch>
                                                                      
      return 0;                                                       
  10c2a5:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c2a7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c2aa:	5b                   	pop    %ebx                           
  10c2ab:	5e                   	pop    %esi                           
  10c2ac:	5f                   	pop    %edi                           
  10c2ad:	c9                   	leave                                 
  10c2ae:	c3                   	ret                                   
                                                                      

0010c308 <_POSIX_Condition_variables_Wait_support>: pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) {
  10c308:	55                   	push   %ebp                           
  10c309:	89 e5                	mov    %esp,%ebp                      
  10c30b:	57                   	push   %edi                           
  10c30c:	56                   	push   %esi                           
  10c30d:	53                   	push   %ebx                           
  10c30e:	83 ec 34             	sub    $0x34,%esp                     
  10c311:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10c314:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c317:	8a 45 14             	mov    0x14(%ebp),%al                 
  10c31a:	88 45 d7             	mov    %al,-0x29(%ebp)                
  register POSIX_Condition_variables_Control *the_cond;               
  Objects_Locations                           location;               
  int                                         status;                 
  int                                         mutex_status;           
                                                                      
  if ( !_POSIX_Mutex_Get( mutex, &location ) ) {                      
  10c31d:	8d 75 e4             	lea    -0x1c(%ebp),%esi               
  10c320:	56                   	push   %esi                           
  10c321:	53                   	push   %ebx                           
  10c322:	e8 59 01 00 00       	call   10c480 <_POSIX_Mutex_Get>      
  10c327:	83 c4 10             	add    $0x10,%esp                     
  10c32a:	85 c0                	test   %eax,%eax                      
  10c32c:	74 21                	je     10c34f <_POSIX_Condition_variables_Wait_support+0x47>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10c32e:	a1 b0 a5 12 00       	mov    0x12a5b0,%eax                  
  10c333:	48                   	dec    %eax                           
  10c334:	a3 b0 a5 12 00       	mov    %eax,0x12a5b0                  
     return EINVAL;                                                   
  }                                                                   
                                                                      
  _Thread_Unnest_dispatch();                                          
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  10c339:	83 ec 08             	sub    $0x8,%esp                      
  10c33c:	56                   	push   %esi                           
  10c33d:	57                   	push   %edi                           
  10c33e:	e8 e1 fd ff ff       	call   10c124 <_POSIX_Condition_variables_Get>
  10c343:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  10c345:	83 c4 10             	add    $0x10,%esp                     
  10c348:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c34b:	85 d2                	test   %edx,%edx                      
  10c34d:	74 11                	je     10c360 <_POSIX_Condition_variables_Wait_support+0x58>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c34f:	be 16 00 00 00       	mov    $0x16,%esi                     
}                                                                     
  10c354:	89 f0                	mov    %esi,%eax                      
  10c356:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c359:	5b                   	pop    %ebx                           
  10c35a:	5e                   	pop    %esi                           
  10c35b:	5f                   	pop    %edi                           
  10c35c:	c9                   	leave                                 
  10c35d:	c3                   	ret                                   
  10c35e:	66 90                	xchg   %ax,%ax                        
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) {       
  10c360:	8b 40 14             	mov    0x14(%eax),%eax                
  10c363:	85 c0                	test   %eax,%eax                      
  10c365:	74 19                	je     10c380 <_POSIX_Condition_variables_Wait_support+0x78>
  10c367:	3b 03                	cmp    (%ebx),%eax                    
  10c369:	74 15                	je     10c380 <_POSIX_Condition_variables_Wait_support+0x78>
        _Thread_Enable_dispatch();                                    
  10c36b:	e8 d4 34 00 00       	call   10f844 <_Thread_Enable_dispatch>
        return EINVAL;                                                
  10c370:	be 16 00 00 00       	mov    $0x16,%esi                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c375:	89 f0                	mov    %esi,%eax                      
  10c377:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c37a:	5b                   	pop    %ebx                           
  10c37b:	5e                   	pop    %esi                           
  10c37c:	5f                   	pop    %edi                           
  10c37d:	c9                   	leave                                 
  10c37e:	c3                   	ret                                   
  10c37f:	90                   	nop                                   
      if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) {       
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      (void) pthread_mutex_unlock( mutex );                           
  10c380:	83 ec 0c             	sub    $0xc,%esp                      
  10c383:	53                   	push   %ebx                           
  10c384:	e8 73 03 00 00       	call   10c6fc <pthread_mutex_unlock>  
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
*/                                                                    
                                                                      
      if ( !already_timedout ) {                                      
  10c389:	83 c4 10             	add    $0x10,%esp                     
  10c38c:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)               
  10c390:	75 4e                	jne    10c3e0 <_POSIX_Condition_variables_Wait_support+0xd8>
        the_cond->Mutex = *mutex;                                     
  10c392:	8b 03                	mov    (%ebx),%eax                    
  10c394:	89 46 14             	mov    %eax,0x14(%esi)                
                                                                      
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;
  10c397:	c7 46 48 01 00 00 00 	movl   $0x1,0x48(%esi)                
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
  10c39e:	a1 58 ab 12 00       	mov    0x12ab58,%eax                  
  10c3a3:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
        _Thread_Executing->Wait.queue       = &the_cond->Wait_queue;  
  10c3aa:	83 c6 18             	add    $0x18,%esi                     
  10c3ad:	89 70 44             	mov    %esi,0x44(%eax)                
        _Thread_Executing->Wait.id          = *cond;                  
  10c3b0:	8b 17                	mov    (%edi),%edx                    
  10c3b2:	89 50 20             	mov    %edx,0x20(%eax)                
                                                                      
        _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout );      
  10c3b5:	50                   	push   %eax                           
  10c3b6:	68 68 00 11 00       	push   $0x110068                      
  10c3bb:	ff 75 10             	pushl  0x10(%ebp)                     
  10c3be:	56                   	push   %esi                           
  10c3bf:	e8 28 39 00 00       	call   10fcec <_Thread_queue_Enqueue_with_handler>
                                                                      
        _Thread_Enable_dispatch();                                    
  10c3c4:	e8 7b 34 00 00       	call   10f844 <_Thread_Enable_dispatch>
         *  a POSIX signal, then pthread_cond_wait returns spuriously,
         *  according to the POSIX standard. It means that pthread_cond_wait
         *  returns a success status, except for the fact that it was not
         *  woken up a pthread_cond_signal or a pthread_cond_broadcast.
         */                                                           
        status = _Thread_Executing->Wait.return_code;                 
  10c3c9:	a1 58 ab 12 00       	mov    0x12ab58,%eax                  
  10c3ce:	8b 70 34             	mov    0x34(%eax),%esi                
        if ( status == EINTR )                                        
  10c3d1:	83 c4 10             	add    $0x10,%esp                     
  10c3d4:	83 fe 04             	cmp    $0x4,%esi                      
  10c3d7:	75 11                	jne    10c3ea <_POSIX_Condition_variables_Wait_support+0xe2>
          status = 0;                                                 
  10c3d9:	31 f6                	xor    %esi,%esi                      
  10c3db:	eb 0d                	jmp    10c3ea <_POSIX_Condition_variables_Wait_support+0xe2>
  10c3dd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      } else {                                                        
        _Thread_Enable_dispatch();                                    
  10c3e0:	e8 5f 34 00 00       	call   10f844 <_Thread_Enable_dispatch>
        status = ETIMEDOUT;                                           
  10c3e5:	be 74 00 00 00       	mov    $0x74,%esi                     
                                                                      
      /*                                                              
       *  When we get here the dispatch disable level is 0.           
       */                                                             
                                                                      
      mutex_status = pthread_mutex_lock( mutex );                     
  10c3ea:	83 ec 0c             	sub    $0xc,%esp                      
  10c3ed:	53                   	push   %ebx                           
  10c3ee:	e8 81 02 00 00       	call   10c674 <pthread_mutex_lock>    
      if ( mutex_status )                                             
  10c3f3:	83 c4 10             	add    $0x10,%esp                     
  10c3f6:	85 c0                	test   %eax,%eax                      
  10c3f8:	0f 85 51 ff ff ff    	jne    10c34f <_POSIX_Condition_variables_Wait_support+0x47>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c3fe:	89 f0                	mov    %esi,%eax                      
  10c400:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c403:	5b                   	pop    %ebx                           
  10c404:	5e                   	pop    %esi                           
  10c405:	5f                   	pop    %edi                           
  10c406:	c9                   	leave                                 
  10c407:	c3                   	ret                                   
                                                                      

001163f8 <_POSIX_Message_queue_Create_support>: const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) {
  1163f8:	55                   	push   %ebp                           
  1163f9:	89 e5                	mov    %esp,%ebp                      
  1163fb:	57                   	push   %edi                           
  1163fc:	56                   	push   %esi                           
  1163fd:	53                   	push   %ebx                           
  1163fe:	83 ec 24             	sub    $0x24,%esp                     
  116401:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  CORE_message_queue_Attributes *the_mq_attr;                         
  struct mq_attr                 attr;                                
  char                          *name;                                
  size_t                         n;                                   
                                                                      
  n = strnlen( name_arg, NAME_MAX );                                  
  116404:	68 ff 00 00 00       	push   $0xff                          
  116409:	ff 75 08             	pushl  0x8(%ebp)                      
  11640c:	e8 e7 4b 00 00       	call   11aff8 <strnlen>               
  116411:	89 c6                	mov    %eax,%esi                      
  116413:	a1 90 0f 13 00       	mov    0x130f90,%eax                  
  116418:	40                   	inc    %eax                           
  116419:	a3 90 0f 13 00       	mov    %eax,0x130f90                  
   *  There is no real basis for the default values.  They will work  
   *  but were not compared against any existing implementation for   
   *  compatibility.  See README.mqueue for an example program we     
   *  think will print out the defaults.  Report anything you find with it.
   */                                                                 
  if ( attr_ptr == NULL ) {                                           
  11641e:	83 c4 10             	add    $0x10,%esp                     
  116421:	85 db                	test   %ebx,%ebx                      
  116423:	0f 84 b7 00 00 00    	je     1164e0 <_POSIX_Message_queue_Create_support+0xe8>
    attr.mq_maxmsg  = 10;                                             
    attr.mq_msgsize = 16;                                             
  } else {                                                            
    if ( attr_ptr->mq_maxmsg <= 0 ){                                  
  116429:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  11642c:	85 ff                	test   %edi,%edi                      
  11642e:	0f 8e f0 00 00 00    	jle    116524 <_POSIX_Message_queue_Create_support+0x12c>
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    }                                                                 
                                                                      
    if ( attr_ptr->mq_msgsize <= 0 ){                                 
  116434:	8b 5b 08             	mov    0x8(%ebx),%ebx                 
  116437:	89 5d e4             	mov    %ebx,-0x1c(%ebp)               
  11643a:	85 db                	test   %ebx,%ebx                      
  11643c:	0f 8e e2 00 00 00    	jle    116524 <_POSIX_Message_queue_Create_support+0x12c>
                                                                      
RTEMS_INLINE_ROUTINE                                                  
  POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void )  
{                                                                     
  return (POSIX_Message_queue_Control *)                              
    _Objects_Allocate( &_POSIX_Message_queue_Information );           
  116442:	83 ec 0c             	sub    $0xc,%esp                      
  116445:	68 20 13 13 00       	push   $0x131320                      
  11644a:	e8 9d c3 ff ff       	call   1127ec <_Objects_Allocate>     
  11644f:	89 c3                	mov    %eax,%ebx                      
                                                                      
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
  116451:	83 c4 10             	add    $0x10,%esp                     
  116454:	85 c0                	test   %eax,%eax                      
  116456:	0f 84 0a 01 00 00    	je     116566 <_POSIX_Message_queue_Create_support+0x16e>
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
                                                                      
  the_mq->process_shared  = pshared;                                  
  11645c:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  11645f:	89 43 10             	mov    %eax,0x10(%ebx)                
  the_mq->named = true;                                               
  116462:	c6 43 14 01          	movb   $0x1,0x14(%ebx)                
  the_mq->open_count = 1;                                             
  116466:	c7 43 18 01 00 00 00 	movl   $0x1,0x18(%ebx)                
  the_mq->linked = true;                                              
  11646d:	c6 43 15 01          	movb   $0x1,0x15(%ebx)                
                                                                      
  /*                                                                  
   * Make a copy of the user's string for name just in case it was    
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
  116471:	8d 56 01             	lea    0x1(%esi),%edx                 
  116474:	83 ec 0c             	sub    $0xc,%esp                      
  116477:	52                   	push   %edx                           
  116478:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  11647b:	e8 e0 e4 ff ff       	call   114960 <_Workspace_Allocate>   
  116480:	89 c6                	mov    %eax,%esi                      
  if (!name) {                                                        
  116482:	83 c4 10             	add    $0x10,%esp                     
  116485:	85 c0                	test   %eax,%eax                      
  116487:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11648a:	0f 84 ab 00 00 00    	je     11653b <_POSIX_Message_queue_Create_support+0x143>
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
  }                                                                   
  strncpy( name, name_arg, n+1 );                                     
  116490:	50                   	push   %eax                           
  116491:	52                   	push   %edx                           
  116492:	ff 75 08             	pushl  0x8(%ebp)                      
  116495:	56                   	push   %esi                           
  116496:	e8 e1 4a 00 00       	call   11af7c <strncpy>               
   *                                                                  
   *  Joel: Cite POSIX or OpenGroup on above statement so we can determine
   *        if it is a real requirement.                              
   */                                                                 
  the_mq_attr = &the_mq->Message_queue.Attributes;                    
  the_mq_attr->discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;      
  11649b:	c7 43 5c 00 00 00 00 	movl   $0x0,0x5c(%ebx)                
                                                                      
  if ( !_CORE_message_queue_Initialize(                               
  1164a2:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1164a5:	57                   	push   %edi                           
   *  current scheduling policy.                                      
   *                                                                  
   *  Joel: Cite POSIX or OpenGroup on above statement so we can determine
   *        if it is a real requirement.                              
   */                                                                 
  the_mq_attr = &the_mq->Message_queue.Attributes;                    
  1164a6:	8d 43 5c             	lea    0x5c(%ebx),%eax                
  the_mq_attr->discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;      
                                                                      
  if ( !_CORE_message_queue_Initialize(                               
  1164a9:	50                   	push   %eax                           
  1164aa:	8d 43 1c             	lea    0x1c(%ebx),%eax                
  1164ad:	50                   	push   %eax                           
  1164ae:	e8 25 0f 00 00       	call   1173d8 <_CORE_message_queue_Initialize>
  1164b3:	83 c4 20             	add    $0x20,%esp                     
  1164b6:	84 c0                	test   %al,%al                        
  1164b8:	74 3a                	je     1164f4 <_POSIX_Message_queue_Create_support+0xfc>
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  1164ba:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  1164be:	a1 3c 13 13 00       	mov    0x13133c,%eax                  
  1164c3:	89 1c 90             	mov    %ebx,(%eax,%edx,4)             
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
  1164c6:	89 73 0c             	mov    %esi,0xc(%ebx)                 
    &_POSIX_Message_queue_Information,                                
    &the_mq->Object,                                                  
    name                                                              
  );                                                                  
                                                                      
  *message_queue = the_mq;                                            
  1164c9:	8b 45 14             	mov    0x14(%ebp),%eax                
  1164cc:	89 18                	mov    %ebx,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  1164ce:	e8 d5 d3 ff ff       	call   1138a8 <_Thread_Enable_dispatch>
  return 0;                                                           
  1164d3:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1164d5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1164d8:	5b                   	pop    %ebx                           
  1164d9:	5e                   	pop    %esi                           
  1164da:	5f                   	pop    %edi                           
  1164db:	c9                   	leave                                 
  1164dc:	c3                   	ret                                   
  1164dd:	8d 76 00             	lea    0x0(%esi),%esi                 
   *  compatibility.  See README.mqueue for an example program we     
   *  think will print out the defaults.  Report anything you find with it.
   */                                                                 
  if ( attr_ptr == NULL ) {                                           
    attr.mq_maxmsg  = 10;                                             
    attr.mq_msgsize = 16;                                             
  1164e0:	c7 45 e4 10 00 00 00 	movl   $0x10,-0x1c(%ebp)              
   *  but were not compared against any existing implementation for   
   *  compatibility.  See README.mqueue for an example program we     
   *  think will print out the defaults.  Report anything you find with it.
   */                                                                 
  if ( attr_ptr == NULL ) {                                           
    attr.mq_maxmsg  = 10;                                             
  1164e7:	bf 0a 00 00 00       	mov    $0xa,%edi                      
  1164ec:	e9 51 ff ff ff       	jmp    116442 <_POSIX_Message_queue_Create_support+0x4a>
  1164f1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (                 
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
  1164f4:	83 ec 08             	sub    $0x8,%esp                      
  1164f7:	53                   	push   %ebx                           
  1164f8:	68 20 13 13 00       	push   $0x131320                      
  1164fd:	e8 5e c6 ff ff       	call   112b60 <_Objects_Free>         
           attr.mq_maxmsg,                                            
           attr.mq_msgsize                                            
      ) ) {                                                           
                                                                      
    _POSIX_Message_queue_Free( the_mq );                              
    _Workspace_Free(name);                                            
  116502:	89 34 24             	mov    %esi,(%esp)                    
  116505:	e8 72 e4 ff ff       	call   11497c <_Workspace_Free>       
    _Thread_Enable_dispatch();                                        
  11650a:	e8 99 d3 ff ff       	call   1138a8 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  11650f:	e8 60 33 00 00       	call   119874 <__errno>               
  116514:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)                   
  11651a:	83 c4 10             	add    $0x10,%esp                     
  11651d:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  116522:	eb b1                	jmp    1164d5 <_POSIX_Message_queue_Create_support+0xdd>
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    }                                                                 
                                                                      
    if ( attr_ptr->mq_msgsize <= 0 ){                                 
      _Thread_Enable_dispatch();                                      
  116524:	e8 7f d3 ff ff       	call   1138a8 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  116529:	e8 46 33 00 00       	call   119874 <__errno>               
  11652e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  116534:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  116539:	eb 9a                	jmp    1164d5 <_POSIX_Message_queue_Create_support+0xdd>
  11653b:	83 ec 08             	sub    $0x8,%esp                      
  11653e:	53                   	push   %ebx                           
  11653f:	68 20 13 13 00       	push   $0x131320                      
  116544:	e8 17 c6 ff ff       	call   112b60 <_Objects_Free>         
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
  if (!name) {                                                        
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
  116549:	e8 5a d3 ff ff       	call   1138a8 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
  11654e:	e8 21 33 00 00       	call   119874 <__errno>               
  116553:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)                    
  116559:	83 c4 10             	add    $0x10,%esp                     
  11655c:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  116561:	e9 6f ff ff ff       	jmp    1164d5 <_POSIX_Message_queue_Create_support+0xdd>
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
    _Thread_Enable_dispatch();                                        
  116566:	e8 3d d3 ff ff       	call   1138a8 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  11656b:	e8 04 33 00 00       	call   119874 <__errno>               
  116570:	c7 00 17 00 00 00    	movl   $0x17,(%eax)                   
  116576:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  11657b:	e9 55 ff ff ff       	jmp    1164d5 <_POSIX_Message_queue_Create_support+0xdd>
                                                                      

00116580 <_POSIX_Message_queue_Name_to_id>: */ int _POSIX_Message_queue_Name_to_id( const char *name, Objects_Id *id ) {
  116580:	55                   	push   %ebp                           
  116581:	89 e5                	mov    %esp,%ebp                      
  116583:	53                   	push   %ebx                           
  116584:	83 ec 14             	sub    $0x14,%esp                     
  116587:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
  11658a:	85 db                	test   %ebx,%ebx                      
  11658c:	74 05                	je     116593 <_POSIX_Message_queue_Name_to_id+0x13>
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
  11658e:	80 3b 00             	cmpb   $0x0,(%ebx)                    
  116591:	75 0d                	jne    1165a0 <_POSIX_Message_queue_Name_to_id+0x20>
    return EINVAL;                                                    
  116593:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  116598:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11659b:	c9                   	leave                                 
  11659c:	c3                   	ret                                   
  11659d:	8d 76 00             	lea    0x0(%esi),%esi                 
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
  1165a0:	83 ec 08             	sub    $0x8,%esp                      
  1165a3:	68 ff 00 00 00       	push   $0xff                          
  1165a8:	53                   	push   %ebx                           
  1165a9:	e8 4a 4a 00 00       	call   11aff8 <strnlen>               
  1165ae:	83 c4 10             	add    $0x10,%esp                     
  1165b1:	3d fe 00 00 00       	cmp    $0xfe,%eax                     
  1165b6:	76 0c                	jbe    1165c4 <_POSIX_Message_queue_Name_to_id+0x44>
    return ENAMETOOLONG;                                              
  1165b8:	b8 5b 00 00 00       	mov    $0x5b,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  1165bd:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1165c0:	c9                   	leave                                 
  1165c1:	c3                   	ret                                   
  1165c2:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
    return ENAMETOOLONG;                                              
                                                                      
  status = _Objects_Name_to_id_string(                                
  1165c4:	50                   	push   %eax                           
  1165c5:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1165c8:	50                   	push   %eax                           
  1165c9:	53                   	push   %ebx                           
  1165ca:	68 20 13 13 00       	push   $0x131320                      
  1165cf:	e8 24 14 00 00       	call   1179f8 <_Objects_Name_to_id_string>
    &_POSIX_Message_queue_Information,                                
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
  1165d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  1165d7:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  1165da:	89 0a                	mov    %ecx,(%edx)                    
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
  1165dc:	83 c4 10             	add    $0x10,%esp                     
    return 0;                                                         
  1165df:	83 f8 01             	cmp    $0x1,%eax                      
  1165e2:	19 c0                	sbb    %eax,%eax                      
  1165e4:	f7 d0                	not    %eax                           
  1165e6:	83 e0 02             	and    $0x2,%eax                      
                                                                      
  return ENOENT;                                                      
}                                                                     
  1165e9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1165ec:	c9                   	leave                                 
  1165ed:	c3                   	ret                                   
                                                                      

0010fd30 <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) {
  10fd30:	55                   	push   %ebp                           
  10fd31:	89 e5                	mov    %esp,%ebp                      
  10fd33:	53                   	push   %ebx                           
  10fd34:	83 ec 28             	sub    $0x28,%esp                     
  10fd37:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10fd3a:	8a 45 18             	mov    0x18(%ebp),%al                 
  10fd3d:	88 45 e7             	mov    %al,-0x19(%ebp)                
  POSIX_Message_queue_Control_fd  *the_mq_fd;                         
  Objects_Locations                location;                          
  size_t                           length_out;                        
  bool                             do_wait;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  10fd40:	8d 45 f4             	lea    -0xc(%ebp),%eax                
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
  mqd_t              id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control_fd *) _Objects_Get(             
  10fd43:	50                   	push   %eax                           
  10fd44:	53                   	push   %ebx                           
  10fd45:	68 c0 14 13 00       	push   $0x1314c0                      
  10fd4a:	e8 51 2f 00 00       	call   112ca0 <_Objects_Get>          
  switch ( location ) {                                               
  10fd4f:	83 c4 10             	add    $0x10,%esp                     
  10fd52:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10fd55:	85 d2                	test   %edx,%edx                      
  10fd57:	74 17                	je     10fd70 <_POSIX_Message_queue_Receive_support+0x40>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
  10fd59:	e8 16 9b 00 00       	call   119874 <__errno>               
  10fd5e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10fd64:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10fd69:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10fd6c:	c9                   	leave                                 
  10fd6d:	c3                   	ret                                   
  10fd6e:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) {             
  10fd70:	8b 50 14             	mov    0x14(%eax),%edx                
  10fd73:	89 d1                	mov    %edx,%ecx                      
  10fd75:	83 e1 03             	and    $0x3,%ecx                      
  10fd78:	49                   	dec    %ecx                           
  10fd79:	0f 84 af 00 00 00    	je     10fe2e <_POSIX_Message_queue_Receive_support+0xfe>
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
  10fd7f:	8b 40 10             	mov    0x10(%eax),%eax                
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
  10fd82:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10fd85:	39 48 68             	cmp    %ecx,0x68(%eax)                
  10fd88:	77 62                	ja     10fdec <_POSIX_Message_queue_Receive_support+0xbc>
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
  10fd8a:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)        
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10fd91:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)               
  10fd95:	75 45                	jne    10fddc <_POSIX_Message_queue_Receive_support+0xac><== ALWAYS TAKEN
  10fd97:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
  10fd99:	83 ec 08             	sub    $0x8,%esp                      
  10fd9c:	ff 75 1c             	pushl  0x1c(%ebp)                     
  10fd9f:	52                   	push   %edx                           
  10fda0:	8d 55 f0             	lea    -0x10(%ebp),%edx               
  10fda3:	52                   	push   %edx                           
  10fda4:	ff 75 0c             	pushl  0xc(%ebp)                      
  10fda7:	53                   	push   %ebx                           
  10fda8:	83 c0 1c             	add    $0x1c,%eax                     
  10fdab:	50                   	push   %eax                           
  10fdac:	e8 9f 1f 00 00       	call   111d50 <_CORE_message_queue_Seize>
        &length_out,                                                  
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10fdb1:	83 c4 20             	add    $0x20,%esp                     
  10fdb4:	e8 ef 3a 00 00       	call   1138a8 <_Thread_Enable_dispatch>
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
  10fdb9:	8b 15 38 15 13 00    	mov    0x131538,%edx                  
RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
  CORE_message_queue_Submit_types priority                            
)                                                                     
{                                                                     
  /* absolute value without a library dependency */                   
  return ((priority >= 0) ? priority : -priority);                    
  10fdbf:	8b 42 24             	mov    0x24(%edx),%eax                
  10fdc2:	85 c0                	test   %eax,%eax                      
  10fdc4:	78 22                	js     10fde8 <_POSIX_Message_queue_Receive_support+0xb8>
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
  10fdc6:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10fdc9:	89 01                	mov    %eax,(%ecx)                    
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
  10fdcb:	8b 42 34             	mov    0x34(%edx),%eax                
  10fdce:	85 c0                	test   %eax,%eax                      
  10fdd0:	75 36                	jne    10fe08 <_POSIX_Message_queue_Receive_support+0xd8>
        return length_out;                                            
  10fdd2:	8b 45 f0             	mov    -0x10(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
  10fdd5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10fdd8:	c9                   	leave                                 
  10fdd9:	c3                   	ret                                   
  10fdda:	66 90                	xchg   %ax,%ax                        
      length_out = -1;                                                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10fddc:	80 e6 40             	and    $0x40,%dh                      
  10fddf:	0f 94 c2             	sete   %dl                            
  10fde2:	0f b6 d2             	movzbl %dl,%edx                       
  10fde5:	eb b2                	jmp    10fd99 <_POSIX_Message_queue_Receive_support+0x69>
  10fde7:	90                   	nop                                   
  10fde8:	f7 d8                	neg    %eax                           
  10fdea:	eb da                	jmp    10fdc6 <_POSIX_Message_queue_Receive_support+0x96>
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
        _Thread_Enable_dispatch();                                    
  10fdec:	e8 b7 3a 00 00       	call   1138a8 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EMSGSIZE );             
  10fdf1:	e8 7e 9a 00 00       	call   119874 <__errno>               
  10fdf6:	c7 00 7a 00 00 00    	movl   $0x7a,(%eax)                   
  10fdfc:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10fe01:	e9 63 ff ff ff       	jmp    10fd69 <_POSIX_Message_queue_Receive_support+0x39>
  10fe06:	66 90                	xchg   %ax,%ax                        
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
        return length_out;                                            
                                                                      
      rtems_set_errno_and_return_minus_one(                           
  10fe08:	e8 67 9a 00 00       	call   119874 <__errno>               
  10fe0d:	89 c3                	mov    %eax,%ebx                      
  10fe0f:	83 ec 0c             	sub    $0xc,%esp                      
  10fe12:	a1 38 15 13 00       	mov    0x131538,%eax                  
  10fe17:	ff 70 34             	pushl  0x34(%eax)                     
  10fe1a:	e8 29 02 00 00       	call   110048 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
  10fe1f:	89 03                	mov    %eax,(%ebx)                    
  10fe21:	83 c4 10             	add    $0x10,%esp                     
  10fe24:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10fe29:	e9 3b ff ff ff       	jmp    10fd69 <_POSIX_Message_queue_Receive_support+0x39>
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) {             
        _Thread_Enable_dispatch();                                    
  10fe2e:	e8 75 3a 00 00       	call   1138a8 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EBADF );                
  10fe33:	e8 3c 9a 00 00       	call   119874 <__errno>               
  10fe38:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10fe3e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10fe43:	e9 21 ff ff ff       	jmp    10fd69 <_POSIX_Message_queue_Receive_support+0x39>
                                                                      

0010fe68 <_POSIX_Message_queue_Send_support>: size_t msg_len, uint32_t msg_prio, bool wait, Watchdog_Interval timeout ) {
  10fe68:	55                   	push   %ebp                           
  10fe69:	89 e5                	mov    %esp,%ebp                      
  10fe6b:	56                   	push   %esi                           
  10fe6c:	53                   	push   %ebx                           
  10fe6d:	83 ec 20             	sub    $0x20,%esp                     
  10fe70:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10fe73:	8b 5d 14             	mov    0x14(%ebp),%ebx                
  10fe76:	8a 55 18             	mov    0x18(%ebp),%dl                 
  /*                                                                  
   * Validate the priority.                                           
   * XXX - Do not validate msg_prio is not less than 0.               
   */                                                                 
                                                                      
  if ( msg_prio > MQ_PRIO_MAX )                                       
  10fe79:	83 fb 20             	cmp    $0x20,%ebx                     
  10fe7c:	0f 87 92 00 00 00    	ja     10ff14 <_POSIX_Message_queue_Send_support+0xac>
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
  mqd_t              id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control_fd *) _Objects_Get(             
  10fe82:	51                   	push   %ecx                           
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  10fe83:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10fe86:	50                   	push   %eax                           
  10fe87:	56                   	push   %esi                           
  10fe88:	68 c0 14 13 00       	push   $0x1314c0                      
  10fe8d:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10fe90:	e8 0b 2e 00 00       	call   112ca0 <_Objects_Get>          
  switch ( location ) {                                               
  10fe95:	83 c4 10             	add    $0x10,%esp                     
  10fe98:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10fe9b:	85 d2                	test   %edx,%edx                      
  10fe9d:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10fea0:	75 5e                	jne    10ff00 <_POSIX_Message_queue_Send_support+0x98>
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) {             
  10fea2:	8b 48 14             	mov    0x14(%eax),%ecx                
  10fea5:	f6 c1 03             	test   $0x3,%cl                       
  10fea8:	74 7e                	je     10ff28 <_POSIX_Message_queue_Send_support+0xc0>
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
  10feaa:	8b 40 10             	mov    0x10(%eax),%eax                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10fead:	84 d2                	test   %dl,%dl                        
  10feaf:	75 37                	jne    10fee8 <_POSIX_Message_queue_Send_support+0x80>
  10feb1:	31 d2                	xor    %edx,%edx                      
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      msg_status = _CORE_message_queue_Submit(                        
  10feb3:	ff 75 1c             	pushl  0x1c(%ebp)                     
  10feb6:	52                   	push   %edx                           
                                                                      
RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
  unsigned int priority                                               
)                                                                     
{                                                                     
  return priority * -1;                                               
  10feb7:	f7 db                	neg    %ebx                           
  10feb9:	53                   	push   %ebx                           
  10feba:	6a 00                	push   $0x0                           
  10febc:	56                   	push   %esi                           
  10febd:	ff 75 10             	pushl  0x10(%ebp)                     
  10fec0:	ff 75 0c             	pushl  0xc(%ebp)                      
  10fec3:	83 c0 1c             	add    $0x1c,%eax                     
  10fec6:	50                   	push   %eax                           
  10fec7:	e8 b0 1f 00 00       	call   111e7c <_CORE_message_queue_Submit>
  10fecc:	89 c3                	mov    %eax,%ebx                      
        _POSIX_Message_queue_Priority_to_core( msg_prio ),            
        do_wait,                                                      
        timeout    /* no timeout */                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10fece:	83 c4 20             	add    $0x20,%esp                     
  10fed1:	e8 d2 39 00 00       	call   1138a8 <_Thread_Enable_dispatch>
       *  after it wakes up.  The returned status is correct for      
       *  non-blocking operations but if we blocked, then we need     
       *  to look at the status in our TCB.                           
       */                                                             
                                                                      
      if ( msg_status == CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT ) 
  10fed6:	83 fb 07             	cmp    $0x7,%ebx                      
  10fed9:	74 19                	je     10fef4 <_POSIX_Message_queue_Send_support+0x8c>
        msg_status = _Thread_Executing->Wait.return_code;             
                                                                      
      if ( !msg_status )                                              
  10fedb:	85 db                	test   %ebx,%ebx                      
  10fedd:	75 61                	jne    10ff40 <_POSIX_Message_queue_Send_support+0xd8>
        return msg_status;                                            
  10fedf:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
  10fee1:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10fee4:	5b                   	pop    %ebx                           
  10fee5:	5e                   	pop    %esi                           
  10fee6:	c9                   	leave                                 
  10fee7:	c3                   	ret                                   
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10fee8:	31 d2                	xor    %edx,%edx                      
  10feea:	f6 c5 40             	test   $0x40,%ch                      
  10feed:	0f 94 c2             	sete   %dl                            
  10fef0:	eb c1                	jmp    10feb3 <_POSIX_Message_queue_Send_support+0x4b>
  10fef2:	66 90                	xchg   %ax,%ax                        
       *  non-blocking operations but if we blocked, then we need     
       *  to look at the status in our TCB.                           
       */                                                             
                                                                      
      if ( msg_status == CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT ) 
        msg_status = _Thread_Executing->Wait.return_code;             
  10fef4:	a1 38 15 13 00       	mov    0x131538,%eax                  
  10fef9:	8b 58 34             	mov    0x34(%eax),%ebx                
  10fefc:	eb dd                	jmp    10fedb <_POSIX_Message_queue_Send_support+0x73>
  10fefe:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
  10ff00:	e8 6f 99 00 00       	call   119874 <__errno>               
  10ff05:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10ff0b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ff10:	eb cf                	jmp    10fee1 <_POSIX_Message_queue_Send_support+0x79>
  10ff12:	66 90                	xchg   %ax,%ax                        
   * Validate the priority.                                           
   * XXX - Do not validate msg_prio is not less than 0.               
   */                                                                 
                                                                      
  if ( msg_prio > MQ_PRIO_MAX )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10ff14:	e8 5b 99 00 00       	call   119874 <__errno>               
  10ff19:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10ff1f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ff24:	eb bb                	jmp    10fee1 <_POSIX_Message_queue_Send_support+0x79>
  10ff26:	66 90                	xchg   %ax,%ax                        
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) {             
        _Thread_Enable_dispatch();                                    
  10ff28:	e8 7b 39 00 00       	call   1138a8 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EBADF );                
  10ff2d:	e8 42 99 00 00       	call   119874 <__errno>               
  10ff32:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10ff38:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ff3d:	eb a2                	jmp    10fee1 <_POSIX_Message_queue_Send_support+0x79>
  10ff3f:	90                   	nop                                   
        msg_status = _Thread_Executing->Wait.return_code;             
                                                                      
      if ( !msg_status )                                              
        return msg_status;                                            
                                                                      
      rtems_set_errno_and_return_minus_one(                           
  10ff40:	e8 2f 99 00 00       	call   119874 <__errno>               
  10ff45:	89 c6                	mov    %eax,%esi                      
  10ff47:	83 ec 0c             	sub    $0xc,%esp                      
  10ff4a:	53                   	push   %ebx                           
  10ff4b:	e8 f8 00 00 00       	call   110048 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
  10ff50:	89 06                	mov    %eax,(%esi)                    
  10ff52:	83 c4 10             	add    $0x10,%esp                     
  10ff55:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ff5a:	eb 85                	jmp    10fee1 <_POSIX_Message_queue_Send_support+0x79>
                                                                      

0010d13c <_POSIX_Mutex_Get>: POSIX_Mutex_Control *_POSIX_Mutex_Get ( pthread_mutex_t *mutex, Objects_Locations *location ) {
  10d13c:	55                   	push   %ebp                           
  10d13d:	89 e5                	mov    %esp,%ebp                      
  10d13f:	56                   	push   %esi                           
  10d140:	53                   	push   %ebx                           
  10d141:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d144:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
  10d147:	85 db                	test   %ebx,%ebx                      
  10d149:	74 39                	je     10d184 <_POSIX_Mutex_Get+0x48> 
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10d14b:	8b 03                	mov    (%ebx),%eax                    
  10d14d:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10d150:	74 1a                	je     10d16c <_POSIX_Mutex_Get+0x30> 
                                                                      
  return (POSIX_Mutex_Control *)                                      
    _Objects_Get( &_POSIX_Mutex_Information, (Objects_Id) *mutex, location );
  10d152:	52                   	push   %edx                           
  10d153:	56                   	push   %esi                           
  10d154:	50                   	push   %eax                           
  10d155:	68 60 d1 12 00       	push   $0x12d160                      
  10d15a:	e8 d9 2b 00 00       	call   10fd38 <_Objects_Get>          
{                                                                     
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
                                                                      
  return (POSIX_Mutex_Control *)                                      
  10d15f:	83 c4 10             	add    $0x10,%esp                     
    _Objects_Get( &_POSIX_Mutex_Information, (Objects_Id) *mutex, location );
}                                                                     
  10d162:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d165:	5b                   	pop    %ebx                           
  10d166:	5e                   	pop    %esi                           
  10d167:	c9                   	leave                                 
  10d168:	c3                   	ret                                   
  10d169:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10d16c:	83 ec 08             	sub    $0x8,%esp                      
  10d16f:	6a 00                	push   $0x0                           
  10d171:	53                   	push   %ebx                           
  10d172:	e8 b9 00 00 00       	call   10d230 <pthread_mutex_init>    
  10d177:	83 c4 10             	add    $0x10,%esp                     
  10d17a:	85 c0                	test   %eax,%eax                      
  10d17c:	75 06                	jne    10d184 <_POSIX_Mutex_Get+0x48> 
  10d17e:	8b 03                	mov    (%ebx),%eax                    
  10d180:	eb d0                	jmp    10d152 <_POSIX_Mutex_Get+0x16> 
  10d182:	66 90                	xchg   %ax,%ax                        
  10d184:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
  10d18a:	31 c0                	xor    %eax,%eax                      
  10d18c:	eb d4                	jmp    10d162 <_POSIX_Mutex_Get+0x26> 
                                                                      

0010d190 <_POSIX_Mutex_Get_interrupt_disable>: POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable ( pthread_mutex_t *mutex, Objects_Locations *location, ISR_Level *level ) {
  10d190:	55                   	push   %ebp                           
  10d191:	89 e5                	mov    %esp,%ebp                      
  10d193:	56                   	push   %esi                           
  10d194:	53                   	push   %ebx                           
  10d195:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d198:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
  10d19b:	85 db                	test   %ebx,%ebx                      
  10d19d:	74 39                	je     10d1d8 <_POSIX_Mutex_Get_interrupt_disable+0x48>
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10d19f:	8b 03                	mov    (%ebx),%eax                    
  10d1a1:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10d1a4:	74 1a                	je     10d1c0 <_POSIX_Mutex_Get_interrupt_disable+0x30>
                                                                      
  return (POSIX_Mutex_Control *) _Objects_Get_isr_disable(            
  10d1a6:	ff 75 10             	pushl  0x10(%ebp)                     
  10d1a9:	56                   	push   %esi                           
  10d1aa:	50                   	push   %eax                           
  10d1ab:	68 60 d1 12 00       	push   $0x12d160                      
  10d1b0:	e8 2b 2b 00 00       	call   10fce0 <_Objects_Get_isr_disable>
  10d1b5:	83 c4 10             	add    $0x10,%esp                     
    &_POSIX_Mutex_Information,                                        
    (Objects_Id) *mutex,                                              
    location,                                                         
    level                                                             
  );                                                                  
}                                                                     
  10d1b8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d1bb:	5b                   	pop    %ebx                           
  10d1bc:	5e                   	pop    %esi                           
  10d1bd:	c9                   	leave                                 
  10d1be:	c3                   	ret                                   
  10d1bf:	90                   	nop                                   
  ISR_Level         *level                                            
)                                                                     
{                                                                     
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10d1c0:	83 ec 08             	sub    $0x8,%esp                      
  10d1c3:	6a 00                	push   $0x0                           
  10d1c5:	53                   	push   %ebx                           
  10d1c6:	e8 65 00 00 00       	call   10d230 <pthread_mutex_init>    
  10d1cb:	83 c4 10             	add    $0x10,%esp                     
  10d1ce:	85 c0                	test   %eax,%eax                      
  10d1d0:	75 06                	jne    10d1d8 <_POSIX_Mutex_Get_interrupt_disable+0x48>
  10d1d2:	8b 03                	mov    (%ebx),%eax                    
  10d1d4:	eb d0                	jmp    10d1a6 <_POSIX_Mutex_Get_interrupt_disable+0x16>
  10d1d6:	66 90                	xchg   %ax,%ax                        
  10d1d8:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
  10d1de:	31 c0                	xor    %eax,%eax                      
  10d1e0:	eb d6                	jmp    10d1b8 <_POSIX_Mutex_Get_interrupt_disable+0x28>
                                                                      

0010d390 <_POSIX_Mutex_Lock_support>: int _POSIX_Mutex_Lock_support( pthread_mutex_t *mutex, bool blocking, Watchdog_Interval timeout ) {
  10d390:	55                   	push   %ebp                           
  10d391:	89 e5                	mov    %esp,%ebp                      
  10d393:	53                   	push   %ebx                           
  10d394:	83 ec 18             	sub    $0x18,%esp                     
  10d397:	8a 5d 0c             	mov    0xc(%ebp),%bl                  
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
  ISR_Level                     level;                                
                                                                      
  the_mutex = _POSIX_Mutex_Get_interrupt_disable( mutex, &location, &level );
  10d39a:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10d39d:	50                   	push   %eax                           
  10d39e:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d3a1:	50                   	push   %eax                           
  10d3a2:	ff 75 08             	pushl  0x8(%ebp)                      
  10d3a5:	e8 e6 fd ff ff       	call   10d190 <_POSIX_Mutex_Get_interrupt_disable>
  switch ( location ) {                                               
  10d3aa:	83 c4 10             	add    $0x10,%esp                     
  10d3ad:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d3b0:	85 d2                	test   %edx,%edx                      
  10d3b2:	75 34                	jne    10d3e8 <_POSIX_Mutex_Lock_support+0x58>
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_mutex_Seize(                                              
  10d3b4:	83 ec 0c             	sub    $0xc,%esp                      
  10d3b7:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10d3ba:	ff 75 10             	pushl  0x10(%ebp)                     
  10d3bd:	0f b6 db             	movzbl %bl,%ebx                       
  10d3c0:	53                   	push   %ebx                           
  10d3c1:	ff 70 08             	pushl  0x8(%eax)                      
  10d3c4:	83 c0 14             	add    $0x14,%eax                     
  10d3c7:	50                   	push   %eax                           
  10d3c8:	e8 3b 1d 00 00       	call   10f108 <_CORE_mutex_Seize>     
        the_mutex->Object.id,                                         
        blocking,                                                     
        timeout,                                                      
        level                                                         
      );                                                              
      return _POSIX_Mutex_Translate_core_mutex_return_code(           
  10d3cd:	83 c4 14             	add    $0x14,%esp                     
        (CORE_mutex_Status) _Thread_Executing->Wait.return_code       
  10d3d0:	a1 38 d3 12 00       	mov    0x12d338,%eax                  
        the_mutex->Object.id,                                         
        blocking,                                                     
        timeout,                                                      
        level                                                         
      );                                                              
      return _POSIX_Mutex_Translate_core_mutex_return_code(           
  10d3d5:	ff 70 34             	pushl  0x34(%eax)                     
  10d3d8:	e8 1b 01 00 00       	call   10d4f8 <_POSIX_Mutex_Translate_core_mutex_return_code>
  10d3dd:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10d3e0:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d3e3:	c9                   	leave                                 
  10d3e4:	c3                   	ret                                   
  10d3e5:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10d3e8:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10d3ed:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d3f0:	c9                   	leave                                 
  10d3f1:	c3                   	ret                                   
                                                                      

001149d8 <_POSIX_Semaphore_Create_support>: const char *name, int pshared, unsigned int value, POSIX_Semaphore_Control **the_sem ) {
  1149d8:	55                   	push   %ebp                           
  1149d9:	89 e5                	mov    %esp,%ebp                      
  1149db:	56                   	push   %esi                           
  1149dc:	53                   	push   %ebx                           
  1149dd:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  POSIX_Semaphore_Control   *the_semaphore;                           
  CORE_semaphore_Attributes *the_sem_attr;                            
  char                      *name_p = (char *)name;                   
                                                                      
  /* Sharing semaphores among processes is not currently supported */ 
  if (pshared != 0)                                                   
  1149e0:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  1149e3:	85 d2                	test   %edx,%edx                      
  1149e5:	0f 85 b9 00 00 00    	jne    114aa4 <_POSIX_Semaphore_Create_support+0xcc>
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
                                                                      
  if ( name ) {                                                       
  1149eb:	85 db                	test   %ebx,%ebx                      
  1149ed:	74 1c                	je     114a0b <_POSIX_Semaphore_Create_support+0x33>
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
  1149ef:	83 ec 08             	sub    $0x8,%esp                      
  1149f2:	68 ff 00 00 00       	push   $0xff                          
  1149f7:	53                   	push   %ebx                           
  1149f8:	e8 4b 3d 00 00       	call   118748 <strnlen>               
  1149fd:	83 c4 10             	add    $0x10,%esp                     
  114a00:	3d fe 00 00 00       	cmp    $0xfe,%eax                     
  114a05:	0f 87 ad 00 00 00    	ja     114ab8 <_POSIX_Semaphore_Create_support+0xe0>
  114a0b:	a1 d0 db 12 00       	mov    0x12dbd0,%eax                  
  114a10:	40                   	inc    %eax                           
  114a11:	a3 d0 db 12 00       	mov    %eax,0x12dbd0                  
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void )
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Allocate( &_POSIX_Semaphore_Information );               
  114a16:	83 ec 0c             	sub    $0xc,%esp                      
  114a19:	68 e0 de 12 00       	push   $0x12dee0                      
  114a1e:	e8 4d b9 ff ff       	call   110370 <_Objects_Allocate>     
  114a23:	89 c6                	mov    %eax,%esi                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
  114a25:	83 c4 10             	add    $0x10,%esp                     
  114a28:	85 c0                	test   %eax,%eax                      
  114a2a:	0f 84 9a 00 00 00    	je     114aca <_POSIX_Semaphore_Create_support+0xf2>
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  }                                                                   
                                                                      
  the_semaphore->process_shared  = pshared;                           
  114a30:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)                
                                                                      
  if ( name ) {                                                       
  114a37:	85 db                	test   %ebx,%ebx                      
  114a39:	74 55                	je     114a90 <_POSIX_Semaphore_Create_support+0xb8>
    the_semaphore->named = true;                                      
  114a3b:	c6 40 14 01          	movb   $0x1,0x14(%eax)                
    the_semaphore->open_count = 1;                                    
  114a3f:	c7 40 18 01 00 00 00 	movl   $0x1,0x18(%eax)                
    the_semaphore->linked = true;                                     
  114a46:	c6 40 15 01          	movb   $0x1,0x15(%eax)                
   *  blocking tasks on this semaphore should be.  It could somehow   
   *  be derived from the current scheduling policy.  One             
   *  thing is certain, no matter what we decide, it won't be         
   *  the same as  all other POSIX implementations. :)                
   */                                                                 
  the_sem_attr->discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO;         
  114a4a:	c7 46 60 00 00 00 00 	movl   $0x0,0x60(%esi)                
                                                                      
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
  114a51:	c7 46 5c ff ff ff ff 	movl   $0xffffffff,0x5c(%esi)         
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
  114a58:	50                   	push   %eax                           
  114a59:	ff 75 10             	pushl  0x10(%ebp)                     
    the_semaphore->named = false;                                     
    the_semaphore->open_count = 0;                                    
    the_semaphore->linked = false;                                    
  }                                                                   
                                                                      
  the_sem_attr = &the_semaphore->Semaphore.Attributes;                
  114a5c:	8d 46 5c             	lea    0x5c(%esi),%eax                
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
  114a5f:	50                   	push   %eax                           
  114a60:	8d 46 1c             	lea    0x1c(%esi),%eax                
  114a63:	50                   	push   %eax                           
  114a64:	e8 8f b3 ff ff       	call   10fdf8 <_CORE_semaphore_Initialize>
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  114a69:	0f b7 56 08          	movzwl 0x8(%esi),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  114a6d:	a1 fc de 12 00       	mov    0x12defc,%eax                  
  114a72:	89 34 90             	mov    %esi,(%eax,%edx,4)             
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
  114a75:	89 5e 0c             	mov    %ebx,0xc(%esi)                 
    &_POSIX_Semaphore_Information,                                    
    &the_semaphore->Object,                                           
    name_p                                                            
  );                                                                  
                                                                      
  *the_sem = the_semaphore;                                           
  114a78:	8b 45 14             	mov    0x14(%ebp),%eax                
  114a7b:	89 30                	mov    %esi,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  114a7d:	e8 aa c9 ff ff       	call   11142c <_Thread_Enable_dispatch>
  return 0;                                                           
  114a82:	83 c4 10             	add    $0x10,%esp                     
  114a85:	31 c0                	xor    %eax,%eax                      
}                                                                     
  114a87:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  114a8a:	5b                   	pop    %ebx                           
  114a8b:	5e                   	pop    %esi                           
  114a8c:	c9                   	leave                                 
  114a8d:	c3                   	ret                                   
  114a8e:	66 90                	xchg   %ax,%ax                        
  if ( name ) {                                                       
    the_semaphore->named = true;                                      
    the_semaphore->open_count = 1;                                    
    the_semaphore->linked = true;                                     
  } else {                                                            
    the_semaphore->named = false;                                     
  114a90:	c6 40 14 00          	movb   $0x0,0x14(%eax)                
    the_semaphore->open_count = 0;                                    
  114a94:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
    the_semaphore->linked = false;                                    
  114a9b:	c6 40 15 00          	movb   $0x0,0x15(%eax)                
  114a9f:	eb a9                	jmp    114a4a <_POSIX_Semaphore_Create_support+0x72>
  114aa1:	8d 76 00             	lea    0x0(%esi),%esi                 
  CORE_semaphore_Attributes *the_sem_attr;                            
  char                      *name_p = (char *)name;                   
                                                                      
  /* Sharing semaphores among processes is not currently supported */ 
  if (pshared != 0)                                                   
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
  114aa4:	e8 73 2b 00 00       	call   11761c <__errno>               
  114aa9:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  114aaf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  114ab4:	eb d1                	jmp    114a87 <_POSIX_Semaphore_Create_support+0xaf>
  114ab6:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( name ) {                                                       
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
      rtems_set_errno_and_return_minus_one( ENAMETOOLONG );           
  114ab8:	e8 5f 2b 00 00       	call   11761c <__errno>               
  114abd:	c7 00 5b 00 00 00    	movl   $0x5b,(%eax)                   
  114ac3:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  114ac8:	eb bd                	jmp    114a87 <_POSIX_Semaphore_Create_support+0xaf>
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
  114aca:	e8 5d c9 ff ff       	call   11142c <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  114acf:	e8 48 2b 00 00       	call   11761c <__errno>               
  114ad4:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)                   
  114ada:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  114adf:	eb a6                	jmp    114a87 <_POSIX_Semaphore_Create_support+0xaf>
                                                                      

00114b34 <_POSIX_Semaphore_Name_to_id>: int _POSIX_Semaphore_Name_to_id( const char *name, sem_t *id ) {
  114b34:	55                   	push   %ebp                           
  114b35:	89 e5                	mov    %esp,%ebp                      
  114b37:	83 ec 18             	sub    $0x18,%esp                     
  114b3a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
  114b3d:	85 c0                	test   %eax,%eax                      
  114b3f:	74 05                	je     114b46 <_POSIX_Semaphore_Name_to_id+0x12>
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
  114b41:	80 38 00             	cmpb   $0x0,(%eax)                    
  114b44:	75 0a                	jne    114b50 <_POSIX_Semaphore_Name_to_id+0x1c>
    return EINVAL;                                                    
  114b46:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  114b4b:	c9                   	leave                                 
  114b4c:	c3                   	ret                                   
  114b4d:	8d 76 00             	lea    0x0(%esi),%esi                 
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  status = _Objects_Name_to_id_string(                                
  114b50:	52                   	push   %edx                           
  114b51:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  114b54:	52                   	push   %edx                           
  114b55:	50                   	push   %eax                           
  114b56:	68 e0 de 12 00       	push   $0x12dee0                      
  114b5b:	e8 90 0c 00 00       	call   1157f0 <_Objects_Name_to_id_string>
    &_POSIX_Semaphore_Information,                                    
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
  114b60:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  114b63:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  114b66:	89 0a                	mov    %ecx,(%edx)                    
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
  114b68:	83 c4 10             	add    $0x10,%esp                     
    return 0;                                                         
  114b6b:	83 f8 01             	cmp    $0x1,%eax                      
  114b6e:	19 c0                	sbb    %eax,%eax                      
  114b70:	f7 d0                	not    %eax                           
  114b72:	83 e0 02             	and    $0x2,%eax                      
                                                                      
  return ENOENT;                                                      
}                                                                     
  114b75:	c9                   	leave                                 
  114b76:	c3                   	ret                                   
                                                                      

00114ba0 <_POSIX_Semaphore_Wait_support>: int _POSIX_Semaphore_Wait_support( sem_t *sem, bool blocking, Watchdog_Interval timeout ) {
  114ba0:	55                   	push   %ebp                           
  114ba1:	89 e5                	mov    %esp,%ebp                      
  114ba3:	53                   	push   %ebx                           
  114ba4:	83 ec 18             	sub    $0x18,%esp                     
  114ba7:	8a 5d 0c             	mov    0xc(%ebp),%bl                  
  POSIX_Semaphore_Control *the_semaphore;                             
  Objects_Locations        location;                                  
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  114baa:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  sem_t             *id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Get( &_POSIX_Semaphore_Information, (Objects_Id)*id, location );
  114bad:	50                   	push   %eax                           
  114bae:	8b 45 08             	mov    0x8(%ebp),%eax                 
  114bb1:	ff 30                	pushl  (%eax)                         
  114bb3:	68 e0 de 12 00       	push   $0x12dee0                      
  114bb8:	e8 67 bc ff ff       	call   110824 <_Objects_Get>          
  switch ( location ) {                                               
  114bbd:	83 c4 10             	add    $0x10,%esp                     
  114bc0:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  114bc3:	85 d2                	test   %edx,%edx                      
  114bc5:	74 15                	je     114bdc <_POSIX_Semaphore_Wait_support+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  114bc7:	e8 50 2a 00 00       	call   11761c <__errno>               
  114bcc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  114bd2:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  114bd7:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  114bda:	c9                   	leave                                 
  114bdb:	c3                   	ret                                   
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Seize(                                          
  114bdc:	ff 75 10             	pushl  0x10(%ebp)                     
  114bdf:	0f b6 db             	movzbl %bl,%ebx                       
  114be2:	53                   	push   %ebx                           
  114be3:	ff 70 08             	pushl  0x8(%eax)                      
  114be6:	83 c0 1c             	add    $0x1c,%eax                     
  114be9:	50                   	push   %eax                           
  114bea:	e8 29 07 00 00       	call   115318 <_CORE_semaphore_Seize> 
        &the_semaphore->Semaphore,                                    
        the_semaphore->Object.id,                                     
        blocking,                                                     
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
  114bef:	e8 38 c8 ff ff       	call   11142c <_Thread_Enable_dispatch>
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
  114bf4:	83 c4 10             	add    $0x10,%esp                     
  114bf7:	a1 78 e1 12 00       	mov    0x12e178,%eax                  
  114bfc:	8b 40 34             	mov    0x34(%eax),%eax                
  114bff:	85 c0                	test   %eax,%eax                      
  114c01:	75 09                	jne    114c0c <_POSIX_Semaphore_Wait_support+0x6c>
        return 0;                                                     
  114c03:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  114c05:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  114c08:	c9                   	leave                                 
  114c09:	c3                   	ret                                   
  114c0a:	66 90                	xchg   %ax,%ax                        
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
        return 0;                                                     
                                                                      
      rtems_set_errno_and_return_minus_one(                           
  114c0c:	e8 0b 2a 00 00       	call   11761c <__errno>               
  114c11:	89 c3                	mov    %eax,%ebx                      
  114c13:	83 ec 0c             	sub    $0xc,%esp                      
  114c16:	a1 78 e1 12 00       	mov    0x12e178,%eax                  
  114c1b:	ff 70 34             	pushl  0x34(%eax)                     
  114c1e:	e8 69 25 00 00       	call   11718c <_POSIX_Semaphore_Translate_core_semaphore_return_code>
  114c23:	89 03                	mov    %eax,(%ebx)                    
  114c25:	83 c4 10             	add    $0x10,%esp                     
  114c28:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  114c2d:	eb a8                	jmp    114bd7 <_POSIX_Semaphore_Wait_support+0x37>
                                                                      

0011075c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>: #include <rtems/posix/pthread.h> void _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( Thread_Control *the_thread ) {
  11075c:	55                   	push   %ebp                           
  11075d:	89 e5                	mov    %esp,%ebp                      
  11075f:	83 ec 08             	sub    $0x8,%esp                      
  110762:	8b 55 08             	mov    0x8(%ebp),%edx                 
  POSIX_API_Control *thread_support;                                  
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
  110765:	8b 82 ec 00 00 00    	mov    0xec(%edx),%eax                
                                                                      
  if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
  11076b:	8b 88 d8 00 00 00    	mov    0xd8(%eax),%ecx                
  110771:	85 c9                	test   %ecx,%ecx                      
  110773:	75 09                	jne    11077e <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x22><== NEVER TAKEN
  110775:	83 b8 dc 00 00 00 01 	cmpl   $0x1,0xdc(%eax)                
  11077c:	74 06                	je     110784 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x28>
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  } else                                                              
    _Thread_Enable_dispatch();                                        
                                                                      
}                                                                     
  11077e:	c9                   	leave                                 
       thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS &&
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  } else                                                              
    _Thread_Enable_dispatch();                                        
  11077f:	e9 cc d6 ff ff       	jmp    10de50 <_Thread_Enable_dispatch>
  POSIX_API_Control *thread_support;                                  
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
                                                                      
  if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
       thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS &&
  110784:	8b 80 e0 00 00 00    	mov    0xe0(%eax),%eax                
  11078a:	85 c0                	test   %eax,%eax                      
  11078c:	74 f0                	je     11077e <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x22>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  11078e:	a1 50 91 12 00       	mov    0x129150,%eax                  
  110793:	48                   	dec    %eax                           
  110794:	a3 50 91 12 00       	mov    %eax,0x129150                  
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  110799:	83 ec 08             	sub    $0x8,%esp                      
  11079c:	6a ff                	push   $0xffffffff                    
  11079e:	52                   	push   %edx                           
  11079f:	e8 c0 08 00 00       	call   111064 <_POSIX_Thread_Exit>    
  1107a4:	83 c4 10             	add    $0x10,%esp                     
  } else                                                              
    _Thread_Enable_dispatch();                                        
                                                                      
}                                                                     
  1107a7:	c9                   	leave                                 
  1107a8:	c3                   	ret                                   
                                                                      

00111abc <_POSIX_Thread_Translate_sched_param>: int policy, struct sched_param *param, Thread_CPU_budget_algorithms *budget_algorithm, Thread_CPU_budget_algorithm_callout *budget_callout ) {
  111abc:	55                   	push   %ebp                           
  111abd:	89 e5                	mov    %esp,%ebp                      
  111abf:	57                   	push   %edi                           
  111ac0:	56                   	push   %esi                           
  111ac1:	53                   	push   %ebx                           
  111ac2:	83 ec 18             	sub    $0x18,%esp                     
  111ac5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  111ac8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  111acb:	8b 7d 10             	mov    0x10(%ebp),%edi                
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
  111ace:	ff 36                	pushl  (%esi)                         
  111ad0:	e8 cb ff ff ff       	call   111aa0 <_POSIX_Priority_Is_valid>
  111ad5:	83 c4 10             	add    $0x10,%esp                     
  111ad8:	84 c0                	test   %al,%al                        
  111ada:	74 2a                	je     111b06 <_POSIX_Thread_Translate_sched_param+0x4a><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
  111adc:	c7 07 00 00 00 00    	movl   $0x0,(%edi)                    
  *budget_callout = NULL;                                             
  111ae2:	8b 45 14             	mov    0x14(%ebp),%eax                
  111ae5:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
  111aeb:	85 db                	test   %ebx,%ebx                      
  111aed:	74 25                	je     111b14 <_POSIX_Thread_Translate_sched_param+0x58>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
  111aef:	83 fb 01             	cmp    $0x1,%ebx                      
  111af2:	0f 84 90 00 00 00    	je     111b88 <_POSIX_Thread_Translate_sched_param+0xcc>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
  111af8:	83 fb 02             	cmp    $0x2,%ebx                      
  111afb:	0f 84 8f 00 00 00    	je     111b90 <_POSIX_Thread_Translate_sched_param+0xd4>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
  111b01:	83 fb 04             	cmp    $0x4,%ebx                      
  111b04:	74 1e                	je     111b24 <_POSIX_Thread_Translate_sched_param+0x68>
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
      return EINVAL;                                                  
  111b06:	b8 16 00 00 00       	mov    $0x16,%eax                     
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  111b0b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111b0e:	5b                   	pop    %ebx                           
  111b0f:	5e                   	pop    %esi                           
  111b10:	5f                   	pop    %edi                           
  111b11:	c9                   	leave                                 
  111b12:	c3                   	ret                                   
  111b13:	90                   	nop                                   
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
  *budget_callout = NULL;                                             
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
  111b14:	c7 07 01 00 00 00    	movl   $0x1,(%edi)                    
    return 0;                                                         
  111b1a:	31 c0                	xor    %eax,%eax                      
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  111b1c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111b1f:	5b                   	pop    %ebx                           
  111b20:	5e                   	pop    %esi                           
  111b21:	5f                   	pop    %edi                           
  111b22:	c9                   	leave                                 
  111b23:	c3                   	ret                                   
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
    if ( (param->sched_ss_repl_period.tv_sec == 0) &&                 
  111b24:	8b 5e 08             	mov    0x8(%esi),%ebx                 
  111b27:	85 db                	test   %ebx,%ebx                      
  111b29:	75 07                	jne    111b32 <_POSIX_Thread_Translate_sched_param+0x76>
  111b2b:	8b 4e 0c             	mov    0xc(%esi),%ecx                 
  111b2e:	85 c9                	test   %ecx,%ecx                      
  111b30:	74 d4                	je     111b06 <_POSIX_Thread_Translate_sched_param+0x4a>
         (param->sched_ss_repl_period.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
  111b32:	8b 56 10             	mov    0x10(%esi),%edx                
  111b35:	85 d2                	test   %edx,%edx                      
  111b37:	75 07                	jne    111b40 <_POSIX_Thread_Translate_sched_param+0x84>
  111b39:	8b 46 14             	mov    0x14(%esi),%eax                
  111b3c:	85 c0                	test   %eax,%eax                      
  111b3e:	74 c6                	je     111b06 <_POSIX_Thread_Translate_sched_param+0x4a>
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
  111b40:	83 ec 0c             	sub    $0xc,%esp                      
  111b43:	8d 46 08             	lea    0x8(%esi),%eax                 
  111b46:	50                   	push   %eax                           
  111b47:	e8 0c da ff ff       	call   10f558 <_Timespec_To_ticks>    
  111b4c:	89 c3                	mov    %eax,%ebx                      
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
  111b4e:	8d 46 10             	lea    0x10(%esi),%eax                
  111b51:	89 04 24             	mov    %eax,(%esp)                    
  111b54:	e8 ff d9 ff ff       	call   10f558 <_Timespec_To_ticks>    
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
  111b59:	83 c4 10             	add    $0x10,%esp                     
  111b5c:	39 c3                	cmp    %eax,%ebx                      
  111b5e:	72 a6                	jb     111b06 <_POSIX_Thread_Translate_sched_param+0x4a>
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
  111b60:	83 ec 0c             	sub    $0xc,%esp                      
  111b63:	ff 76 04             	pushl  0x4(%esi)                      
  111b66:	e8 35 ff ff ff       	call   111aa0 <_POSIX_Priority_Is_valid>
  111b6b:	83 c4 10             	add    $0x10,%esp                     
  111b6e:	84 c0                	test   %al,%al                        
  111b70:	74 94                	je     111b06 <_POSIX_Thread_Translate_sched_param+0x4a>
      return EINVAL;                                                  
                                                                      
    *budget_algorithm  = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;         
  111b72:	c7 07 03 00 00 00    	movl   $0x3,(%edi)                    
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
  111b78:	8b 45 14             	mov    0x14(%ebp),%eax                
  111b7b:	c7 00 5c bd 10 00    	movl   $0x10bd5c,(%eax)               
    return 0;                                                         
  111b81:	31 c0                	xor    %eax,%eax                      
  111b83:	eb 86                	jmp    111b0b <_POSIX_Thread_Translate_sched_param+0x4f>
  111b85:	8d 76 00             	lea    0x0(%esi),%esi                 
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  111b88:	31 c0                	xor    %eax,%eax                      
  111b8a:	e9 7c ff ff ff       	jmp    111b0b <_POSIX_Thread_Translate_sched_param+0x4f>
  111b8f:	90                   	nop                                   
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
  111b90:	c7 07 02 00 00 00    	movl   $0x2,(%edi)                    
    return 0;                                                         
  111b96:	31 c0                	xor    %eax,%eax                      
  111b98:	e9 6e ff ff ff       	jmp    111b0b <_POSIX_Thread_Translate_sched_param+0x4f>
                                                                      

00110978 <_POSIX_Threads_Create_extension>: bool _POSIX_Threads_Create_extension( Thread_Control *executing __attribute__((unused)), Thread_Control *created ) {
  110978:	55                   	push   %ebp                           
  110979:	89 e5                	mov    %esp,%ebp                      
  11097b:	57                   	push   %edi                           
  11097c:	56                   	push   %esi                           
  11097d:	53                   	push   %ebx                           
  11097e:	83 ec 28             	sub    $0x28,%esp                     
  110981:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  POSIX_API_Control *api;                                             
  POSIX_API_Control *executing_api;                                   
                                                                      
  api = _Workspace_Allocate( sizeof( POSIX_API_Control ) );           
  110984:	68 f0 00 00 00       	push   $0xf0                          
  110989:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  11098c:	e8 53 e0 ff ff       	call   10e9e4 <_Workspace_Allocate>   
  110991:	89 c3                	mov    %eax,%ebx                      
                                                                      
  if ( !api )                                                         
  110993:	83 c4 10             	add    $0x10,%esp                     
  110996:	85 c0                	test   %eax,%eax                      
  110998:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  11099b:	0f 84 2f 01 00 00    	je     110ad0 <_POSIX_Threads_Create_extension+0x158><== NEVER TAKEN
    return false;                                                     
                                                                      
  created->API_Extensions[ THREAD_API_POSIX ] = api;                  
  1109a1:	89 82 ec 00 00 00    	mov    %eax,0xec(%edx)                
                                                                      
  /* XXX check all fields are touched */                              
  api->Attributes  = _POSIX_Threads_Default_attributes;               
  1109a7:	b9 40 00 00 00       	mov    $0x40,%ecx                     
  1109ac:	31 c0                	xor    %eax,%eax                      
  1109ae:	89 df                	mov    %ebx,%edi                      
  1109b0:	f3 aa                	rep stos %al,%es:(%edi)               
  1109b2:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
  1109b8:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)                
  1109bf:	c7 43 14 01 00 00 00 	movl   $0x1,0x14(%ebx)                
  1109c6:	c7 43 18 02 00 00 00 	movl   $0x2,0x18(%ebx)                
  1109cd:	c7 43 38 01 00 00 00 	movl   $0x1,0x38(%ebx)                
  1109d4:	c7 43 3c 01 00 00 00 	movl   $0x1,0x3c(%ebx)                
  api->detachstate = _POSIX_Threads_Default_attributes.detachstate;   
  1109db:	c7 43 40 01 00 00 00 	movl   $0x1,0x40(%ebx)                
  api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy;   
  1109e2:	c7 83 84 00 00 00 01 	movl   $0x1,0x84(%ebx)                
  1109e9:	00 00 00                                                    
  api->schedparam  = _POSIX_Threads_Default_attributes.schedparam;    
  1109ec:	be 38 1c 12 00       	mov    $0x121c38,%esi                 
  1109f1:	8d bb 88 00 00 00    	lea    0x88(%ebx),%edi                
  1109f7:	b1 07                	mov    $0x7,%cl                       
  1109f9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
  1109fb:	0f b6 05 34 3b 12 00 	movzbl 0x123b34,%eax                  
  110a02:	2b 42 14             	sub    0x14(%edx),%eax                
  110a05:	89 83 88 00 00 00    	mov    %eax,0x88(%ebx)                
     _POSIX_Priority_From_core( created->current_priority );          
                                                                      
  /*                                                                  
   *  POSIX 1003.1 1996, 18.2.2.2                                     
   */                                                                 
  api->cancelation_requested = 0;                                     
  110a0b:	c7 83 e0 00 00 00 00 	movl   $0x0,0xe0(%ebx)                
  110a12:	00 00 00                                                    
  api->cancelability_state = PTHREAD_CANCEL_ENABLE;                   
  110a15:	c7 83 d8 00 00 00 00 	movl   $0x0,0xd8(%ebx)                
  110a1c:	00 00 00                                                    
  api->cancelability_type = PTHREAD_CANCEL_DEFERRED;                  
  110a1f:	c7 83 dc 00 00 00 00 	movl   $0x0,0xdc(%ebx)                
  110a26:	00 00 00                                                    
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  110a29:	8d 83 e8 00 00 00    	lea    0xe8(%ebx),%eax                
  110a2f:	89 83 e4 00 00 00    	mov    %eax,0xe4(%ebx)                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  110a35:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)                
  110a3c:	00 00 00                                                    
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  110a3f:	8d 83 e4 00 00 00    	lea    0xe4(%ebx),%eax                
  110a45:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)                
   *                                                                  
   *  The check for class == 1 is debug.  Should never really happen. 
   */                                                                 
                                                                      
  /* XXX use signal constants */                                      
  api->signals_pending = 0;                                           
  110a4b:	c7 83 d4 00 00 00 00 	movl   $0x0,0xd4(%ebx)                
  110a52:	00 00 00                                                    
  110a55:	0f b6 42 0b          	movzbl 0xb(%edx),%eax                 
  110a59:	83 e0 07             	and    $0x7,%eax                      
  if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API    
  110a5c:	83 f8 03             	cmp    $0x3,%eax                      
  110a5f:	74 53                	je     110ab4 <_POSIX_Threads_Create_extension+0x13c>
       #endif                                                         
  ) {                                                                 
    executing_api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
    api->signals_blocked = executing_api->signals_blocked;            
  } else {                                                            
    api->signals_blocked = 0xffffffff;                                
  110a61:	c7 83 d0 00 00 00 ff 	movl   $0xffffffff,0xd0(%ebx)         
  110a68:	ff ff ff                                                    
  }                                                                   
                                                                      
  _Thread_queue_Initialize(                                           
  110a6b:	6a 00                	push   $0x0                           
  110a6d:	68 00 10 00 00       	push   $0x1000                        
  110a72:	6a 00                	push   $0x0                           
  110a74:	8d 43 44             	lea    0x44(%ebx),%eax                
  110a77:	50                   	push   %eax                           
  110a78:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  110a7b:	e8 98 d6 ff ff       	call   10e118 <_Thread_queue_Initialize>
    THREAD_QUEUE_DISCIPLINE_FIFO,                                     
    STATES_WAITING_FOR_JOIN_AT_EXIT,                                  
    0                                                                 
  );                                                                  
                                                                      
  _Watchdog_Initialize(                                               
  110a80:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  110a83:	8b 42 08             	mov    0x8(%edx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  110a86:	c7 83 b0 00 00 00 00 	movl   $0x0,0xb0(%ebx)                
  110a8d:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  110a90:	c7 83 c4 00 00 00 dc 	movl   $0x110adc,0xc4(%ebx)           
  110a97:	0a 11 00                                                    
  the_watchdog->id        = id;                                       
  110a9a:	89 83 c8 00 00 00    	mov    %eax,0xc8(%ebx)                
  the_watchdog->user_data = user_data;                                
  110aa0:	89 93 cc 00 00 00    	mov    %edx,0xcc(%ebx)                
    _POSIX_Threads_Sporadic_budget_TSR,                               
    created->Object.id,                                               
    created                                                           
  );                                                                  
                                                                      
  return true;                                                        
  110aa6:	83 c4 10             	add    $0x10,%esp                     
  110aa9:	b0 01                	mov    $0x1,%al                       
}                                                                     
  110aab:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110aae:	5b                   	pop    %ebx                           
  110aaf:	5e                   	pop    %esi                           
  110ab0:	5f                   	pop    %edi                           
  110ab1:	c9                   	leave                                 
  110ab2:	c3                   	ret                                   
  110ab3:	90                   	nop                                   
  if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API    
       #if defined(RTEMS_DEBUG)                                       
         && _Objects_Get_class( created->Object.id ) == 1             
       #endif                                                         
  ) {                                                                 
    executing_api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  110ab4:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
    api->signals_blocked = executing_api->signals_blocked;            
  110ab9:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  110abf:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  110ac5:	89 83 d0 00 00 00    	mov    %eax,0xd0(%ebx)                
  110acb:	eb 9e                	jmp    110a6b <_POSIX_Threads_Create_extension+0xf3>
  110acd:	8d 76 00             	lea    0x0(%esi),%esi                 
  POSIX_API_Control *executing_api;                                   
                                                                      
  api = _Workspace_Allocate( sizeof( POSIX_API_Control ) );           
                                                                      
  if ( !api )                                                         
    return false;                                                     
  110ad0:	31 c0                	xor    %eax,%eax                      
    created->Object.id,                                               
    created                                                           
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
  110ad2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110ad5:	5b                   	pop    %ebx                           
  110ad6:	5e                   	pop    %esi                           
  110ad7:	5f                   	pop    %edi                           
  110ad8:	c9                   	leave                                 
  110ad9:	c3                   	ret                                   
                                                                      

001108f0 <_POSIX_Threads_Delete_extension>: */ void _POSIX_Threads_Delete_extension( Thread_Control *executing __attribute__((unused)), Thread_Control *deleted ) {
  1108f0:	55                   	push   %ebp                           
  1108f1:	89 e5                	mov    %esp,%ebp                      
  1108f3:	57                   	push   %edi                           
  1108f4:	56                   	push   %esi                           
  1108f5:	53                   	push   %ebx                           
  1108f6:	83 ec 28             	sub    $0x28,%esp                     
  1108f9:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Thread_Control     *the_thread;                                     
  POSIX_API_Control  *api;                                            
  void              **value_ptr;                                      
                                                                      
  api = deleted->API_Extensions[ THREAD_API_POSIX ];                  
  1108fc:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax                
  110902:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
  /*                                                                  
   *  Run the POSIX cancellation handlers                             
   */                                                                 
  _POSIX_Threads_cancel_run( deleted );                               
  110905:	57                   	push   %edi                           
  110906:	e8 11 22 00 00       	call   112b1c <_POSIX_Threads_cancel_run>
                                                                      
  /*                                                                  
   *  Run all the key destructors                                     
   */                                                                 
  _POSIX_Keys_Run_destructors( deleted );                             
  11090b:	89 3c 24             	mov    %edi,(%esp)                    
  11090e:	e8 71 22 00 00       	call   112b84 <_POSIX_Keys_Run_destructors>
                                                                      
  /*                                                                  
   *  Wakeup all the tasks which joined with this one                 
   */                                                                 
  value_ptr = (void **) deleted->Wait.return_argument;                
  110913:	8b 77 28             	mov    0x28(%edi),%esi                
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) )   
  110916:	83 c4 10             	add    $0x10,%esp                     
  110919:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  11091c:	8d 58 44             	lea    0x44(%eax),%ebx                
  11091f:	eb 08                	jmp    110929 <_POSIX_Threads_Delete_extension+0x39>
  110921:	8d 76 00             	lea    0x0(%esi),%esi                 
      *(void **)the_thread->Wait.return_argument = value_ptr;         
  110924:	8b 40 28             	mov    0x28(%eax),%eax                
  110927:	89 30                	mov    %esi,(%eax)                    
  /*                                                                  
   *  Wakeup all the tasks which joined with this one                 
   */                                                                 
  value_ptr = (void **) deleted->Wait.return_argument;                
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) )   
  110929:	83 ec 0c             	sub    $0xc,%esp                      
  11092c:	53                   	push   %ebx                           
  11092d:	e8 56 d4 ff ff       	call   10dd88 <_Thread_queue_Dequeue> 
  110932:	83 c4 10             	add    $0x10,%esp                     
  110935:	85 c0                	test   %eax,%eax                      
  110937:	75 eb                	jne    110924 <_POSIX_Threads_Delete_extension+0x34>
      *(void **)the_thread->Wait.return_argument = value_ptr;         
                                                                      
  if ( api->schedpolicy == SCHED_SPORADIC )                           
  110939:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  11093c:	83 b8 84 00 00 00 04 	cmpl   $0x4,0x84(%eax)                
  110943:	74 1f                	je     110964 <_POSIX_Threads_Delete_extension+0x74>
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
  110945:	c7 87 ec 00 00 00 00 	movl   $0x0,0xec(%edi)                
  11094c:	00 00 00                                                    
                                                                      
  _Workspace_Free( api );                                             
  11094f:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  110952:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  110955:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110958:	5b                   	pop    %ebx                           
  110959:	5e                   	pop    %esi                           
  11095a:	5f                   	pop    %edi                           
  11095b:	c9                   	leave                                 
  if ( api->schedpolicy == SCHED_SPORADIC )                           
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
                                                                      
  _Workspace_Free( api );                                             
  11095c:	e9 9f e0 ff ff       	jmp    10ea00 <_Workspace_Free>       
  110961:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) )   
      *(void **)the_thread->Wait.return_argument = value_ptr;         
                                                                      
  if ( api->schedpolicy == SCHED_SPORADIC )                           
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
  110964:	83 ec 0c             	sub    $0xc,%esp                      
  110967:	05 a8 00 00 00       	add    $0xa8,%eax                     
  11096c:	50                   	push   %eax                           
  11096d:	e8 4a df ff ff       	call   10e8bc <_Watchdog_Remove>      
  110972:	83 c4 10             	add    $0x10,%esp                     
  110975:	eb ce                	jmp    110945 <_POSIX_Threads_Delete_extension+0x55>
                                                                      

001108b4 <_POSIX_Threads_Initialize_user_threads>: * * This routine creates and starts all configured user * initialzation threads. */ void _POSIX_Threads_Initialize_user_threads( void ) {
  1108b4:	55                   	push   %ebp                           
  1108b5:	89 e5                	mov    %esp,%ebp                      
  1108b7:	83 ec 08             	sub    $0x8,%esp                      
  if ( _POSIX_Threads_Initialize_user_threads_p )                     
  1108ba:	a1 f8 60 12 00       	mov    0x1260f8,%eax                  
  1108bf:	85 c0                	test   %eax,%eax                      
  1108c1:	74 05                	je     1108c8 <_POSIX_Threads_Initialize_user_threads+0x14>
    (*_POSIX_Threads_Initialize_user_threads_p)();                    
}                                                                     
  1108c3:	c9                   	leave                                 
 *  initialzation threads.                                            
 */                                                                   
void _POSIX_Threads_Initialize_user_threads( void )                   
{                                                                     
  if ( _POSIX_Threads_Initialize_user_threads_p )                     
    (*_POSIX_Threads_Initialize_user_threads_p)();                    
  1108c4:	ff e0                	jmp    *%eax                          
  1108c6:	66 90                	xchg   %ax,%ax                        
}                                                                     
  1108c8:	c9                   	leave                                 
  1108c9:	c3                   	ret                                   
                                                                      

0010ba3c <_POSIX_Threads_Initialize_user_threads_body>: * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads_body(void) {
  10ba3c:	55                   	push   %ebp                           
  10ba3d:	89 e5                	mov    %esp,%ebp                      
  10ba3f:	57                   	push   %edi                           
  10ba40:	56                   	push   %esi                           
  10ba41:	53                   	push   %ebx                           
  10ba42:	83 ec 6c             	sub    $0x6c,%esp                     
  uint32_t                            maximum;                        
  posix_initialization_threads_table *user_threads;                   
  pthread_t                           thread_id;                      
  pthread_attr_t                      attr;                           
                                                                      
  user_threads = Configuration_POSIX_API.User_initialization_threads_table;
  10ba45:	8b 3d 34 4e 12 00    	mov    0x124e34,%edi                  
  maximum      = Configuration_POSIX_API.number_of_initialization_threads;
  10ba4b:	a1 30 4e 12 00       	mov    0x124e30,%eax                  
  10ba50:	89 45 94             	mov    %eax,-0x6c(%ebp)               
                                                                      
  if ( !user_threads || maximum == 0 )                                
  10ba53:	85 ff                	test   %edi,%edi                      
  10ba55:	74 44                	je     10ba9b <_POSIX_Threads_Initialize_user_threads_body+0x5f><== NEVER TAKEN
  10ba57:	85 c0                	test   %eax,%eax                      
  10ba59:	74 40                	je     10ba9b <_POSIX_Threads_Initialize_user_threads_body+0x5f><== NEVER TAKEN
  10ba5b:	31 db                	xor    %ebx,%ebx                      
  10ba5d:	8d 75 a4             	lea    -0x5c(%ebp),%esi               
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    /*                                                                
     * There is no way for these calls to fail in this situation.     
     */                                                               
    (void) pthread_attr_init( &attr );                                
  10ba60:	83 ec 0c             	sub    $0xc,%esp                      
  10ba63:	56                   	push   %esi                           
  10ba64:	e8 37 61 00 00       	call   111ba0 <pthread_attr_init>     
    (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
  10ba69:	5a                   	pop    %edx                           
  10ba6a:	59                   	pop    %ecx                           
  10ba6b:	6a 02                	push   $0x2                           
  10ba6d:	56                   	push   %esi                           
  10ba6e:	e8 59 61 00 00       	call   111bcc <pthread_attr_setinheritsched>
    (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size);
  10ba73:	59                   	pop    %ecx                           
  10ba74:	58                   	pop    %eax                           
  10ba75:	ff 74 df 04          	pushl  0x4(%edi,%ebx,8)               
  10ba79:	56                   	push   %esi                           
  10ba7a:	e8 81 61 00 00       	call   111c00 <pthread_attr_setstacksize>
                                                                      
    status = pthread_create(                                          
  10ba7f:	6a 00                	push   $0x0                           
  10ba81:	ff 34 df             	pushl  (%edi,%ebx,8)                  
  10ba84:	56                   	push   %esi                           
  10ba85:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10ba88:	50                   	push   %eax                           
  10ba89:	e8 92 fc ff ff       	call   10b720 <pthread_create>        
      &thread_id,                                                     
      &attr,                                                          
      user_threads[ index ].thread_entry,                             
      NULL                                                            
    );                                                                
    if ( status )                                                     
  10ba8e:	83 c4 20             	add    $0x20,%esp                     
  10ba91:	85 c0                	test   %eax,%eax                      
  10ba93:	75 0e                	jne    10baa3 <_POSIX_Threads_Initialize_user_threads_body+0x67>
   *                                                                  
   *  Setting the attributes explicitly is critical, since we don't want
   *  to inherit the idle tasks attributes.                           
   */                                                                 
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
  10ba95:	43                   	inc    %ebx                           
  10ba96:	39 5d 94             	cmp    %ebx,-0x6c(%ebp)               
  10ba99:	77 c5                	ja     10ba60 <_POSIX_Threads_Initialize_user_threads_body+0x24><== NEVER TAKEN
      NULL                                                            
    );                                                                
    if ( status )                                                     
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
  }                                                                   
}                                                                     
  10ba9b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba9e:	5b                   	pop    %ebx                           
  10ba9f:	5e                   	pop    %esi                           
  10baa0:	5f                   	pop    %edi                           
  10baa1:	c9                   	leave                                 
  10baa2:	c3                   	ret                                   
      &attr,                                                          
      user_threads[ index ].thread_entry,                             
      NULL                                                            
    );                                                                
    if ( status )                                                     
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
  10baa3:	52                   	push   %edx                           
  10baa4:	50                   	push   %eax                           
  10baa5:	6a 01                	push   $0x1                           
  10baa7:	6a 02                	push   $0x2                           
  10baa9:	e8 c2 1e 00 00       	call   10d970 <_Internal_error_Occurred>
                                                                      

00110adc <_POSIX_Threads_Sporadic_budget_TSR>: */ void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id __attribute__((unused)), void *argument ) {
  110adc:	55                   	push   %ebp                           
  110add:	89 e5                	mov    %esp,%ebp                      
  110adf:	56                   	push   %esi                           
  110ae0:	53                   	push   %ebx                           
  110ae1:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Thread_Control     *the_thread;                                     
  POSIX_API_Control  *api;                                            
                                                                      
  the_thread = argument;                                              
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  110ae4:	8b 9e ec 00 00 00    	mov    0xec(%esi),%ebx                
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget );
  110aea:	83 ec 0c             	sub    $0xc,%esp                      
  110aed:	8d 83 98 00 00 00    	lea    0x98(%ebx),%eax                
  110af3:	50                   	push   %eax                           
  110af4:	e8 93 0e 00 00       	call   11198c <_Timespec_To_ticks>    
                                                                      
  the_thread->cpu_time_budget = ticks;                                
  110af9:	89 46 78             	mov    %eax,0x78(%esi)                
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
  110afc:	0f b6 05 34 3b 12 00 	movzbl 0x123b34,%eax                  
  110b03:	2b 83 88 00 00 00    	sub    0x88(%ebx),%eax                
                                                                      
  new_priority = _POSIX_Priority_To_core( api->schedparam.sched_priority );
  the_thread->real_priority = new_priority;                           
  110b09:	89 46 18             	mov    %eax,0x18(%esi)                
   */                                                                 
  #if 0                                                               
    printk( "TSR %d %d %d\n", the_thread->resource_count,             
        the_thread->current_priority, new_priority );                 
  #endif                                                              
  if ( the_thread->resource_count == 0 ) {                            
  110b0c:	83 c4 10             	add    $0x10,%esp                     
  110b0f:	8b 4e 1c             	mov    0x1c(%esi),%ecx                
  110b12:	85 c9                	test   %ecx,%ecx                      
  110b14:	75 05                	jne    110b1b <_POSIX_Threads_Sporadic_budget_TSR+0x3f><== NEVER TAKEN
    /*                                                                
     *  If this would make them less important, then do not change it.
     */                                                               
    if ( the_thread->current_priority > new_priority ) {              
  110b16:	39 46 14             	cmp    %eax,0x14(%esi)                
  110b19:	77 35                	ja     110b50 <_POSIX_Threads_Sporadic_budget_TSR+0x74>
      #endif                                                          
    }                                                                 
  }                                                                   
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period );
  110b1b:	83 ec 0c             	sub    $0xc,%esp                      
  110b1e:	8d 83 90 00 00 00    	lea    0x90(%ebx),%eax                
  110b24:	50                   	push   %eax                           
  110b25:	e8 62 0e 00 00       	call   11198c <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  110b2a:	89 83 b4 00 00 00    	mov    %eax,0xb4(%ebx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  110b30:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks );              
  110b33:	81 c3 a8 00 00 00    	add    $0xa8,%ebx                     
  110b39:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  110b3c:	c7 45 08 20 7f 12 00 	movl   $0x127f20,0x8(%ebp)            
}                                                                     
  110b43:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110b46:	5b                   	pop    %ebx                           
  110b47:	5e                   	pop    %esi                           
  110b48:	c9                   	leave                                 
  110b49:	e9 2e dc ff ff       	jmp    10e77c <_Watchdog_Insert>      
  110b4e:	66 90                	xchg   %ax,%ax                        
  if ( the_thread->resource_count == 0 ) {                            
    /*                                                                
     *  If this would make them less important, then do not change it.
     */                                                               
    if ( the_thread->current_priority > new_priority ) {              
      _Thread_Change_priority( the_thread, new_priority, true );      
  110b50:	52                   	push   %edx                           
  110b51:	6a 01                	push   $0x1                           
  110b53:	50                   	push   %eax                           
  110b54:	56                   	push   %esi                           
  110b55:	e8 76 ca ff ff       	call   10d5d0 <_Thread_Change_priority>
  110b5a:	83 c4 10             	add    $0x10,%esp                     
  110b5d:	eb bc                	jmp    110b1b <_POSIX_Threads_Sporadic_budget_TSR+0x3f>
                                                                      

00110b60 <_POSIX_Threads_Sporadic_budget_callout>: * _POSIX_Threads_Sporadic_budget_callout */ void _POSIX_Threads_Sporadic_budget_callout( Thread_Control *the_thread ) {
  110b60:	55                   	push   %ebp                           
  110b61:	89 e5                	mov    %esp,%ebp                      
  110b63:	83 ec 08             	sub    $0x8,%esp                      
  110b66:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_API_Control *api;                                             
  uint32_t           new_priority;                                    
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  110b69:	8b 88 ec 00 00 00    	mov    0xec(%eax),%ecx                
                                                                      
  /*                                                                  
   *  This will prevent the thread from consuming its entire "budget" 
   *  while at low priority.                                          
   */                                                                 
  the_thread->cpu_time_budget = 0xFFFFFFFF; /* XXX should be based on MAX_U32 */
  110b6f:	c7 40 78 ff ff ff ff 	movl   $0xffffffff,0x78(%eax)         
  110b76:	0f b6 15 34 3b 12 00 	movzbl 0x123b34,%edx                  
  110b7d:	2b 91 8c 00 00 00    	sub    0x8c(%ecx),%edx                
                                                                      
  new_priority = _POSIX_Priority_To_core(api->schedparam.sched_ss_low_priority);
  the_thread->real_priority = new_priority;                           
  110b83:	89 50 18             	mov    %edx,0x18(%eax)                
   */                                                                 
  #if 0                                                               
    printk( "callout %d %d %d\n", the_thread->resource_count,         
	the_thread->current_priority, new_priority );                        
  #endif                                                              
  if ( the_thread->resource_count == 0 ) {                            
  110b86:	8b 48 1c             	mov    0x1c(%eax),%ecx                
  110b89:	85 c9                	test   %ecx,%ecx                      
  110b8b:	75 05                	jne    110b92 <_POSIX_Threads_Sporadic_budget_callout+0x32><== NEVER TAKEN
    /*                                                                
     *  Make sure we are actually lowering it. If they have lowered it
     *  to logically lower than sched_ss_low_priority, then we do not want to
     *  change it.                                                    
     */                                                               
    if ( the_thread->current_priority < new_priority ) {              
  110b8d:	39 50 14             	cmp    %edx,0x14(%eax)                
  110b90:	72 02                	jb     110b94 <_POSIX_Threads_Sporadic_budget_callout+0x34><== ALWAYS TAKEN
      #if 0                                                           
        printk( "lower priority\n" );                                 
      #endif                                                          
    }                                                                 
  }                                                                   
}                                                                     
  110b92:	c9                   	leave                                 <== NOT EXECUTED
  110b93:	c3                   	ret                                   <== NOT EXECUTED
     *  Make sure we are actually lowering it. If they have lowered it
     *  to logically lower than sched_ss_low_priority, then we do not want to
     *  change it.                                                    
     */                                                               
    if ( the_thread->current_priority < new_priority ) {              
      _Thread_Change_priority( the_thread, new_priority, true );      
  110b94:	51                   	push   %ecx                           
  110b95:	6a 01                	push   $0x1                           
  110b97:	52                   	push   %edx                           
  110b98:	50                   	push   %eax                           
  110b99:	e8 32 ca ff ff       	call   10d5d0 <_Thread_Change_priority>
  110b9e:	83 c4 10             	add    $0x10,%esp                     
      #if 0                                                           
        printk( "lower priority\n" );                                 
      #endif                                                          
    }                                                                 
  }                                                                   
}                                                                     
  110ba1:	c9                   	leave                                 
  110ba2:	c3                   	ret                                   
                                                                      

00112b1c <_POSIX_Threads_cancel_run>: #include <rtems/posix/threadsup.h> void _POSIX_Threads_cancel_run( Thread_Control *the_thread ) {
  112b1c:	55                   	push   %ebp                           
  112b1d:	89 e5                	mov    %esp,%ebp                      
  112b1f:	57                   	push   %edi                           
  112b20:	56                   	push   %esi                           
  112b21:	53                   	push   %ebx                           
  112b22:	83 ec 0c             	sub    $0xc,%esp                      
  POSIX_Cancel_Handler_control      *handler;                         
  Chain_Control                     *handler_stack;                   
  POSIX_API_Control                 *thread_support;                  
  ISR_Level                          level;                           
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
  112b25:	8b 45 08             	mov    0x8(%ebp),%eax                 
  112b28:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
  112b2e:	c7 86 d8 00 00 00 01 	movl   $0x1,0xd8(%esi)                
  112b35:	00 00 00                                                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  112b38:	8d be e8 00 00 00    	lea    0xe8(%esi),%edi                
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
  112b3e:	39 be e4 00 00 00    	cmp    %edi,0xe4(%esi)                
  112b44:	74 33                	je     112b79 <_POSIX_Threads_cancel_run+0x5d>
  112b46:	66 90                	xchg   %ax,%ax                        
    _ISR_Disable( level );                                            
  112b48:	9c                   	pushf                                 
  112b49:	fa                   	cli                                   
  112b4a:	59                   	pop    %ecx                           
      handler = (POSIX_Cancel_Handler_control *)                      
  112b4b:	8b 9e ec 00 00 00    	mov    0xec(%esi),%ebx                
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  112b51:	8b 13                	mov    (%ebx),%edx                    
  previous       = the_node->previous;                                
  112b53:	8b 43 04             	mov    0x4(%ebx),%eax                 
  next->previous = previous;                                          
  112b56:	89 42 04             	mov    %eax,0x4(%edx)                 
  previous->next = next;                                              
  112b59:	89 10                	mov    %edx,(%eax)                    
           _Chain_Tail( handler_stack )->previous;                    
      _Chain_Extract_unprotected( &handler->Node );                   
    _ISR_Enable( level );                                             
  112b5b:	51                   	push   %ecx                           
  112b5c:	9d                   	popf                                  
                                                                      
    (*handler->routine)( handler->arg );                              
  112b5d:	83 ec 0c             	sub    $0xc,%esp                      
  112b60:	ff 73 0c             	pushl  0xc(%ebx)                      
  112b63:	ff 53 08             	call   *0x8(%ebx)                     
                                                                      
    _Workspace_Free( handler );                                       
  112b66:	89 1c 24             	mov    %ebx,(%esp)                    
  112b69:	e8 92 be ff ff       	call   10ea00 <_Workspace_Free>       
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
  112b6e:	83 c4 10             	add    $0x10,%esp                     
  112b71:	39 be e4 00 00 00    	cmp    %edi,0xe4(%esi)                
  112b77:	75 cf                	jne    112b48 <_POSIX_Threads_cancel_run+0x2c><== NEVER TAKEN
                                                                      
    (*handler->routine)( handler->arg );                              
                                                                      
    _Workspace_Free( handler );                                       
  }                                                                   
}                                                                     
  112b79:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112b7c:	5b                   	pop    %ebx                           
  112b7d:	5e                   	pop    %esi                           
  112b7e:	5f                   	pop    %edi                           
  112b7f:	c9                   	leave                                 
  112b80:	c3                   	ret                                   
                                                                      

001118b8 <_POSIX_Timer_Insert_helper>: Watchdog_Interval ticks, Objects_Id id, Watchdog_Service_routine_entry TSR, void *arg ) {
  1118b8:	55                   	push   %ebp                           
  1118b9:	89 e5                	mov    %esp,%ebp                      
  1118bb:	56                   	push   %esi                           
  1118bc:	53                   	push   %ebx                           
  1118bd:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  ISR_Level            level;                                         
                                                                      
  (void) _Watchdog_Remove( timer );                                   
  1118c0:	83 ec 0c             	sub    $0xc,%esp                      
  1118c3:	53                   	push   %ebx                           
  1118c4:	e8 03 db ff ff       	call   10f3cc <_Watchdog_Remove>      
  _ISR_Disable( level );                                              
  1118c9:	9c                   	pushf                                 
  1118ca:	fa                   	cli                                   
  1118cb:	5e                   	pop    %esi                           
                                                                      
    /*                                                                
     *  Check to see if the watchdog has just been inserted by a      
     *  higher priority interrupt.  If so, abandon this insert.       
     */                                                               
    if ( timer->state != WATCHDOG_INACTIVE ) {                        
  1118cc:	83 c4 10             	add    $0x10,%esp                     
  1118cf:	8b 43 08             	mov    0x8(%ebx),%eax                 
  1118d2:	85 c0                	test   %eax,%eax                      
  1118d4:	74 0e                	je     1118e4 <_POSIX_Timer_Insert_helper+0x2c>
      _ISR_Enable( level );                                           
  1118d6:	56                   	push   %esi                           
  1118d7:	9d                   	popf                                  
      return false;                                                   
  1118d8:	31 c0                	xor    %eax,%eax                      
     */                                                               
    _Watchdog_Initialize( timer, TSR, id, arg );                      
    _Watchdog_Insert_ticks( timer, ticks );                           
  _ISR_Enable( level );                                               
  return true;                                                        
}                                                                     
  1118da:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1118dd:	5b                   	pop    %ebx                           
  1118de:	5e                   	pop    %esi                           
  1118df:	c9                   	leave                                 
  1118e0:	c3                   	ret                                   
  1118e1:	8d 76 00             	lea    0x0(%esi),%esi                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  1118e4:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)                 
  the_watchdog->routine   = routine;                                  
  1118eb:	8b 45 14             	mov    0x14(%ebp),%eax                
  1118ee:	89 43 1c             	mov    %eax,0x1c(%ebx)                
  the_watchdog->id        = id;                                       
  1118f1:	8b 45 10             	mov    0x10(%ebp),%eax                
  1118f4:	89 43 20             	mov    %eax,0x20(%ebx)                
  the_watchdog->user_data = user_data;                                
  1118f7:	8b 45 18             	mov    0x18(%ebp),%eax                
  1118fa:	89 43 24             	mov    %eax,0x24(%ebx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  1118fd:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  111900:	89 43 0c             	mov    %eax,0xc(%ebx)                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  111903:	83 ec 08             	sub    $0x8,%esp                      
  111906:	53                   	push   %ebx                           
  111907:	68 60 a2 12 00       	push   $0x12a260                      
  11190c:	e8 7b d9 ff ff       	call   10f28c <_Watchdog_Insert>      
     *  OK.  Now we now the timer was not rescheduled by an interrupt 
     *  so we can atomically initialize it as in use.                 
     */                                                               
    _Watchdog_Initialize( timer, TSR, id, arg );                      
    _Watchdog_Insert_ticks( timer, ticks );                           
  _ISR_Enable( level );                                               
  111911:	56                   	push   %esi                           
  111912:	9d                   	popf                                  
  return true;                                                        
  111913:	83 c4 10             	add    $0x10,%esp                     
  111916:	b0 01                	mov    $0x1,%al                       
}                                                                     
  111918:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11191b:	5b                   	pop    %ebx                           
  11191c:	5e                   	pop    %esi                           
  11191d:	c9                   	leave                                 
  11191e:	c3                   	ret                                   
                                                                      

0010b84c <_POSIX_Timer_TSR>: * This is the operation that is run when a timer expires */ void _POSIX_Timer_TSR( Objects_Id timer __attribute__((unused)), void *data) {
  10b84c:	55                   	push   %ebp                           
  10b84d:	89 e5                	mov    %esp,%ebp                      
  10b84f:	53                   	push   %ebx                           
  10b850:	83 ec 04             	sub    $0x4,%esp                      
  10b853:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
  10b856:	ff 43 68             	incl   0x68(%ebx)                     
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
  10b859:	8b 53 54             	mov    0x54(%ebx),%edx                
  10b85c:	85 d2                	test   %edx,%edx                      
  10b85e:	75 28                	jne    10b888 <_POSIX_Timer_TSR+0x3c> 
  10b860:	8b 43 58             	mov    0x58(%ebx),%eax                
  10b863:	85 c0                	test   %eax,%eax                      
  10b865:	75 21                	jne    10b888 <_POSIX_Timer_TSR+0x3c> <== ALWAYS TAKEN
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
  } else {                                                            
   /* Indicates that the timer is stopped */                          
   ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;                     
  10b867:	c6 43 3c 04          	movb   $0x4,0x3c(%ebx)                <== NOT EXECUTED
  /*                                                                  
   * The sending of the signal to the process running the handling function
   * specified for that signal is simulated                           
   */                                                                 
                                                                      
  if ( pthread_kill ( ptimer->thread_id, ptimer->inf.sigev_signo ) ) {
  10b86b:	83 ec 08             	sub    $0x8,%esp                      
  10b86e:	ff 73 44             	pushl  0x44(%ebx)                     
  10b871:	ff 73 38             	pushl  0x38(%ebx)                     
  10b874:	e8 d3 5b 00 00       	call   11144c <pthread_kill>          
  }                                                                   
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
  10b879:	c7 43 68 00 00 00 00 	movl   $0x0,0x68(%ebx)                
  10b880:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10b883:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b886:	c9                   	leave                                 
  10b887:	c3                   	ret                                   
  ptimer->overrun = ptimer->overrun + 1;                              
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
       ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) {            
    activated = _POSIX_Timer_Insert_helper(                           
  10b888:	83 ec 0c             	sub    $0xc,%esp                      
  10b88b:	53                   	push   %ebx                           
  10b88c:	68 4c b8 10 00       	push   $0x10b84c                      
  10b891:	ff 73 08             	pushl  0x8(%ebx)                      
  10b894:	ff 73 64             	pushl  0x64(%ebx)                     
  10b897:	8d 43 10             	lea    0x10(%ebx),%eax                
  10b89a:	50                   	push   %eax                           
  10b89b:	e8 18 60 00 00       	call   1118b8 <_POSIX_Timer_Insert_helper>
      ptimer->ticks,                                                  
      ptimer->Object.id,                                              
      _POSIX_Timer_TSR,                                               
      ptimer                                                          
    );                                                                
    if ( !activated )                                                 
  10b8a0:	83 c4 20             	add    $0x20,%esp                     
  10b8a3:	84 c0                	test   %al,%al                        
  10b8a5:	74 dc                	je     10b883 <_POSIX_Timer_TSR+0x37> <== NEVER TAKEN
      return;                                                         
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
  10b8a7:	83 ec 0c             	sub    $0xc,%esp                      
  10b8aa:	8d 43 6c             	lea    0x6c(%ebx),%eax                
  10b8ad:	50                   	push   %eax                           
  10b8ae:	e8 91 16 00 00       	call   10cf44 <_TOD_Get>              
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
  10b8b3:	c6 43 3c 03          	movb   $0x3,0x3c(%ebx)                
  10b8b7:	83 c4 10             	add    $0x10,%esp                     
  10b8ba:	eb af                	jmp    10b86b <_POSIX_Timer_TSR+0x1f> 
                                                                      

00112c08 <_POSIX_signals_Check_signal>: bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) {
  112c08:	55                   	push   %ebp                           
  112c09:	89 e5                	mov    %esp,%ebp                      
  112c0b:	57                   	push   %edi                           
  112c0c:	56                   	push   %esi                           
  112c0d:	53                   	push   %ebx                           
  112c0e:	83 ec 78             	sub    $0x78,%esp                     
  112c11:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  siginfo_t                   siginfo_struct;                         
  sigset_t                    saved_signals_blocked;                  
  Thread_Wait_information     stored_thread_wait_information;         
                                                                      
  if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,   
  112c14:	6a 01                	push   $0x1                           
  112c16:	0f b6 45 10          	movzbl 0x10(%ebp),%eax                
  112c1a:	50                   	push   %eax                           
  112c1b:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  112c1e:	52                   	push   %edx                           
  112c1f:	53                   	push   %ebx                           
  112c20:	ff 75 08             	pushl  0x8(%ebp)                      
  112c23:	89 55 9c             	mov    %edx,-0x64(%ebp)               
  112c26:	e8 b5 00 00 00       	call   112ce0 <_POSIX_signals_Clear_signals>
  112c2b:	83 c4 20             	add    $0x20,%esp                     
  112c2e:	84 c0                	test   %al,%al                        
  112c30:	8b 55 9c             	mov    -0x64(%ebp),%edx               
  112c33:	0f 84 9b 00 00 00    	je     112cd4 <_POSIX_signals_Check_signal+0xcc>
  #endif                                                              
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
  112c39:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  112c3c:	c1 e0 02             	shl    $0x2,%eax                      
  112c3f:	8b 88 68 84 12 00    	mov    0x128468(%eax),%ecx            
  112c45:	89 4d a4             	mov    %ecx,-0x5c(%ebp)               
  112c48:	49                   	dec    %ecx                           
  112c49:	0f 84 85 00 00 00    	je     112cd4 <_POSIX_signals_Check_signal+0xcc><== NEVER TAKEN
    return false;                                                     
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  112c4f:	8b 75 08             	mov    0x8(%ebp),%esi                 
  112c52:	8b b6 d0 00 00 00    	mov    0xd0(%esi),%esi                
  112c58:	89 75 a0             	mov    %esi,-0x60(%ebp)               
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
  112c5b:	8b 88 64 84 12 00    	mov    0x128464(%eax),%ecx            
  112c61:	09 f1                	or     %esi,%ecx                      
  112c63:	8b 75 08             	mov    0x8(%ebp),%esi                 
  112c66:	89 8e d0 00 00 00    	mov    %ecx,0xd0(%esi)                
  /*                                                                  
   *  We have to save the blocking information of the current wait queue
   *  because the signal handler may subsequently go on and put the thread
   *  on a wait queue, for its own purposes.                          
   */                                                                 
  memcpy( &stored_thread_wait_information, &_Thread_Executing->Wait,  
  112c6c:	8d 75 b4             	lea    -0x4c(%ebp),%esi               
  112c6f:	89 75 94             	mov    %esi,-0x6c(%ebp)               
  112c72:	8b 35 f8 83 12 00    	mov    0x1283f8,%esi                  
  112c78:	83 c6 20             	add    $0x20,%esi                     
  112c7b:	b9 0a 00 00 00       	mov    $0xa,%ecx                      
  112c80:	8b 7d 94             	mov    -0x6c(%ebp),%edi               
  112c83:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
  112c85:	83 b8 60 84 12 00 02 	cmpl   $0x2,0x128460(%eax)            
  112c8c:	74 36                	je     112cc4 <_POSIX_signals_Check_signal+0xbc>
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
    default:                                                          
      (*_POSIX_signals_Vectors[ signo ].sa_handler)( signo );         
  112c8e:	83 ec 0c             	sub    $0xc,%esp                      
  112c91:	53                   	push   %ebx                           
  112c92:	ff 55 a4             	call   *-0x5c(%ebp)                   
      break;                                                          
  112c95:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  /*                                                                  
   *  Restore the blocking information                                
   */                                                                 
  memcpy( &_Thread_Executing->Wait, &stored_thread_wait_information,  
  112c98:	8b 3d f8 83 12 00    	mov    0x1283f8,%edi                  
  112c9e:	83 c7 20             	add    $0x20,%edi                     
  112ca1:	b9 0a 00 00 00       	mov    $0xa,%ecx                      
  112ca6:	8b 75 94             	mov    -0x6c(%ebp),%esi               
  112ca9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
  112cab:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  112cae:	8b 45 08             	mov    0x8(%ebp),%eax                 
  112cb1:	89 90 d0 00 00 00    	mov    %edx,0xd0(%eax)                
                                                                      
  return true;                                                        
  112cb7:	b0 01                	mov    $0x1,%al                       
}                                                                     
  112cb9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112cbc:	5b                   	pop    %ebx                           
  112cbd:	5e                   	pop    %esi                           
  112cbe:	5f                   	pop    %edi                           
  112cbf:	c9                   	leave                                 
  112cc0:	c3                   	ret                                   
  112cc1:	8d 76 00             	lea    0x0(%esi),%esi                 
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
    case SA_SIGINFO:                                                  
      (*_POSIX_signals_Vectors[ signo ].sa_sigaction)(                
  112cc4:	50                   	push   %eax                           
  112cc5:	6a 00                	push   $0x0                           
  112cc7:	52                   	push   %edx                           
  112cc8:	53                   	push   %ebx                           
  112cc9:	ff 55 a4             	call   *-0x5c(%ebp)                   
        signo,                                                        
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
  112ccc:	83 c4 10             	add    $0x10,%esp                     
  112ccf:	eb c7                	jmp    112c98 <_POSIX_signals_Check_signal+0x90>
  112cd1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
    return false;                                                     
  112cd4:	31 c0                	xor    %eax,%eax                      
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
                                                                      
  return true;                                                        
}                                                                     
  112cd6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112cd9:	5b                   	pop    %ebx                           
  112cda:	5e                   	pop    %esi                           
  112cdb:	5f                   	pop    %edi                           
  112cdc:	c9                   	leave                                 
  112cdd:	c3                   	ret                                   
                                                                      

00113290 <_POSIX_signals_Clear_process_signals>: */ void _POSIX_signals_Clear_process_signals( int signo ) {
  113290:	55                   	push   %ebp                           
  113291:	89 e5                	mov    %esp,%ebp                      
  113293:	53                   	push   %ebx                           
  113294:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  clear_signal = true;                                                
  mask         = signo_to_mask( signo );                              
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
  113297:	9c                   	pushf                                 
  113298:	fa                   	cli                                   
  113299:	5a                   	pop    %edx                           
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
  11329a:	8d 04 49             	lea    (%ecx,%ecx,2),%eax             
  11329d:	c1 e0 02             	shl    $0x2,%eax                      
  1132a0:	83 b8 60 84 12 00 02 	cmpl   $0x2,0x128460(%eax)            
  1132a7:	74 13                	je     1132bc <_POSIX_signals_Clear_process_signals+0x2c>
  1132a9:	49                   	dec    %ecx                           
  1132aa:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax               
      if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )     
       clear_signal = false;                                          
    }                                                                 
    if ( clear_signal ) {                                             
      _POSIX_signals_Pending &= ~mask;                                
  1132af:	d3 c0                	rol    %cl,%eax                       
  1132b1:	21 05 68 86 12 00    	and    %eax,0x128668                  
    }                                                                 
  _ISR_Enable( level );                                               
  1132b7:	52                   	push   %edx                           
  1132b8:	9d                   	popf                                  
}                                                                     
  1132b9:	5b                   	pop    %ebx                           
  1132ba:	c9                   	leave                                 
  1132bb:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  1132bc:	8d 98 84 86 12 00    	lea    0x128684(%eax),%ebx            
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
      if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )     
  1132c2:	39 98 80 86 12 00    	cmp    %ebx,0x128680(%eax)            
  1132c8:	75 ed                	jne    1132b7 <_POSIX_signals_Clear_process_signals+0x27><== NEVER TAKEN
  1132ca:	eb dd                	jmp    1132a9 <_POSIX_signals_Clear_process_signals+0x19>
                                                                      

00112ce0 <_POSIX_signals_Clear_signals>: int signo, siginfo_t *info, bool is_global, bool check_blocked ) {
  112ce0:	55                   	push   %ebp                           
  112ce1:	89 e5                	mov    %esp,%ebp                      
  112ce3:	57                   	push   %edi                           
  112ce4:	56                   	push   %esi                           
  112ce5:	53                   	push   %ebx                           
  112ce6:	83 ec 1c             	sub    $0x1c,%esp                     
  112ce9:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  112cec:	0f b6 7d 14          	movzbl 0x14(%ebp),%edi                
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  112cf0:	8d 4b ff             	lea    -0x1(%ebx),%ecx                
  112cf3:	b8 01 00 00 00       	mov    $0x1,%eax                      
  112cf8:	d3 e0                	shl    %cl,%eax                       
                                                                      
  /* set blocked signals based on if checking for them, SIGNAL_ALL_MASK
   * insures that no signals are blocked and all are checked.         
   */                                                                 
                                                                      
  if ( check_blocked )                                                
  112cfa:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)                
  112cfe:	74 40                	je     112d40 <_POSIX_signals_Clear_signals+0x60>
    signals_blocked = ~api->signals_blocked;                          
  112d00:	8b 55 08             	mov    0x8(%ebp),%edx                 
  112d03:	8b 8a d0 00 00 00    	mov    0xd0(%edx),%ecx                
  112d09:	f7 d1                	not    %ecx                           
    signals_blocked = SIGNAL_ALL_MASK;                                
                                                                      
  /* XXX is this right for siginfo type signals? */                   
  /* XXX are we sure they can be cleared the same way? */             
                                                                      
  _ISR_Disable( level );                                              
  112d0b:	9c                   	pushf                                 
  112d0c:	fa                   	cli                                   
  112d0d:	8f 45 e4             	popl   -0x1c(%ebp)                    
    if ( is_global ) {                                                
  112d10:	89 fa                	mov    %edi,%edx                      
  112d12:	84 d2                	test   %dl,%dl                        
  112d14:	74 32                	je     112d48 <_POSIX_signals_Clear_signals+0x68>
       if ( mask & (_POSIX_signals_Pending & signals_blocked) ) {     
  112d16:	23 05 68 86 12 00    	and    0x128668,%eax                  
  112d1c:	85 c8                	test   %ecx,%eax                      
  112d1e:	74 54                	je     112d74 <_POSIX_signals_Clear_signals+0x94>
         if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
  112d20:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx             
  112d23:	c1 e2 02             	shl    $0x2,%edx                      
  112d26:	83 ba 60 84 12 00 02 	cmpl   $0x2,0x128460(%edx)            
  112d2d:	74 49                	je     112d78 <_POSIX_signals_Clear_signals+0x98>
               &psiginfo->Node                                        
             );                                                       
           } else                                                     
             do_callout = false;                                      
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
  112d2f:	83 ec 0c             	sub    $0xc,%esp                      
  112d32:	53                   	push   %ebx                           
  112d33:	e8 58 05 00 00       	call   113290 <_POSIX_signals_Clear_process_signals>
  112d38:	83 c4 10             	add    $0x10,%esp                     
         do_callout = true;                                           
  112d3b:	b0 01                	mov    $0x1,%al                       
  112d3d:	eb 26                	jmp    112d65 <_POSIX_signals_Clear_signals+0x85>
  112d3f:	90                   	nop                                   
   */                                                                 
                                                                      
  if ( check_blocked )                                                
    signals_blocked = ~api->signals_blocked;                          
  else                                                                
    signals_blocked = SIGNAL_ALL_MASK;                                
  112d40:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx               
  112d45:	eb c4                	jmp    112d0b <_POSIX_signals_Clear_signals+0x2b>
  112d47:	90                   	nop                                   
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
         do_callout = true;                                           
       }                                                              
    } else {                                                          
      if ( mask & (api->signals_pending & signals_blocked) ) {        
  112d48:	8b 55 08             	mov    0x8(%ebp),%edx                 
  112d4b:	8b 9a d4 00 00 00    	mov    0xd4(%edx),%ebx                
  112d51:	89 c6                	mov    %eax,%esi                      
  112d53:	21 de                	and    %ebx,%esi                      
  112d55:	85 ce                	test   %ecx,%esi                      
  112d57:	74 1b                	je     112d74 <_POSIX_signals_Clear_signals+0x94>
        api->signals_pending &= ~mask;                                
  112d59:	f7 d0                	not    %eax                           
  112d5b:	21 d8                	and    %ebx,%eax                      
  112d5d:	89 82 d4 00 00 00    	mov    %eax,0xd4(%edx)                
        do_callout = true;                                            
  112d63:	b0 01                	mov    $0x1,%al                       
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  112d65:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  112d68:	9d                   	popf                                  
  return do_callout;                                                  
}                                                                     
  112d69:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112d6c:	5b                   	pop    %ebx                           
  112d6d:	5e                   	pop    %esi                           
  112d6e:	5f                   	pop    %edi                           
  112d6f:	c9                   	leave                                 
  112d70:	c3                   	ret                                   
  112d71:	8d 76 00             	lea    0x0(%esi),%esi                 
  bool                        do_callout;                             
  POSIX_signals_Siginfo_node *psiginfo;                               
                                                                      
  mask = signo_to_mask( signo );                                      
                                                                      
  do_callout = false;                                                 
  112d74:	31 c0                	xor    %eax,%eax                      
  112d76:	eb ed                	jmp    112d65 <_POSIX_signals_Clear_signals+0x85>
        do_callout = true;                                            
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  return do_callout;                                                  
}                                                                     
  112d78:	8d 8a 80 86 12 00    	lea    0x128680(%edx),%ecx            
  112d7e:	8b 82 80 86 12 00    	mov    0x128680(%edx),%eax            
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  112d84:	8d 71 04             	lea    0x4(%ecx),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
  112d87:	39 f0                	cmp    %esi,%eax                      
  112d89:	74 45                	je     112dd0 <_POSIX_signals_Clear_signals+0xf0>
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
  112d8b:	8b 30                	mov    (%eax),%esi                    
                                                                      
  head->next = new_first;                                             
  112d8d:	89 b2 80 86 12 00    	mov    %esi,0x128680(%edx)            
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  112d93:	89 4e 04             	mov    %ecx,0x4(%esi)                 
    if ( is_global ) {                                                
       if ( mask & (_POSIX_signals_Pending & signals_blocked) ) {     
         if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
           psiginfo = (POSIX_signals_Siginfo_node *)                  
             _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] );
           _POSIX_signals_Clear_process_signals( signo );             
  112d96:	83 ec 0c             	sub    $0xc,%esp                      
  112d99:	53                   	push   %ebx                           
  112d9a:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  112d9d:	e8 ee 04 00 00       	call   113290 <_POSIX_signals_Clear_process_signals>
            *  It may be impossible to get here with an empty chain   
            *  BUT until that is proven we need to be defensive and   
            *  protect against it.                                    
            */                                                        
           if ( psiginfo ) {                                          
             *info = psiginfo->Info;                                  
  112da2:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  112da5:	8d 70 08             	lea    0x8(%eax),%esi                 
  112da8:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  112dad:	8b 7d 10             	mov    0x10(%ebp),%edi                
  112db0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
  112db2:	8b 15 e8 85 12 00    	mov    0x1285e8,%edx                  
                                                                      
  the_node->next = tail;                                              
  112db8:	c7 00 e4 85 12 00    	movl   $0x1285e4,(%eax)               
  tail->previous = the_node;                                          
  112dbe:	a3 e8 85 12 00       	mov    %eax,0x1285e8                  
  old_last->next = the_node;                                          
  112dc3:	89 02                	mov    %eax,(%edx)                    
  the_node->previous = old_last;                                      
  112dc5:	89 50 04             	mov    %edx,0x4(%eax)                 
  112dc8:	83 c4 10             	add    $0x10,%esp                     
  112dcb:	e9 5f ff ff ff       	jmp    112d2f <_POSIX_signals_Clear_signals+0x4f>
    if ( is_global ) {                                                
       if ( mask & (_POSIX_signals_Pending & signals_blocked) ) {     
         if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
           psiginfo = (POSIX_signals_Siginfo_node *)                  
             _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] );
           _POSIX_signals_Clear_process_signals( signo );             
  112dd0:	83 ec 0c             	sub    $0xc,%esp                      
  112dd3:	53                   	push   %ebx                           
  112dd4:	e8 b7 04 00 00       	call   113290 <_POSIX_signals_Clear_process_signals>
  112dd9:	83 c4 10             	add    $0x10,%esp                     
  112ddc:	e9 4e ff ff ff       	jmp    112d2f <_POSIX_signals_Clear_signals+0x4f>
                                                                      

0010c120 <_POSIX_signals_Get_lowest>: #include <rtems/score/isr.h> int _POSIX_signals_Get_lowest( sigset_t set ) {
  10c120:	55                   	push   %ebp                           
  10c121:	89 e5                	mov    %esp,%ebp                      
  10c123:	56                   	push   %esi                           
  10c124:	53                   	push   %ebx                           
  10c125:	8b 55 08             	mov    0x8(%ebp),%edx                 
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
  10c128:	b8 1b 00 00 00       	mov    $0x1b,%eax                     
  10c12d:	bb 01 00 00 00       	mov    $0x1,%ebx                      
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
  10c132:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10c135:	89 de                	mov    %ebx,%esi                      
  10c137:	d3 e6                	shl    %cl,%esi                       
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
    if ( set & signo_to_mask( signo ) ) {                             
  10c139:	85 d6                	test   %edx,%esi                      
  10c13b:	75 20                	jne    10c15d <_POSIX_signals_Get_lowest+0x3d><== NEVER TAKEN
  sigset_t   set                                                      
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
  10c13d:	40                   	inc    %eax                           
  10c13e:	83 f8 20             	cmp    $0x20,%eax                     
  10c141:	75 ef                	jne    10c132 <_POSIX_signals_Get_lowest+0x12>
  10c143:	b0 01                	mov    $0x1,%al                       
  10c145:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  10c14a:	eb 06                	jmp    10c152 <_POSIX_signals_Get_lowest+0x32>
   */                                                                 
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
  10c14c:	40                   	inc    %eax                           
  10c14d:	83 f8 1b             	cmp    $0x1b,%eax                     
  10c150:	74 0b                	je     10c15d <_POSIX_signals_Get_lowest+0x3d><== NEVER TAKEN
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
  10c152:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10c155:	89 de                	mov    %ebx,%esi                      
  10c157:	d3 e6                	shl    %cl,%esi                       
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
    if ( set & signo_to_mask( signo ) ) {                             
  10c159:	85 d6                	test   %edx,%esi                      
  10c15b:	74 ef                	je     10c14c <_POSIX_signals_Get_lowest+0x2c>
   *  a return 0.  This routine will NOT be called unless a signal    
   *  is pending in the set passed in.                                
   */                                                                 
found_it:                                                             
  return signo;                                                       
}                                                                     
  10c15d:	5b                   	pop    %ebx                           
  10c15e:	5e                   	pop    %esi                           
  10c15f:	c9                   	leave                                 
  10c160:	c3                   	ret                                   
                                                                      

00124cdc <_POSIX_signals_Unblock_thread>: bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) {
  124cdc:	55                   	push   %ebp                           
  124cdd:	89 e5                	mov    %esp,%ebp                      
  124cdf:	57                   	push   %edi                           
  124ce0:	56                   	push   %esi                           
  124ce1:	53                   	push   %ebx                           
  124ce2:	83 ec 0c             	sub    $0xc,%esp                      
  124ce5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  124ce8:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  POSIX_API_Control  *api;                                            
  sigset_t            mask;                                           
  siginfo_t          *the_info = NULL;                                
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  124ceb:	8b b3 ec 00 00 00    	mov    0xec(%ebx),%esi                
  124cf1:	8d 4a ff             	lea    -0x1(%edx),%ecx                
  124cf4:	b8 01 00 00 00       	mov    $0x1,%eax                      
  124cf9:	d3 e0                	shl    %cl,%eax                       
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
  124cfb:	8b 4b 10             	mov    0x10(%ebx),%ecx                
  124cfe:	89 cf                	mov    %ecx,%edi                      
  124d00:	81 e7 00 80 00 10    	and    $0x10008000,%edi               
  124d06:	81 ff 00 80 00 10    	cmp    $0x10008000,%edi               
  124d0c:	74 72                	je     124d80 <_POSIX_signals_Unblock_thread+0xa4>
  }                                                                   
                                                                      
  /*                                                                  
   *  Thread is not waiting due to a sigwait.                         
   */                                                                 
  if ( ~api->signals_blocked & mask ) {                               
  124d0e:	8b 96 d0 00 00 00    	mov    0xd0(%esi),%edx                
  124d14:	f7 d2                	not    %edx                           
  124d16:	85 d0                	test   %edx,%eax                      
  124d18:	74 5a                	je     124d74 <_POSIX_signals_Unblock_thread+0x98>
     *      it is not blocked, THEN                                   
     *        we need to dispatch at the end of this ISR.             
     *    + Any other combination, do nothing.                        
     */                                                               
                                                                      
    if ( _States_Is_interruptible_by_signal( the_thread->current_state ) ) {
  124d1a:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx               
  124d20:	74 3a                	je     124d5c <_POSIX_signals_Unblock_thread+0x80>
      the_thread->Wait.return_code = EINTR;                           
  124d22:	c7 43 34 04 00 00 00 	movl   $0x4,0x34(%ebx)                
      /*                                                              
       *  In pthread_cond_wait, a thread will be blocking on a thread 
       *  queue, but is also interruptible by a POSIX signal.         
       */                                                             
       if ( _States_Is_waiting_on_thread_queue(the_thread->current_state) )
  124d29:	f7 c1 e0 be 03 00    	test   $0x3bee0,%ecx                  
  124d2f:	0f 85 93 00 00 00    	jne    124dc8 <_POSIX_signals_Unblock_thread+0xec>
         _Thread_queue_Extract_with_proxy( the_thread );              
       else if ( _States_Is_delaying(the_thread->current_state) ) {   
  124d35:	83 e1 08             	and    $0x8,%ecx                      
  124d38:	74 3a                	je     124d74 <_POSIX_signals_Unblock_thread+0x98><== NEVER TAKEN
          (void) _Watchdog_Remove( &the_thread->Timer );              
  124d3a:	83 ec 0c             	sub    $0xc,%esp                      
  124d3d:	8d 43 48             	lea    0x48(%ebx),%eax                
  124d40:	50                   	push   %eax                           
  124d41:	e8 9e ec fe ff       	call   1139e4 <_Watchdog_Remove>      
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  124d46:	5a                   	pop    %edx                           
  124d47:	59                   	pop    %ecx                           
  124d48:	68 f8 ff 03 10       	push   $0x1003fff8                    
  124d4d:	53                   	push   %ebx                           
  124d4e:	e8 79 da fe ff       	call   1127cc <_Thread_Clear_state>   
  124d53:	83 c4 10             	add    $0x10,%esp                     
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
  124d56:	31 c0                	xor    %eax,%eax                      
  124d58:	eb 1c                	jmp    124d76 <_POSIX_signals_Unblock_thread+0x9a>
  124d5a:	66 90                	xchg   %ax,%ax                        
       else if ( _States_Is_delaying(the_thread->current_state) ) {   
          (void) _Watchdog_Remove( &the_thread->Timer );              
          _Thread_Unblock( the_thread );                              
       }                                                              
                                                                      
    } else if ( the_thread->current_state == STATES_READY ) {         
  124d5c:	85 c9                	test   %ecx,%ecx                      
  124d5e:	75 14                	jne    124d74 <_POSIX_signals_Unblock_thread+0x98><== NEVER TAKEN
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  124d60:	a1 74 f1 12 00       	mov    0x12f174,%eax                  
  124d65:	85 c0                	test   %eax,%eax                      
  124d67:	74 0b                	je     124d74 <_POSIX_signals_Unblock_thread+0x98>
  124d69:	3b 1d 78 f1 12 00    	cmp    0x12f178,%ebx                  
  124d6f:	74 7b                	je     124dec <_POSIX_signals_Unblock_thread+0x110><== ALWAYS TAKEN
  124d71:	8d 76 00             	lea    0x0(%esi),%esi                 
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
  124d74:	31 c0                	xor    %eax,%eax                      
}                                                                     
  124d76:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124d79:	5b                   	pop    %ebx                           
  124d7a:	5e                   	pop    %esi                           
  124d7b:	5f                   	pop    %edi                           
  124d7c:	c9                   	leave                                 
  124d7d:	c3                   	ret                                   
  124d7e:	66 90                	xchg   %ax,%ax                        
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
                                                                      
    if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) {
  124d80:	85 43 30             	test   %eax,0x30(%ebx)                
  124d83:	74 33                	je     124db8 <_POSIX_signals_Unblock_thread+0xdc>
      the_thread->Wait.return_code = EINTR;                           
  124d85:	c7 43 34 04 00 00 00 	movl   $0x4,0x34(%ebx)                
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
  124d8c:	8b 43 28             	mov    0x28(%ebx),%eax                
                                                                      
      if ( !info ) {                                                  
  124d8f:	8b 75 10             	mov    0x10(%ebp),%esi                
  124d92:	85 f6                	test   %esi,%esi                      
  124d94:	74 42                	je     124dd8 <_POSIX_signals_Unblock_thread+0xfc>
        the_info->si_signo = signo;                                   
        the_info->si_code = SI_USER;                                  
        the_info->si_value.sival_int = 0;                             
      } else {                                                        
        *the_info = *info;                                            
  124d96:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  124d9b:	89 c7                	mov    %eax,%edi                      
  124d9d:	8b 75 10             	mov    0x10(%ebp),%esi                
  124da0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
      }                                                               
                                                                      
      _Thread_queue_Extract_with_proxy( the_thread );                 
  124da2:	83 ec 0c             	sub    $0xc,%esp                      
  124da5:	53                   	push   %ebx                           
  124da6:	e8 3d e4 fe ff       	call   1131e8 <_Thread_queue_Extract_with_proxy>
      return true;                                                    
  124dab:	83 c4 10             	add    $0x10,%esp                     
  124dae:	b0 01                	mov    $0x1,%al                       
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
}                                                                     
  124db0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124db3:	5b                   	pop    %ebx                           
  124db4:	5e                   	pop    %esi                           
  124db5:	5f                   	pop    %edi                           
  124db6:	c9                   	leave                                 
  124db7:	c3                   	ret                                   
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
                                                                      
    if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) {
  124db8:	8b 8e d0 00 00 00    	mov    0xd0(%esi),%ecx                
  124dbe:	f7 d1                	not    %ecx                           
  124dc0:	85 c8                	test   %ecx,%eax                      
  124dc2:	75 c1                	jne    124d85 <_POSIX_signals_Unblock_thread+0xa9>
  124dc4:	eb ae                	jmp    124d74 <_POSIX_signals_Unblock_thread+0x98>
  124dc6:	66 90                	xchg   %ax,%ax                        
      /*                                                              
       *  In pthread_cond_wait, a thread will be blocking on a thread 
       *  queue, but is also interruptible by a POSIX signal.         
       */                                                             
       if ( _States_Is_waiting_on_thread_queue(the_thread->current_state) )
         _Thread_queue_Extract_with_proxy( the_thread );              
  124dc8:	83 ec 0c             	sub    $0xc,%esp                      
  124dcb:	53                   	push   %ebx                           
  124dcc:	e8 17 e4 fe ff       	call   1131e8 <_Thread_queue_Extract_with_proxy>
  124dd1:	83 c4 10             	add    $0x10,%esp                     
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
  124dd4:	31 c0                	xor    %eax,%eax                      
  124dd6:	eb 9e                	jmp    124d76 <_POSIX_signals_Unblock_thread+0x9a>
      the_thread->Wait.return_code = EINTR;                           
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
                                                                      
      if ( !info ) {                                                  
        the_info->si_signo = signo;                                   
  124dd8:	89 10                	mov    %edx,(%eax)                    
        the_info->si_code = SI_USER;                                  
  124dda:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)                 
        the_info->si_value.sival_int = 0;                             
  124de1:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)                 
  124de8:	eb b8                	jmp    124da2 <_POSIX_signals_Unblock_thread+0xc6>
  124dea:	66 90                	xchg   %ax,%ax                        
          _Thread_Unblock( the_thread );                              
       }                                                              
                                                                      
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
  124dec:	c6 05 84 f1 12 00 01 	movb   $0x1,0x12f184                  
    }                                                                 
  }                                                                   
  return false;                                                       
  124df3:	31 c0                	xor    %eax,%eax                      
  124df5:	e9 7c ff ff ff       	jmp    124d76 <_POSIX_signals_Unblock_thread+0x9a>
                                                                      

0010d8a0 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
  10d8a0:	55                   	push   %ebp                           
  10d8a1:	89 e5                	mov    %esp,%ebp                      
  10d8a3:	56                   	push   %esi                           
  10d8a4:	53                   	push   %ebx                           
  10d8a5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d8a8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !the_heap )                                                    
  10d8ab:	85 db                	test   %ebx,%ebx                      
  10d8ad:	74 35                	je     10d8e4 <_Protected_heap_Get_information+0x44>
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
  10d8af:	85 f6                	test   %esi,%esi                      
  10d8b1:	74 31                	je     10d8e4 <_Protected_heap_Get_information+0x44>
    return false;                                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  10d8b3:	83 ec 0c             	sub    $0xc,%esp                      
  10d8b6:	ff 35 00 89 12 00    	pushl  0x128900                       
  10d8bc:	e8 d7 ed ff ff       	call   10c698 <_API_Mutex_Lock>       
    _Heap_Get_information( the_heap, the_info );                      
  10d8c1:	5a                   	pop    %edx                           
  10d8c2:	59                   	pop    %ecx                           
  10d8c3:	56                   	push   %esi                           
  10d8c4:	53                   	push   %ebx                           
  10d8c5:	e8 ee 47 00 00       	call   1120b8 <_Heap_Get_information> 
  _RTEMS_Unlock_allocator();                                          
  10d8ca:	58                   	pop    %eax                           
  10d8cb:	ff 35 00 89 12 00    	pushl  0x128900                       
  10d8d1:	e8 0a ee ff ff       	call   10c6e0 <_API_Mutex_Unlock>     
                                                                      
  return true;                                                        
  10d8d6:	83 c4 10             	add    $0x10,%esp                     
  10d8d9:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10d8db:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d8de:	5b                   	pop    %ebx                           
  10d8df:	5e                   	pop    %esi                           
  10d8e0:	c9                   	leave                                 
  10d8e1:	c3                   	ret                                   
  10d8e2:	66 90                	xchg   %ax,%ax                        
{                                                                     
  if ( !the_heap )                                                    
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
    return false;                                                     
  10d8e4:	31 c0                	xor    %eax,%eax                      
  _RTEMS_Lock_allocator();                                            
    _Heap_Get_information( the_heap, the_info );                      
  _RTEMS_Unlock_allocator();                                          
                                                                      
  return true;                                                        
}                                                                     
  10d8e6:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d8e9:	5b                   	pop    %ebx                           
  10d8ea:	5e                   	pop    %esi                           
  10d8eb:	c9                   	leave                                 
  10d8ec:	c3                   	ret                                   
                                                                      

00110cd0 <_Protected_heap_Walk>: bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) {
  110cd0:	55                   	push   %ebp                           
  110cd1:	89 e5                	mov    %esp,%ebp                      
  110cd3:	56                   	push   %esi                           
  110cd4:	53                   	push   %ebx                           
  110cd5:	83 ec 10             	sub    $0x10,%esp                     
  110cd8:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  110cdb:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  110cde:	8a 45 10             	mov    0x10(%ebp),%al                 
   * then it is forbidden to lock a mutex.  But since we are inside   
   * a critical section, it should be safe to walk it unlocked.       
   *                                                                  
   * NOTE: Dispatching is also disabled during initialization.        
   */                                                                 
  if ( !_Thread_Dispatch_disable_level ) {                            
  110ce1:	8b 15 b0 ee 12 00    	mov    0x12eeb0,%edx                  
  110ce7:	85 d2                	test   %edx,%edx                      
  110ce9:	74 19                	je     110d04 <_Protected_heap_Walk+0x34>
    _RTEMS_Lock_allocator();                                          
      status = _Heap_Walk( the_heap, source, do_dump );               
    _RTEMS_Unlock_allocator();                                        
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
  110ceb:	0f b6 c0             	movzbl %al,%eax                       
  110cee:	89 45 10             	mov    %eax,0x10(%ebp)                
  110cf1:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  110cf4:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
  return status;                                                      
}                                                                     
  110cf7:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110cfa:	5b                   	pop    %ebx                           
  110cfb:	5e                   	pop    %esi                           
  110cfc:	c9                   	leave                                 
  if ( !_Thread_Dispatch_disable_level ) {                            
    _RTEMS_Lock_allocator();                                          
      status = _Heap_Walk( the_heap, source, do_dump );               
    _RTEMS_Unlock_allocator();                                        
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
  110cfd:	e9 22 f2 ff ff       	jmp    10ff24 <_Heap_Walk>            
  110d02:	66 90                	xchg   %ax,%ax                        
   * a critical section, it should be safe to walk it unlocked.       
   *                                                                  
   * NOTE: Dispatching is also disabled during initialization.        
   */                                                                 
  if ( !_Thread_Dispatch_disable_level ) {                            
    _RTEMS_Lock_allocator();                                          
  110d04:	83 ec 0c             	sub    $0xc,%esp                      
  110d07:	ff 35 60 ef 12 00    	pushl  0x12ef60                       
  110d0d:	88 45 f4             	mov    %al,-0xc(%ebp)                 
  110d10:	e8 9b e3 ff ff       	call   10f0b0 <_API_Mutex_Lock>       
      status = _Heap_Walk( the_heap, source, do_dump );               
  110d15:	83 c4 0c             	add    $0xc,%esp                      
  110d18:	8a 45 f4             	mov    -0xc(%ebp),%al                 
  110d1b:	0f b6 c0             	movzbl %al,%eax                       
  110d1e:	50                   	push   %eax                           
  110d1f:	56                   	push   %esi                           
  110d20:	53                   	push   %ebx                           
  110d21:	e8 fe f1 ff ff       	call   10ff24 <_Heap_Walk>            
    _RTEMS_Unlock_allocator();                                        
  110d26:	5a                   	pop    %edx                           
  110d27:	ff 35 60 ef 12 00    	pushl  0x12ef60                       
  110d2d:	88 45 f4             	mov    %al,-0xc(%ebp)                 
  110d30:	e8 c3 e3 ff ff       	call   10f0f8 <_API_Mutex_Unlock>     
  110d35:	83 c4 10             	add    $0x10,%esp                     
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
  }                                                                   
  return status;                                                      
}                                                                     
  110d38:	8a 45 f4             	mov    -0xc(%ebp),%al                 
  110d3b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110d3e:	5b                   	pop    %ebx                           
  110d3f:	5e                   	pop    %esi                           
  110d40:	c9                   	leave                                 
  110d41:	c3                   	ret                                   
                                                                      

00110ef4 <_RTEMS_tasks_Create_extension>: bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) {
  110ef4:	55                   	push   %ebp                           
  110ef5:	89 e5                	mov    %esp,%ebp                      
  110ef7:	53                   	push   %ebx                           
  110ef8:	83 ec 10             	sub    $0x10,%esp                     
  110efb:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
                                                                      
  /*                                                                  
   *  Notepads must be the last entry in the structure and they       
   *  can be left off if disabled in the configuration.               
   */                                                                 
  to_allocate = sizeof( RTEMS_API_Control );                          
  110efe:	80 3d 04 3b 12 00 01 	cmpb   $0x1,0x123b04                  
  110f05:	19 c0                	sbb    %eax,%eax                      
  110f07:	83 e0 c0             	and    $0xffffffc0,%eax               
  110f0a:	83 c0 60             	add    $0x60,%eax                     
  if ( !rtems_configuration_get_notepads_enabled() )                  
    to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t));        
                                                                      
  api = _Workspace_Allocate( to_allocate );                           
  110f0d:	50                   	push   %eax                           
  110f0e:	e8 d1 da ff ff       	call   10e9e4 <_Workspace_Allocate>   
                                                                      
  if ( !api )                                                         
  110f13:	83 c4 10             	add    $0x10,%esp                     
  110f16:	85 c0                	test   %eax,%eax                      
  110f18:	74 6a                	je     110f84 <_RTEMS_tasks_Create_extension+0x90>
    return false;                                                     
                                                                      
  created->API_Extensions[ THREAD_API_RTEMS ] = api;                  
  110f1a:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)                
                                                                      
  api->pending_events = EVENT_SETS_NONE_PENDING;                      
  110f20:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  api->event_condition = 0;                                           
  110f26:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _ASR_Initialize (                           
  ASR_Information *information                                        
)                                                                     
{                                                                     
  information->is_enabled      = false;                               
  110f2d:	c6 40 08 00          	movb   $0x0,0x8(%eax)                 
  information->handler         = NULL;                                
  110f31:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
  information->mode_set        = RTEMS_DEFAULT_MODES;                 
  110f38:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)                
  information->signals_posted  = 0;                                   
  110f3f:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)                
  information->signals_pending = 0;                                   
  110f46:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  information->nest_level      = 0;                                   
  110f4d:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)                
  _ASR_Initialize( &api->Signal );                                    
  created->task_variables = NULL;                                     
  110f54:	c7 83 f4 00 00 00 00 	movl   $0x0,0xf4(%ebx)                
  110f5b:	00 00 00                                                    
                                                                      
  if ( rtems_configuration_get_notepads_enabled() ) {                 
  110f5e:	80 3d 04 3b 12 00 00 	cmpb   $0x0,0x123b04                  
  110f65:	74 13                	je     110f7a <_RTEMS_tasks_Create_extension+0x86>
  110f67:	31 d2                	xor    %edx,%edx                      
  110f69:	8d 76 00             	lea    0x0(%esi),%esi                 
    for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++)                         
      api->Notepads[i] = 0;                                           
  110f6c:	c7 44 90 20 00 00 00 	movl   $0x0,0x20(%eax,%edx,4)         
  110f73:	00                                                          
  api->event_condition = 0;                                           
  _ASR_Initialize( &api->Signal );                                    
  created->task_variables = NULL;                                     
                                                                      
  if ( rtems_configuration_get_notepads_enabled() ) {                 
    for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++)                         
  110f74:	42                   	inc    %edx                           
  110f75:	83 fa 10             	cmp    $0x10,%edx                     
  110f78:	75 f2                	jne    110f6c <_RTEMS_tasks_Create_extension+0x78>
      api->Notepads[i] = 0;                                           
  }                                                                   
                                                                      
  return true;                                                        
  110f7a:	b0 01                	mov    $0x1,%al                       
}                                                                     
  110f7c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  110f7f:	c9                   	leave                                 
  110f80:	c3                   	ret                                   
  110f81:	8d 76 00             	lea    0x0(%esi),%esi                 
    to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t));        
                                                                      
  api = _Workspace_Allocate( to_allocate );                           
                                                                      
  if ( !api )                                                         
    return false;                                                     
  110f84:	31 c0                	xor    %eax,%eax                      
    for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++)                         
      api->Notepads[i] = 0;                                           
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  110f86:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  110f89:	c9                   	leave                                 
  110f8a:	c3                   	ret                                   
                                                                      

00110e9c <_RTEMS_tasks_Delete_extension>: void _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) {
  110e9c:	55                   	push   %ebp                           
  110e9d:	89 e5                	mov    %esp,%ebp                      
  110e9f:	56                   	push   %esi                           
  110ea0:	53                   	push   %ebx                           
  110ea1:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
  /*                                                                  
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  110ea4:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax                
  deleted->task_variables = NULL;                                     
  110eaa:	c7 86 f4 00 00 00 00 	movl   $0x0,0xf4(%esi)                
  110eb1:	00 00 00                                                    
  while (tvp) {                                                       
  110eb4:	85 c0                	test   %eax,%eax                      
  110eb6:	75 06                	jne    110ebe <_RTEMS_tasks_Delete_extension+0x22>
  110eb8:	eb 17                	jmp    110ed1 <_RTEMS_tasks_Delete_extension+0x35>
  110eba:	66 90                	xchg   %ax,%ax                        
    next = (rtems_task_variable_t *)tvp->next;                        
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
    tvp = next;                                                       
  110ebc:	89 d8                	mov    %ebx,%eax                      
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
    next = (rtems_task_variable_t *)tvp->next;                        
  110ebe:	8b 18                	mov    (%eax),%ebx                    
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
  110ec0:	83 ec 08             	sub    $0x8,%esp                      
  110ec3:	50                   	push   %eax                           
  110ec4:	56                   	push   %esi                           
  110ec5:	e8 56 01 00 00       	call   111020 <_RTEMS_Tasks_Invoke_task_variable_dtor>
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
  110eca:	83 c4 10             	add    $0x10,%esp                     
  110ecd:	85 db                	test   %ebx,%ebx                      
  110ecf:	75 eb                	jne    110ebc <_RTEMS_tasks_Delete_extension+0x20>
                                                                      
  /*                                                                  
   *  Free API specific memory                                        
   */                                                                 
                                                                      
  (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] );
  110ed1:	83 ec 0c             	sub    $0xc,%esp                      
  110ed4:	ff b6 e8 00 00 00    	pushl  0xe8(%esi)                     
  110eda:	e8 21 db ff ff       	call   10ea00 <_Workspace_Free>       
  deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL;                 
  110edf:	c7 86 e8 00 00 00 00 	movl   $0x0,0xe8(%esi)                
  110ee6:	00 00 00                                                    
  110ee9:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  110eec:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110eef:	5b                   	pop    %ebx                           
  110ef0:	5e                   	pop    %esi                           
  110ef1:	c9                   	leave                                 
  110ef2:	c3                   	ret                                   
                                                                      

00110e20 <_RTEMS_tasks_Initialize_user_tasks>: * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) {
  110e20:	55                   	push   %ebp                           
  110e21:	89 e5                	mov    %esp,%ebp                      
  110e23:	83 ec 08             	sub    $0x8,%esp                      
  if ( _RTEMS_tasks_Initialize_user_tasks_p )                         
  110e26:	a1 80 3b 12 00       	mov    0x123b80,%eax                  
  110e2b:	85 c0                	test   %eax,%eax                      
  110e2d:	74 05                	je     110e34 <_RTEMS_tasks_Initialize_user_tasks+0x14>
    (*_RTEMS_tasks_Initialize_user_tasks_p)();                        
}                                                                     
  110e2f:	c9                   	leave                                 
 */                                                                   
                                                                      
void _RTEMS_tasks_Initialize_user_tasks( void )                       
{                                                                     
  if ( _RTEMS_tasks_Initialize_user_tasks_p )                         
    (*_RTEMS_tasks_Initialize_user_tasks_p)();                        
  110e30:	ff e0                	jmp    *%eax                          
  110e32:	66 90                	xchg   %ax,%ax                        
}                                                                     
  110e34:	c9                   	leave                                 
  110e35:	c3                   	ret                                   
                                                                      

0010bac8 <_RTEMS_tasks_Initialize_user_tasks_body>: * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks_body( void ) {
  10bac8:	55                   	push   %ebp                           
  10bac9:	89 e5                	mov    %esp,%ebp                      
  10bacb:	57                   	push   %edi                           
  10bacc:	56                   	push   %esi                           
  10bacd:	53                   	push   %ebx                           
  10bace:	83 ec 1c             	sub    $0x1c,%esp                     
  rtems_initialization_tasks_table *user_tasks;                       
                                                                      
  /*                                                                  
   *  Move information into local variables                           
   */                                                                 
  user_tasks = Configuration_RTEMS_API.User_initialization_tasks_table;
  10bad1:	8b 1d 2c 3b 12 00    	mov    0x123b2c,%ebx                  
  maximum    = Configuration_RTEMS_API.number_of_initialization_tasks;
  10bad7:	8b 3d 28 3b 12 00    	mov    0x123b28,%edi                  
                                                                      
  /*                                                                  
   *  Verify that we have a set of user tasks to iterate              
   */                                                                 
  if ( !user_tasks )                                                  
  10badd:	85 db                	test   %ebx,%ebx                      
  10badf:	74 46                	je     10bb27 <_RTEMS_tasks_Initialize_user_tasks_body+0x5f>
    return;                                                           
                                                                      
  /*                                                                  
   *  Now iterate over the initialization tasks and create/start them.
   */                                                                 
  for ( index=0 ; index < maximum ; index++ ) {                       
  10bae1:	85 ff                	test   %edi,%edi                      
  10bae3:	74 42                	je     10bb27 <_RTEMS_tasks_Initialize_user_tasks_body+0x5f><== NEVER TAKEN
  10bae5:	31 f6                	xor    %esi,%esi                      
  10bae7:	90                   	nop                                   
    return_value = rtems_task_create(                                 
  10bae8:	83 ec 08             	sub    $0x8,%esp                      
  10baeb:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10baee:	50                   	push   %eax                           
  10baef:	ff 73 0c             	pushl  0xc(%ebx)                      
  10baf2:	ff 73 14             	pushl  0x14(%ebx)                     
  10baf5:	ff 73 04             	pushl  0x4(%ebx)                      
  10baf8:	ff 73 08             	pushl  0x8(%ebx)                      
  10bafb:	ff 33                	pushl  (%ebx)                         
  10bafd:	e8 92 fd ff ff       	call   10b894 <rtems_task_create>     
      user_tasks[ index ].stack_size,                                 
      user_tasks[ index ].mode_set,                                   
      user_tasks[ index ].attribute_set,                              
      &id                                                             
    );                                                                
    if ( !rtems_is_status_successful( return_value ) )                
  10bb02:	83 c4 20             	add    $0x20,%esp                     
  10bb05:	85 c0                	test   %eax,%eax                      
  10bb07:	75 26                	jne    10bb2f <_RTEMS_tasks_Initialize_user_tasks_body+0x67>
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, true, return_value );
                                                                      
    return_value = rtems_task_start(                                  
  10bb09:	51                   	push   %ecx                           
  10bb0a:	ff 73 18             	pushl  0x18(%ebx)                     
  10bb0d:	ff 73 10             	pushl  0x10(%ebx)                     
  10bb10:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10bb13:	e8 24 00 00 00       	call   10bb3c <rtems_task_start>      
      id,                                                             
      user_tasks[ index ].entry_point,                                
      user_tasks[ index ].argument                                    
    );                                                                
    if ( !rtems_is_status_successful( return_value ) )                
  10bb18:	83 c4 10             	add    $0x10,%esp                     
  10bb1b:	85 c0                	test   %eax,%eax                      
  10bb1d:	75 10                	jne    10bb2f <_RTEMS_tasks_Initialize_user_tasks_body+0x67>
    return;                                                           
                                                                      
  /*                                                                  
   *  Now iterate over the initialization tasks and create/start them.
   */                                                                 
  for ( index=0 ; index < maximum ; index++ ) {                       
  10bb1f:	46                   	inc    %esi                           
  10bb20:	83 c3 1c             	add    $0x1c,%ebx                     
  10bb23:	39 f7                	cmp    %esi,%edi                      
  10bb25:	77 c1                	ja     10bae8 <_RTEMS_tasks_Initialize_user_tasks_body+0x20><== NEVER TAKEN
      user_tasks[ index ].argument                                    
    );                                                                
    if ( !rtems_is_status_successful( return_value ) )                
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, true, return_value );
  }                                                                   
}                                                                     
  10bb27:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bb2a:	5b                   	pop    %ebx                           
  10bb2b:	5e                   	pop    %esi                           
  10bb2c:	5f                   	pop    %edi                           
  10bb2d:	c9                   	leave                                 
  10bb2e:	c3                   	ret                                   
      id,                                                             
      user_tasks[ index ].entry_point,                                
      user_tasks[ index ].argument                                    
    );                                                                
    if ( !rtems_is_status_successful( return_value ) )                
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, true, return_value );
  10bb2f:	52                   	push   %edx                           
  10bb30:	50                   	push   %eax                           
  10bb31:	6a 01                	push   $0x1                           
  10bb33:	6a 01                	push   $0x1                           
  10bb35:	e8 02 0e 00 00       	call   10c93c <_Internal_error_Occurred>
                                                                      

00110e38 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) {
  110e38:	55                   	push   %ebp                           
  110e39:	89 e5                	mov    %esp,%ebp                      
  110e3b:	57                   	push   %edi                           
  110e3c:	56                   	push   %esi                           
  110e3d:	53                   	push   %ebx                           
  110e3e:	83 ec 1c             	sub    $0x1c,%esp                     
  RTEMS_API_Control *api;                                             
  ASR_Information   *asr;                                             
  rtems_signal_set   signal_set;                                      
  Modes_Control      prev_mode;                                       
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  110e41:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110e44:	8b 98 e8 00 00 00    	mov    0xe8(%eax),%ebx                
  if ( !api )                                                         
  110e4a:	85 db                	test   %ebx,%ebx                      
  110e4c:	74 45                	je     110e93 <_RTEMS_tasks_Post_switch_extension+0x5b><== NEVER TAKEN
   *  Signal Processing                                               
   */                                                                 
                                                                      
  asr = &api->Signal;                                                 
                                                                      
  _ISR_Disable( level );                                              
  110e4e:	9c                   	pushf                                 
  110e4f:	fa                   	cli                                   
  110e50:	58                   	pop    %eax                           
    signal_set = asr->signals_posted;                                 
  110e51:	8b 73 14             	mov    0x14(%ebx),%esi                
    asr->signals_posted = 0;                                          
  110e54:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)                
  _ISR_Enable( level );                                               
  110e5b:	50                   	push   %eax                           
  110e5c:	9d                   	popf                                  
                                                                      
                                                                      
  if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 
  110e5d:	85 f6                	test   %esi,%esi                      
  110e5f:	74 32                	je     110e93 <_RTEMS_tasks_Post_switch_extension+0x5b>
    return;                                                           
                                                                      
  asr->nest_level += 1;                                               
  110e61:	ff 43 1c             	incl   0x1c(%ebx)                     
  rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 
  110e64:	50                   	push   %eax                           
  110e65:	8d 7d e4             	lea    -0x1c(%ebp),%edi               
  110e68:	57                   	push   %edi                           
  110e69:	68 ff ff 00 00       	push   $0xffff                        
  110e6e:	ff 73 10             	pushl  0x10(%ebx)                     
  110e71:	e8 ee 1f 00 00       	call   112e64 <rtems_task_mode>       
                                                                      
  (*asr->handler)( signal_set );                                      
  110e76:	89 34 24             	mov    %esi,(%esp)                    
  110e79:	ff 53 0c             	call   *0xc(%ebx)                     
                                                                      
  asr->nest_level -= 1;                                               
  110e7c:	ff 4b 1c             	decl   0x1c(%ebx)                     
  rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode );     
  110e7f:	83 c4 0c             	add    $0xc,%esp                      
  110e82:	57                   	push   %edi                           
  110e83:	68 ff ff 00 00       	push   $0xffff                        
  110e88:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  110e8b:	e8 d4 1f 00 00       	call   112e64 <rtems_task_mode>       
  110e90:	83 c4 10             	add    $0x10,%esp                     
                                                                      
}                                                                     
  110e93:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110e96:	5b                   	pop    %ebx                           
  110e97:	5e                   	pop    %esi                           
  110e98:	5f                   	pop    %edi                           
  110e99:	c9                   	leave                                 
  110e9a:	c3                   	ret                                   
                                                                      

00110dd8 <_RTEMS_tasks_Switch_extension>: void _RTEMS_tasks_Switch_extension( Thread_Control *executing, Thread_Control *heir ) {
  110dd8:	55                   	push   %ebp                           
  110dd9:	89 e5                	mov    %esp,%ebp                      
                                                                      
  /*                                                                  
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  110ddb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110dde:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
  while (tvp) {                                                       
  110de4:	85 c0                	test   %eax,%eax                      
  110de6:	74 13                	je     110dfb <_RTEMS_tasks_Switch_extension+0x23>
    tvp->tval = *tvp->ptr;                                            
  110de8:	8b 50 04             	mov    0x4(%eax),%edx                 
  110deb:	8b 0a                	mov    (%edx),%ecx                    
  110ded:	89 48 0c             	mov    %ecx,0xc(%eax)                 
    *tvp->ptr = tvp->gval;                                            
  110df0:	8b 48 08             	mov    0x8(%eax),%ecx                 
  110df3:	89 0a                	mov    %ecx,(%edx)                    
    tvp = (rtems_task_variable_t *)tvp->next;                         
  110df5:	8b 00                	mov    (%eax),%eax                    
  /*                                                                  
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  while (tvp) {                                                       
  110df7:	85 c0                	test   %eax,%eax                      
  110df9:	75 ed                	jne    110de8 <_RTEMS_tasks_Switch_extension+0x10><== NEVER TAKEN
    tvp->tval = *tvp->ptr;                                            
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  110dfb:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  110dfe:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
  while (tvp) {                                                       
  110e04:	85 c0                	test   %eax,%eax                      
  110e06:	74 13                	je     110e1b <_RTEMS_tasks_Switch_extension+0x43>
    tvp->gval = *tvp->ptr;                                            
  110e08:	8b 50 04             	mov    0x4(%eax),%edx                 
  110e0b:	8b 0a                	mov    (%edx),%ecx                    
  110e0d:	89 48 08             	mov    %ecx,0x8(%eax)                 
    *tvp->ptr = tvp->tval;                                            
  110e10:	8b 48 0c             	mov    0xc(%eax),%ecx                 
  110e13:	89 0a                	mov    %ecx,(%edx)                    
    tvp = (rtems_task_variable_t *)tvp->next;                         
  110e15:	8b 00                	mov    (%eax),%eax                    
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  while (tvp) {                                                       
  110e17:	85 c0                	test   %eax,%eax                      
  110e19:	75 ed                	jne    110e08 <_RTEMS_tasks_Switch_extension+0x30><== NEVER TAKEN
    tvp->gval = *tvp->ptr;                                            
    *tvp->ptr = tvp->tval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
}                                                                     
  110e1b:	c9                   	leave                                 
  110e1c:	c3                   	ret                                   
                                                                      

0010c538 <_Rate_monotonic_Initiate_statistics>: } void _Rate_monotonic_Initiate_statistics( Rate_monotonic_Control *the_period ) {
  10c538:	55                   	push   %ebp                           
  10c539:	89 e5                	mov    %esp,%ebp                      
  10c53b:	57                   	push   %edi                           
  10c53c:	56                   	push   %esi                           
  10c53d:	53                   	push   %ebx                           
  10c53e:	83 ec 28             	sub    $0x28,%esp                     
  10c541:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Thread_Control *owning_thread = the_period->owner;                  
  10c544:	8b 73 40             	mov    0x40(%ebx),%esi                
   *  If using nanosecond statistics, we need to obtain the uptime.   
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    Timestamp_Control  uptime;                                        
                                                                      
    _TOD_Get_uptime( &uptime );                                       
  10c547:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10c54a:	57                   	push   %edi                           
  10c54b:	e8 98 18 00 00       	call   10dde8 <_TOD_Get_uptime>       
                                                                      
  /*                                                                  
   *  Set the starting point and the CPU time used for the statistics.
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    the_period->time_period_initiated = uptime;                       
  10c550:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10c553:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c556:	89 43 4c             	mov    %eax,0x4c(%ebx)                
  10c559:	89 53 50             	mov    %edx,0x50(%ebx)                
  #else                                                               
    the_period->time_period_initiated = _Watchdog_Ticks_since_boot;   
  #endif                                                              
                                                                      
  the_period->cpu_usage_period_initiated = owning_thread->cpu_time_used;
  10c55c:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax                
  10c562:	8b 96 88 00 00 00    	mov    0x88(%esi),%edx                
  10c568:	89 43 44             	mov    %eax,0x44(%ebx)                
  10c56b:	89 53 48             	mov    %edx,0x48(%ebx)                
   *  routine is invoked from rtems_rate_monotonic_period, the owner will
   *  be the executing thread.  When this routine is invoked from     
   *  _Rate_monotonic_Timeout, it will not.                           
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    if (owning_thread == _Thread_Executing) {                         
  10c56e:	83 c4 10             	add    $0x10,%esp                     
  10c571:	39 35 98 b7 12 00    	cmp    %esi,0x12b798                  
  10c577:	74 0b                	je     10c584 <_Rate_monotonic_Initiate_statistics+0x4c>
      );                                                              
                                                                      
      _Timespec_Add_to( &the_period->cpu_usage_period_initiated, &ran );
    }                                                                 
  #endif                                                              
}                                                                     
  10c579:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c57c:	5b                   	pop    %ebx                           
  10c57d:	5e                   	pop    %esi                           
  10c57e:	5f                   	pop    %edi                           
  10c57f:	c9                   	leave                                 
  10c580:	c3                   	ret                                   
  10c581:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      /*                                                              
       *  Adjust the CPU time used to account for the time since last 
       *  context switch.                                             
       */                                                             
      _Timespec_Subtract(                                             
  10c584:	50                   	push   %eax                           
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
  10c585:	8d 75 d8             	lea    -0x28(%ebp),%esi               
                                                                      
      /*                                                              
       *  Adjust the CPU time used to account for the time since last 
       *  context switch.                                             
       */                                                             
      _Timespec_Subtract(                                             
  10c588:	56                   	push   %esi                           
  10c589:	57                   	push   %edi                           
  10c58a:	68 ac b2 12 00       	push   $0x12b2ac                      
  10c58f:	e8 04 3a 00 00       	call   10ff98 <_Timespec_Subtract>    
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      _Timespec_Add_to( &the_period->cpu_usage_period_initiated, &ran );
  10c594:	59                   	pop    %ecx                           
  10c595:	5f                   	pop    %edi                           
  10c596:	56                   	push   %esi                           
  10c597:	83 c3 44             	add    $0x44,%ebx                     
  10c59a:	53                   	push   %ebx                           
  10c59b:	e8 fc 38 00 00       	call   10fe9c <_Timespec_Add_to>      
  10c5a0:	83 c4 10             	add    $0x10,%esp                     
    }                                                                 
  #endif                                                              
}                                                                     
  10c5a3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c5a6:	5b                   	pop    %ebx                           
  10c5a7:	5e                   	pop    %esi                           
  10c5a8:	5f                   	pop    %edi                           
  10c5a9:	c9                   	leave                                 
  10c5aa:	c3                   	ret                                   
                                                                      

0010caf4 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) {
  10caf4:	55                   	push   %ebp                           
  10caf5:	89 e5                	mov    %esp,%ebp                      
  10caf7:	83 ec 2c             	sub    $0x2c,%esp                     
                                                                      
  /*                                                                  
   *  When we get here, the Timer is already off the chain so we do not
   *  have to worry about that -- hence no _Watchdog_Remove().        
   */                                                                 
  the_period = _Rate_monotonic_Get( id, &location );                  
  10cafa:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10cafd:	50                   	push   %eax                           
  10cafe:	ff 75 08             	pushl  0x8(%ebp)                      
  10cb01:	68 00 b1 12 00       	push   $0x12b100                      
  10cb06:	e8 71 1d 00 00       	call   10e87c <_Objects_Get>          
  switch ( location ) {                                               
  10cb0b:	83 c4 10             	add    $0x10,%esp                     
  10cb0e:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10cb11:	85 d2                	test   %edx,%edx                      
  10cb13:	75 29                	jne    10cb3e <_Rate_monotonic_Timeout+0x4a><== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      the_thread = the_period->owner;                                 
  10cb15:	8b 50 40             	mov    0x40(%eax),%edx                
      if ( _States_Is_waiting_for_period( the_thread->current_state ) &&
  10cb18:	f6 42 11 40          	testb  $0x40,0x11(%edx)               
  10cb1c:	74 08                	je     10cb26 <_Rate_monotonic_Timeout+0x32>
  10cb1e:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10cb21:	39 4a 20             	cmp    %ecx,0x20(%edx)                
  10cb24:	74 4e                	je     10cb74 <_Rate_monotonic_Timeout+0x80>
        _Thread_Unblock( the_thread );                                
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
      } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) {
  10cb26:	83 78 38 01          	cmpl   $0x1,0x38(%eax)                
  10cb2a:	74 14                	je     10cb40 <_Rate_monotonic_Timeout+0x4c>
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
      } else                                                          
        the_period->state = RATE_MONOTONIC_EXPIRED;                   
  10cb2c:	c7 40 38 04 00 00 00 	movl   $0x4,0x38(%eax)                
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10cb33:	a1 f0 b1 12 00       	mov    0x12b1f0,%eax                  
  10cb38:	48                   	dec    %eax                           
  10cb39:	a3 f0 b1 12 00       	mov    %eax,0x12b1f0                  
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
  10cb3e:	c9                   	leave                                 
  10cb3f:	c3                   	ret                                   
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
      } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) {
        the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING;    
  10cb40:	c7 40 38 03 00 00 00 	movl   $0x3,0x38(%eax)                
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
  10cb47:	83 ec 0c             	sub    $0xc,%esp                      
  10cb4a:	50                   	push   %eax                           
  10cb4b:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10cb4e:	e8 e5 f9 ff ff       	call   10c538 <_Rate_monotonic_Initiate_statistics>
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10cb53:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10cb56:	8b 50 3c             	mov    0x3c(%eax),%edx                
  10cb59:	89 50 1c             	mov    %edx,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10cb5c:	5a                   	pop    %edx                           
  10cb5d:	59                   	pop    %ecx                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
  10cb5e:	83 c0 10             	add    $0x10,%eax                     
  10cb61:	50                   	push   %eax                           
  10cb62:	68 c0 b2 12 00       	push   $0x12b2c0                      
  10cb67:	e8 0c 37 00 00       	call   110278 <_Watchdog_Insert>      
  10cb6c:	83 c4 10             	add    $0x10,%esp                     
  10cb6f:	eb c2                	jmp    10cb33 <_Rate_monotonic_Timeout+0x3f>
  10cb71:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10cb74:	83 ec 08             	sub    $0x8,%esp                      
  10cb77:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10cb7c:	52                   	push   %edx                           
  10cb7d:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10cb80:	e8 1b 25 00 00       	call   10f0a0 <_Thread_Clear_state>   
      the_thread = the_period->owner;                                 
      if ( _States_Is_waiting_for_period( the_thread->current_state ) &&
            the_thread->Wait.id == the_period->Object.id ) {          
        _Thread_Unblock( the_thread );                                
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
  10cb85:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10cb88:	89 04 24             	mov    %eax,(%esp)                    
  10cb8b:	eb c1                	jmp    10cb4e <_Rate_monotonic_Timeout+0x5a>
                                                                      

0010c5ac <_Rate_monotonic_Update_statistics>: void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period ) {
  10c5ac:	55                   	push   %ebp                           
  10c5ad:	89 e5                	mov    %esp,%ebp                      
  10c5af:	57                   	push   %edi                           
  10c5b0:	56                   	push   %esi                           
  10c5b1:	53                   	push   %ebx                           
  10c5b2:	83 ec 1c             	sub    $0x1c,%esp                     
  10c5b5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
                                                                      
  /*                                                                  
   *  Update the counts.                                              
   */                                                                 
  stats = &the_period->Statistics;                                    
  stats->count++;                                                     
  10c5b8:	ff 43 54             	incl   0x54(%ebx)                     
                                                                      
  if ( the_period->state == RATE_MONOTONIC_EXPIRED )                  
  10c5bb:	83 7b 38 04          	cmpl   $0x4,0x38(%ebx)                
  10c5bf:	0f 84 bf 00 00 00    	je     10c684 <_Rate_monotonic_Update_statistics+0xd8>
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10c5c5:	51                   	push   %ecx                           
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  10c5c6:	8d 7d e0             	lea    -0x20(%ebp),%edi               
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10c5c9:	57                   	push   %edi                           
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  10c5ca:	8d 75 d8             	lea    -0x28(%ebp),%esi               
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10c5cd:	56                   	push   %esi                           
  10c5ce:	53                   	push   %ebx                           
  10c5cf:	e8 cc fe ff ff       	call   10c4a0 <_Rate_monotonic_Get_status>
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  if (!valid_status)                                                  
  10c5d4:	83 c4 10             	add    $0x10,%esp                     
  10c5d7:	84 c0                	test   %al,%al                        
  10c5d9:	75 09                	jne    10c5e4 <_Rate_monotonic_Update_statistics+0x38>
      stats->min_wall_time = since_last_period;                       
                                                                      
    if ( since_last_period > stats->max_wall_time )                   
      stats->max_wall_time = since_last_period;                       
  #endif                                                              
}                                                                     
  10c5db:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c5de:	5b                   	pop    %ebx                           
  10c5df:	5e                   	pop    %esi                           
  10c5e0:	5f                   	pop    %edi                           
  10c5e1:	c9                   	leave                                 
  10c5e2:	c3                   	ret                                   
  10c5e3:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  Update CPU time                                                 
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Add_to( &stats->total_cpu_time, &executed );           
  10c5e4:	83 ec 08             	sub    $0x8,%esp                      
  10c5e7:	57                   	push   %edi                           
  10c5e8:	8d 43 6c             	lea    0x6c(%ebx),%eax                
  10c5eb:	50                   	push   %eax                           
  10c5ec:	e8 ab 38 00 00       	call   10fe9c <_Timespec_Add_to>      
                                                                      
    if ( _Timestamp_Less_than( &executed, &stats->min_cpu_time ) )    
  10c5f1:	58                   	pop    %eax                           
  10c5f2:	5a                   	pop    %edx                           
  10c5f3:	8d 43 5c             	lea    0x5c(%ebx),%eax                
  10c5f6:	50                   	push   %eax                           
  10c5f7:	57                   	push   %edi                           
  10c5f8:	e8 77 39 00 00       	call   10ff74 <_Timespec_Less_than>   
  10c5fd:	83 c4 10             	add    $0x10,%esp                     
  10c600:	84 c0                	test   %al,%al                        
  10c602:	74 0c                	je     10c610 <_Rate_monotonic_Update_statistics+0x64>
      stats->min_cpu_time = executed;                                 
  10c604:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10c607:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c60a:	89 43 5c             	mov    %eax,0x5c(%ebx)                
  10c60d:	89 53 60             	mov    %edx,0x60(%ebx)                
                                                                      
    if ( _Timestamp_Greater_than( &executed, &stats->max_cpu_time ) ) 
  10c610:	83 ec 08             	sub    $0x8,%esp                      
  10c613:	8d 43 64             	lea    0x64(%ebx),%eax                
  10c616:	50                   	push   %eax                           
  10c617:	57                   	push   %edi                           
  10c618:	e8 33 39 00 00       	call   10ff50 <_Timespec_Greater_than>
  10c61d:	83 c4 10             	add    $0x10,%esp                     
  10c620:	84 c0                	test   %al,%al                        
  10c622:	74 0c                	je     10c630 <_Rate_monotonic_Update_statistics+0x84>
      stats->max_cpu_time = executed;                                 
  10c624:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10c627:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c62a:	89 43 64             	mov    %eax,0x64(%ebx)                
  10c62d:	89 53 68             	mov    %edx,0x68(%ebx)                
                                                                      
  /*                                                                  
   *  Update Wall time                                                
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Add_to( &stats->total_wall_time, &since_last_period ); 
  10c630:	83 ec 08             	sub    $0x8,%esp                      
  10c633:	56                   	push   %esi                           
  10c634:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax                
  10c63a:	50                   	push   %eax                           
  10c63b:	e8 5c 38 00 00       	call   10fe9c <_Timespec_Add_to>      
                                                                      
    if ( _Timestamp_Less_than( &since_last_period, &stats->min_wall_time ) )
  10c640:	5a                   	pop    %edx                           
  10c641:	59                   	pop    %ecx                           
  10c642:	8d 43 74             	lea    0x74(%ebx),%eax                
  10c645:	50                   	push   %eax                           
  10c646:	56                   	push   %esi                           
  10c647:	e8 28 39 00 00       	call   10ff74 <_Timespec_Less_than>   
  10c64c:	83 c4 10             	add    $0x10,%esp                     
  10c64f:	84 c0                	test   %al,%al                        
  10c651:	75 39                	jne    10c68c <_Rate_monotonic_Update_statistics+0xe0>
      stats->min_wall_time = since_last_period;                       
                                                                      
    if ( _Timestamp_Greater_than( &since_last_period, &stats->max_wall_time ) )
  10c653:	83 ec 08             	sub    $0x8,%esp                      
  10c656:	8d 43 7c             	lea    0x7c(%ebx),%eax                
  10c659:	50                   	push   %eax                           
  10c65a:	56                   	push   %esi                           
  10c65b:	e8 f0 38 00 00       	call   10ff50 <_Timespec_Greater_than>
  10c660:	83 c4 10             	add    $0x10,%esp                     
  10c663:	84 c0                	test   %al,%al                        
  10c665:	0f 84 70 ff ff ff    	je     10c5db <_Rate_monotonic_Update_statistics+0x2f>
      stats->max_wall_time = since_last_period;                       
  10c66b:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  10c66e:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10c671:	89 43 7c             	mov    %eax,0x7c(%ebx)                
  10c674:	89 93 80 00 00 00    	mov    %edx,0x80(%ebx)                
      stats->min_wall_time = since_last_period;                       
                                                                      
    if ( since_last_period > stats->max_wall_time )                   
      stats->max_wall_time = since_last_period;                       
  #endif                                                              
}                                                                     
  10c67a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c67d:	5b                   	pop    %ebx                           
  10c67e:	5e                   	pop    %esi                           
  10c67f:	5f                   	pop    %edi                           
  10c680:	c9                   	leave                                 
  10c681:	c3                   	ret                                   
  10c682:	66 90                	xchg   %ax,%ax                        
   */                                                                 
  stats = &the_period->Statistics;                                    
  stats->count++;                                                     
                                                                      
  if ( the_period->state == RATE_MONOTONIC_EXPIRED )                  
    stats->missed_count++;                                            
  10c684:	ff 43 58             	incl   0x58(%ebx)                     
  10c687:	e9 39 ff ff ff       	jmp    10c5c5 <_Rate_monotonic_Update_statistics+0x19>
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Add_to( &stats->total_wall_time, &since_last_period ); 
                                                                      
    if ( _Timestamp_Less_than( &since_last_period, &stats->min_wall_time ) )
      stats->min_wall_time = since_last_period;                       
  10c68c:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  10c68f:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10c692:	89 43 74             	mov    %eax,0x74(%ebx)                
  10c695:	89 53 78             	mov    %edx,0x78(%ebx)                
  10c698:	eb b9                	jmp    10c653 <_Rate_monotonic_Update_statistics+0xa7>
                                                                      

0010d1e4 <_Scheduler_priority_Block>: #include <rtems/score/thread.h> void _Scheduler_priority_Block( Thread_Control *the_thread ) {
  10d1e4:	55                   	push   %ebp                           
  10d1e5:	89 e5                	mov    %esp,%ebp                      
  10d1e7:	53                   	push   %ebx                           
  10d1e8:	8b 45 08             	mov    0x8(%ebp),%eax                 
)                                                                     
{                                                                     
  Scheduler_priority_Per_thread *sched_info;                          
  Chain_Control                 *ready;                               
                                                                      
  sched_info = (Scheduler_priority_Per_thread *) the_thread->scheduler_info;
  10d1eb:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx                
  ready      = sched_info->ready_chain;                               
  10d1f1:	8b 11                	mov    (%ecx),%edx                    
                                                                      
  if ( _Chain_Has_only_one_node( ready ) ) {                          
  10d1f3:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  10d1f6:	39 1a                	cmp    %ebx,(%edx)                    
  10d1f8:	74 6e                	je     10d268 <_Scheduler_priority_Block+0x84>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10d1fa:	8b 08                	mov    (%eax),%ecx                    
  previous       = the_node->previous;                                
  10d1fc:	8b 50 04             	mov    0x4(%eax),%edx                 
  next->previous = previous;                                          
  10d1ff:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  10d202:	89 0a                	mov    %ecx,(%edx)                    
  _Scheduler_priority_Ready_queue_extract( the_thread );              
                                                                      
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
  10d204:	3b 05 fc 83 12 00    	cmp    0x1283fc,%eax                  
  10d20a:	74 18                	je     10d224 <_Scheduler_priority_Block+0x40>
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
  10d20c:	3b 05 f8 83 12 00    	cmp    0x1283f8,%eax                  
  10d212:	74 04                	je     10d218 <_Scheduler_priority_Block+0x34>
    _Thread_Dispatch_necessary = true;                                
                                                                      
}                                                                     
  10d214:	5b                   	pop    %ebx                           
  10d215:	c9                   	leave                                 
  10d216:	c3                   	ret                                   
  10d217:	90                   	nop                                   
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
    _Thread_Dispatch_necessary = true;                                
  10d218:	c6 05 04 84 12 00 01 	movb   $0x1,0x128404                  
                                                                      
}                                                                     
  10d21f:	5b                   	pop    %ebx                           
  10d220:	c9                   	leave                                 
  10d221:	c3                   	ret                                   
  10d222:	66 90                	xchg   %ax,%ax                        
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
  10d224:	66 8b 1d 20 84 12 00 	mov    0x128420,%bx                   
  10d22b:	31 d2                	xor    %edx,%edx                      
  10d22d:	89 d1                	mov    %edx,%ecx                      
  10d22f:	66 0f bc cb          	bsf    %bx,%cx                        
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
  10d233:	0f b7 c9             	movzwl %cx,%ecx                       
  10d236:	66 8b 9c 09 40 84 12 	mov    0x128440(%ecx,%ecx,1),%bx      
  10d23d:	00                                                          
  10d23e:	66 0f bc d3          	bsf    %bx,%dx                        
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
  10d242:	c1 e1 04             	shl    $0x4,%ecx                      
  10d245:	0f b7 d2             	movzwl %dx,%edx                       
  10d248:	8d 14 11             	lea    (%ecx,%edx,1),%edx             
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
  10d24b:	8d 14 52             	lea    (%edx,%edx,2),%edx             
  10d24e:	c1 e2 02             	shl    $0x2,%edx                      
  10d251:	03 15 40 3a 12 00    	add    0x123a40,%edx                  
  10d257:	8b 0a                	mov    (%edx),%ecx                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10d259:	83 c2 04             	add    $0x4,%edx                      
  10d25c:	39 d1                	cmp    %edx,%ecx                      
  10d25e:	74 44                	je     10d2a4 <_Scheduler_priority_Block+0xc0><== NEVER TAKEN
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
  10d260:	89 0d fc 83 12 00    	mov    %ecx,0x1283fc                  
  10d266:	eb a4                	jmp    10d20c <_Scheduler_priority_Block+0x28>
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10d268:	8d 5a 04             	lea    0x4(%edx),%ebx                 
  10d26b:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10d26d:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)                 
  tail->previous = head;                                              
  10d274:	89 52 08             	mov    %edx,0x8(%edx)                 
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (                  
  Priority_bit_map_Information *the_priority_map                      
)                                                                     
{                                                                     
  *the_priority_map->minor &= the_priority_map->block_minor;          
  10d277:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  10d27a:	66 8b 13             	mov    (%ebx),%dx                     
  10d27d:	66 23 51 0e          	and    0xe(%ecx),%dx                  
  10d281:	66 89 13             	mov    %dx,(%ebx)                     
  if ( *the_priority_map->minor == 0 )                                
  10d284:	66 85 d2             	test   %dx,%dx                        
  10d287:	0f 85 77 ff ff ff    	jne    10d204 <_Scheduler_priority_Block+0x20>
    _Priority_Major_bit_map &= the_priority_map->block_major;         
  10d28d:	66 8b 15 20 84 12 00 	mov    0x128420,%dx                   
  10d294:	23 51 0c             	and    0xc(%ecx),%edx                 
  10d297:	66 89 15 20 84 12 00 	mov    %dx,0x128420                   
  10d29e:	e9 61 ff ff ff       	jmp    10d204 <_Scheduler_priority_Block+0x20>
  10d2a3:	90                   	nop                                   
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
  10d2a4:	31 c9                	xor    %ecx,%ecx                      <== NOT EXECUTED
  10d2a6:	eb b8                	jmp    10d260 <_Scheduler_priority_Block+0x7c><== NOT EXECUTED
                                                                      

0010d3f8 <_Scheduler_priority_Schedule>: #include <rtems/system.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulerpriority.h> void _Scheduler_priority_Schedule(void) {
  10d3f8:	55                   	push   %ebp                           
  10d3f9:	89 e5                	mov    %esp,%ebp                      
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
  10d3fb:	66 8b 0d 20 84 12 00 	mov    0x128420,%cx                   
  10d402:	31 c0                	xor    %eax,%eax                      
  10d404:	89 c2                	mov    %eax,%edx                      
  10d406:	66 0f bc d1          	bsf    %cx,%dx                        
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
  10d40a:	0f b7 d2             	movzwl %dx,%edx                       
  10d40d:	66 8b 8c 12 40 84 12 	mov    0x128440(%edx,%edx,1),%cx      
  10d414:	00                                                          
  10d415:	66 0f bc c1          	bsf    %cx,%ax                        
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
  10d419:	c1 e2 04             	shl    $0x4,%edx                      
  10d41c:	0f b7 c0             	movzwl %ax,%eax                       
  10d41f:	8d 04 02             	lea    (%edx,%eax,1),%eax             
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
  10d422:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10d425:	c1 e0 02             	shl    $0x2,%eax                      
  10d428:	03 05 40 3a 12 00    	add    0x123a40,%eax                  
  _Scheduler_priority_Schedule_body();                                
}                                                                     
  10d42e:	8b 10                	mov    (%eax),%edx                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10d430:	83 c0 04             	add    $0x4,%eax                      
  10d433:	39 c2                	cmp    %eax,%edx                      
  10d435:	74 09                	je     10d440 <_Scheduler_priority_Schedule+0x48><== NEVER TAKEN
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
  10d437:	89 15 fc 83 12 00    	mov    %edx,0x1283fc                  
  10d43d:	c9                   	leave                                 
  10d43e:	c3                   	ret                                   
  10d43f:	90                   	nop                                   
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
  10d440:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
  10d442:	89 15 fc 83 12 00    	mov    %edx,0x1283fc                  <== NOT EXECUTED
  10d448:	c9                   	leave                                 <== NOT EXECUTED
  10d449:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010d51c <_Scheduler_priority_Yield>: * ready chain * select heir */ void _Scheduler_priority_Yield(void) {
  10d51c:	55                   	push   %ebp                           
  10d51d:	89 e5                	mov    %esp,%ebp                      
  10d51f:	56                   	push   %esi                           
  10d520:	53                   	push   %ebx                           
  Scheduler_priority_Per_thread *sched_info;                          
  ISR_Level                      level;                               
  Thread_Control                *executing;                           
  Chain_Control                 *ready;                               
                                                                      
  executing  = _Thread_Executing;                                     
  10d521:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
  sched_info = (Scheduler_priority_Per_thread *) executing->scheduler_info;
  ready      = sched_info->ready_chain;                               
  10d526:	8b 90 8c 00 00 00    	mov    0x8c(%eax),%edx                
  10d52c:	8b 12                	mov    (%edx),%edx                    
  _ISR_Disable( level );                                              
  10d52e:	9c                   	pushf                                 
  10d52f:	fa                   	cli                                   
  10d530:	59                   	pop    %ecx                           
    if ( !_Chain_Has_only_one_node( ready ) ) {                       
  10d531:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  10d534:	39 1a                	cmp    %ebx,(%edx)                    
  10d536:	74 40                	je     10d578 <_Scheduler_priority_Yield+0x5c>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10d538:	8b 30                	mov    (%eax),%esi                    
  previous       = the_node->previous;                                
  10d53a:	8b 58 04             	mov    0x4(%eax),%ebx                 
  next->previous = previous;                                          
  10d53d:	89 5e 04             	mov    %ebx,0x4(%esi)                 
  previous->next = next;                                              
  10d540:	89 33                	mov    %esi,(%ebx)                    
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
  10d542:	8b 5a 08             	mov    0x8(%edx),%ebx                 
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(                  
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10d545:	8d 72 04             	lea    0x4(%edx),%esi                 
  10d548:	89 30                	mov    %esi,(%eax)                    
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
  10d54a:	89 42 08             	mov    %eax,0x8(%edx)                 
  old_last->next = the_node;                                          
  10d54d:	89 03                	mov    %eax,(%ebx)                    
  the_node->previous = old_last;                                      
  10d54f:	89 58 04             	mov    %ebx,0x4(%eax)                 
      _Chain_Extract_unprotected( &executing->Object.Node );          
      _Chain_Append_unprotected( ready, &executing->Object.Node );    
                                                                      
      _ISR_Flash( level );                                            
  10d552:	51                   	push   %ecx                           
  10d553:	9d                   	popf                                  
  10d554:	fa                   	cli                                   
                                                                      
      if ( _Thread_Is_heir( executing ) )                             
  10d555:	3b 05 fc 83 12 00    	cmp    0x1283fc,%eax                  
  10d55b:	74 0f                	je     10d56c <_Scheduler_priority_Yield+0x50>
        _Thread_Heir = (Thread_Control *) _Chain_First( ready );      
      _Thread_Dispatch_necessary = true;                              
    }                                                                 
    else if ( !_Thread_Is_heir( executing ) )                         
      _Thread_Dispatch_necessary = true;                              
  10d55d:	c6 05 04 84 12 00 01 	movb   $0x1,0x128404                  
                                                                      
  _ISR_Enable( level );                                               
  10d564:	51                   	push   %ecx                           
  10d565:	9d                   	popf                                  
}                                                                     
  10d566:	5b                   	pop    %ebx                           
  10d567:	5e                   	pop    %esi                           
  10d568:	c9                   	leave                                 
  10d569:	c3                   	ret                                   
  10d56a:	66 90                	xchg   %ax,%ax                        
      _Chain_Append_unprotected( ready, &executing->Object.Node );    
                                                                      
      _ISR_Flash( level );                                            
                                                                      
      if ( _Thread_Is_heir( executing ) )                             
        _Thread_Heir = (Thread_Control *) _Chain_First( ready );      
  10d56c:	8b 02                	mov    (%edx),%eax                    
  10d56e:	a3 fc 83 12 00       	mov    %eax,0x1283fc                  
  10d573:	eb e8                	jmp    10d55d <_Scheduler_priority_Yield+0x41>
  10d575:	8d 76 00             	lea    0x0(%esi),%esi                 
      _Thread_Dispatch_necessary = true;                              
    }                                                                 
    else if ( !_Thread_Is_heir( executing ) )                         
  10d578:	3b 05 fc 83 12 00    	cmp    0x1283fc,%eax                  
  10d57e:	75 dd                	jne    10d55d <_Scheduler_priority_Yield+0x41>
  10d580:	eb e2                	jmp    10d564 <_Scheduler_priority_Yield+0x48>
                                                                      

0010db38 <_TOD_Set>: */ void _TOD_Set( const struct timespec *time ) {
  10db38:	55                   	push   %ebp                           
  10db39:	89 e5                	mov    %esp,%ebp                      
  10db3b:	53                   	push   %ebx                           
  10db3c:	83 ec 04             	sub    $0x4,%esp                      
  10db3f:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10db42:	a1 90 ba 12 00       	mov    0x12ba90,%eax                  
  10db47:	40                   	inc    %eax                           
  10db48:	a3 90 ba 12 00       	mov    %eax,0x12ba90                  
  long seconds;                                                       
                                                                      
  _Thread_Disable_dispatch();                                         
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
  10db4d:	a1 28 bb 12 00       	mov    0x12bb28,%eax                  
                                                                      
  if ( time->tv_sec < seconds )                                       
  10db52:	8b 13                	mov    (%ebx),%edx                    
  10db54:	39 d0                	cmp    %edx,%eax                      
  10db56:	7f 34                	jg     10db8c <_TOD_Set+0x54>         
  Watchdog_Adjust_directions direction,                               
  Watchdog_Interval          units                                    
)                                                                     
{                                                                     
                                                                      
  _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units );     
  10db58:	51                   	push   %ecx                           
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  else                                                                
    _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - seconds );
  10db59:	29 c2                	sub    %eax,%edx                      
  10db5b:	52                   	push   %edx                           
  10db5c:	6a 00                	push   $0x0                           
  10db5e:	68 54 bb 12 00       	push   $0x12bb54                      
  10db63:	e8 20 25 00 00       	call   110088 <_Watchdog_Adjust>      
  10db68:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  /* POSIX format TOD (timespec) */                                   
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
  10db6b:	8b 03                	mov    (%ebx),%eax                    
  10db6d:	a3 28 bb 12 00       	mov    %eax,0x12bb28                  
  10db72:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10db75:	a3 2c bb 12 00       	mov    %eax,0x12bb2c                  
  _TOD_Is_set = true;                                                 
  10db7a:	c6 05 a4 ba 12 00 01 	movb   $0x1,0x12baa4                  
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
}                                                                     
  10db81:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10db84:	c9                   	leave                                 
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
  _TOD_Is_set = true;                                                 
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10db85:	e9 12 16 00 00       	jmp    10f19c <_Thread_Enable_dispatch>
  10db8a:	66 90                	xchg   %ax,%ax                        
  10db8c:	51                   	push   %ecx                           
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
                                                                      
  if ( time->tv_sec < seconds )                                       
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  10db8d:	29 d0                	sub    %edx,%eax                      
  10db8f:	50                   	push   %eax                           
  10db90:	6a 01                	push   $0x1                           
  10db92:	68 54 bb 12 00       	push   $0x12bb54                      
  10db97:	e8 ec 24 00 00       	call   110088 <_Watchdog_Adjust>      
  10db9c:	83 c4 10             	add    $0x10,%esp                     
  10db9f:	eb ca                	jmp    10db6b <_TOD_Set+0x33>         
                                                                      

0010c244 <_TOD_To_seconds>: */ uint32_t _TOD_To_seconds( const rtems_time_of_day *the_tod ) {
  10c244:	55                   	push   %ebp                           
  10c245:	89 e5                	mov    %esp,%ebp                      
  10c247:	56                   	push   %esi                           
  10c248:	53                   	push   %ebx                           
  10c249:	8b 55 08             	mov    0x8(%ebp),%edx                 
  uint32_t   time;                                                    
  uint32_t   year_mod_4;                                              
                                                                      
  time = the_tod->day - 1;                                            
  10c24c:	8b 72 08             	mov    0x8(%edx),%esi                 
  10c24f:	4e                   	dec    %esi                           
  year_mod_4 = the_tod->year & 3;                                     
  10c250:	8b 02                	mov    (%edx),%eax                    
                                                                      
  if ( year_mod_4 == 0 )                                              
  10c252:	89 c3                	mov    %eax,%ebx                      
  10c254:	83 e3 03             	and    $0x3,%ebx                      
  10c257:	74 67                	je     10c2c0 <_TOD_To_seconds+0x7c>  
    time += _TOD_Days_to_date[ 1 ][ the_tod->month ];                 
  else                                                                
    time += _TOD_Days_to_date[ 0 ][ the_tod->month ];                 
  10c259:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  10c25c:	0f b7 8c 09 80 43 12 	movzwl 0x124380(%ecx,%ecx,1),%ecx     
  10c263:	00                                                          
  10c264:	8d 34 31             	lea    (%ecx,%esi,1),%esi             
                                                                      
  time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) *                   
            ( (TOD_DAYS_PER_YEAR * 4) + 1);                           
                                                                      
  time += _TOD_Days_since_last_leap_year[ year_mod_4 ];               
  10c267:	0f b7 8c 1b b4 43 12 	movzwl 0x1243b4(%ebx,%ebx,1),%ecx     
  10c26e:	00                                                          
  if ( year_mod_4 == 0 )                                              
    time += _TOD_Days_to_date[ 1 ][ the_tod->month ];                 
  else                                                                
    time += _TOD_Days_to_date[ 0 ][ the_tod->month ];                 
                                                                      
  time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) *                   
  10c26f:	2d c4 07 00 00       	sub    $0x7c4,%eax                    
  10c274:	c1 e8 02             	shr    $0x2,%eax                      
  10c277:	8d 1c c0             	lea    (%eax,%eax,8),%ebx             
  10c27a:	8d 1c d8             	lea    (%eax,%ebx,8),%ebx             
  10c27d:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx             
  10c280:	8d 04 98             	lea    (%eax,%ebx,4),%eax             
  10c283:	01 c1                	add    %eax,%ecx                      
            ( (TOD_DAYS_PER_YEAR * 4) + 1);                           
                                                                      
  time += _TOD_Days_since_last_leap_year[ year_mod_4 ];               
  10c285:	01 f1                	add    %esi,%ecx                      
                                                                      
  time *= TOD_SECONDS_PER_DAY;                                        
  10c287:	8d 04 89             	lea    (%ecx,%ecx,4),%eax             
  10c28a:	8d 04 81             	lea    (%ecx,%eax,4),%eax             
  10c28d:	8d 04 c1             	lea    (%ecx,%eax,8),%eax             
  10c290:	c1 e0 02             	shl    $0x2,%eax                      
  10c293:	29 c8                	sub    %ecx,%eax                      
  10c295:	c1 e0 07             	shl    $0x7,%eax                      
                                                                      
  time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute)  
  10c298:	8b 5a 14             	mov    0x14(%edx),%ebx                
  10c29b:	8b 4a 0c             	mov    0xc(%edx),%ecx                 
  10c29e:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx             
  10c2a1:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx             
  10c2a4:	c1 e1 02             	shl    $0x2,%ecx                      
  10c2a7:	03 4a 10             	add    0x10(%edx),%ecx                
             * TOD_SECONDS_PER_MINUTE;                                
  10c2aa:	8d 14 49             	lea    (%ecx,%ecx,2),%edx             
  10c2ad:	8d 14 92             	lea    (%edx,%edx,4),%edx             
                                                                      
  time += the_tod->second;                                            
  10c2b0:	8d 94 93 00 e5 da 21 	lea    0x21dae500(%ebx,%edx,4),%edx   
                                                                      
  time += TOD_SECONDS_1970_THROUGH_1988;                              
  10c2b7:	8d 04 02             	lea    (%edx,%eax,1),%eax             
                                                                      
  return( time );                                                     
}                                                                     
  10c2ba:	5b                   	pop    %ebx                           
  10c2bb:	5e                   	pop    %esi                           
  10c2bc:	c9                   	leave                                 
  10c2bd:	c3                   	ret                                   
  10c2be:	66 90                	xchg   %ax,%ax                        
                                                                      
  time = the_tod->day - 1;                                            
  year_mod_4 = the_tod->year & 3;                                     
                                                                      
  if ( year_mod_4 == 0 )                                              
    time += _TOD_Days_to_date[ 1 ][ the_tod->month ];                 
  10c2c0:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  10c2c3:	0f b7 8c 09 9a 43 12 	movzwl 0x12439a(%ecx,%ecx,1),%ecx     
  10c2ca:	00                                                          
  10c2cb:	8d 34 31             	lea    (%ecx,%esi,1),%esi             
  10c2ce:	eb 97                	jmp    10c267 <_TOD_To_seconds+0x23>  
                                                                      

0010c2d0 <_TOD_Validate>: */ bool _TOD_Validate( const rtems_time_of_day *the_tod ) {
  10c2d0:	55                   	push   %ebp                           
  10c2d1:	89 e5                	mov    %esp,%ebp                      
  10c2d3:	53                   	push   %ebx                           
  10c2d4:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
  10c2d7:	8b 1d ec 72 12 00    	mov    0x1272ec,%ebx                  
  if ((!the_tod)                                  ||                  
  10c2dd:	85 c9                	test   %ecx,%ecx                      
  10c2df:	74 53                	je     10c334 <_TOD_Validate+0x64>    <== NEVER TAKEN
)                                                                     
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
  10c2e1:	b8 40 42 0f 00       	mov    $0xf4240,%eax                  
  10c2e6:	31 d2                	xor    %edx,%edx                      
  10c2e8:	f7 f3                	div    %ebx                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
  10c2ea:	3b 41 18             	cmp    0x18(%ecx),%eax                
  10c2ed:	76 45                	jbe    10c334 <_TOD_Validate+0x64>    
      (the_tod->ticks  >= ticks_per_second)       ||                  
  10c2ef:	83 79 14 3b          	cmpl   $0x3b,0x14(%ecx)               
  10c2f3:	77 3f                	ja     10c334 <_TOD_Validate+0x64>    
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
  10c2f5:	83 79 10 3b          	cmpl   $0x3b,0x10(%ecx)               
  10c2f9:	77 39                	ja     10c334 <_TOD_Validate+0x64>    
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
  10c2fb:	83 79 0c 17          	cmpl   $0x17,0xc(%ecx)                
  10c2ff:	77 33                	ja     10c334 <_TOD_Validate+0x64>    
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
  10c301:	8b 41 04             	mov    0x4(%ecx),%eax                 
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
  10c304:	85 c0                	test   %eax,%eax                      
  10c306:	74 2c                	je     10c334 <_TOD_Validate+0x64>    <== NEVER TAKEN
      (the_tod->month  == 0)                      ||                  
  10c308:	83 f8 0c             	cmp    $0xc,%eax                      
  10c30b:	77 27                	ja     10c334 <_TOD_Validate+0x64>    
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
  10c30d:	8b 11                	mov    (%ecx),%edx                    
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
  10c30f:	81 fa c3 07 00 00    	cmp    $0x7c3,%edx                    
  10c315:	76 1d                	jbe    10c334 <_TOD_Validate+0x64>    
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
  10c317:	8b 49 08             	mov    0x8(%ecx),%ecx                 
      (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)          ||                  
  10c31a:	85 c9                	test   %ecx,%ecx                      
  10c31c:	74 16                	je     10c334 <_TOD_Validate+0x64>    <== NEVER TAKEN
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
  10c31e:	83 e2 03             	and    $0x3,%edx                      
  10c321:	75 16                	jne    10c339 <_TOD_Validate+0x69>    
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
  10c323:	8b 04 85 f4 43 12 00 	mov    0x1243f4(,%eax,4),%eax         
 *    false - if the the_tod is invalid                               
 *                                                                    
 *  NOTE: This routine only works for leap-years through 2099.        
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  10c32a:	39 c8                	cmp    %ecx,%eax                      
  10c32c:	0f 93 c0             	setae  %al                            
  10c32f:	eb 05                	jmp    10c336 <_TOD_Validate+0x66>    
  10c331:	8d 76 00             	lea    0x0(%esi),%esi                 
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
     return false;                                                    
  10c334:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  10c336:	5b                   	pop    %ebx                           
  10c337:	c9                   	leave                                 
  10c338:	c3                   	ret                                   
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
  10c339:	8b 04 85 c0 43 12 00 	mov    0x1243c0(,%eax,4),%eax         
  10c340:	eb e8                	jmp    10c32a <_TOD_Validate+0x5a>    
                                                                      

0010d5d0 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
  10d5d0:	55                   	push   %ebp                           
  10d5d1:	89 e5                	mov    %esp,%ebp                      
  10d5d3:	57                   	push   %edi                           
  10d5d4:	56                   	push   %esi                           
  10d5d5:	53                   	push   %ebx                           
  10d5d6:	83 ec 28             	sub    $0x28,%esp                     
  10d5d9:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d5dc:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10d5df:	8a 45 10             	mov    0x10(%ebp),%al                 
  10d5e2:	88 45 e7             	mov    %al,-0x19(%ebp)                
  States_Control state, original_state;                               
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
  10d5e5:	8b 7b 10             	mov    0x10(%ebx),%edi                
  /*                                                                  
   * 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 );                                
  10d5e8:	53                   	push   %ebx                           
  10d5e9:	e8 7a 0c 00 00       	call   10e268 <_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 )                  
  10d5ee:	83 c4 10             	add    $0x10,%esp                     
  10d5f1:	39 73 14             	cmp    %esi,0x14(%ebx)                
  10d5f4:	74 0d                	je     10d603 <_Thread_Change_priority+0x33>
    _Thread_Set_priority( the_thread, new_priority );                 
  10d5f6:	83 ec 08             	sub    $0x8,%esp                      
  10d5f9:	56                   	push   %esi                           
  10d5fa:	53                   	push   %ebx                           
  10d5fb:	e8 14 0c 00 00       	call   10e214 <_Thread_Set_priority>  
  10d600:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  _ISR_Disable( level );                                              
  10d603:	9c                   	pushf                                 
  10d604:	fa                   	cli                                   
  10d605:	5e                   	pop    %esi                           
                                                                      
  /*                                                                  
   *  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;                                  
  10d606:	8b 43 10             	mov    0x10(%ebx),%eax                
  if ( state != STATES_TRANSIENT ) {                                  
  10d609:	83 f8 04             	cmp    $0x4,%eax                      
  10d60c:	74 22                	je     10d630 <_Thread_Change_priority+0x60>
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
  10d60e:	83 e7 04             	and    $0x4,%edi                      
  10d611:	74 11                	je     10d624 <_Thread_Change_priority+0x54><== ALWAYS TAKEN
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
  10d613:	56                   	push   %esi                           
  10d614:	9d                   	popf                                  
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
  10d615:	a9 e0 be 03 00       	test   $0x3bee0,%eax                  
  10d61a:	75 60                	jne    10d67c <_Thread_Change_priority+0xac>
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
  10d61c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d61f:	5b                   	pop    %ebx                           
  10d620:	5e                   	pop    %esi                           
  10d621:	5f                   	pop    %edi                           
  10d622:	c9                   	leave                                 
  10d623:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
  10d624:	89 c2                	mov    %eax,%edx                      
  10d626:	83 e2 fb             	and    $0xfffffffb,%edx               
  10d629:	89 53 10             	mov    %edx,0x10(%ebx)                
  10d62c:	eb e5                	jmp    10d613 <_Thread_Change_priority+0x43>
  10d62e:	66 90                	xchg   %ax,%ax                        
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
  10d630:	83 e7 04             	and    $0x4,%edi                      
  10d633:	75 1a                	jne    10d64f <_Thread_Change_priority+0x7f><== NEVER TAKEN
     *  Interrupts are STILL disabled.                                
     *  We now know the thread will be in the READY state when we remove
     *  the TRANSIENT state.  So we have to place it on the appropriate
     *  Ready Queue with interrupts off.                              
     */                                                               
    the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
  10d635:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
                                                                      
    if ( prepend_it )                                                 
  10d63c:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)               
  10d640:	74 52                	je     10d694 <_Thread_Change_priority+0xc4>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(                   
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue_first( the_thread );                  
  10d642:	83 ec 0c             	sub    $0xc,%esp                      
  10d645:	53                   	push   %ebx                           
  10d646:	ff 15 68 3a 12 00    	call   *0x123a68                      
  10d64c:	83 c4 10             	add    $0x10,%esp                     
      _Scheduler_Enqueue_first( the_thread );                         
    else                                                              
      _Scheduler_Enqueue( the_thread );                               
  }                                                                   
                                                                      
  _ISR_Flash( level );                                                
  10d64f:	56                   	push   %esi                           
  10d650:	9d                   	popf                                  
  10d651:	fa                   	cli                                   
 *  This kernel routine implements the scheduling decision logic for  
 *  the scheduler. It does NOT dispatch.                              
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( void )                 
{                                                                     
  _Scheduler.Operations.schedule();                                   
  10d652:	ff 15 48 3a 12 00    	call   *0x123a48                      
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
  10d658:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
   *  We altered the set of thread priorities.  So let's figure out   
   *  who is the heir and if we need to switch to them.               
   */                                                                 
  _Scheduler_Schedule();                                              
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
  10d65d:	3b 05 fc 83 12 00    	cmp    0x1283fc,%eax                  
  10d663:	74 0d                	je     10d672 <_Thread_Change_priority+0xa2>
  10d665:	80 78 74 00          	cmpb   $0x0,0x74(%eax)                
  10d669:	74 07                	je     10d672 <_Thread_Change_priority+0xa2>
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  10d66b:	c6 05 04 84 12 00 01 	movb   $0x1,0x128404                  
  _ISR_Enable( level );                                               
  10d672:	56                   	push   %esi                           
  10d673:	9d                   	popf                                  
}                                                                     
  10d674:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d677:	5b                   	pop    %ebx                           
  10d678:	5e                   	pop    %esi                           
  10d679:	5f                   	pop    %edi                           
  10d67a:	c9                   	leave                                 
  10d67b:	c3                   	ret                                   
    /* 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 );    
  10d67c:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  10d67f:	8b 43 44             	mov    0x44(%ebx),%eax                
  10d682:	89 45 08             	mov    %eax,0x8(%ebp)                 
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
  10d685:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d688:	5b                   	pop    %ebx                           
  10d689:	5e                   	pop    %esi                           
  10d68a:	5f                   	pop    %edi                           
  10d68b:	c9                   	leave                                 
    /* 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 );    
  10d68c:	e9 eb 0a 00 00       	jmp    10e17c <_Thread_queue_Requeue> 
  10d691:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(                         
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue( the_thread );                        
  10d694:	83 ec 0c             	sub    $0xc,%esp                      
  10d697:	53                   	push   %ebx                           
  10d698:	ff 15 64 3a 12 00    	call   *0x123a64                      
  10d69e:	83 c4 10             	add    $0x10,%esp                     
  10d6a1:	eb ac                	jmp    10d64f <_Thread_Change_priority+0x7f>
                                                                      

0010d6a4 <_Thread_Clear_state>: */ void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) {
  10d6a4:	55                   	push   %ebp                           
  10d6a5:	89 e5                	mov    %esp,%ebp                      
  10d6a7:	53                   	push   %ebx                           
  10d6a8:	83 ec 04             	sub    $0x4,%esp                      
  10d6ab:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d6ae:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
  10d6b1:	9c                   	pushf                                 
  10d6b2:	fa                   	cli                                   
  10d6b3:	5b                   	pop    %ebx                           
    current_state = the_thread->current_state;                        
  10d6b4:	8b 4a 10             	mov    0x10(%edx),%ecx                
                                                                      
    if ( current_state & state ) {                                    
  10d6b7:	85 c8                	test   %ecx,%eax                      
  10d6b9:	74 0b                	je     10d6c6 <_Thread_Clear_state+0x22>
  10d6bb:	f7 d0                	not    %eax                           
  10d6bd:	21 c8                	and    %ecx,%eax                      
      current_state =                                                 
      the_thread->current_state = _States_Clear( state, current_state );
  10d6bf:	89 42 10             	mov    %eax,0x10(%edx)                
                                                                      
      if ( _States_Is_ready( current_state ) ) {                      
  10d6c2:	85 c0                	test   %eax,%eax                      
  10d6c4:	74 0a                	je     10d6d0 <_Thread_Clear_state+0x2c>
        _Scheduler_Unblock( the_thread );                             
      }                                                               
  }                                                                   
  _ISR_Enable( level );                                               
  10d6c6:	53                   	push   %ebx                           
  10d6c7:	9d                   	popf                                  
}                                                                     
  10d6c8:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d6cb:	c9                   	leave                                 
  10d6cc:	c3                   	ret                                   
  10d6cd:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(                         
    Thread_Control    *the_thread                                     
)                                                                     
{                                                                     
  _Scheduler.Operations.unblock( the_thread );                        
  10d6d0:	83 ec 0c             	sub    $0xc,%esp                      
  10d6d3:	52                   	push   %edx                           
  10d6d4:	ff 15 54 3a 12 00    	call   *0x123a54                      
  10d6da:	83 c4 10             	add    $0x10,%esp                     
  10d6dd:	eb e7                	jmp    10d6c6 <_Thread_Clear_state+0x22>
                                                                      

0010d854 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
  10d854:	55                   	push   %ebp                           
  10d855:	89 e5                	mov    %esp,%ebp                      
  10d857:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10d85a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d85d:	50                   	push   %eax                           
  10d85e:	ff 75 08             	pushl  0x8(%ebp)                      
  10d861:	e8 c6 01 00 00       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  10d866:	83 c4 10             	add    $0x10,%esp                     
  10d869:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d86c:	85 d2                	test   %edx,%edx                      
  10d86e:	75 1c                	jne    10d88c <_Thread_Delay_ended+0x38><== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
  10d870:	83 ec 08             	sub    $0x8,%esp                      
  10d873:	68 18 00 00 10       	push   $0x10000018                    
  10d878:	50                   	push   %eax                           
  10d879:	e8 26 fe ff ff       	call   10d6a4 <_Thread_Clear_state>   
  10d87e:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10d883:	48                   	dec    %eax                           
  10d884:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
  10d889:	83 c4 10             	add    $0x10,%esp                     
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10d88c:	c9                   	leave                                 
  10d88d:	c3                   	ret                                   
                                                                      

0010d890 <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) {
  10d890:	55                   	push   %ebp                           
  10d891:	89 e5                	mov    %esp,%ebp                      
  10d893:	57                   	push   %edi                           
  10d894:	56                   	push   %esi                           
  10d895:	53                   	push   %ebx                           
  10d896:	83 ec 1c             	sub    $0x1c,%esp                     
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  10d899:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
  _ISR_Disable( level );                                              
  10d89f:	9c                   	pushf                                 
  10d8a0:	fa                   	cli                                   
  10d8a1:	58                   	pop    %eax                           
  while ( _Thread_Dispatch_necessary == true ) {                      
  10d8a2:	8a 15 04 84 12 00    	mov    0x128404,%dl                   
  10d8a8:	84 d2                	test   %dl,%dl                        
  10d8aa:	0f 84 3c 01 00 00    	je     10d9ec <_Thread_Dispatch+0x15c>
    heir = _Thread_Heir;                                              
  10d8b0:	8b 35 fc 83 12 00    	mov    0x1283fc,%esi                  
    _Thread_Dispatch_disable_level = 1;                               
  10d8b6:	c7 05 50 7e 12 00 01 	movl   $0x1,0x127e50                  
  10d8bd:	00 00 00                                                    
    _Thread_Dispatch_necessary = false;                               
  10d8c0:	c6 05 04 84 12 00 00 	movb   $0x0,0x128404                  
    _Thread_Executing = heir;                                         
  10d8c7:	89 35 f8 83 12 00    	mov    %esi,0x1283f8                  
    /*                                                                
     *  When the heir and executing are the same, then we are being   
     *  requested to do the post switch dispatching.  This is normally
     *  done to dispatch signals.                                     
     */                                                               
    if ( heir == executing )                                          
  10d8cd:	39 f3                	cmp    %esi,%ebx                      
  10d8cf:	0f 84 17 01 00 00    	je     10d9ec <_Thread_Dispatch+0x15c>
  10d8d5:	8d 7d d8             	lea    -0x28(%ebp),%edi               
  10d8d8:	e9 f5 00 00 00       	jmp    10d9d2 <_Thread_Dispatch+0x142>
  10d8dd:	8d 76 00             	lea    0x0(%esi),%esi                 
    rtems_ada_self = heir->rtems_ada_self;                            
#endif                                                                
    if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE )
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
                                                                      
    _ISR_Enable( level );                                             
  10d8e0:	50                   	push   %eax                           
  10d8e1:	9d                   	popf                                  
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
  10d8e2:	83 ec 0c             	sub    $0xc,%esp                      
  10d8e5:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10d8e8:	50                   	push   %eax                           
  10d8e9:	e8 32 3a 00 00       	call   111320 <_TOD_Get_uptime>       
        _Timestamp_Subtract(                                          
  10d8ee:	83 c4 0c             	add    $0xc,%esp                      
  10d8f1:	57                   	push   %edi                           
  10d8f2:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10d8f5:	50                   	push   %eax                           
  10d8f6:	68 0c 7f 12 00       	push   $0x127f0c                      
  10d8fb:	e8 9c 0b 00 00       	call   10e49c <_Timespec_Subtract>    
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
  10d900:	58                   	pop    %eax                           
  10d901:	5a                   	pop    %edx                           
  10d902:	57                   	push   %edi                           
  10d903:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax                
  10d909:	50                   	push   %eax                           
  10d90a:	e8 51 0b 00 00       	call   10e460 <_Timespec_Add_to>      
        _Thread_Time_of_last_context_switch = uptime;                 
  10d90f:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10d912:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10d915:	a3 0c 7f 12 00       	mov    %eax,0x127f0c                  
  10d91a:	89 15 10 7f 12 00    	mov    %edx,0x127f10                  
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
  10d920:	a1 e4 7e 12 00       	mov    0x127ee4,%eax                  
  10d925:	83 c4 10             	add    $0x10,%esp                     
  10d928:	85 c0                	test   %eax,%eax                      
  10d92a:	74 10                	je     10d93c <_Thread_Dispatch+0xac> <== NEVER TAKEN
      executing->libc_reent = *_Thread_libc_reent;                    
  10d92c:	8b 10                	mov    (%eax),%edx                    
  10d92e:	89 93 e4 00 00 00    	mov    %edx,0xe4(%ebx)                
      *_Thread_libc_reent = heir->libc_reent;                         
  10d934:	8b 96 e4 00 00 00    	mov    0xe4(%esi),%edx                
  10d93a:	89 10                	mov    %edx,(%eax)                    
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
  10d93c:	83 ec 08             	sub    $0x8,%esp                      
  10d93f:	56                   	push   %esi                           
  10d940:	53                   	push   %ebx                           
  10d941:	e8 f6 0d 00 00       	call   10e73c <_User_extensions_Thread_switch>
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
  10d946:	5a                   	pop    %edx                           
  10d947:	59                   	pop    %ecx                           
  10d948:	81 c6 c8 00 00 00    	add    $0xc8,%esi                     
  10d94e:	56                   	push   %esi                           
  10d94f:	8d 83 c8 00 00 00    	lea    0xc8(%ebx),%eax                
  10d955:	50                   	push   %eax                           
  10d956:	e8 f5 10 00 00       	call   10ea50 <_CPU_Context_switch>   
                                                                      
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
  10d95b:	83 c4 10             	add    $0x10,%esp                     
  10d95e:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax                
  10d964:	85 c0                	test   %eax,%eax                      
  10d966:	74 36                	je     10d99e <_Thread_Dispatch+0x10e>
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (                   
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Allocated_fp );                      
  10d968:	a1 e0 7e 12 00       	mov    0x127ee0,%eax                  
  10d96d:	39 c3                	cmp    %eax,%ebx                      
  10d96f:	74 2d                	je     10d99e <_Thread_Dispatch+0x10e>
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
  10d971:	85 c0                	test   %eax,%eax                      
  10d973:	74 11                	je     10d986 <_Thread_Dispatch+0xf6> 
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
  10d975:	83 ec 0c             	sub    $0xc,%esp                      
  10d978:	05 e0 00 00 00       	add    $0xe0,%eax                     
  10d97d:	50                   	push   %eax                           
  10d97e:	e8 01 11 00 00       	call   10ea84 <_CPU_Context_save_fp>  
  10d983:	83 c4 10             	add    $0x10,%esp                     
      _Context_Restore_fp( &executing->fp_context );                  
  10d986:	83 ec 0c             	sub    $0xc,%esp                      
  10d989:	8d 83 e0 00 00 00    	lea    0xe0(%ebx),%eax                
  10d98f:	50                   	push   %eax                           
  10d990:	e8 f9 10 00 00       	call   10ea8e <_CPU_Context_restore_fp>
      _Thread_Allocated_fp = executing;                               
  10d995:	89 1d e0 7e 12 00    	mov    %ebx,0x127ee0                  
  10d99b:	83 c4 10             	add    $0x10,%esp                     
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
  10d99e:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
                                                                      
    _ISR_Disable( level );                                            
  10d9a4:	9c                   	pushf                                 
  10d9a5:	fa                   	cli                                   
  10d9a6:	58                   	pop    %eax                           
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
  10d9a7:	8a 15 04 84 12 00    	mov    0x128404,%dl                   
  10d9ad:	84 d2                	test   %dl,%dl                        
  10d9af:	74 3b                	je     10d9ec <_Thread_Dispatch+0x15c>
    heir = _Thread_Heir;                                              
  10d9b1:	8b 35 fc 83 12 00    	mov    0x1283fc,%esi                  
    _Thread_Dispatch_disable_level = 1;                               
  10d9b7:	c7 05 50 7e 12 00 01 	movl   $0x1,0x127e50                  
  10d9be:	00 00 00                                                    
    _Thread_Dispatch_necessary = false;                               
  10d9c1:	c6 05 04 84 12 00 00 	movb   $0x0,0x128404                  
    _Thread_Executing = heir;                                         
  10d9c8:	89 35 f8 83 12 00    	mov    %esi,0x1283f8                  
    /*                                                                
     *  When the heir and executing are the same, then we are being   
     *  requested to do the post switch dispatching.  This is normally
     *  done to dispatch signals.                                     
     */                                                               
    if ( heir == executing )                                          
  10d9ce:	39 de                	cmp    %ebx,%esi                      
  10d9d0:	74 1a                	je     10d9ec <_Thread_Dispatch+0x15c><== NEVER TAKEN
     */                                                               
#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 )
  10d9d2:	83 7e 7c 01          	cmpl   $0x1,0x7c(%esi)                
  10d9d6:	0f 85 04 ff ff ff    	jne    10d8e0 <_Thread_Dispatch+0x50> 
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
  10d9dc:	8b 15 20 7e 12 00    	mov    0x127e20,%edx                  
  10d9e2:	89 56 78             	mov    %edx,0x78(%esi)                
  10d9e5:	e9 f6 fe ff ff       	jmp    10d8e0 <_Thread_Dispatch+0x50> 
  10d9ea:	66 90                	xchg   %ax,%ax                        
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
post_switch:                                                          
  _Thread_Dispatch_disable_level = 0;                                 
  10d9ec:	c7 05 50 7e 12 00 00 	movl   $0x0,0x127e50                  
  10d9f3:	00 00 00                                                    
                                                                      
  _ISR_Enable( level );                                               
  10d9f6:	50                   	push   %eax                           
  10d9f7:	9d                   	popf                                  
                                                                      
  _API_extensions_Run_postswitch();                                   
  10d9f8:	e8 13 e5 ff ff       	call   10bf10 <_API_extensions_Run_postswitch>
}                                                                     
  10d9fd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10da00:	5b                   	pop    %ebx                           
  10da01:	5e                   	pop    %esi                           
  10da02:	5f                   	pop    %edi                           
  10da03:	c9                   	leave                                 
  10da04:	c3                   	ret                                   
                                                                      

0010da2c <_Thread_Get>: */ Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) {
  10da2c:	55                   	push   %ebp                           
  10da2d:	89 e5                	mov    %esp,%ebp                      
  10da2f:	53                   	push   %ebx                           
  10da30:	83 ec 04             	sub    $0x4,%esp                      
  10da33:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10da36:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  uint32_t             the_class;                                     
  Objects_Information **api_information;                              
  Objects_Information *information;                                   
  Thread_Control      *tp = (Thread_Control *) 0;                     
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) {           
  10da39:	85 c0                	test   %eax,%eax                      
  10da3b:	74 4b                	je     10da88 <_Thread_Get+0x5c>      
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
  10da3d:	89 c2                	mov    %eax,%edx                      
  10da3f:	c1 ea 18             	shr    $0x18,%edx                     
  10da42:	83 e2 07             	and    $0x7,%edx                      
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
  10da45:	8d 5a ff             	lea    -0x1(%edx),%ebx                
  10da48:	83 fb 02             	cmp    $0x2,%ebx                      
  10da4b:	77 2b                	ja     10da78 <_Thread_Get+0x4c>      
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
  10da4d:	89 c3                	mov    %eax,%ebx                      
  10da4f:	c1 eb 1b             	shr    $0x1b,%ebx                     
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
  10da52:	4b                   	dec    %ebx                           
  10da53:	75 23                	jne    10da78 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  api_information = _Objects_Information_table[ the_api ];            
  10da55:	8b 14 95 28 7e 12 00 	mov    0x127e28(,%edx,4),%edx         
   *  There is no way for this to happen if POSIX is enabled.  But there
   *  is actually a test case in sp43 for this which trips it whether or
   *  not POSIX is enabled.  So in the interest of safety, this is left
   *  on in all configurations.                                       
   */                                                                 
  if ( !api_information ) {                                           
  10da5c:	85 d2                	test   %edx,%edx                      
  10da5e:	74 18                	je     10da78 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
  10da60:	8b 52 04             	mov    0x4(%edx),%edx                 
  if ( !information ) {                                               
  10da63:	85 d2                	test   %edx,%edx                      
  10da65:	74 11                	je     10da78 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
  10da67:	53                   	push   %ebx                           
  10da68:	51                   	push   %ecx                           
  10da69:	50                   	push   %eax                           
  10da6a:	52                   	push   %edx                           
  10da6b:	e8 10 f4 ff ff       	call   10ce80 <_Objects_Get>          
  10da70:	83 c4 10             	add    $0x10,%esp                     
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10da73:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10da76:	c9                   	leave                                 
  10da77:	c3                   	ret                                   
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
  if ( !information ) {                                               
    *location = OBJECTS_ERROR;                                        
  10da78:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)                    
{                                                                     
  uint32_t             the_api;                                       
  uint32_t             the_class;                                     
  Objects_Information **api_information;                              
  Objects_Information *information;                                   
  Thread_Control      *tp = (Thread_Control *) 0;                     
  10da7e:	31 c0                	xor    %eax,%eax                      
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10da80:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10da83:	c9                   	leave                                 
  10da84:	c3                   	ret                                   
  10da85:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10da88:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10da8d:	40                   	inc    %eax                           
  10da8e:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
  Objects_Information *information;                                   
  Thread_Control      *tp = (Thread_Control *) 0;                     
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) {           
    _Thread_Disable_dispatch();                                       
    *location = OBJECTS_LOCAL;                                        
  10da93:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)                    
    tp = _Thread_Executing;                                           
  10da99:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10da9e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10daa1:	c9                   	leave                                 
  10daa2:	c3                   	ret                                   
                                                                      

0011311c <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) {
  11311c:	55                   	push   %ebp                           
  11311d:	89 e5                	mov    %esp,%ebp                      
  11311f:	53                   	push   %ebx                           
  113120:	83 ec 14             	sub    $0x14,%esp                     
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    static char doneConstructors;                                     
    char doneCons;                                                    
  #endif                                                              
                                                                      
  executing = _Thread_Executing;                                      
  113123:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
  /*                                                                  
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
  113129:	8b 83 ac 00 00 00    	mov    0xac(%ebx),%eax                
  _ISR_Set_level(level);                                              
  11312f:	85 c0                	test   %eax,%eax                      
  113131:	74 79                	je     1131ac <_Thread_Handler+0x90>  
  113133:	fa                   	cli                                   
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
  113134:	a0 cc 7a 12 00       	mov    0x127acc,%al                   
  113139:	88 45 f7             	mov    %al,-0x9(%ebp)                 
    doneConstructors = 1;                                             
  11313c:	c6 05 cc 7a 12 00 01 	movb   $0x1,0x127acc                  
  #endif                                                              
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                        
      if ( (executing->fp_context != NULL) &&                         
  113143:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax                
  113149:	85 c0                	test   %eax,%eax                      
  11314b:	74 24                	je     113171 <_Thread_Handler+0x55>  
#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 );                      
  11314d:	a1 e0 7e 12 00       	mov    0x127ee0,%eax                  
  113152:	39 c3                	cmp    %eax,%ebx                      
  113154:	74 1b                	je     113171 <_Thread_Handler+0x55>  
            !_Thread_Is_allocated_fp( executing ) ) {                 
        if ( _Thread_Allocated_fp != NULL )                           
  113156:	85 c0                	test   %eax,%eax                      
  113158:	74 11                	je     11316b <_Thread_Handler+0x4f>  
          _Context_Save_fp( &_Thread_Allocated_fp->fp_context );      
  11315a:	83 ec 0c             	sub    $0xc,%esp                      
  11315d:	05 e0 00 00 00       	add    $0xe0,%eax                     
  113162:	50                   	push   %eax                           
  113163:	e8 1c b9 ff ff       	call   10ea84 <_CPU_Context_save_fp>  
  113168:	83 c4 10             	add    $0x10,%esp                     
        _Thread_Allocated_fp = executing;                             
  11316b:	89 1d e0 7e 12 00    	mov    %ebx,0x127ee0                  
  /*                                                                  
   * 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 );                         
  113171:	83 ec 0c             	sub    $0xc,%esp                      
  113174:	53                   	push   %ebx                           
  113175:	e8 26 b4 ff ff       	call   10e5a0 <_User_extensions_Thread_begin>
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
  _Thread_Enable_dispatch();                                          
  11317a:	e8 89 a8 ff ff       	call   10da08 <_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) */ {                 
  11317f:	83 c4 10             	add    $0x10,%esp                     
  113182:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)                
  113186:	74 28                	je     1131b0 <_Thread_Handler+0x94>  
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
  113188:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax                
  11318e:	85 c0                	test   %eax,%eax                      
  113190:	74 2d                	je     1131bf <_Thread_Handler+0xa3>  
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
        executing->Start.numeric_argument                             
      );                                                              
  }                                                                   
  #if defined(RTEMS_POSIX_API)                                        
    else if ( executing->Start.prototype == THREAD_START_POINTER ) {  
  113192:	48                   	dec    %eax                           
  113193:	74 43                	je     1131d8 <_Thread_Handler+0xbc>  <== ALWAYS TAKEN
   *  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 );                       
  113195:	83 ec 0c             	sub    $0xc,%esp                      
  113198:	53                   	push   %ebx                           
  113199:	e8 3e b4 ff ff       	call   10e5dc <_User_extensions_Thread_exitted>
                                                                      
  _Internal_error_Occurred(                                           
  11319e:	83 c4 0c             	add    $0xc,%esp                      
  1131a1:	6a 05                	push   $0x5                           
  1131a3:	6a 01                	push   $0x1                           
  1131a5:	6a 00                	push   $0x0                           
  1131a7:	e8 90 97 ff ff       	call   10c93c <_Internal_error_Occurred>
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
  1131ac:	fb                   	sti                                   
  1131ad:	eb 85                	jmp    113134 <_Thread_Handler+0x18>  
  1131af:	90                   	nop                                   
     *  _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) */ {                 
      INIT_NAME ();                                                   
  1131b0:	e8 4b c7 00 00       	call   11f900 <__start_set_sysctl_set>
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
  1131b5:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax                
  1131bb:	85 c0                	test   %eax,%eax                      
  1131bd:	75 d3                	jne    113192 <_Thread_Handler+0x76>  
    executing->Wait.return_argument =                                 
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
  1131bf:	83 ec 0c             	sub    $0xc,%esp                      
  1131c2:	ff b3 9c 00 00 00    	pushl  0x9c(%ebx)                     
  1131c8:	ff 93 90 00 00 00    	call   *0x90(%ebx)                    
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
    executing->Wait.return_argument =                                 
  1131ce:	89 43 28             	mov    %eax,0x28(%ebx)                
  1131d1:	83 c4 10             	add    $0x10,%esp                     
  1131d4:	eb bf                	jmp    113195 <_Thread_Handler+0x79>  
  1131d6:	66 90                	xchg   %ax,%ax                        
      );                                                              
  }                                                                   
  #if defined(RTEMS_POSIX_API)                                        
    else if ( executing->Start.prototype == THREAD_START_POINTER ) {  
      executing->Wait.return_argument =                               
        (*(Thread_Entry_pointer) executing->Start.entry_point)(       
  1131d8:	83 ec 0c             	sub    $0xc,%esp                      
  1131db:	ff b3 98 00 00 00    	pushl  0x98(%ebx)                     
  1131e1:	ff 93 90 00 00 00    	call   *0x90(%ebx)                    
        executing->Start.numeric_argument                             
      );                                                              
  }                                                                   
  #if defined(RTEMS_POSIX_API)                                        
    else if ( executing->Start.prototype == THREAD_START_POINTER ) {  
      executing->Wait.return_argument =                               
  1131e7:	89 43 28             	mov    %eax,0x28(%ebx)                
  1131ea:	83 c4 10             	add    $0x10,%esp                     
  1131ed:	eb a6                	jmp    113195 <_Thread_Handler+0x79>  
                                                                      

0010daa4 <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) {
  10daa4:	55                   	push   %ebp                           
  10daa5:	89 e5                	mov    %esp,%ebp                      
  10daa7:	57                   	push   %edi                           
  10daa8:	56                   	push   %esi                           
  10daa9:	53                   	push   %ebx                           
  10daaa:	83 ec 1c             	sub    $0x1c,%esp                     
  10daad:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10dab0:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10dab3:	8b 75 14             	mov    0x14(%ebp),%esi                
  10dab6:	8b 7d 1c             	mov    0x1c(%ebp),%edi                
  10dab9:	8a 55 18             	mov    0x18(%ebp),%dl                 
  10dabc:	8a 45 20             	mov    0x20(%ebp),%al                 
  10dabf:	88 45 df             	mov    %al,-0x21(%ebp)                
                                                                      
  /*                                                                  
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
  10dac2:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)                
  10dac9:	00 00 00                                                    
  10dacc:	c7 83 ec 00 00 00 00 	movl   $0x0,0xec(%ebx)                
  10dad3:	00 00 00                                                    
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
  10dad6:	c7 83 e4 00 00 00 00 	movl   $0x0,0xe4(%ebx)                
  10dadd:	00 00 00                                                    
    if ( !actual_stack_size || actual_stack_size < stack_size )       
      return false;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
  #else                                                               
    if ( !stack_area ) {                                              
  10dae0:	85 c9                	test   %ecx,%ecx                      
  10dae2:	0f 84 d3 01 00 00    	je     10dcbb <_Thread_Initialize+0x217>
      stack = the_thread->Start.stack;                                
      the_thread->Start.core_allocated_stack = true;                  
    } else {                                                          
      stack = stack_area;                                             
      actual_stack_size = stack_size;                                 
      the_thread->Start.core_allocated_stack = false;                 
  10dae8:	c6 83 b4 00 00 00 00 	movb   $0x0,0xb4(%ebx)                
  10daef:	89 f0                	mov    %esi,%eax                      
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
  10daf1:	89 8b bc 00 00 00    	mov    %ecx,0xbc(%ebx)                
  the_stack->size = size;                                             
  10daf7:	89 83 b8 00 00 00    	mov    %eax,0xb8(%ebx)                
                                                                      
  /*                                                                  
   *  Allocate the floating point area for this thread                
   */                                                                 
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    if ( is_fp ) {                                                    
  10dafd:	84 d2                	test   %dl,%dl                        
  10daff:	0f 85 4f 01 00 00    	jne    10dc54 <_Thread_Initialize+0x1b0>
  10db05:	31 c0                	xor    %eax,%eax                      
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    fp_area = NULL;                                                   
  10db07:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
      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;                           
  10db0e:	89 83 e0 00 00 00    	mov    %eax,0xe0(%ebx)                
    the_thread->Start.fp_context = fp_area;                           
  10db14:	89 83 c0 00 00 00    	mov    %eax,0xc0(%ebx)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10db1a:	c7 43 50 00 00 00 00 	movl   $0x0,0x50(%ebx)                
  the_watchdog->routine   = routine;                                  
  10db21:	c7 43 64 00 00 00 00 	movl   $0x0,0x64(%ebx)                
  the_watchdog->id        = id;                                       
  10db28:	c7 43 68 00 00 00 00 	movl   $0x0,0x68(%ebx)                
  the_watchdog->user_data = user_data;                                
  10db2f:	c7 43 6c 00 00 00 00 	movl   $0x0,0x6c(%ebx)                
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
  10db36:	a1 f0 7e 12 00       	mov    0x127ef0,%eax                  
  10db3b:	85 c0                	test   %eax,%eax                      
  10db3d:	0f 85 39 01 00 00    	jne    10dc7c <_Thread_Initialize+0x1d8>
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10db43:	c7 83 f0 00 00 00 00 	movl   $0x0,0xf0(%ebx)                
  10db4a:	00 00 00                                                    
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
                                                                      
  extensions_area = NULL;                                             
  10db4d:	31 f6                	xor    %esi,%esi                      
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  10db4f:	8a 45 df             	mov    -0x21(%ebp),%al                
  10db52:	88 83 a0 00 00 00    	mov    %al,0xa0(%ebx)                 
  the_thread->Start.budget_algorithm = budget_algorithm;              
  10db58:	8b 45 24             	mov    0x24(%ebp),%eax                
  10db5b:	89 83 a4 00 00 00    	mov    %eax,0xa4(%ebx)                
  the_thread->Start.budget_callout   = budget_callout;                
  10db61:	8b 45 28             	mov    0x28(%ebp),%eax                
  10db64:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)                
                                                                      
  switch ( budget_algorithm ) {                                       
  10db6a:	83 7d 24 02          	cmpl   $0x2,0x24(%ebp)                
  10db6e:	75 08                	jne    10db78 <_Thread_Initialize+0xd4>
    case THREAD_CPU_BUDGET_ALGORITHM_NONE:                            
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
      break;                                                          
    #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)          
      case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:             
        the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;    
  10db70:	a1 20 7e 12 00       	mov    0x127e20,%eax                  
  10db75:	89 43 78             	mov    %eax,0x78(%ebx)                
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	break;                                                               
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
  10db78:	8b 45 2c             	mov    0x2c(%ebp),%eax                
  10db7b:	89 83 ac 00 00 00    	mov    %eax,0xac(%ebx)                
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
  10db81:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)                
  the_thread->Wait.queue              = NULL;                         
  10db88:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
  the_thread->resource_count          = 0;                            
  10db8f:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)                
  the_thread->real_priority           = priority;                     
  10db96:	89 7b 18             	mov    %edi,0x18(%ebx)                
  the_thread->Start.initial_priority  = priority;                     
  10db99:	89 bb b0 00 00 00    	mov    %edi,0xb0(%ebx)                
 */                                                                   
RTEMS_INLINE_ROUTINE void* _Scheduler_Allocate(                       
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  return _Scheduler.Operations.allocate( the_thread );                
  10db9f:	83 ec 0c             	sub    $0xc,%esp                      
  10dba2:	53                   	push   %ebx                           
  10dba3:	ff 15 58 3a 12 00    	call   *0x123a58                      
  10dba9:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  sched =_Scheduler_Allocate( the_thread );                           
  if ( !sched )                                                       
  10dbac:	83 c4 10             	add    $0x10,%esp                     
  10dbaf:	85 c0                	test   %eax,%eax                      
  10dbb1:	74 40                	je     10dbf3 <_Thread_Initialize+0x14f>
    goto failed;                                                      
  _Thread_Set_priority( the_thread, priority );                       
  10dbb3:	83 ec 08             	sub    $0x8,%esp                      
  10dbb6:	57                   	push   %edi                           
  10dbb7:	53                   	push   %ebx                           
  10dbb8:	e8 57 06 00 00       	call   10e214 <_Thread_Set_priority>  
                                                                      
  /*                                                                  
   *  Initialize the CPU usage statistics                             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );             
  10dbbd:	c7 83 84 00 00 00 00 	movl   $0x0,0x84(%ebx)                
  10dbc4:	00 00 00                                                    
  10dbc7:	c7 83 88 00 00 00 00 	movl   $0x0,0x88(%ebx)                
  10dbce:	00 00 00                                                    
                                                                      
   _Workspace_Free( sched );                                          
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  return false;                                                       
}                                                                     
  10dbd1:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10dbd4:	8b 40 1c             	mov    0x1c(%eax),%eax                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10dbd7:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10dbdb:	89 1c 90             	mov    %ebx,(%eax,%edx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10dbde:	8b 45 30             	mov    0x30(%ebp),%eax                
  10dbe1:	89 43 0c             	mov    %eax,0xc(%ebx)                 
   *  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 );    
  10dbe4:	89 1c 24             	mov    %ebx,(%esp)                    
  10dbe7:	e8 7c 0a 00 00       	call   10e668 <_User_extensions_Thread_create>
  if ( extension_status )                                             
  10dbec:	83 c4 10             	add    $0x10,%esp                     
  10dbef:	84 c0                	test   %al,%al                        
  10dbf1:	75 55                	jne    10dc48 <_Thread_Initialize+0x1a4>
    return true;                                                      
                                                                      
failed:                                                               
  _Workspace_Free( the_thread->libc_reent );                          
  10dbf3:	83 ec 0c             	sub    $0xc,%esp                      
  10dbf6:	ff b3 e4 00 00 00    	pushl  0xe4(%ebx)                     
  10dbfc:	e8 ff 0d 00 00       	call   10ea00 <_Workspace_Free>       
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    _Workspace_Free( the_thread->API_Extensions[i] );                 
  10dc01:	5f                   	pop    %edi                           
  10dc02:	ff b3 e8 00 00 00    	pushl  0xe8(%ebx)                     
  10dc08:	e8 f3 0d 00 00       	call   10ea00 <_Workspace_Free>       
  10dc0d:	59                   	pop    %ecx                           
  10dc0e:	ff b3 ec 00 00 00    	pushl  0xec(%ebx)                     
  10dc14:	e8 e7 0d 00 00       	call   10ea00 <_Workspace_Free>       
                                                                      
  _Workspace_Free( extensions_area );                                 
  10dc19:	89 34 24             	mov    %esi,(%esp)                    
  10dc1c:	e8 df 0d 00 00       	call   10ea00 <_Workspace_Free>       
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    _Workspace_Free( fp_area );                                       
  10dc21:	5a                   	pop    %edx                           
  10dc22:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10dc25:	e8 d6 0d 00 00       	call   10ea00 <_Workspace_Free>       
  #endif                                                              
                                                                      
   _Workspace_Free( sched );                                          
  10dc2a:	58                   	pop    %eax                           
  10dc2b:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10dc2e:	e8 cd 0d 00 00       	call   10ea00 <_Workspace_Free>       
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  10dc33:	89 1c 24             	mov    %ebx,(%esp)                    
  10dc36:	e8 c1 06 00 00       	call   10e2fc <_Thread_Stack_Free>    
  return false;                                                       
  10dc3b:	83 c4 10             	add    $0x10,%esp                     
  10dc3e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10dc40:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10dc43:	5b                   	pop    %ebx                           
  10dc44:	5e                   	pop    %esi                           
  10dc45:	5f                   	pop    %edi                           
  10dc46:	c9                   	leave                                 
  10dc47:	c3                   	ret                                   
   *  Mutex provides sufficient protection to let the user extensions 
   *  run safely.                                                     
   */                                                                 
  extension_status = _User_extensions_Thread_create( the_thread );    
  if ( extension_status )                                             
    return true;                                                      
  10dc48:	b0 01                	mov    $0x1,%al                       
                                                                      
   _Workspace_Free( sched );                                          
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  return false;                                                       
}                                                                     
  10dc4a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10dc4d:	5b                   	pop    %ebx                           
  10dc4e:	5e                   	pop    %esi                           
  10dc4f:	5f                   	pop    %edi                           
  10dc50:	c9                   	leave                                 
  10dc51:	c3                   	ret                                   
  10dc52:	66 90                	xchg   %ax,%ax                        
  /*                                                                  
   *  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 );               
  10dc54:	83 ec 0c             	sub    $0xc,%esp                      
  10dc57:	6a 6c                	push   $0x6c                          
  10dc59:	e8 86 0d 00 00       	call   10e9e4 <_Workspace_Allocate>   
  10dc5e:	89 45 e0             	mov    %eax,-0x20(%ebp)               
      if ( !fp_area )                                                 
  10dc61:	83 c4 10             	add    $0x10,%esp                     
  10dc64:	85 c0                	test   %eax,%eax                      
  10dc66:	0f 85 a2 fe ff ff    	jne    10db0e <_Thread_Initialize+0x6a>
   *  Zero out all the allocated memory fields                        
   */                                                                 
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    the_thread->API_Extensions[i] = NULL;                             
                                                                      
  extensions_area = NULL;                                             
  10dc6c:	31 f6                	xor    %esi,%esi                      
  size_t               actual_stack_size = 0;                         
  void                *stack = NULL;                                  
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    void              *fp_area;                                       
  #endif                                                              
  void                *sched = NULL;                                  
  10dc6e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  10dc75:	e9 79 ff ff ff       	jmp    10dbf3 <_Thread_Initialize+0x14f>
  10dc7a:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
    extensions_area = _Workspace_Allocate(                            
  10dc7c:	83 ec 0c             	sub    $0xc,%esp                      
  10dc7f:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax              
  10dc86:	50                   	push   %eax                           
  10dc87:	e8 58 0d 00 00       	call   10e9e4 <_Workspace_Allocate>   
  10dc8c:	89 c6                	mov    %eax,%esi                      
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
  10dc8e:	83 c4 10             	add    $0x10,%esp                     
  10dc91:	85 c0                	test   %eax,%eax                      
  10dc93:	74 5a                	je     10dcef <_Thread_Initialize+0x24b>
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10dc95:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)                
  10dc9b:	8b 0d f0 7e 12 00    	mov    0x127ef0,%ecx                  
   * 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++ )              
  10dca1:	31 d2                	xor    %edx,%edx                      
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10dca3:	31 c0                	xor    %eax,%eax                      
  10dca5:	8d 76 00             	lea    0x0(%esi),%esi                 
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
  if ( the_thread->extensions ) {                                     
    for ( i = 0; i <= _Thread_Maximum_extensions ; i++ )              
      the_thread->extensions[i] = NULL;                               
  10dca8:	c7 04 96 00 00 00 00 	movl   $0x0,(%esi,%edx,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++ )              
  10dcaf:	40                   	inc    %eax                           
  10dcb0:	89 c2                	mov    %eax,%edx                      
  10dcb2:	39 c1                	cmp    %eax,%ecx                      
  10dcb4:	73 f2                	jae    10dca8 <_Thread_Initialize+0x204>
  10dcb6:	e9 94 fe ff ff       	jmp    10db4f <_Thread_Initialize+0xab>
      return false;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
  #else                                                               
    if ( !stack_area ) {                                              
      actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
  10dcbb:	83 ec 08             	sub    $0x8,%esp                      
  10dcbe:	56                   	push   %esi                           
  10dcbf:	53                   	push   %ebx                           
  10dcc0:	88 55 d8             	mov    %dl,-0x28(%ebp)                
  10dcc3:	e8 d0 05 00 00       	call   10e298 <_Thread_Stack_Allocate>
      if ( !actual_stack_size || actual_stack_size < stack_size )     
  10dcc8:	83 c4 10             	add    $0x10,%esp                     
  10dccb:	85 c0                	test   %eax,%eax                      
  10dccd:	8a 55 d8             	mov    -0x28(%ebp),%dl                
  10dcd0:	74 16                	je     10dce8 <_Thread_Initialize+0x244>
  10dcd2:	39 c6                	cmp    %eax,%esi                      
  10dcd4:	77 12                	ja     10dce8 <_Thread_Initialize+0x244><== NEVER TAKEN
        return false;                     /* stack allocation failed */
                                                                      
      stack = the_thread->Start.stack;                                
  10dcd6:	8b 8b c4 00 00 00    	mov    0xc4(%ebx),%ecx                
      the_thread->Start.core_allocated_stack = true;                  
  10dcdc:	c6 83 b4 00 00 00 01 	movb   $0x1,0xb4(%ebx)                
  10dce3:	e9 09 fe ff ff       	jmp    10daf1 <_Thread_Initialize+0x4d>
    stack = the_thread->Start.stack;                                  
  #else                                                               
    if ( !stack_area ) {                                              
      actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
      if ( !actual_stack_size || actual_stack_size < stack_size )     
        return false;                     /* stack allocation failed */
  10dce8:	31 c0                	xor    %eax,%eax                      
  10dcea:	e9 51 ff ff ff       	jmp    10dc40 <_Thread_Initialize+0x19c>
  size_t               actual_stack_size = 0;                         
  void                *stack = NULL;                                  
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    void              *fp_area;                                       
  #endif                                                              
  void                *sched = NULL;                                  
  10dcef:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  10dcf6:	e9 f8 fe ff ff       	jmp    10dbf3 <_Thread_Initialize+0x14f>
                                                                      

001125d4 <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) {
  1125d4:	55                   	push   %ebp                           
  1125d5:	89 e5                	mov    %esp,%ebp                      
  1125d7:	53                   	push   %ebx                           
  1125d8:	83 ec 10             	sub    $0x10,%esp                     
  1125db:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  the_thread->resource_count   = 0;                                   
  1125de:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)                
  the_thread->is_preemptible   = the_thread->Start.is_preemptible;    
  1125e5:	8a 83 a0 00 00 00    	mov    0xa0(%ebx),%al                 
  1125eb:	88 43 74             	mov    %al,0x74(%ebx)                 
  the_thread->budget_algorithm = the_thread->Start.budget_algorithm;  
  1125ee:	8b 83 a4 00 00 00    	mov    0xa4(%ebx),%eax                
  1125f4:	89 43 7c             	mov    %eax,0x7c(%ebx)                
  the_thread->budget_callout   = the_thread->Start.budget_callout;    
  1125f7:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax                
  1125fd:	89 83 80 00 00 00    	mov    %eax,0x80(%ebx)                
                                                                      
  the_thread->Start.pointer_argument = pointer_argument;              
  112603:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  112606:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)                
  the_thread->Start.numeric_argument = numeric_argument;              
  11260c:	8b 45 10             	mov    0x10(%ebp),%eax                
  11260f:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)                
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
  112615:	53                   	push   %ebx                           
  112616:	e8 e1 c5 ff ff       	call   10ebfc <_Thread_queue_Extract_with_proxy>
  11261b:	83 c4 10             	add    $0x10,%esp                     
  11261e:	84 c0                	test   %al,%al                        
  112620:	75 06                	jne    112628 <_Thread_Reset+0x54>    
                                                                      
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
  112622:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  112626:	74 28                	je     112650 <_Thread_Reset+0x7c>    <== NEVER TAKEN
      (void) _Watchdog_Remove( &the_thread->Timer );                  
  }                                                                   
                                                                      
  if ( the_thread->current_priority != the_thread->Start.initial_priority ) {
  112628:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax                
  11262e:	39 43 14             	cmp    %eax,0x14(%ebx)                
  112631:	74 15                	je     112648 <_Thread_Reset+0x74>    
    the_thread->real_priority = the_thread->Start.initial_priority;   
  112633:	89 43 18             	mov    %eax,0x18(%ebx)                
    _Thread_Set_priority( the_thread, the_thread->Start.initial_priority );
  112636:	89 45 0c             	mov    %eax,0xc(%ebp)                 
  112639:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
}                                                                     
  11263c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11263f:	c9                   	leave                                 
      (void) _Watchdog_Remove( &the_thread->Timer );                  
  }                                                                   
                                                                      
  if ( the_thread->current_priority != the_thread->Start.initial_priority ) {
    the_thread->real_priority = the_thread->Start.initial_priority;   
    _Thread_Set_priority( the_thread, the_thread->Start.initial_priority );
  112640:	e9 93 c7 ff ff       	jmp    10edd8 <_Thread_Set_priority>  
  112645:	8d 76 00             	lea    0x0(%esi),%esi                 
  }                                                                   
}                                                                     
  112648:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11264b:	c9                   	leave                                 
  11264c:	c3                   	ret                                   
  11264d:	8d 76 00             	lea    0x0(%esi),%esi                 
  the_thread->Start.numeric_argument = numeric_argument;              
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
                                                                      
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
      (void) _Watchdog_Remove( &the_thread->Timer );                  
  112650:	83 ec 0c             	sub    $0xc,%esp                      
  112653:	8d 43 48             	lea    0x48(%ebx),%eax                
  112656:	50                   	push   %eax                           
  112657:	e8 64 ce ff ff       	call   10f4c0 <_Watchdog_Remove>      
  11265c:	83 c4 10             	add    $0x10,%esp                     
  11265f:	eb c7                	jmp    112628 <_Thread_Reset+0x54>    
                                                                      

0011154c <_Thread_Resume>: */ void _Thread_Resume( Thread_Control *the_thread, bool force ) {
  11154c:	55                   	push   %ebp                           
  11154d:	89 e5                	mov    %esp,%ebp                      
  11154f:	53                   	push   %ebx                           
  111550:	83 ec 04             	sub    $0x4,%esp                      
  111553:	8b 45 08             	mov    0x8(%ebp),%eax                 
                                                                      
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
  111556:	9c                   	pushf                                 
  111557:	fa                   	cli                                   
  111558:	5b                   	pop    %ebx                           
                                                                      
  current_state = the_thread->current_state;                          
  111559:	8b 50 10             	mov    0x10(%eax),%edx                
  if ( current_state & STATES_SUSPENDED ) {                           
  11155c:	f6 c2 02             	test   $0x2,%dl                       
  11155f:	74 0a                	je     11156b <_Thread_Resume+0x1f>   <== NEVER TAKEN
  111561:	83 e2 fd             	and    $0xfffffffd,%edx               
    current_state =                                                   
    the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state);
  111564:	89 50 10             	mov    %edx,0x10(%eax)                
                                                                      
    if ( _States_Is_ready( current_state ) ) {                        
  111567:	85 d2                	test   %edx,%edx                      
  111569:	74 09                	je     111574 <_Thread_Resume+0x28>   
      _Scheduler_Unblock( the_thread );                               
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  11156b:	53                   	push   %ebx                           
  11156c:	9d                   	popf                                  
}                                                                     
  11156d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  111570:	c9                   	leave                                 
  111571:	c3                   	ret                                   
  111572:	66 90                	xchg   %ax,%ax                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(                         
    Thread_Control    *the_thread                                     
)                                                                     
{                                                                     
  _Scheduler.Operations.unblock( the_thread );                        
  111574:	83 ec 0c             	sub    $0xc,%esp                      
  111577:	50                   	push   %eax                           
  111578:	ff 15 14 73 12 00    	call   *0x127314                      
  11157e:	83 c4 10             	add    $0x10,%esp                     
  111581:	eb e8                	jmp    11156b <_Thread_Resume+0x1f>   
                                                                      

0010e298 <_Thread_Stack_Allocate>: size_t _Thread_Stack_Allocate( Thread_Control *the_thread, size_t stack_size ) {
  10e298:	55                   	push   %ebp                           
  10e299:	89 e5                	mov    %esp,%ebp                      
  10e29b:	53                   	push   %ebx                           
  10e29c:	83 ec 04             	sub    $0x4,%esp                      
    the_stack_size = _Stack_Adjust_size( the_stack_size );            
    stack_addr = _Workspace_Allocate( the_stack_size );               
  }                                                                   
                                                                      
  if ( !stack_addr )                                                  
    the_stack_size = 0;                                               
  10e29f:	a1 30 3b 12 00       	mov    0x123b30,%eax                  
  10e2a4:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10e2a7:	39 c3                	cmp    %eax,%ebx                      
  10e2a9:	73 02                	jae    10e2ad <_Thread_Stack_Allocate+0x15>
  10e2ab:	89 c3                	mov    %eax,%ebx                      
   * Call ONLY the CPU table stack allocate hook, _or_ the            
   * the RTEMS workspace allocate.  This is so the stack free         
   * routine can call the correct deallocation routine.               
   */                                                                 
                                                                      
  if ( Configuration.stack_allocate_hook ) {                          
  10e2ad:	a1 60 3b 12 00       	mov    0x123b60,%eax                  
  10e2b2:	85 c0                	test   %eax,%eax                      
  10e2b4:	74 32                	je     10e2e8 <_Thread_Stack_Allocate+0x50>
    stack_addr = (*Configuration.stack_allocate_hook)( the_stack_size );
  10e2b6:	83 ec 0c             	sub    $0xc,%esp                      
  10e2b9:	53                   	push   %ebx                           
  10e2ba:	ff d0                	call   *%eax                          
  10e2bc:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    the_stack_size = _Stack_Adjust_size( the_stack_size );            
    stack_addr = _Workspace_Allocate( the_stack_size );               
  }                                                                   
                                                                      
  if ( !stack_addr )                                                  
  10e2bf:	85 c0                	test   %eax,%eax                      
  10e2c1:	74 11                	je     10e2d4 <_Thread_Stack_Allocate+0x3c>
    the_stack_size = 0;                                               
                                                                      
  the_thread->Start.stack = stack_addr;                               
  10e2c3:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10e2c6:	89 82 c4 00 00 00    	mov    %eax,0xc4(%edx)                
                                                                      
  return the_stack_size;                                              
}                                                                     
  10e2cc:	89 d8                	mov    %ebx,%eax                      
  10e2ce:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e2d1:	c9                   	leave                                 
  10e2d2:	c3                   	ret                                   
  10e2d3:	90                   	nop                                   
    the_stack_size = _Stack_Adjust_size( the_stack_size );            
    stack_addr = _Workspace_Allocate( the_stack_size );               
  }                                                                   
                                                                      
  if ( !stack_addr )                                                  
    the_stack_size = 0;                                               
  10e2d4:	31 db                	xor    %ebx,%ebx                      
                                                                      
  the_thread->Start.stack = stack_addr;                               
  10e2d6:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10e2d9:	89 82 c4 00 00 00    	mov    %eax,0xc4(%edx)                
                                                                      
  return the_stack_size;                                              
}                                                                     
  10e2df:	89 d8                	mov    %ebx,%eax                      
  10e2e1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e2e4:	c9                   	leave                                 
  10e2e5:	c3                   	ret                                   
  10e2e6:	66 90                	xchg   %ax,%ax                        
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Stack_Adjust_size (                  
  size_t size                                                         
)                                                                     
{                                                                     
  return size + CPU_STACK_ALIGNMENT;                                  
  10e2e8:	83 c3 10             	add    $0x10,%ebx                     
     *  get and keep the stack adjust factor, the stack alignment, and
     *  the context initialization sequence in sync.                  
     */                                                               
                                                                      
    the_stack_size = _Stack_Adjust_size( the_stack_size );            
    stack_addr = _Workspace_Allocate( the_stack_size );               
  10e2eb:	83 ec 0c             	sub    $0xc,%esp                      
  10e2ee:	53                   	push   %ebx                           
  10e2ef:	e8 f0 06 00 00       	call   10e9e4 <_Workspace_Allocate>   
  10e2f4:	83 c4 10             	add    $0x10,%esp                     
  10e2f7:	eb c6                	jmp    10e2bf <_Thread_Stack_Allocate+0x27>
                                                                      

0010e2fc <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) {
  10e2fc:	55                   	push   %ebp                           
  10e2fd:	89 e5                	mov    %esp,%ebp                      
  10e2ff:	83 ec 08             	sub    $0x8,%esp                      
  10e302:	8b 45 08             	mov    0x8(%ebp),%eax                 
  #if defined(RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API)  
    /*                                                                
     *  If the API provided the stack space, then don't free it.      
     */                                                               
    if ( !the_thread->Start.core_allocated_stack )                    
  10e305:	80 b8 b4 00 00 00 00 	cmpb   $0x0,0xb4(%eax)                
  10e30c:	74 16                	je     10e324 <_Thread_Stack_Free+0x28>
   * 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 )                                
  10e30e:	8b 15 64 3b 12 00    	mov    0x123b64,%edx                  
  10e314:	85 d2                	test   %edx,%edx                      
  10e316:	74 10                	je     10e328 <_Thread_Stack_Free+0x2c>
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  10e318:	8b 80 bc 00 00 00    	mov    0xbc(%eax),%eax                
  10e31e:	89 45 08             	mov    %eax,0x8(%ebp)                 
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
  10e321:	c9                   	leave                                 
   * 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 );
  10e322:	ff e2                	jmp    *%edx                          
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
  10e324:	c9                   	leave                                 
  10e325:	c3                   	ret                                   
  10e326:	66 90                	xchg   %ax,%ax                        
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
  10e328:	8b 80 bc 00 00 00    	mov    0xbc(%eax),%eax                
  10e32e:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10e331:	c9                   	leave                                 
   */                                                                 
                                                                      
  if ( Configuration.stack_free_hook )                                
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
  10e332:	e9 c9 06 00 00       	jmp    10ea00 <_Workspace_Free>       
                                                                      

0011194c <_Thread_Suspend>: * select map */ void _Thread_Suspend( Thread_Control *the_thread ) {
  11194c:	55                   	push   %ebp                           
  11194d:	89 e5                	mov    %esp,%ebp                      
  11194f:	53                   	push   %ebx                           
  111950:	83 ec 04             	sub    $0x4,%esp                      
  111953:	8b 45 08             	mov    0x8(%ebp),%eax                 
  ISR_Level      level;                                               
                                                                      
  _ISR_Disable( level );                                              
  111956:	9c                   	pushf                                 
  111957:	fa                   	cli                                   
  111958:	5b                   	pop    %ebx                           
  if ( !_States_Is_ready( the_thread->current_state ) ) {             
  111959:	8b 50 10             	mov    0x10(%eax),%edx                
  11195c:	85 d2                	test   %edx,%edx                      
  11195e:	74 10                	je     111970 <_Thread_Suspend+0x24>  
  111960:	83 ca 02             	or     $0x2,%edx                      
  111963:	89 50 10             	mov    %edx,0x10(%eax)                
    the_thread->current_state =                                       
       _States_Set( STATES_SUSPENDED, the_thread->current_state );    
    _ISR_Enable( level );                                             
  111966:	53                   	push   %ebx                           
  111967:	9d                   	popf                                  
  the_thread->current_state = STATES_SUSPENDED;                       
                                                                      
  _Scheduler_Block( the_thread );                                     
                                                                      
  _ISR_Enable( level );                                               
}                                                                     
  111968:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11196b:	c9                   	leave                                 
  11196c:	c3                   	ret                                   
  11196d:	8d 76 00             	lea    0x0(%esi),%esi                 
       _States_Set( STATES_SUSPENDED, the_thread->current_state );    
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_thread->current_state = STATES_SUSPENDED;                       
  111970:	c7 40 10 02 00 00 00 	movl   $0x2,0x10(%eax)                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Block(                           
    Thread_Control    *the_thread                                     
)                                                                     
{                                                                     
  _Scheduler.Operations.block( the_thread );                          
  111977:	83 ec 0c             	sub    $0xc,%esp                      
  11197a:	50                   	push   %eax                           
  11197b:	ff 15 50 3a 12 00    	call   *0x123a50                      
                                                                      
  _Scheduler_Block( the_thread );                                     
                                                                      
  _ISR_Enable( level );                                               
  111981:	53                   	push   %ebx                           
  111982:	9d                   	popf                                  
  111983:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  111986:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  111989:	c9                   	leave                                 
  11198a:	c3                   	ret                                   
                                                                      

0010e3f4 <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) {
  10e3f4:	55                   	push   %ebp                           
  10e3f5:	89 e5                	mov    %esp,%ebp                      
  10e3f7:	53                   	push   %ebx                           
  10e3f8:	83 ec 04             	sub    $0x4,%esp                      
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
  10e3fb:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
  /*                                                                  
   *  If the thread is not preemptible or is not ready, then          
   *  just return.                                                    
   */                                                                 
                                                                      
  if ( !executing->is_preemptible )                                   
  10e401:	80 7b 74 00          	cmpb   $0x0,0x74(%ebx)                
  10e405:	74 19                	je     10e420 <_Thread_Tickle_timeslice+0x2c>
    return;                                                           
                                                                      
  if ( !_States_Is_ready( executing->current_state ) )                
  10e407:	8b 43 10             	mov    0x10(%ebx),%eax                
  10e40a:	85 c0                	test   %eax,%eax                      
  10e40c:	75 12                	jne    10e420 <_Thread_Tickle_timeslice+0x2c>
                                                                      
  /*                                                                  
   *  The cpu budget algorithm determines what happens next.          
   */                                                                 
                                                                      
  switch ( executing->budget_algorithm ) {                            
  10e40e:	8b 43 7c             	mov    0x7c(%ebx),%eax                
  10e411:	83 f8 01             	cmp    $0x1,%eax                      
  10e414:	72 0a                	jb     10e420 <_Thread_Tickle_timeslice+0x2c>
  10e416:	83 f8 02             	cmp    $0x2,%eax                      
  10e419:	76 29                	jbe    10e444 <_Thread_Tickle_timeslice+0x50>
  10e41b:	83 f8 03             	cmp    $0x3,%eax                      
  10e41e:	74 08                	je     10e428 <_Thread_Tickle_timeslice+0x34><== ALWAYS TAKEN
	if ( --executing->cpu_time_budget == 0 )                             
	  (*executing->budget_callout)( executing );                         
	break;                                                               
    #endif                                                            
  }                                                                   
}                                                                     
  10e420:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e423:	c9                   	leave                                 
  10e424:	c3                   	ret                                   
  10e425:	8d 76 00             	lea    0x0(%esi),%esi                 
      }                                                               
      break;                                                          
                                                                      
    #if defined(RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT)          
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	if ( --executing->cpu_time_budget == 0 )                             
  10e428:	8b 43 78             	mov    0x78(%ebx),%eax                
  10e42b:	48                   	dec    %eax                           
  10e42c:	89 43 78             	mov    %eax,0x78(%ebx)                
  10e42f:	85 c0                	test   %eax,%eax                      
  10e431:	75 ed                	jne    10e420 <_Thread_Tickle_timeslice+0x2c>
	  (*executing->budget_callout)( executing );                         
  10e433:	83 ec 0c             	sub    $0xc,%esp                      
  10e436:	53                   	push   %ebx                           
  10e437:	ff 93 80 00 00 00    	call   *0x80(%ebx)                    
  10e43d:	83 c4 10             	add    $0x10,%esp                     
  10e440:	eb de                	jmp    10e420 <_Thread_Tickle_timeslice+0x2c>
  10e442:	66 90                	xchg   %ax,%ax                        
                                                                      
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
    #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)          
      case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:             
    #endif                                                            
      if ( (int)(--executing->cpu_time_budget) <= 0 ) {               
  10e444:	8b 43 78             	mov    0x78(%ebx),%eax                
  10e447:	48                   	dec    %eax                           
  10e448:	89 43 78             	mov    %eax,0x78(%ebx)                
  10e44b:	85 c0                	test   %eax,%eax                      
  10e44d:	7f d1                	jg     10e420 <_Thread_Tickle_timeslice+0x2c>
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
  10e44f:	ff 15 4c 3a 12 00    	call   *0x123a4c                      
         *  executing thread's timeslice is reset.  Otherwise, the    
         *  currently executing thread is placed at the rear of the   
         *  FIFO for this priority and a new heir is selected.        
         */                                                           
        _Scheduler_Yield( );                                          
        executing->cpu_time_budget = _Thread_Ticks_per_timeslice;     
  10e455:	a1 20 7e 12 00       	mov    0x127e20,%eax                  
  10e45a:	89 43 78             	mov    %eax,0x78(%ebx)                
  10e45d:	eb c1                	jmp    10e420 <_Thread_Tickle_timeslice+0x2c>
                                                                      

0010ddd4 <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) {
  10ddd4:	55                   	push   %ebp                           
  10ddd5:	89 e5                	mov    %esp,%ebp                      
  10ddd7:	57                   	push   %edi                           
  10ddd8:	56                   	push   %esi                           
  10ddd9:	53                   	push   %ebx                           
  10ddda:	83 ec 2c             	sub    $0x2c,%esp                     
  10dddd:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  Chain_Node     *new_second_node;                                    
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  10dde0:	9c                   	pushf                                 
  10dde1:	fa                   	cli                                   
  10dde2:	58                   	pop    %eax                           
  10dde3:	89 f9                	mov    %edi,%ecx                      
  for( index=0 ;                                                      
  10dde5:	31 d2                	xor    %edx,%edx                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
  10dde7:	8b 19                	mov    (%ecx),%ebx                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10dde9:	8d 34 52             	lea    (%edx,%edx,2),%esi             
  10ddec:	8d 74 b7 04          	lea    0x4(%edi,%esi,4),%esi          
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) {
  10ddf0:	39 f3                	cmp    %esi,%ebx                      
  10ddf2:	75 18                	jne    10de0c <_Thread_queue_Dequeue_priority+0x38>
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
  10ddf4:	42                   	inc    %edx                           
  10ddf5:	83 c1 0c             	add    $0xc,%ecx                      
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
  10ddf8:	83 fa 04             	cmp    $0x4,%edx                      
  10ddfb:	75 ea                	jne    10dde7 <_Thread_queue_Dequeue_priority+0x13>
  }                                                                   
                                                                      
  /*                                                                  
   * We did not find a thread to unblock.                             
   */                                                                 
  _ISR_Enable( level );                                               
  10ddfd:	50                   	push   %eax                           
  10ddfe:	9d                   	popf                                  
  return NULL;                                                        
  10ddff:	31 f6                	xor    %esi,%esi                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
  10de01:	89 f0                	mov    %esi,%eax                      
  10de03:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10de06:	5b                   	pop    %ebx                           
  10de07:	5e                   	pop    %esi                           
  10de08:	5f                   	pop    %edi                           
  10de09:	c9                   	leave                                 
  10de0a:	c3                   	ret                                   
  10de0b:	90                   	nop                                   
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) {
      the_thread = (Thread_Control *) _Chain_First(                   
  10de0c:	89 de                	mov    %ebx,%esi                      
   */                                                                 
  _ISR_Enable( level );                                               
  return NULL;                                                        
                                                                      
dequeue:                                                              
  the_thread->Wait.queue = NULL;                                      
  10de0e:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
  10de15:	8b 53 38             	mov    0x38(%ebx),%edx                
                                                                      
dequeue:                                                              
  the_thread->Wait.queue = NULL;                                      
  new_first_node   = _Chain_First( &the_thread->Wait.Block2n );       
  new_first_thread = (Thread_Control *) new_first_node;               
  next_node        = the_thread->Object.Node.next;                    
  10de18:	8b 0b                	mov    (%ebx),%ecx                    
  previous_node    = the_thread->Object.Node.previous;                
  10de1a:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  10de1d:	89 7d d4             	mov    %edi,-0x2c(%ebp)               
  10de20:	8d 7b 3c             	lea    0x3c(%ebx),%edi                
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
  10de23:	39 fa                	cmp    %edi,%edx                      
  10de25:	74 7f                	je     10dea6 <_Thread_queue_Dequeue_priority+0xd2>
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
  10de27:	8b 7b 40             	mov    0x40(%ebx),%edi                
  10de2a:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
  next_node        = the_thread->Object.Node.next;                    
  previous_node    = the_thread->Object.Node.previous;                
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
    last_node       = _Chain_Last( &the_thread->Wait.Block2n );       
    new_second_node = new_first_node->next;                           
  10de2d:	8b 3a                	mov    (%edx),%edi                    
  10de2f:	89 7d e0             	mov    %edi,-0x20(%ebp)               
                                                                      
    previous_node->next      = new_first_node;                        
  10de32:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  10de35:	89 17                	mov    %edx,(%edi)                    
    next_node->previous      = new_first_node;                        
  10de37:	89 51 04             	mov    %edx,0x4(%ecx)                 
    new_first_node->next     = next_node;                             
  10de3a:	89 0a                	mov    %ecx,(%edx)                    
    new_first_node->previous = previous_node;                         
  10de3c:	89 7a 04             	mov    %edi,0x4(%edx)                 
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
  10de3f:	8b 4b 40             	mov    0x40(%ebx),%ecx                
  10de42:	39 4b 38             	cmp    %ecx,0x38(%ebx)                
  10de45:	74 17                	je     10de5e <_Thread_queue_Dequeue_priority+0x8a>
                                                /* > two threads on 2-n */
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
  10de47:	8d 4a 38             	lea    0x38(%edx),%ecx                
  10de4a:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  10de4d:	89 4f 04             	mov    %ecx,0x4(%edi)                 
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
                                                                      
      new_second_node->previous = head;                               
      head->next = new_second_node;                                   
  10de50:	89 7a 38             	mov    %edi,0x38(%edx)                
      tail->previous = last_node;                                     
  10de53:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10de56:	89 4a 40             	mov    %ecx,0x40(%edx)                
    new_first_node->previous = previous_node;                         
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
                                                /* > two threads on 2-n */
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
  10de59:	83 c2 3c             	add    $0x3c,%edx                     
  10de5c:	89 11                	mov    %edx,(%ecx)                    
  } else {                                                            
    previous_node->next = next_node;                                  
    next_node->previous = previous_node;                              
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  10de5e:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  10de62:	74 18                	je     10de7c <_Thread_queue_Dequeue_priority+0xa8>
    _ISR_Enable( level );                                             
  10de64:	50                   	push   %eax                           
  10de65:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10de66:	83 ec 08             	sub    $0x8,%esp                      
  10de69:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10de6e:	53                   	push   %ebx                           
  10de6f:	e8 30 f8 ff ff       	call   10d6a4 <_Thread_Clear_state>   
  10de74:	83 c4 10             	add    $0x10,%esp                     
  10de77:	eb 88                	jmp    10de01 <_Thread_queue_Dequeue_priority+0x2d>
  10de79:	8d 76 00             	lea    0x0(%esi),%esi                 
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
  10de7c:	c7 43 50 03 00 00 00 	movl   $0x3,0x50(%ebx)                
    _Thread_Unblock( the_thread );                                    
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
  10de83:	50                   	push   %eax                           
  10de84:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  10de85:	83 ec 0c             	sub    $0xc,%esp                      
  10de88:	8d 43 48             	lea    0x48(%ebx),%eax                
  10de8b:	50                   	push   %eax                           
  10de8c:	e8 2b 0a 00 00       	call   10e8bc <_Watchdog_Remove>      
  10de91:	58                   	pop    %eax                           
  10de92:	5a                   	pop    %edx                           
  10de93:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10de98:	53                   	push   %ebx                           
  10de99:	e8 06 f8 ff ff       	call   10d6a4 <_Thread_Clear_state>   
  10de9e:	83 c4 10             	add    $0x10,%esp                     
  10dea1:	e9 5b ff ff ff       	jmp    10de01 <_Thread_queue_Dequeue_priority+0x2d>
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
  10dea6:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  10dea9:	89 0f                	mov    %ecx,(%edi)                    
    next_node->previous = previous_node;                              
  10deab:	89 79 04             	mov    %edi,0x4(%ecx)                 
  10deae:	eb ae                	jmp    10de5e <_Thread_queue_Dequeue_priority+0x8a>
                                                                      

0010df48 <_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 ) {
  10df48:	55                   	push   %ebp                           
  10df49:	89 e5                	mov    %esp,%ebp                      
  10df4b:	57                   	push   %edi                           
  10df4c:	56                   	push   %esi                           
  10df4d:	53                   	push   %ebx                           
  10df4e:	83 ec 0c             	sub    $0xc,%esp                      
  10df51:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10df54:	8d 47 3c             	lea    0x3c(%edi),%eax                
  10df57:	89 47 38             	mov    %eax,0x38(%edi)                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10df5a:	c7 47 3c 00 00 00 00 	movl   $0x0,0x3c(%edi)                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  10df61:	8d 47 38             	lea    0x38(%edi),%eax                
  10df64:	89 47 40             	mov    %eax,0x40(%edi)                
  Priority_Control     priority;                                      
  States_Control       block_state;                                   
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  10df67:	8b 57 14             	mov    0x14(%edi),%edx                
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (         
  Priority_Control the_priority                                       
)                                                                     
{                                                                     
  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);      
  10df6a:	89 d0                	mov    %edx,%eax                      
  10df6c:	c1 e8 06             	shr    $0x6,%eax                      
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
  block_state  = the_thread_queue->state;                             
  10df6f:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10df72:	8b 59 38             	mov    0x38(%ecx),%ebx                
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
  10df75:	f6 c2 20             	test   $0x20,%dl                      
  10df78:	75 66                	jne    10dfe0 <_Thread_queue_Enqueue_priority+0x98>
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
  10df7a:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10df7d:	8d 04 81             	lea    (%ecx,%eax,4),%eax             
  10df80:	89 45 f0             	mov    %eax,-0x10(%ebp)               
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
  10df83:	83 c0 04             	add    $0x4,%eax                      
  10df86:	89 7d e8             	mov    %edi,-0x18(%ebp)               
  10df89:	89 c7                	mov    %eax,%edi                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  10df8b:	9c                   	pushf                                 
  10df8c:	fa                   	cli                                   
  10df8d:	5e                   	pop    %esi                           
  10df8e:	89 75 ec             	mov    %esi,-0x14(%ebp)               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
  10df91:	8b 4d f0             	mov    -0x10(%ebp),%ecx               
  10df94:	8b 01                	mov    (%ecx),%eax                    
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
  10df96:	39 f8                	cmp    %edi,%eax                      
  10df98:	75 18                	jne    10dfb2 <_Thread_queue_Enqueue_priority+0x6a>
  10df9a:	e9 0e 01 00 00       	jmp    10e0ad <_Thread_queue_Enqueue_priority+0x165>
  10df9f:	90                   	nop                                   
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
  10dfa0:	56                   	push   %esi                           
  10dfa1:	9d                   	popf                                  
  10dfa2:	fa                   	cli                                   
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
  10dfa3:	85 58 10             	test   %ebx,0x10(%eax)                
  10dfa6:	0f 84 ac 00 00 00    	je     10e058 <_Thread_queue_Enqueue_priority+0x110><== NEVER TAKEN
      _ISR_Enable( level );                                           
      goto restart_forward_search;                                    
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  10dfac:	8b 00                	mov    (%eax),%eax                    
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
  10dfae:	39 f8                	cmp    %edi,%eax                      
  10dfb0:	74 07                	je     10dfb9 <_Thread_queue_Enqueue_priority+0x71>
    search_priority = search_thread->current_priority;                
  10dfb2:	8b 48 14             	mov    0x14(%eax),%ecx                
    if ( priority <= search_priority )                                
  10dfb5:	39 ca                	cmp    %ecx,%edx                      
  10dfb7:	77 e7                	ja     10dfa0 <_Thread_queue_Enqueue_priority+0x58>
  10dfb9:	8b 7d e8             	mov    -0x18(%ebp),%edi               
  10dfbc:	89 75 f0             	mov    %esi,-0x10(%ebp)               
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
  10dfbf:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10dfc2:	8b 5e 30             	mov    0x30(%esi),%ebx                
  10dfc5:	83 fb 01             	cmp    $0x1,%ebx                      
  10dfc8:	0f 84 92 00 00 00    	je     10e060 <_Thread_queue_Enqueue_priority+0x118>
   *  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;                                                   
  10dfce:	8b 45 10             	mov    0x10(%ebp),%eax                
  10dfd1:	8b 55 ec             	mov    -0x14(%ebp),%edx               
  10dfd4:	89 10                	mov    %edx,(%eax)                    
  return the_thread_queue->sync_state;                                
}                                                                     
  10dfd6:	89 d8                	mov    %ebx,%eax                      
  10dfd8:	83 c4 0c             	add    $0xc,%esp                      
  10dfdb:	5b                   	pop    %ebx                           
  10dfdc:	5e                   	pop    %esi                           
  10dfdd:	5f                   	pop    %edi                           
  10dfde:	c9                   	leave                                 
  10dfdf:	c3                   	ret                                   
  10dfe0:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10dfe3:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10dfe6:	8d 34 81             	lea    (%ecx,%eax,4),%esi             
  10dfe9:	89 7d f0             	mov    %edi,-0x10(%ebp)               
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
  10dfec:	0f b6 0d 34 3b 12 00 	movzbl 0x123b34,%ecx                  
  10dff3:	41                   	inc    %ecx                           
                                                                      
  _ISR_Disable( level );                                              
  10dff4:	9c                   	pushf                                 
  10dff5:	fa                   	cli                                   
  10dff6:	5f                   	pop    %edi                           
  10dff7:	89 7d ec             	mov    %edi,-0x14(%ebp)               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
  10dffa:	8b 46 08             	mov    0x8(%esi),%eax                 
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_Last( header );           
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
  10dffd:	39 f0                	cmp    %esi,%eax                      
  10dfff:	75 12                	jne    10e013 <_Thread_queue_Enqueue_priority+0xcb>
  10e001:	eb 17                	jmp    10e01a <_Thread_queue_Enqueue_priority+0xd2>
  10e003:	90                   	nop                                   
      break;                                                          
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
  10e004:	57                   	push   %edi                           
  10e005:	9d                   	popf                                  
  10e006:	fa                   	cli                                   
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
  10e007:	85 58 10             	test   %ebx,0x10(%eax)                
  10e00a:	74 48                	je     10e054 <_Thread_queue_Enqueue_priority+0x10c>
      _ISR_Enable( level );                                           
      goto restart_reverse_search;                                    
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  10e00c:	8b 40 04             	mov    0x4(%eax),%eax                 
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_Last( header );           
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
  10e00f:	39 f0                	cmp    %esi,%eax                      
  10e011:	74 07                	je     10e01a <_Thread_queue_Enqueue_priority+0xd2>
    search_priority = search_thread->current_priority;                
  10e013:	8b 48 14             	mov    0x14(%eax),%ecx                
    if ( priority >= search_priority )                                
  10e016:	39 ca                	cmp    %ecx,%edx                      
  10e018:	72 ea                	jb     10e004 <_Thread_queue_Enqueue_priority+0xbc>
  10e01a:	89 7d e8             	mov    %edi,-0x18(%ebp)               
  10e01d:	8b 7d f0             	mov    -0x10(%ebp),%edi               
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
  10e020:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10e023:	8b 5e 30             	mov    0x30(%esi),%ebx                
  10e026:	83 fb 01             	cmp    $0x1,%ebx                      
  10e029:	75 a3                	jne    10dfce <_Thread_queue_Enqueue_priority+0x86>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
  10e02b:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)                
                                                                      
  if ( priority == search_priority )                                  
  10e032:	39 ca                	cmp    %ecx,%edx                      
  10e034:	74 53                	je     10e089 <_Thread_queue_Enqueue_priority+0x141>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
  10e036:	8b 10                	mov    (%eax),%edx                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  10e038:	89 17                	mov    %edx,(%edi)                    
  the_node->previous      = search_node;                              
  10e03a:	89 47 04             	mov    %eax,0x4(%edi)                 
  search_node->next       = the_node;                                 
  10e03d:	89 38                	mov    %edi,(%eax)                    
  next_node->previous    = the_node;                                  
  10e03f:	89 7a 04             	mov    %edi,0x4(%edx)                 
  the_thread->Wait.queue = the_thread_queue;                          
  10e042:	89 77 44             	mov    %esi,0x44(%edi)                
  _ISR_Enable( level );                                               
  10e045:	ff 75 e8             	pushl  -0x18(%ebp)                    
  10e048:	9d                   	popf                                  
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
  10e049:	89 d8                	mov    %ebx,%eax                      
  10e04b:	83 c4 0c             	add    $0xc,%esp                      
  10e04e:	5b                   	pop    %ebx                           
  10e04f:	5e                   	pop    %esi                           
  10e050:	5f                   	pop    %edi                           
  10e051:	c9                   	leave                                 
  10e052:	c3                   	ret                                   
  10e053:	90                   	nop                                   
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
      _ISR_Enable( level );                                           
  10e054:	57                   	push   %edi                           
  10e055:	9d                   	popf                                  
      goto restart_reverse_search;                                    
  10e056:	eb 94                	jmp    10dfec <_Thread_queue_Enqueue_priority+0xa4>
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
      _ISR_Enable( level );                                           
  10e058:	56                   	push   %esi                           <== NOT EXECUTED
  10e059:	9d                   	popf                                  <== NOT EXECUTED
      goto restart_forward_search;                                    
  10e05a:	e9 2c ff ff ff       	jmp    10df8b <_Thread_queue_Enqueue_priority+0x43><== NOT EXECUTED
  10e05f:	90                   	nop                                   <== NOT EXECUTED
                                                                      
  if ( the_thread_queue->sync_state !=                                
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
  10e060:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)                
                                                                      
  if ( priority == search_priority )                                  
  10e067:	39 ca                	cmp    %ecx,%edx                      
  10e069:	74 1e                	je     10e089 <_Thread_queue_Enqueue_priority+0x141>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
  10e06b:	8b 50 04             	mov    0x4(%eax),%edx                 
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  10e06e:	89 07                	mov    %eax,(%edi)                    
  the_node->previous     = previous_node;                             
  10e070:	89 57 04             	mov    %edx,0x4(%edi)                 
  previous_node->next    = the_node;                                  
  10e073:	89 3a                	mov    %edi,(%edx)                    
  search_node->previous  = the_node;                                  
  10e075:	89 78 04             	mov    %edi,0x4(%eax)                 
  the_thread->Wait.queue = the_thread_queue;                          
  10e078:	89 77 44             	mov    %esi,0x44(%edi)                
  _ISR_Enable( level );                                               
  10e07b:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10e07e:	9d                   	popf                                  
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
  10e07f:	89 d8                	mov    %ebx,%eax                      
  10e081:	83 c4 0c             	add    $0xc,%esp                      
  10e084:	5b                   	pop    %ebx                           
  10e085:	5e                   	pop    %esi                           
  10e086:	5f                   	pop    %edi                           
  10e087:	c9                   	leave                                 
  10e088:	c3                   	ret                                   
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
  previous_node = search_node->previous;                              
  10e089:	8b 50 40             	mov    0x40(%eax),%edx                
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
  10e08c:	8d 48 3c             	lea    0x3c(%eax),%ecx                
  10e08f:	89 0f                	mov    %ecx,(%edi)                    
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  10e091:	89 57 04             	mov    %edx,0x4(%edi)                 
  previous_node->next    = the_node;                                  
  10e094:	89 3a                	mov    %edi,(%edx)                    
  search_node->previous  = the_node;                                  
  10e096:	89 78 40             	mov    %edi,0x40(%eax)                
  the_thread->Wait.queue = the_thread_queue;                          
  10e099:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e09c:	89 47 44             	mov    %eax,0x44(%edi)                
  _ISR_Enable( level );                                               
  10e09f:	ff 75 ec             	pushl  -0x14(%ebp)                    
  10e0a2:	9d                   	popf                                  
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
  10e0a3:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  10e0a8:	e9 29 ff ff ff       	jmp    10dfd6 <_Thread_queue_Enqueue_priority+0x8e>
  10e0ad:	8b 7d e8             	mov    -0x18(%ebp),%edi               
  10e0b0:	89 75 f0             	mov    %esi,-0x10(%ebp)               
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  10e0b3:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx               
  10e0b8:	e9 02 ff ff ff       	jmp    10dfbf <_Thread_queue_Enqueue_priority+0x77>
                                                                      

001117f4 <_Thread_queue_Extract>: void _Thread_queue_Extract( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
  1117f4:	55                   	push   %ebp                           
  1117f5:	89 e5                	mov    %esp,%ebp                      
  1117f7:	83 ec 08             	sub    $0x8,%esp                      
  1117fa:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1117fd:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  /*                                                                  
   * Can not use indirect function pointer here since Extract priority
   * is a macro and the underlying methods do not have the same signature.
   */                                                                 
  if  ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
  111800:	83 78 34 01          	cmpl   $0x1,0x34(%eax)                
  111804:	74 0e                	je     111814 <_Thread_queue_Extract+0x20>
    _Thread_queue_Extract_priority( the_thread_queue, the_thread );   
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    _Thread_queue_Extract_fifo( the_thread_queue, the_thread );       
  111806:	89 55 0c             	mov    %edx,0xc(%ebp)                 
  111809:	89 45 08             	mov    %eax,0x8(%ebp)                 
                                                                      
}                                                                     
  11180c:	c9                   	leave                                 
   * is a macro and the underlying methods do not have the same signature.
   */                                                                 
  if  ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
    _Thread_queue_Extract_priority( the_thread_queue, the_thread );   
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    _Thread_queue_Extract_fifo( the_thread_queue, the_thread );       
  11180d:	e9 de 19 00 00       	jmp    1131f0 <_Thread_queue_Extract_fifo>
  111812:	66 90                	xchg   %ax,%ax                        
  /*                                                                  
   * Can not use indirect function pointer here since Extract priority
   * is a macro and the underlying methods do not have the same signature.
   */                                                                 
  if  ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
    _Thread_queue_Extract_priority( the_thread_queue, the_thread );   
  111814:	51                   	push   %ecx                           
  111815:	6a 00                	push   $0x0                           
  111817:	52                   	push   %edx                           
  111818:	50                   	push   %eax                           
  111819:	e8 06 00 00 00       	call   111824 <_Thread_queue_Extract_priority_helper>
  11181e:	83 c4 10             	add    $0x10,%esp                     
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    _Thread_queue_Extract_fifo( the_thread_queue, the_thread );       
                                                                      
}                                                                     
  111821:	c9                   	leave                                 
  111822:	c3                   	ret                                   
                                                                      

001131f0 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue __attribute__((unused)), Thread_Control *the_thread ) {
  1131f0:	55                   	push   %ebp                           
  1131f1:	89 e5                	mov    %esp,%ebp                      
  1131f3:	53                   	push   %ebx                           
  1131f4:	83 ec 04             	sub    $0x4,%esp                      
  1131f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  1131fa:	9c                   	pushf                                 
  1131fb:	fa                   	cli                                   
  1131fc:	58                   	pop    %eax                           
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  1131fd:	f7 43 10 e0 be 03 00 	testl  $0x3bee0,0x10(%ebx)            
  113204:	74 2e                	je     113234 <_Thread_queue_Extract_fifo+0x44>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  113206:	8b 0b                	mov    (%ebx),%ecx                    
  previous       = the_node->previous;                                
  113208:	8b 53 04             	mov    0x4(%ebx),%edx                 
  next->previous = previous;                                          
  11320b:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  11320e:	89 0a                	mov    %ecx,(%edx)                    
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
  113210:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  113217:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  11321b:	74 1f                	je     11323c <_Thread_queue_Extract_fifo+0x4c>
    _ISR_Enable( level );                                             
  11321d:	50                   	push   %eax                           
  11321e:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  11321f:	c7 45 0c f8 ff 03 10 	movl   $0x1003fff8,0xc(%ebp)          
  113226:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
  113229:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11322c:	c9                   	leave                                 
  11322d:	e9 72 a4 ff ff       	jmp    10d6a4 <_Thread_Clear_state>   
  113232:	66 90                	xchg   %ax,%ax                        
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    _ISR_Enable( level );                                             
  113234:	50                   	push   %eax                           
  113235:	9d                   	popf                                  
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
  113236:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  113239:	c9                   	leave                                 
  11323a:	c3                   	ret                                   
  11323b:	90                   	nop                                   
  11323c:	c7 43 50 03 00 00 00 	movl   $0x3,0x50(%ebx)                
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    _ISR_Enable( level );                                             
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
  113243:	50                   	push   %eax                           
  113244:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  113245:	83 ec 0c             	sub    $0xc,%esp                      
  113248:	8d 43 48             	lea    0x48(%ebx),%eax                
  11324b:	50                   	push   %eax                           
  11324c:	e8 6b b6 ff ff       	call   10e8bc <_Watchdog_Remove>      
  113251:	83 c4 10             	add    $0x10,%esp                     
  113254:	eb c9                	jmp    11321f <_Thread_queue_Extract_fifo+0x2f>
                                                                      

00111824 <_Thread_queue_Extract_priority_helper>: void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue __attribute__((unused)), Thread_Control *the_thread, bool requeuing ) {
  111824:	55                   	push   %ebp                           
  111825:	89 e5                	mov    %esp,%ebp                      
  111827:	57                   	push   %edi                           
  111828:	56                   	push   %esi                           
  111829:	53                   	push   %ebx                           
  11182a:	83 ec 1c             	sub    $0x1c,%esp                     
  11182d:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  111830:	8a 45 10             	mov    0x10(%ebp),%al                 
  111833:	88 45 e3             	mov    %al,-0x1d(%ebp)                
  Chain_Node     *new_first_node;                                     
  Chain_Node     *new_second_node;                                    
  Chain_Node     *last_node;                                          
                                                                      
  the_node = (Chain_Node *) the_thread;                               
  _ISR_Disable( level );                                              
  111836:	9c                   	pushf                                 
  111837:	fa                   	cli                                   
  111838:	8f 45 e4             	popl   -0x1c(%ebp)                    
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  11183b:	f7 43 10 e0 be 03 00 	testl  $0x3bee0,0x10(%ebx)            
  111842:	74 6c                	je     1118b0 <_Thread_queue_Extract_priority_helper+0x8c>
                                                                      
  /*                                                                  
   *  The thread was actually waiting on a thread queue so let's remove it.
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  111844:	8b 13                	mov    (%ebx),%edx                    
  previous_node = the_node->previous;                                 
  111846:	8b 4b 04             	mov    0x4(%ebx),%ecx                 
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  111849:	8b 43 38             	mov    0x38(%ebx),%eax                
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  11184c:	8d 73 3c             	lea    0x3c(%ebx),%esi                
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
  11184f:	39 f0                	cmp    %esi,%eax                      
  111851:	74 69                	je     1118bc <_Thread_queue_Extract_priority_helper+0x98>
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  111853:	8b 7b 40             	mov    0x40(%ebx),%edi                
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
    new_first_node   = _Chain_First( &the_thread->Wait.Block2n );     
    new_first_thread = (Thread_Control *) new_first_node;             
    last_node        = _Chain_Last( &the_thread->Wait.Block2n );      
    new_second_node  = new_first_node->next;                          
  111856:	8b 30                	mov    (%eax),%esi                    
                                                                      
    previous_node->next      = new_first_node;                        
  111858:	89 01                	mov    %eax,(%ecx)                    
    next_node->previous      = new_first_node;                        
  11185a:	89 42 04             	mov    %eax,0x4(%edx)                 
    new_first_node->next     = next_node;                             
  11185d:	89 10                	mov    %edx,(%eax)                    
    new_first_node->previous = previous_node;                         
  11185f:	89 48 04             	mov    %ecx,0x4(%eax)                 
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
  111862:	8b 53 40             	mov    0x40(%ebx),%edx                
  111865:	39 53 38             	cmp    %edx,0x38(%ebx)                
  111868:	74 11                	je     11187b <_Thread_queue_Extract_priority_helper+0x57>
                                        /* > two threads on 2-n */    
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
  11186a:	8d 50 38             	lea    0x38(%eax),%edx                
  11186d:	89 56 04             	mov    %edx,0x4(%esi)                 
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
                                                                      
      new_second_node->previous = head;                               
      head->next = new_second_node;                                   
  111870:	89 70 38             	mov    %esi,0x38(%eax)                
      tail->previous = last_node;                                     
  111873:	89 78 40             	mov    %edi,0x40(%eax)                
    new_first_node->previous = previous_node;                         
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
                                        /* > two threads on 2-n */    
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
  111876:	83 c0 3c             	add    $0x3c,%eax                     
  111879:	89 07                	mov    %eax,(%edi)                    
                                                                      
  /*                                                                  
   *  If we are not supposed to touch timers or the thread's state, return.
   */                                                                 
                                                                      
  if ( requeuing ) {                                                  
  11187b:	80 7d e3 00          	cmpb   $0x0,-0x1d(%ebp)               
  11187f:	75 23                	jne    1118a4 <_Thread_queue_Extract_priority_helper+0x80>
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  111881:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  111885:	74 3d                	je     1118c4 <_Thread_queue_Extract_priority_helper+0xa0>
    _ISR_Enable( level );                                             
  111887:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  11188a:	9d                   	popf                                  
  11188b:	c7 45 0c f8 ff 03 10 	movl   $0x1003fff8,0xc(%ebp)          
  111892:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  111895:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111898:	5b                   	pop    %ebx                           
  111899:	5e                   	pop    %esi                           
  11189a:	5f                   	pop    %edi                           
  11189b:	c9                   	leave                                 
  11189c:	e9 03 be ff ff       	jmp    10d6a4 <_Thread_Clear_state>   
  1118a1:	8d 76 00             	lea    0x0(%esi),%esi                 
  /*                                                                  
   *  If we are not supposed to touch timers or the thread's state, return.
   */                                                                 
                                                                      
  if ( requeuing ) {                                                  
    _ISR_Enable( level );                                             
  1118a4:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1118a7:	9d                   	popf                                  
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  1118a8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1118ab:	5b                   	pop    %ebx                           
  1118ac:	5e                   	pop    %esi                           
  1118ad:	5f                   	pop    %edi                           
  1118ae:	c9                   	leave                                 
  1118af:	c3                   	ret                                   
  Chain_Node     *last_node;                                          
                                                                      
  the_node = (Chain_Node *) the_thread;                               
  _ISR_Disable( level );                                              
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    _ISR_Enable( level );                                             
  1118b0:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1118b3:	9d                   	popf                                  
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  1118b4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1118b7:	5b                   	pop    %ebx                           
  1118b8:	5e                   	pop    %esi                           
  1118b9:	5f                   	pop    %edi                           
  1118ba:	c9                   	leave                                 
  1118bb:	c3                   	ret                                   
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
  1118bc:	89 11                	mov    %edx,(%ecx)                    
    next_node->previous = previous_node;                              
  1118be:	89 4a 04             	mov    %ecx,0x4(%edx)                 
  1118c1:	eb b8                	jmp    11187b <_Thread_queue_Extract_priority_helper+0x57>
  1118c3:	90                   	nop                                   
  1118c4:	c7 43 50 03 00 00 00 	movl   $0x3,0x50(%ebx)                
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    _ISR_Enable( level );                                             
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
  1118cb:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1118ce:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  1118cf:	83 ec 0c             	sub    $0xc,%esp                      
  1118d2:	8d 43 48             	lea    0x48(%ebx),%eax                
  1118d5:	50                   	push   %eax                           
  1118d6:	e8 e1 cf ff ff       	call   10e8bc <_Watchdog_Remove>      
  1118db:	83 c4 10             	add    $0x10,%esp                     
  1118de:	eb ab                	jmp    11188b <_Thread_queue_Extract_priority_helper+0x67>
                                                                      

0010e0c0 <_Thread_queue_Extract_with_proxy>: */ bool _Thread_queue_Extract_with_proxy( Thread_Control *the_thread ) {
  10e0c0:	55                   	push   %ebp                           
  10e0c1:	89 e5                	mov    %esp,%ebp                      
  10e0c3:	83 ec 08             	sub    $0x8,%esp                      
  10e0c6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  States_Control                state;                                
                                                                      
  state = the_thread->current_state;                                  
                                                                      
  if ( _States_Is_waiting_on_thread_queue( state ) ) {                
  10e0c9:	f7 40 10 e0 be 03 00 	testl  $0x3bee0,0x10(%eax)            
  10e0d0:	75 06                	jne    10e0d8 <_Thread_queue_Extract_with_proxy+0x18>
    #endif                                                            
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
                                                                      
    return true;                                                      
  }                                                                   
  return false;                                                       
  10e0d2:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10e0d4:	c9                   	leave                                 
  10e0d5:	c3                   	ret                                   
  10e0d6:	66 90                	xchg   %ax,%ax                        
                                                                      
        if ( proxy_extract_callout )                                  
          (*proxy_extract_callout)( the_thread );                     
      }                                                               
    #endif                                                            
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
  10e0d8:	83 ec 08             	sub    $0x8,%esp                      
  10e0db:	50                   	push   %eax                           
  10e0dc:	ff 70 44             	pushl  0x44(%eax)                     
  10e0df:	e8 10 37 00 00       	call   1117f4 <_Thread_queue_Extract> 
                                                                      
    return true;                                                      
  10e0e4:	83 c4 10             	add    $0x10,%esp                     
  10e0e7:	b0 01                	mov    $0x1,%al                       
  }                                                                   
  return false;                                                       
}                                                                     
  10e0e9:	c9                   	leave                                 
  10e0ea:	c3                   	ret                                   
                                                                      

0010ff28 <_Thread_queue_First>: */ Thread_Control *_Thread_queue_First( Thread_queue_Control *the_thread_queue ) {
  10ff28:	55                   	push   %ebp                           
  10ff29:	89 e5                	mov    %esp,%ebp                      
  10ff2b:	83 ec 08             	sub    $0x8,%esp                      
  10ff2e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  Thread_Control * (*first_p)(Thread_queue_Control *);                
                                                                      
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
  10ff31:	83 78 34 01          	cmpl   $0x1,0x34(%eax)                
  10ff35:	74 0d                	je     10ff44 <_Thread_queue_First+0x1c>
      first_p = _Thread_queue_First_priority;                         
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
  10ff37:	ba 88 37 11 00       	mov    $0x113788,%edx                 
                                                                      
  return (*first_p)( the_thread_queue );                              
  10ff3c:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10ff3f:	c9                   	leave                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
      first_p = _Thread_queue_First_priority;                         
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
                                                                      
  return (*first_p)( the_thread_queue );                              
  10ff40:	ff e2                	jmp    *%edx                          
  10ff42:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  Thread_Control * (*first_p)(Thread_queue_Control *);                
                                                                      
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
      first_p = _Thread_queue_First_priority;                         
  10ff44:	ba 50 ff 10 00       	mov    $0x10ff50,%edx                 
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
                                                                      
  return (*first_p)( the_thread_queue );                              
  10ff49:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10ff4c:	c9                   	leave                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
      first_p = _Thread_queue_First_priority;                         
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
                                                                      
  return (*first_p)( the_thread_queue );                              
  10ff4d:	ff e2                	jmp    *%edx                          
                                                                      

00113788 <_Thread_queue_First_fifo>: */ Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) {
  113788:	55                   	push   %ebp                           
  113789:	89 e5                	mov    %esp,%ebp                      
  11378b:	8b 55 08             	mov    0x8(%ebp),%edx                 
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) )           
    return (Thread_Control *) _Chain_First( &the_thread_queue->Queues.Fifo );
                                                                      
  return NULL;                                                        
}                                                                     
  11378e:	8b 02                	mov    (%edx),%eax                    
  113790:	83 c2 04             	add    $0x4,%edx                      
                                                                      
Thread_Control *_Thread_queue_First_fifo(                             
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) )           
  113793:	39 d0                	cmp    %edx,%eax                      
  113795:	74 05                	je     11379c <_Thread_queue_First_fifo+0x14>
    return (Thread_Control *) _Chain_First( &the_thread_queue->Queues.Fifo );
                                                                      
  return NULL;                                                        
}                                                                     
  113797:	c9                   	leave                                 
  113798:	c3                   	ret                                   
  113799:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) )           
    return (Thread_Control *) _Chain_First( &the_thread_queue->Queues.Fifo );
                                                                      
  return NULL;                                                        
  11379c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11379e:	c9                   	leave                                 
  11379f:	c3                   	ret                                   
                                                                      

0010e0ec <_Thread_queue_Flush>: #else Thread_queue_Flush_callout remote_extract_callout __attribute__((unused)), #endif uint32_t status ) {
  10e0ec:	55                   	push   %ebp                           
  10e0ed:	89 e5                	mov    %esp,%ebp                      
  10e0ef:	56                   	push   %esi                           
  10e0f0:	53                   	push   %ebx                           
  10e0f1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10e0f4:	8b 75 10             	mov    0x10(%ebp),%esi                
  Thread_Control *the_thread;                                         
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) {
  10e0f7:	eb 06                	jmp    10e0ff <_Thread_queue_Flush+0x13>
  10e0f9:	8d 76 00             	lea    0x0(%esi),%esi                 
#if defined(RTEMS_MULTIPROCESSING)                                    
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      ( *remote_extract_callout )( the_thread );                      
    else                                                              
#endif                                                                
      the_thread->Wait.return_code = status;                          
  10e0fc:	89 70 34             	mov    %esi,0x34(%eax)                
  uint32_t                    status                                  
)                                                                     
{                                                                     
  Thread_Control *the_thread;                                         
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) {
  10e0ff:	83 ec 0c             	sub    $0xc,%esp                      
  10e102:	53                   	push   %ebx                           
  10e103:	e8 80 fc ff ff       	call   10dd88 <_Thread_queue_Dequeue> 
  10e108:	83 c4 10             	add    $0x10,%esp                     
  10e10b:	85 c0                	test   %eax,%eax                      
  10e10d:	75 ed                	jne    10e0fc <_Thread_queue_Flush+0x10>
      ( *remote_extract_callout )( the_thread );                      
    else                                                              
#endif                                                                
      the_thread->Wait.return_code = status;                          
  }                                                                   
}                                                                     
  10e10f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e112:	5b                   	pop    %ebx                           
  10e113:	5e                   	pop    %esi                           
  10e114:	c9                   	leave                                 
  10e115:	c3                   	ret                                   
                                                                      

0010e118 <_Thread_queue_Initialize>: Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) {
  10e118:	55                   	push   %ebp                           
  10e119:	89 e5                	mov    %esp,%ebp                      
  10e11b:	56                   	push   %esi                           
  10e11c:	53                   	push   %ebx                           
  10e11d:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e120:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  the_thread_queue->state          = state;                           
  10e123:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10e126:	89 48 38             	mov    %ecx,0x38(%eax)                
  the_thread_queue->discipline     = the_discipline;                  
  10e129:	89 50 34             	mov    %edx,0x34(%eax)                
  the_thread_queue->timeout_status = timeout_status;                  
  10e12c:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10e12f:	89 48 3c             	mov    %ecx,0x3c(%eax)                
  the_thread_queue->sync_state     = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
  10e132:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
                                                                      
  if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {         
  10e139:	83 fa 01             	cmp    $0x1,%edx                      
  10e13c:	74 16                	je     10e154 <_Thread_queue_Initialize+0x3c>
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10e13e:	8d 50 04             	lea    0x4(%eax),%edx                 
  10e141:	89 10                	mov    %edx,(%eax)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10e143:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)                 
  tail->previous = head;                                              
  10e14a:	89 40 08             	mov    %eax,0x8(%eax)                 
      _Chain_Initialize_empty( &the_thread_queue->Queues.Priority[index] );
  } else { /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                 
    _Chain_Initialize_empty( &the_thread_queue->Queues.Fifo );        
  }                                                                   
                                                                      
}                                                                     
  10e14d:	5b                   	pop    %ebx                           
  10e14e:	5e                   	pop    %esi                           
  10e14f:	c9                   	leave                                 
  10e150:	c3                   	ret                                   
  10e151:	8d 76 00             	lea    0x0(%esi),%esi                 
  the_thread_queue->state          = state;                           
  the_thread_queue->discipline     = the_discipline;                  
  the_thread_queue->timeout_status = timeout_status;                  
  the_thread_queue->sync_state     = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
                                                                      
  if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {         
  10e154:	89 c1                	mov    %eax,%ecx                      
  10e156:	30 d2                	xor    %dl,%dl                        
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10e158:	8d 1c 52             	lea    (%edx,%edx,2),%ebx             
  10e15b:	8d 1c 98             	lea    (%eax,%ebx,4),%ebx             
  10e15e:	8d 73 04             	lea    0x4(%ebx),%esi                 
  10e161:	89 31                	mov    %esi,(%ecx)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10e163:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  10e16a:	89 59 08             	mov    %ebx,0x8(%ecx)                 
    uint32_t   index;                                                 
                                                                      
    for( index=0 ;                                                    
         index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;         
         index++)                                                     
  10e16d:	42                   	inc    %edx                           
  10e16e:	83 c1 0c             	add    $0xc,%ecx                      
  the_thread_queue->sync_state     = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
                                                                      
  if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {         
    uint32_t   index;                                                 
                                                                      
    for( index=0 ;                                                    
  10e171:	83 fa 04             	cmp    $0x4,%edx                      
  10e174:	75 e2                	jne    10e158 <_Thread_queue_Initialize+0x40>
      _Chain_Initialize_empty( &the_thread_queue->Queues.Priority[index] );
  } else { /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                 
    _Chain_Initialize_empty( &the_thread_queue->Queues.Fifo );        
  }                                                                   
                                                                      
}                                                                     
  10e176:	5b                   	pop    %ebx                           
  10e177:	5e                   	pop    %esi                           
  10e178:	c9                   	leave                                 
  10e179:	c3                   	ret                                   
                                                                      

0010e17c <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
  10e17c:	55                   	push   %ebp                           
  10e17d:	89 e5                	mov    %esp,%ebp                      
  10e17f:	57                   	push   %edi                           
  10e180:	56                   	push   %esi                           
  10e181:	53                   	push   %ebx                           
  10e182:	83 ec 1c             	sub    $0x1c,%esp                     
  10e185:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10e188:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  /*                                                                  
   * Just in case the thread really wasn't blocked on a thread queue  
   * when we get here.                                                
   */                                                                 
  if ( !the_thread_queue )                                            
  10e18b:	85 f6                	test   %esi,%esi                      
  10e18d:	74 06                	je     10e195 <_Thread_queue_Requeue+0x19><== 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 ) {
  10e18f:	83 7e 34 01          	cmpl   $0x1,0x34(%esi)                
  10e193:	74 0b                	je     10e1a0 <_Thread_queue_Requeue+0x24><== ALWAYS TAKEN
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
    }                                                                 
    _ISR_Enable( level );                                             
  }                                                                   
}                                                                     
  10e195:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10e198:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10e199:	5e                   	pop    %esi                           <== NOT EXECUTED
  10e19a:	5f                   	pop    %edi                           <== NOT EXECUTED
  10e19b:	c9                   	leave                                 <== NOT EXECUTED
  10e19c:	c3                   	ret                                   <== NOT EXECUTED
  10e19d:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {
    Thread_queue_Control *tq = the_thread_queue;                      
    ISR_Level             level;                                      
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
  10e1a0:	9c                   	pushf                                 
  10e1a1:	fa                   	cli                                   
  10e1a2:	5b                   	pop    %ebx                           
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  10e1a3:	f7 47 10 e0 be 03 00 	testl  $0x3bee0,0x10(%edi)            
  10e1aa:	75 0c                	jne    10e1b8 <_Thread_queue_Requeue+0x3c><== ALWAYS TAKEN
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
    }                                                                 
    _ISR_Enable( level );                                             
  10e1ac:	53                   	push   %ebx                           
  10e1ad:	9d                   	popf                                  
  }                                                                   
}                                                                     
  10e1ae:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e1b1:	5b                   	pop    %ebx                           
  10e1b2:	5e                   	pop    %esi                           
  10e1b3:	5f                   	pop    %edi                           
  10e1b4:	c9                   	leave                                 
  10e1b5:	c3                   	ret                                   
  10e1b6:	66 90                	xchg   %ax,%ax                        
                                                                      
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;
  10e1b8:	c7 46 30 01 00 00 00 	movl   $0x1,0x30(%esi)                
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
  10e1bf:	50                   	push   %eax                           
  10e1c0:	6a 01                	push   $0x1                           
  10e1c2:	57                   	push   %edi                           
  10e1c3:	56                   	push   %esi                           
  10e1c4:	e8 5b 36 00 00       	call   111824 <_Thread_queue_Extract_priority_helper>
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
  10e1c9:	83 c4 0c             	add    $0xc,%esp                      
  10e1cc:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10e1cf:	50                   	push   %eax                           
  10e1d0:	57                   	push   %edi                           
  10e1d1:	56                   	push   %esi                           
  10e1d2:	e8 71 fd ff ff       	call   10df48 <_Thread_queue_Enqueue_priority>
  10e1d7:	83 c4 10             	add    $0x10,%esp                     
  10e1da:	eb d0                	jmp    10e1ac <_Thread_queue_Requeue+0x30>
                                                                      

0010e1dc <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
  10e1dc:	55                   	push   %ebp                           
  10e1dd:	89 e5                	mov    %esp,%ebp                      
  10e1df:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10e1e2:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e1e5:	50                   	push   %eax                           
  10e1e6:	ff 75 08             	pushl  0x8(%ebp)                      
  10e1e9:	e8 3e f8 ff ff       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  10e1ee:	83 c4 10             	add    $0x10,%esp                     
  10e1f1:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e1f4:	85 d2                	test   %edx,%edx                      
  10e1f6:	75 17                	jne    10e20f <_Thread_queue_Timeout+0x33><== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
  10e1f8:	83 ec 0c             	sub    $0xc,%esp                      
  10e1fb:	50                   	push   %eax                           
  10e1fc:	e8 df 36 00 00       	call   1118e0 <_Thread_queue_Process_timeout>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10e201:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10e206:	48                   	dec    %eax                           
  10e207:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
  10e20c:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10e20f:	c9                   	leave                                 
  10e210:	c3                   	ret                                   
                                                                      

00118e00 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
  118e00:	55                   	push   %ebp                           
  118e01:	89 e5                	mov    %esp,%ebp                      
  118e03:	57                   	push   %edi                           
  118e04:	56                   	push   %esi                           
  118e05:	53                   	push   %ebx                           
  118e06:	83 ec 4c             	sub    $0x4c,%esp                     
  118e09:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  118e0c:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  118e0f:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  118e12:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  head->previous = NULL;                                              
  118e15:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  tail->previous = head;                                              
  118e1c:	8d 4d dc             	lea    -0x24(%ebp),%ecx               
  118e1f:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  118e22:	8d 7d d0             	lea    -0x30(%ebp),%edi               
  118e25:	8d 45 d4             	lea    -0x2c(%ebp),%eax               
  118e28:	89 45 b0             	mov    %eax,-0x50(%ebp)               
  118e2b:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  head->previous = NULL;                                              
  118e2e:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)               
  tail->previous = head;                                              
  118e35:	89 7d d8             	mov    %edi,-0x28(%ebp)               
  118e38:	8d 73 30             	lea    0x30(%ebx),%esi                
  118e3b:	8d 4b 68             	lea    0x68(%ebx),%ecx                
  118e3e:	89 4d c4             	mov    %ecx,-0x3c(%ebp)               
  118e41:	8d 43 08             	lea    0x8(%ebx),%eax                 
  118e44:	89 45 bc             	mov    %eax,-0x44(%ebp)               
  118e47:	8d 53 40             	lea    0x40(%ebx),%edx                
  118e4a:	89 55 c0             	mov    %edx,-0x40(%ebp)               
  118e4d:	8d 76 00             	lea    0x0(%esi),%esi                 
  Chain_Control *tmp;                                                 
  /*                                                                  
   *  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;                                    
  118e50:	8d 4d dc             	lea    -0x24(%ebp),%ecx               
  118e53:	89 4b 78             	mov    %ecx,0x78(%ebx)                
  118e56:	66 90                	xchg   %ax,%ax                        
static void _Timer_server_Process_interval_watchdogs(                 
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
  118e58:	a1 24 2c 14 00       	mov    0x142c24,%eax                  
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
  118e5d:	8b 53 3c             	mov    0x3c(%ebx),%edx                
                                                                      
  watchdogs->last_snapshot = snapshot;                                
  118e60:	89 43 3c             	mov    %eax,0x3c(%ebx)                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
  118e63:	51                   	push   %ecx                           
  118e64:	57                   	push   %edi                           
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
  118e65:	29 d0                	sub    %edx,%eax                      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
  118e67:	50                   	push   %eax                           
  118e68:	56                   	push   %esi                           
  118e69:	e8 c6 3f 00 00       	call   11ce34 <_Watchdog_Adjust_to_chain>
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
  118e6e:	a1 88 2b 14 00       	mov    0x142b88,%eax                  
  Watchdog_Interval last_snapshot = watchdogs->last_snapshot;         
  118e73:	8b 53 74             	mov    0x74(%ebx),%edx                
  /*                                                                  
   *  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 ) {                                   
  118e76:	83 c4 10             	add    $0x10,%esp                     
  118e79:	39 d0                	cmp    %edx,%eax                      
  118e7b:	0f 87 af 00 00 00    	ja     118f30 <_Timer_server_Body+0x130>
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
  118e81:	0f 82 c9 00 00 00    	jb     118f50 <_Timer_server_Body+0x150>
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
  118e87:	89 43 74             	mov    %eax,0x74(%ebx)                
  118e8a:	66 90                	xchg   %ax,%ax                        
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
  118e8c:	8b 43 78             	mov    0x78(%ebx),%eax                
  118e8f:	83 ec 0c             	sub    $0xc,%esp                      
  118e92:	50                   	push   %eax                           
  118e93:	e8 0c 0a 00 00       	call   1198a4 <_Chain_Get>            
                                                                      
    if ( timer == NULL ) {                                            
  118e98:	83 c4 10             	add    $0x10,%esp                     
  118e9b:	85 c0                	test   %eax,%eax                      
  118e9d:	74 35                	je     118ed4 <_Timer_server_Body+0xd4><== ALWAYS TAKEN
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
  118e9f:	8b 50 38             	mov    0x38(%eax),%edx                <== NOT EXECUTED
  118ea2:	83 fa 01             	cmp    $0x1,%edx                      <== NOT EXECUTED
  118ea5:	74 19                	je     118ec0 <_Timer_server_Body+0xc0><== NOT EXECUTED
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
  118ea7:	83 fa 03             	cmp    $0x3,%edx                      <== NOT EXECUTED
  118eaa:	75 e0                	jne    118e8c <_Timer_server_Body+0x8c><== NOT EXECUTED
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
  118eac:	83 ec 08             	sub    $0x8,%esp                      <== NOT EXECUTED
  118eaf:	83 c0 10             	add    $0x10,%eax                     <== NOT EXECUTED
  118eb2:	50                   	push   %eax                           <== NOT EXECUTED
  118eb3:	ff 75 c4             	pushl  -0x3c(%ebp)                    <== NOT EXECUTED
  118eb6:	e8 05 40 00 00       	call   11cec0 <_Watchdog_Insert>      <== NOT EXECUTED
  118ebb:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  118ebe:	eb cc                	jmp    118e8c <_Timer_server_Body+0x8c><== NOT EXECUTED
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  118ec0:	83 ec 08             	sub    $0x8,%esp                      <== NOT EXECUTED
  118ec3:	83 c0 10             	add    $0x10,%eax                     <== NOT EXECUTED
  118ec6:	50                   	push   %eax                           <== NOT EXECUTED
  118ec7:	56                   	push   %esi                           <== NOT EXECUTED
  118ec8:	e8 f3 3f 00 00       	call   11cec0 <_Watchdog_Insert>      <== NOT EXECUTED
  118ecd:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  118ed0:	eb ba                	jmp    118e8c <_Timer_server_Body+0x8c><== NOT EXECUTED
  118ed2:	66 90                	xchg   %ax,%ax                        <== 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 );                                            
  118ed4:	9c                   	pushf                                 
  118ed5:	fa                   	cli                                   
  118ed6:	58                   	pop    %eax                           
      tmp = ts->insert_chain;                                         
  118ed7:	8b 53 78             	mov    0x78(%ebx),%edx                
      if ( _Chain_Is_empty( insert_chain ) ) {                        
  118eda:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  118edd:	39 55 dc             	cmp    %edx,-0x24(%ebp)               
  118ee0:	0f 84 86 00 00 00    	je     118f6c <_Timer_server_Body+0x16c><== ALWAYS TAKEN
  118ee6:	b2 01                	mov    $0x1,%dl                       <== NOT EXECUTED
        ts->insert_chain = NULL;                                      
        do_loop          = false;                                     
      }                                                               
    _ISR_Enable( level );                                             
  118ee8:	50                   	push   %eax                           
  118ee9:	9d                   	popf                                  
   *  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;                                    
                                                                      
  while ( do_loop ) {                                                 
  118eea:	84 d2                	test   %dl,%dl                        
  118eec:	0f 85 66 ff ff ff    	jne    118e58 <_Timer_server_Body+0x58><== NEVER TAKEN
  _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 ) ) {                          
  118ef2:	8b 4d b0             	mov    -0x50(%ebp),%ecx               
  118ef5:	39 4d d0             	cmp    %ecx,-0x30(%ebp)               
  118ef8:	75 22                	jne    118f1c <_Timer_server_Body+0x11c>
  118efa:	eb 7e                	jmp    118f7a <_Timer_server_Body+0x17a>
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
  118efc:	8b 10                	mov    (%eax),%edx                    
                                                                      
  head->next = new_first;                                             
  118efe:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  new_first->previous = head;                                         
  118f01:	89 7a 04             	mov    %edi,0x4(%edx)                 
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
  118f04:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)                 
          _ISR_Enable( level );                                       
  118f0b:	51                   	push   %ecx                           
  118f0c:	9d                   	popf                                  
        /*                                                            
         *  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 );    
  118f0d:	83 ec 08             	sub    $0x8,%esp                      
  118f10:	ff 70 24             	pushl  0x24(%eax)                     
  118f13:	ff 70 20             	pushl  0x20(%eax)                     
  118f16:	ff 50 1c             	call   *0x1c(%eax)                    
      }                                                               
  118f19:	83 c4 10             	add    $0x10,%esp                     
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
  118f1c:	9c                   	pushf                                 
  118f1d:	fa                   	cli                                   
  118f1e:	59                   	pop    %ecx                           
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  118f1f:	8b 45 d0             	mov    -0x30(%ebp),%eax               
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
  118f22:	3b 45 b0             	cmp    -0x50(%ebp),%eax               
  118f25:	75 d5                	jne    118efc <_Timer_server_Body+0xfc>
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
  118f27:	51                   	push   %ecx                           
  118f28:	9d                   	popf                                  
  118f29:	e9 22 ff ff ff       	jmp    118e50 <_Timer_server_Body+0x50>
  118f2e:	66 90                	xchg   %ax,%ax                        
    /*                                                                
     *  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 );
  118f30:	51                   	push   %ecx                           
  118f31:	57                   	push   %edi                           
  if ( snapshot > last_snapshot ) {                                   
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
  118f32:	89 c1                	mov    %eax,%ecx                      
  118f34:	29 d1                	sub    %edx,%ecx                      
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
  118f36:	51                   	push   %ecx                           
  118f37:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  118f3a:	89 45 b8             	mov    %eax,-0x48(%ebp)               
  118f3d:	e8 f2 3e 00 00       	call   11ce34 <_Watchdog_Adjust_to_chain>
  118f42:	83 c4 10             	add    $0x10,%esp                     
  118f45:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  118f48:	e9 3a ff ff ff       	jmp    118e87 <_Timer_server_Body+0x87>
  118f4d:	8d 76 00             	lea    0x0(%esi),%esi                 
     /*                                                               
      *  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 ); 
  118f50:	51                   	push   %ecx                           
  } else if ( snapshot < last_snapshot ) {                            
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
  118f51:	29 c2                	sub    %eax,%edx                      
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
  118f53:	52                   	push   %edx                           
  118f54:	6a 01                	push   $0x1                           
  118f56:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  118f59:	89 45 b8             	mov    %eax,-0x48(%ebp)               
  118f5c:	e8 5b 3e 00 00       	call   11cdbc <_Watchdog_Adjust>      
  118f61:	83 c4 10             	add    $0x10,%esp                     
  118f64:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  118f67:	e9 1b ff ff ff       	jmp    118e87 <_Timer_server_Body+0x87>
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
      tmp = ts->insert_chain;                                         
      if ( _Chain_Is_empty( insert_chain ) ) {                        
        ts->insert_chain = NULL;                                      
  118f6c:	c7 43 78 00 00 00 00 	movl   $0x0,0x78(%ebx)                
        do_loop          = false;                                     
  118f73:	31 d2                	xor    %edx,%edx                      
  118f75:	e9 6e ff ff ff       	jmp    118ee8 <_Timer_server_Body+0xe8>
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
  118f7a:	c6 43 7c 00          	movb   $0x0,0x7c(%ebx)                
  118f7e:	a1 f0 2a 14 00       	mov    0x142af0,%eax                  
  118f83:	40                   	inc    %eax                           
  118f84:	a3 f0 2a 14 00       	mov    %eax,0x142af0                  
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
  118f89:	83 ec 08             	sub    $0x8,%esp                      
  118f8c:	6a 08                	push   $0x8                           
  118f8e:	ff 33                	pushl  (%ebx)                         
  118f90:	e8 0f 38 00 00       	call   11c7a4 <_Thread_Set_state>     
        _Timer_server_Reset_interval_system_watchdog( ts );           
  118f95:	89 d8                	mov    %ebx,%eax                      
  118f97:	e8 c4 fd ff ff       	call   118d60 <_Timer_server_Reset_interval_system_watchdog>
        _Timer_server_Reset_tod_system_watchdog( ts );                
  118f9c:	89 d8                	mov    %ebx,%eax                      
  118f9e:	e8 0d fe ff ff       	call   118db0 <_Timer_server_Reset_tod_system_watchdog>
      _Thread_Enable_dispatch();                                      
  118fa3:	e8 18 2f 00 00       	call   11bec0 <_Thread_Enable_dispatch>
                                                                      
      ts->active = true;                                              
  118fa8:	c6 43 7c 01          	movb   $0x1,0x7c(%ebx)                
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
  118fac:	5a                   	pop    %edx                           
  118fad:	ff 75 bc             	pushl  -0x44(%ebp)                    
  118fb0:	e8 4b 40 00 00       	call   11d000 <_Watchdog_Remove>      
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
  118fb5:	58                   	pop    %eax                           
  118fb6:	ff 75 c0             	pushl  -0x40(%ebp)                    
  118fb9:	e8 42 40 00 00       	call   11d000 <_Watchdog_Remove>      
  118fbe:	83 c4 10             	add    $0x10,%esp                     
  118fc1:	e9 8a fe ff ff       	jmp    118e50 <_Timer_server_Body+0x50>
                                                                      

00118fc8 <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) {
  118fc8:	55                   	push   %ebp                           
  118fc9:	89 e5                	mov    %esp,%ebp                      
  118fcb:	57                   	push   %edi                           
  118fcc:	56                   	push   %esi                           
  118fcd:	53                   	push   %ebx                           
  118fce:	83 ec 2c             	sub    $0x2c,%esp                     
  118fd1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  118fd4:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  if ( ts->insert_chain == NULL ) {                                   
  118fd7:	8b 53 78             	mov    0x78(%ebx),%edx                
  118fda:	85 d2                	test   %edx,%edx                      
  118fdc:	74 16                	je     118ff4 <_Timer_server_Schedule_operation_method+0x2c><== ALWAYS TAKEN
     *  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 );           
  118fde:	8b 53 78             	mov    0x78(%ebx),%edx                <== NOT EXECUTED
  118fe1:	89 45 0c             	mov    %eax,0xc(%ebp)                 <== NOT EXECUTED
  118fe4:	89 55 08             	mov    %edx,0x8(%ebp)                 <== NOT EXECUTED
  }                                                                   
}                                                                     
  118fe7:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  118fea:	5b                   	pop    %ebx                           <== NOT EXECUTED
  118feb:	5e                   	pop    %esi                           <== NOT EXECUTED
  118fec:	5f                   	pop    %edi                           <== NOT EXECUTED
  118fed:	c9                   	leave                                 <== 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 );           
  118fee:	e9 75 08 00 00       	jmp    119868 <_Chain_Append>         <== NOT EXECUTED
  118ff3:	90                   	nop                                   <== NOT EXECUTED
  118ff4:	8b 15 f0 2a 14 00    	mov    0x142af0,%edx                  
  118ffa:	42                   	inc    %edx                           
  118ffb:	89 15 f0 2a 14 00    	mov    %edx,0x142af0                  
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
  119001:	8b 50 38             	mov    0x38(%eax),%edx                
  119004:	83 fa 01             	cmp    $0x1,%edx                      
  119007:	74 7b                	je     119084 <_Timer_server_Schedule_operation_method+0xbc>
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
                                                                      
    if ( !ts->active ) {                                              
      _Timer_server_Reset_interval_system_watchdog( ts );             
    }                                                                 
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
  119009:	83 fa 03             	cmp    $0x3,%edx                      
  11900c:	74 0e                	je     11901c <_Timer_server_Schedule_operation_method+0x54>
     *  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 );           
  }                                                                   
}                                                                     
  11900e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  119011:	5b                   	pop    %ebx                           
  119012:	5e                   	pop    %esi                           
  119013:	5f                   	pop    %edi                           
  119014:	c9                   	leave                                 
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
  119015:	e9 a6 2e 00 00       	jmp    11bec0 <_Thread_Enable_dispatch>
  11901a:	66 90                	xchg   %ax,%ax                        
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
  11901c:	9c                   	pushf                                 
  11901d:	fa                   	cli                                   
  11901e:	8f 45 e4             	popl   -0x1c(%ebp)                    
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
  119021:	8b 0d 88 2b 14 00    	mov    0x142b88,%ecx                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
  119027:	8b 53 74             	mov    0x74(%ebx),%edx                
  11902a:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  11902d:	8b 53 68             	mov    0x68(%ebx),%edx                
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  119030:	8d 7b 6c             	lea    0x6c(%ebx),%edi                
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
  119033:	39 fa                	cmp    %edi,%edx                      
  119035:	74 21                	je     119058 <_Timer_server_Schedule_operation_method+0x90>
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
  119037:	8b 7a 10             	mov    0x10(%edx),%edi                
      if ( snapshot > last_snapshot ) {                               
  11903a:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  11903d:	0f 86 a1 00 00 00    	jbe    1190e4 <_Timer_server_Schedule_operation_method+0x11c>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
  119043:	89 ce                	mov    %ecx,%esi                      
  119045:	2b 75 d4             	sub    -0x2c(%ebp),%esi               
  119048:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
        if (delta_interval > delta) {                                 
  11904b:	39 f7                	cmp    %esi,%edi                      
  11904d:	0f 86 9b 00 00 00    	jbe    1190ee <_Timer_server_Schedule_operation_method+0x126><== NEVER TAKEN
          delta_interval -= delta;                                    
  119053:	29 f7                	sub    %esi,%edi                      
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
        delta_interval += delta;                                      
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
  119055:	89 7a 10             	mov    %edi,0x10(%edx)                
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
  119058:	89 4b 74             	mov    %ecx,0x74(%ebx)                
    _ISR_Enable( level );                                             
  11905b:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  11905e:	9d                   	popf                                  
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
  11905f:	83 ec 08             	sub    $0x8,%esp                      
  119062:	83 c0 10             	add    $0x10,%eax                     
  119065:	50                   	push   %eax                           
  119066:	8d 43 68             	lea    0x68(%ebx),%eax                
  119069:	50                   	push   %eax                           
  11906a:	e8 51 3e 00 00       	call   11cec0 <_Watchdog_Insert>      
                                                                      
    if ( !ts->active ) {                                              
  11906f:	8a 43 7c             	mov    0x7c(%ebx),%al                 
  119072:	83 c4 10             	add    $0x10,%esp                     
  119075:	84 c0                	test   %al,%al                        
  119077:	75 95                	jne    11900e <_Timer_server_Schedule_operation_method+0x46>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
  119079:	89 d8                	mov    %ebx,%eax                      
  11907b:	e8 30 fd ff ff       	call   118db0 <_Timer_server_Reset_tod_system_watchdog>
  119080:	eb 8c                	jmp    11900e <_Timer_server_Schedule_operation_method+0x46>
  119082:	66 90                	xchg   %ax,%ax                        
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
  119084:	9c                   	pushf                                 
  119085:	fa                   	cli                                   
  119086:	8f 45 e4             	popl   -0x1c(%ebp)                    
    snapshot = _Watchdog_Ticks_since_boot;                            
  119089:	8b 0d 24 2c 14 00    	mov    0x142c24,%ecx                  
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
  11908f:	8b 7b 3c             	mov    0x3c(%ebx),%edi                
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  119092:	8b 53 30             	mov    0x30(%ebx),%edx                
  119095:	8d 73 34             	lea    0x34(%ebx),%esi                
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = _Watchdog_Ticks_since_boot;                            
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
    if ( !_Chain_Is_empty( &ts->Interval_watchdogs.Chain ) ) {        
  119098:	39 f2                	cmp    %esi,%edx                      
  11909a:	74 10                	je     1190ac <_Timer_server_Schedule_operation_method+0xe4>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
  11909c:	89 ce                	mov    %ecx,%esi                      
  11909e:	29 fe                	sub    %edi,%esi                      
                                                                      
      delta_interval = first_watchdog->delta_interval;                
  1190a0:	8b 7a 10             	mov    0x10(%edx),%edi                
      if (delta_interval > delta) {                                   
  1190a3:	39 fe                	cmp    %edi,%esi                      
  1190a5:	73 39                	jae    1190e0 <_Timer_server_Schedule_operation_method+0x118>
        delta_interval -= delta;                                      
  1190a7:	29 f7                	sub    %esi,%edi                      
      } else {                                                        
        delta_interval = 0;                                           
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
  1190a9:	89 7a 10             	mov    %edi,0x10(%edx)                
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
  1190ac:	89 4b 3c             	mov    %ecx,0x3c(%ebx)                
    _ISR_Enable( level );                                             
  1190af:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1190b2:	9d                   	popf                                  
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  1190b3:	83 ec 08             	sub    $0x8,%esp                      
  1190b6:	83 c0 10             	add    $0x10,%eax                     
  1190b9:	50                   	push   %eax                           
  1190ba:	8d 43 30             	lea    0x30(%ebx),%eax                
  1190bd:	50                   	push   %eax                           
  1190be:	e8 fd 3d 00 00       	call   11cec0 <_Watchdog_Insert>      
                                                                      
    if ( !ts->active ) {                                              
  1190c3:	8a 43 7c             	mov    0x7c(%ebx),%al                 
  1190c6:	83 c4 10             	add    $0x10,%esp                     
  1190c9:	84 c0                	test   %al,%al                        
  1190cb:	0f 85 3d ff ff ff    	jne    11900e <_Timer_server_Schedule_operation_method+0x46>
      _Timer_server_Reset_interval_system_watchdog( ts );             
  1190d1:	89 d8                	mov    %ebx,%eax                      
  1190d3:	e8 88 fc ff ff       	call   118d60 <_Timer_server_Reset_interval_system_watchdog>
  1190d8:	e9 31 ff ff ff       	jmp    11900e <_Timer_server_Schedule_operation_method+0x46>
  1190dd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      delta_interval = first_watchdog->delta_interval;                
      if (delta_interval > delta) {                                   
        delta_interval -= delta;                                      
      } else {                                                        
        delta_interval = 0;                                           
  1190e0:	31 ff                	xor    %edi,%edi                      
  1190e2:	eb c5                	jmp    1190a9 <_Timer_server_Schedule_operation_method+0xe1>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
  1190e4:	03 7d d4             	add    -0x2c(%ebp),%edi               
        delta_interval += delta;                                      
  1190e7:	29 cf                	sub    %ecx,%edi                      
  1190e9:	e9 67 ff ff ff       	jmp    119055 <_Timer_server_Schedule_operation_method+0x8d>
         */                                                           
        delta = snapshot - last_snapshot;                             
        if (delta_interval > delta) {                                 
          delta_interval -= delta;                                    
        } else {                                                      
          delta_interval = 0;                                         
  1190ee:	31 ff                	xor    %edi,%edi                      <== NOT EXECUTED
  1190f0:	e9 60 ff ff ff       	jmp    119055 <_Timer_server_Schedule_operation_method+0x8d><== NOT EXECUTED
                                                                      

0010fca8 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) {
  10fca8:	55                   	push   %ebp                           
  10fca9:	89 e5                	mov    %esp,%ebp                      
  10fcab:	57                   	push   %edi                           
  10fcac:	56                   	push   %esi                           
  10fcad:	53                   	push   %ebx                           
  10fcae:	83 ec 2c             	sub    $0x2c,%esp                     
  10fcb1:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10fcb4:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
                                                                      
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  10fcb7:	8b 38                	mov    (%eax),%edi                    
  left  += lhs->tv_nsec;                                              
  10fcb9:	8b 70 04             	mov    0x4(%eax),%esi                 
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  10fcbc:	bb 00 ca 9a 3b       	mov    $0x3b9aca00,%ebx               
  10fcc1:	8b 01                	mov    (%ecx),%eax                    
  10fcc3:	f7 eb                	imul   %ebx                           
  10fcc5:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10fcc8:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  right += rhs->tv_nsec;                                              
  10fccb:	8b 41 04             	mov    0x4(%ecx),%eax                 
  10fcce:	99                   	cltd                                  
  10fccf:	01 45 e0             	add    %eax,-0x20(%ebp)               
  10fcd2:	11 55 e4             	adc    %edx,-0x1c(%ebp)               
                                                                      
  if ( right == 0 ) {                                                 
  10fcd5:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10fcd8:	0b 55 e0             	or     -0x20(%ebp),%edx               
  10fcdb:	74 73                	je     10fd50 <_Timespec_Divide+0xa8> 
                                                                      
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  10fcdd:	89 f8                	mov    %edi,%eax                      
  10fcdf:	f7 eb                	imul   %ebx                           
  10fce1:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  10fce4:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  left  += lhs->tv_nsec;                                              
  10fce7:	89 f7                	mov    %esi,%edi                      
  10fce9:	c1 ff 1f             	sar    $0x1f,%edi                     
  10fcec:	01 75 d0             	add    %esi,-0x30(%ebp)               
  10fcef:	11 7d d4             	adc    %edi,-0x2c(%ebp)               
   *  Put it back in the timespec result.                             
   *                                                                  
   *  TODO: Rounding on the last digit of the fval.                   
   */                                                                 
                                                                      
  answer = (left * 100000) / right;                                   
  10fcf2:	69 4d d4 a0 86 01 00 	imul   $0x186a0,-0x2c(%ebp),%ecx      
  10fcf9:	bb a0 86 01 00       	mov    $0x186a0,%ebx                  
  10fcfe:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10fd01:	f7 e3                	mul    %ebx                           
  10fd03:	8d 34 11             	lea    (%ecx,%edx,1),%esi             
  10fd06:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10fd09:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10fd0c:	56                   	push   %esi                           
  10fd0d:	50                   	push   %eax                           
  10fd0e:	e8 39 12 01 00       	call   120f4c <__udivdi3>             
  10fd13:	83 c4 10             	add    $0x10,%esp                     
  10fd16:	89 c3                	mov    %eax,%ebx                      
  10fd18:	89 d6                	mov    %edx,%esi                      
                                                                      
  *ival_percentage = answer / 1000;                                   
  10fd1a:	6a 00                	push   $0x0                           
  10fd1c:	68 e8 03 00 00       	push   $0x3e8                         
  10fd21:	52                   	push   %edx                           
  10fd22:	50                   	push   %eax                           
  10fd23:	e8 24 12 01 00       	call   120f4c <__udivdi3>             
  10fd28:	83 c4 10             	add    $0x10,%esp                     
  10fd2b:	8b 55 10             	mov    0x10(%ebp),%edx                
  10fd2e:	89 02                	mov    %eax,(%edx)                    
  *fval_percentage = answer % 1000;                                   
  10fd30:	6a 00                	push   $0x0                           
  10fd32:	68 e8 03 00 00       	push   $0x3e8                         
  10fd37:	56                   	push   %esi                           
  10fd38:	53                   	push   %ebx                           
  10fd39:	e8 1e 13 01 00       	call   12105c <__umoddi3>             
  10fd3e:	83 c4 10             	add    $0x10,%esp                     
  10fd41:	8b 55 14             	mov    0x14(%ebp),%edx                
  10fd44:	89 02                	mov    %eax,(%edx)                    
}                                                                     
  10fd46:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fd49:	5b                   	pop    %ebx                           
  10fd4a:	5e                   	pop    %esi                           
  10fd4b:	5f                   	pop    %edi                           
  10fd4c:	c9                   	leave                                 
  10fd4d:	c3                   	ret                                   
  10fd4e:	66 90                	xchg   %ax,%ax                        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  right += rhs->tv_nsec;                                              
                                                                      
  if ( right == 0 ) {                                                 
    *ival_percentage = 0;                                             
  10fd50:	8b 45 10             	mov    0x10(%ebp),%eax                
  10fd53:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
    *fval_percentage = 0;                                             
  10fd59:	8b 55 14             	mov    0x14(%ebp),%edx                
  10fd5c:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    
                                                                      
  answer = (left * 100000) / right;                                   
                                                                      
  *ival_percentage = answer / 1000;                                   
  *fval_percentage = answer % 1000;                                   
}                                                                     
  10fd62:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fd65:	5b                   	pop    %ebx                           
  10fd66:	5e                   	pop    %esi                           
  10fd67:	5f                   	pop    %edi                           
  10fd68:	c9                   	leave                                 
  10fd69:	c3                   	ret                                   
                                                                      

00120018 <_Timespec_Is_valid>: #include <rtems/score/tod.h> bool _Timespec_Is_valid( const struct timespec *time ) {
  120018:	55                   	push   %ebp                           
  120019:	89 e5                	mov    %esp,%ebp                      
  12001b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !time )                                                        
  12001e:	85 c0                	test   %eax,%eax                      
  120020:	74 1a                	je     12003c <_Timespec_Is_valid+0x24>
    return false;                                                     
                                                                      
  if ( time->tv_sec < 0 )                                             
  120022:	8b 10                	mov    (%eax),%edx                    
  120024:	85 d2                	test   %edx,%edx                      
  120026:	78 14                	js     12003c <_Timespec_Is_valid+0x24>
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
  120028:	8b 40 04             	mov    0x4(%eax),%eax                 
  12002b:	85 c0                	test   %eax,%eax                      
  12002d:	78 0d                	js     12003c <_Timespec_Is_valid+0x24>
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Is_valid(                                              
  12002f:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  120034:	0f 96 c0             	setbe  %al                            
                                                                      
  if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND )                  
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  120037:	c9                   	leave                                 
  120038:	c3                   	ret                                   
  120039:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( time->tv_sec < 0 )                                             
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
    return false;                                                     
  12003c:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND )                  
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  12003e:	c9                   	leave                                 
  12003f:	c3                   	ret                                   
                                                                      

0011198c <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) {
  11198c:	55                   	push   %ebp                           
  11198d:	89 e5                	mov    %esp,%ebp                      
  11198f:	56                   	push   %esi                           
  111990:	53                   	push   %ebx                           
  111991:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
  111994:	8b 33                	mov    (%ebx),%esi                    
  111996:	85 f6                	test   %esi,%esi                      
  111998:	75 07                	jne    1119a1 <_Timespec_To_ticks+0x15>
  11199a:	8b 43 04             	mov    0x4(%ebx),%eax                 
  11199d:	85 c0                	test   %eax,%eax                      
  11199f:	74 37                	je     1119d8 <_Timespec_To_ticks+0x4c>
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
  1119a1:	e8 62 17 00 00       	call   113108 <TOD_TICKS_PER_SECOND_method>
  1119a6:	89 c1                	mov    %eax,%ecx                      
  1119a8:	0f af ce             	imul   %esi,%ecx                      
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
  1119ab:	a1 4c 3b 12 00       	mov    0x123b4c,%eax                  
  1119b0:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  1119b3:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  1119b6:	8d 34 80             	lea    (%eax,%eax,4),%esi             
  1119b9:	c1 e6 03             	shl    $0x3,%esi                      
  1119bc:	8b 43 04             	mov    0x4(%ebx),%eax                 
  1119bf:	31 d2                	xor    %edx,%edx                      
  1119c1:	f7 f6                	div    %esi                           
                                                                      
  if (ticks)                                                          
  1119c3:	01 c8                	add    %ecx,%eax                      
  1119c5:	74 05                	je     1119cc <_Timespec_To_ticks+0x40>
    return ticks;                                                     
                                                                      
  return 1;                                                           
}                                                                     
  1119c7:	5b                   	pop    %ebx                           
  1119c8:	5e                   	pop    %esi                           
  1119c9:	c9                   	leave                                 
  1119ca:	c3                   	ret                                   
  1119cb:	90                   	nop                                   
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
                                                                      
  if (ticks)                                                          
    return ticks;                                                     
                                                                      
  return 1;                                                           
  1119cc:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  1119d1:	5b                   	pop    %ebx                           
  1119d2:	5e                   	pop    %esi                           
  1119d3:	c9                   	leave                                 
  1119d4:	c3                   	ret                                   
  1119d5:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
    return 0;                                                         
  1119d8:	31 c0                	xor    %eax,%eax                      
                                                                      
  if (ticks)                                                          
    return ticks;                                                     
                                                                      
  return 1;                                                           
}                                                                     
  1119da:	5b                   	pop    %ebx                           
  1119db:	5e                   	pop    %esi                           
  1119dc:	c9                   	leave                                 
  1119dd:	c3                   	ret                                   
                                                                      

0010e618 <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
  10e618:	55                   	push   %ebp                           
  10e619:	89 e5                	mov    %esp,%ebp                      
  10e61b:	57                   	push   %edi                           
  10e61c:	56                   	push   %esi                           
  10e61d:	53                   	push   %ebx                           
  10e61e:	83 ec 1c             	sub    $0x1c,%esp                     
  10e621:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10e624:	8b 7d 10             	mov    0x10(%ebp),%edi                
  10e627:	8a 45 0c             	mov    0xc(%ebp),%al                  
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
  10e62a:	8b 1d 74 80 12 00    	mov    0x128074,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e630:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e636:	74 25                	je     10e65d <_User_extensions_Fatal+0x45><== NEVER TAKEN
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  10e638:	0f b6 c0             	movzbl %al,%eax                       
  10e63b:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10e63e:	66 90                	xchg   %ax,%ax                        
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
  10e640:	8b 43 30             	mov    0x30(%ebx),%eax                
  10e643:	85 c0                	test   %eax,%eax                      
  10e645:	74 0b                	je     10e652 <_User_extensions_Fatal+0x3a>
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  10e647:	52                   	push   %edx                           
  10e648:	57                   	push   %edi                           
  10e649:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e64c:	56                   	push   %esi                           
  10e64d:	ff d0                	call   *%eax                          
  10e64f:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
  10e652:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e655:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e65b:	75 e3                	jne    10e640 <_User_extensions_Fatal+0x28><== ALWAYS TAKEN
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
  10e65d:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10e660:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10e661:	5e                   	pop    %esi                           <== NOT EXECUTED
  10e662:	5f                   	pop    %edi                           <== NOT EXECUTED
  10e663:	c9                   	leave                                 <== NOT EXECUTED
  10e664:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010e4dc <_User_extensions_Handler_initialization>: #include <rtems/score/userext.h> #include <rtems/score/wkspace.h> #include <string.h> void _User_extensions_Handler_initialization(void) {
  10e4dc:	55                   	push   %ebp                           
  10e4dd:	89 e5                	mov    %esp,%ebp                      
  10e4df:	57                   	push   %edi                           
  10e4e0:	56                   	push   %esi                           
  10e4e1:	53                   	push   %ebx                           
  10e4e2:	83 ec 1c             	sub    $0x1c,%esp                     
  User_extensions_Control *extension;                                 
  uint32_t                 i;                                         
  uint32_t                 number_of_extensions;                      
  User_extensions_Table   *initial_extensions;                        
                                                                      
  number_of_extensions = Configuration.number_of_initial_extensions;  
  10e4e5:	a1 78 3b 12 00       	mov    0x123b78,%eax                  
  10e4ea:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  initial_extensions   = Configuration.User_extension_table;          
  10e4ed:	8b 35 7c 3b 12 00    	mov    0x123b7c,%esi                  
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10e4f3:	c7 05 6c 80 12 00 70 	movl   $0x128070,0x12806c             
  10e4fa:	80 12 00                                                    
  head->previous = NULL;                                              
  10e4fd:	c7 05 70 80 12 00 00 	movl   $0x0,0x128070                  
  10e504:	00 00 00                                                    
  tail->previous = head;                                              
  10e507:	c7 05 74 80 12 00 6c 	movl   $0x12806c,0x128074             
  10e50e:	80 12 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10e511:	c7 05 54 7e 12 00 58 	movl   $0x127e58,0x127e54             
  10e518:	7e 12 00                                                    
  head->previous = NULL;                                              
  10e51b:	c7 05 58 7e 12 00 00 	movl   $0x0,0x127e58                  
  10e522:	00 00 00                                                    
  tail->previous = head;                                              
  10e525:	c7 05 5c 7e 12 00 54 	movl   $0x127e54,0x127e5c             
  10e52c:	7e 12 00                                                    
                                                                      
  _Chain_Initialize_empty( &_User_extensions_List );                  
  _Chain_Initialize_empty( &_User_extensions_Switches_list );         
                                                                      
  if ( initial_extensions ) {                                         
  10e52f:	85 f6                	test   %esi,%esi                      
  10e531:	74 64                	je     10e597 <_User_extensions_Handler_initialization+0xbb><== NEVER TAKEN
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
  10e533:	89 c2                	mov    %eax,%edx                      
  10e535:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10e538:	8d 0c 82             	lea    (%edx,%eax,4),%ecx             
  10e53b:	c1 e1 02             	shl    $0x2,%ecx                      
  10e53e:	83 ec 0c             	sub    $0xc,%esp                      
  10e541:	51                   	push   %ecx                           
  10e542:	89 4d d8             	mov    %ecx,-0x28(%ebp)               
  10e545:	e8 ce 04 00 00       	call   10ea18 <_Workspace_Allocate_or_fatal_error>
  10e54a:	89 c3                	mov    %eax,%ebx                      
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
  10e54c:	31 c0                	xor    %eax,%eax                      
  10e54e:	8b 4d d8             	mov    -0x28(%ebp),%ecx               
  10e551:	89 df                	mov    %ebx,%edi                      
  10e553:	f3 aa                	rep stos %al,%es:(%edi)               
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
  10e555:	83 c4 10             	add    $0x10,%esp                     
  10e558:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10e55b:	85 c0                	test   %eax,%eax                      
  10e55d:	74 38                	je     10e597 <_User_extensions_Handler_initialization+0xbb><== NEVER TAKEN
  10e55f:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
  10e562:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  10e569:	8d 76 00             	lea    0x0(%esi),%esi                 
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
  10e56c:	8d 7b 14             	lea    0x14(%ebx),%edi                
  10e56f:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  10e572:	b9 08 00 00 00       	mov    $0x8,%ecx                      
  10e577:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  _User_extensions_Add_set( extension );                              
  10e579:	83 ec 0c             	sub    $0xc,%esp                      
  10e57c:	53                   	push   %ebx                           
  10e57d:	e8 5e 34 00 00       	call   1119e0 <_User_extensions_Add_set>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
  10e582:	83 c3 34             	add    $0x34,%ebx                     
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
  10e585:	ff 45 e0             	incl   -0x20(%ebp)                    
  10e588:	83 45 e4 20          	addl   $0x20,-0x1c(%ebp)              
  10e58c:	83 c4 10             	add    $0x10,%esp                     
  10e58f:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10e592:	39 45 dc             	cmp    %eax,-0x24(%ebp)               
  10e595:	77 d5                	ja     10e56c <_User_extensions_Handler_initialization+0x90>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
    }                                                                 
  }                                                                   
}                                                                     
  10e597:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e59a:	5b                   	pop    %ebx                           
  10e59b:	5e                   	pop    %esi                           
  10e59c:	5f                   	pop    %edi                           
  10e59d:	c9                   	leave                                 
  10e59e:	c3                   	ret                                   
                                                                      

0010fa5c <_User_extensions_Remove_set>: #include <rtems/score/userext.h> void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) {
  10fa5c:	55                   	push   %ebp                           
  10fa5d:	89 e5                	mov    %esp,%ebp                      
  10fa5f:	53                   	push   %ebx                           
  10fa60:	83 ec 10             	sub    $0x10,%esp                     
  10fa63:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  _Chain_Extract( &the_extension->Node );                             
  10fa66:	53                   	push   %ebx                           
  10fa67:	e8 74 d9 ff ff       	call   10d3e0 <_Chain_Extract>        
                                                                      
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
  10fa6c:	83 c4 10             	add    $0x10,%esp                     
  10fa6f:	8b 43 24             	mov    0x24(%ebx),%eax                
  10fa72:	85 c0                	test   %eax,%eax                      
  10fa74:	74 12                	je     10fa88 <_User_extensions_Remove_set+0x2c>
    _Chain_Extract( &the_extension->Switch.Node );                    
  10fa76:	83 c3 08             	add    $0x8,%ebx                      
  10fa79:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
}                                                                     
  10fa7c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10fa7f:	c9                   	leave                                 
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
    _Chain_Extract( &the_extension->Switch.Node );                    
  10fa80:	e9 5b d9 ff ff       	jmp    10d3e0 <_Chain_Extract>        
  10fa85:	8d 76 00             	lea    0x0(%esi),%esi                 
}                                                                     
  10fa88:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10fa8b:	c9                   	leave                                 
  10fa8c:	c3                   	ret                                   
                                                                      

0010e5a0 <_User_extensions_Thread_begin>: #include <rtems/score/userext.h> void _User_extensions_Thread_begin ( Thread_Control *executing ) {
  10e5a0:	55                   	push   %ebp                           
  10e5a1:	89 e5                	mov    %esp,%ebp                      
  10e5a3:	56                   	push   %esi                           
  10e5a4:	53                   	push   %ebx                           
  10e5a5:	8b 75 08             	mov    0x8(%ebp),%esi                 
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
  10e5a8:	8b 1d 6c 80 12 00    	mov    0x12806c,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e5ae:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e5b4:	74 1c                	je     10e5d2 <_User_extensions_Thread_begin+0x32><== NEVER TAKEN
  10e5b6:	66 90                	xchg   %ax,%ax                        
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_begin != NULL )               
  10e5b8:	8b 43 28             	mov    0x28(%ebx),%eax                
  10e5bb:	85 c0                	test   %eax,%eax                      
  10e5bd:	74 09                	je     10e5c8 <_User_extensions_Thread_begin+0x28>
      (*the_extension->Callouts.thread_begin)( executing );           
  10e5bf:	83 ec 0c             	sub    $0xc,%esp                      
  10e5c2:	56                   	push   %esi                           
  10e5c3:	ff d0                	call   *%eax                          
  10e5c5:	83 c4 10             	add    $0x10,%esp                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
  10e5c8:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e5ca:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e5d0:	75 e6                	jne    10e5b8 <_User_extensions_Thread_begin+0x18>
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_begin != NULL )               
      (*the_extension->Callouts.thread_begin)( executing );           
  }                                                                   
}                                                                     
  10e5d2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e5d5:	5b                   	pop    %ebx                           
  10e5d6:	5e                   	pop    %esi                           
  10e5d7:	c9                   	leave                                 
  10e5d8:	c3                   	ret                                   
                                                                      

0010e668 <_User_extensions_Thread_create>: #include <rtems/score/userext.h> bool _User_extensions_Thread_create ( Thread_Control *the_thread ) {
  10e668:	55                   	push   %ebp                           
  10e669:	89 e5                	mov    %esp,%ebp                      
  10e66b:	56                   	push   %esi                           
  10e66c:	53                   	push   %ebx                           
  10e66d:	8b 75 08             	mov    0x8(%ebp),%esi                 
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  10e670:	8b 1d 6c 80 12 00    	mov    0x12806c,%ebx                  
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e676:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e67c:	74 26                	je     10e6a4 <_User_extensions_Thread_create+0x3c><== NEVER TAKEN
  10e67e:	66 90                	xchg   %ax,%ax                        
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_create != NULL ) {            
  10e680:	8b 43 14             	mov    0x14(%ebx),%eax                
  10e683:	85 c0                	test   %eax,%eax                      
  10e685:	74 13                	je     10e69a <_User_extensions_Thread_create+0x32>
      status = (*the_extension->Callouts.thread_create)(              
  10e687:	83 ec 08             	sub    $0x8,%esp                      
  10e68a:	56                   	push   %esi                           
  10e68b:	ff 35 f8 83 12 00    	pushl  0x1283f8                       
  10e691:	ff d0                	call   *%eax                          
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
      if ( !status )                                                  
  10e693:	83 c4 10             	add    $0x10,%esp                     
  10e696:	84 c0                	test   %al,%al                        
  10e698:	74 16                	je     10e6b0 <_User_extensions_Thread_create+0x48>
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
  10e69a:	8b 1b                	mov    (%ebx),%ebx                    
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e69c:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e6a2:	75 dc                	jne    10e680 <_User_extensions_Thread_create+0x18>
      if ( !status )                                                  
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
  10e6a4:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10e6a6:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e6a9:	5b                   	pop    %ebx                           
  10e6aa:	5e                   	pop    %esi                           
  10e6ab:	c9                   	leave                                 
  10e6ac:	c3                   	ret                                   
  10e6ad:	8d 76 00             	lea    0x0(%esi),%esi                 
      status = (*the_extension->Callouts.thread_create)(              
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
      if ( !status )                                                  
        return false;                                                 
  10e6b0:	31 c0                	xor    %eax,%eax                      
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  10e6b2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e6b5:	5b                   	pop    %ebx                           
  10e6b6:	5e                   	pop    %esi                           
  10e6b7:	c9                   	leave                                 
  10e6b8:	c3                   	ret                                   
                                                                      

0010e6bc <_User_extensions_Thread_delete>: #include <rtems/score/userext.h> void _User_extensions_Thread_delete ( Thread_Control *the_thread ) {
  10e6bc:	55                   	push   %ebp                           
  10e6bd:	89 e5                	mov    %esp,%ebp                      
  10e6bf:	56                   	push   %esi                           
  10e6c0:	53                   	push   %ebx                           
  10e6c1:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_delete)(                       
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e6c4:	8b 1d 74 80 12 00    	mov    0x128074,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e6ca:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e6d0:	74 23                	je     10e6f5 <_User_extensions_Thread_delete+0x39><== NEVER TAKEN
  10e6d2:	66 90                	xchg   %ax,%ax                        
        !_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_delete != NULL )              
  10e6d4:	8b 43 20             	mov    0x20(%ebx),%eax                
  10e6d7:	85 c0                	test   %eax,%eax                      
  10e6d9:	74 0f                	je     10e6ea <_User_extensions_Thread_delete+0x2e>
      (*the_extension->Callouts.thread_delete)(                       
  10e6db:	83 ec 08             	sub    $0x8,%esp                      
  10e6de:	56                   	push   %esi                           
  10e6df:	ff 35 f8 83 12 00    	pushl  0x1283f8                       
  10e6e5:	ff d0                	call   *%eax                          
  10e6e7:	83 c4 10             	add    $0x10,%esp                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
  10e6ea:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e6ed:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e6f3:	75 df                	jne    10e6d4 <_User_extensions_Thread_delete+0x18>
      (*the_extension->Callouts.thread_delete)(                       
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e6f5:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e6f8:	5b                   	pop    %ebx                           
  10e6f9:	5e                   	pop    %esi                           
  10e6fa:	c9                   	leave                                 
  10e6fb:	c3                   	ret                                   
                                                                      

0010e5dc <_User_extensions_Thread_exitted>: void _User_extensions_Thread_exitted ( Thread_Control *executing ) {
  10e5dc:	55                   	push   %ebp                           
  10e5dd:	89 e5                	mov    %esp,%ebp                      
  10e5df:	56                   	push   %esi                           
  10e5e0:	53                   	push   %ebx                           
  10e5e1:	8b 75 08             	mov    0x8(%ebp),%esi                 
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
  10e5e4:	8b 1d 74 80 12 00    	mov    0x128074,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e5ea:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e5f0:	74 1d                	je     10e60f <_User_extensions_Thread_exitted+0x33><== NEVER TAKEN
  10e5f2:	66 90                	xchg   %ax,%ax                        
        !_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 )             
  10e5f4:	8b 43 2c             	mov    0x2c(%ebx),%eax                
  10e5f7:	85 c0                	test   %eax,%eax                      
  10e5f9:	74 09                	je     10e604 <_User_extensions_Thread_exitted+0x28>
      (*the_extension->Callouts.thread_exitted)( executing );         
  10e5fb:	83 ec 0c             	sub    $0xc,%esp                      
  10e5fe:	56                   	push   %esi                           
  10e5ff:	ff d0                	call   *%eax                          
  10e601:	83 c4 10             	add    $0x10,%esp                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
  10e604:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10e607:	81 fb 6c 80 12 00    	cmp    $0x12806c,%ebx                 
  10e60d:	75 e5                	jne    10e5f4 <_User_extensions_Thread_exitted+0x18>
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_exitted != NULL )             
      (*the_extension->Callouts.thread_exitted)( executing );         
  }                                                                   
}                                                                     
  10e60f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e612:	5b                   	pop    %ebx                           
  10e613:	5e                   	pop    %esi                           
  10e614:	c9                   	leave                                 
  10e615:	c3                   	ret                                   
                                                                      

0010f2c0 <_User_extensions_Thread_restart>: #include <rtems/score/userext.h> void _User_extensions_Thread_restart ( Thread_Control *the_thread ) {
  10f2c0:	55                   	push   %ebp                           
  10f2c1:	89 e5                	mov    %esp,%ebp                      
  10f2c3:	56                   	push   %esi                           
  10f2c4:	53                   	push   %ebx                           
  10f2c5:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_restart)(                      
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10f2c8:	8b 1d 8c a3 12 00    	mov    0x12a38c,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10f2ce:	81 fb 90 a3 12 00    	cmp    $0x12a390,%ebx                 
  10f2d4:	74 22                	je     10f2f8 <_User_extensions_Thread_restart+0x38><== NEVER TAKEN
  10f2d6:	66 90                	xchg   %ax,%ax                        
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_restart != NULL )             
  10f2d8:	8b 43 1c             	mov    0x1c(%ebx),%eax                
  10f2db:	85 c0                	test   %eax,%eax                      
  10f2dd:	74 0f                	je     10f2ee <_User_extensions_Thread_restart+0x2e>
      (*the_extension->Callouts.thread_restart)(                      
  10f2df:	83 ec 08             	sub    $0x8,%esp                      
  10f2e2:	56                   	push   %esi                           
  10f2e3:	ff 35 18 a7 12 00    	pushl  0x12a718                       
  10f2e9:	ff d0                	call   *%eax                          
  10f2eb:	83 c4 10             	add    $0x10,%esp                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
  10f2ee:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10f2f0:	81 fb 90 a3 12 00    	cmp    $0x12a390,%ebx                 
  10f2f6:	75 e0                	jne    10f2d8 <_User_extensions_Thread_restart+0x18>
      (*the_extension->Callouts.thread_restart)(                      
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10f2f8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10f2fb:	5b                   	pop    %ebx                           
  10f2fc:	5e                   	pop    %esi                           
  10f2fd:	c9                   	leave                                 
  10f2fe:	c3                   	ret                                   
                                                                      

0010e6fc <_User_extensions_Thread_start>: #include <rtems/score/userext.h> void _User_extensions_Thread_start ( Thread_Control *the_thread ) {
  10e6fc:	55                   	push   %ebp                           
  10e6fd:	89 e5                	mov    %esp,%ebp                      
  10e6ff:	56                   	push   %esi                           
  10e700:	53                   	push   %ebx                           
  10e701:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_start)(                        
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e704:	8b 1d 6c 80 12 00    	mov    0x12806c,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e70a:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e710:	74 22                	je     10e734 <_User_extensions_Thread_start+0x38><== NEVER TAKEN
  10e712:	66 90                	xchg   %ax,%ax                        
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_start != NULL )               
  10e714:	8b 43 18             	mov    0x18(%ebx),%eax                
  10e717:	85 c0                	test   %eax,%eax                      
  10e719:	74 0f                	je     10e72a <_User_extensions_Thread_start+0x2e>
      (*the_extension->Callouts.thread_start)(                        
  10e71b:	83 ec 08             	sub    $0x8,%esp                      
  10e71e:	56                   	push   %esi                           
  10e71f:	ff 35 f8 83 12 00    	pushl  0x1283f8                       
  10e725:	ff d0                	call   *%eax                          
  10e727:	83 c4 10             	add    $0x10,%esp                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;         
        the_node = the_node->next ) {                                 
  10e72a:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e72c:	81 fb 70 80 12 00    	cmp    $0x128070,%ebx                 
  10e732:	75 e0                	jne    10e714 <_User_extensions_Thread_start+0x18>
      (*the_extension->Callouts.thread_start)(                        
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e734:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e737:	5b                   	pop    %ebx                           
  10e738:	5e                   	pop    %esi                           
  10e739:	c9                   	leave                                 
  10e73a:	c3                   	ret                                   
                                                                      

0010e73c <_User_extensions_Thread_switch>: void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) {
  10e73c:	55                   	push   %ebp                           
  10e73d:	89 e5                	mov    %esp,%ebp                      
  10e73f:	57                   	push   %edi                           
  10e740:	56                   	push   %esi                           
  10e741:	53                   	push   %ebx                           
  10e742:	83 ec 0c             	sub    $0xc,%esp                      
  10e745:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10e748:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
    the_extension_switch = (User_extensions_Switch_control *) the_node;
                                                                      
    (*the_extension_switch->thread_switch)( executing, heir );        
  }                                                                   
}                                                                     
  10e74b:	8b 1d 54 7e 12 00    	mov    0x127e54,%ebx                  
)                                                                     
{                                                                     
  Chain_Node                     *the_node;                           
  User_extensions_Switch_control *the_extension_switch;               
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_Switches_list );   
  10e751:	81 fb 58 7e 12 00    	cmp    $0x127e58,%ebx                 
  10e757:	74 18                	je     10e771 <_User_extensions_Thread_switch+0x35><== NEVER TAKEN
  10e759:	8d 76 00             	lea    0x0(%esi),%esi                 
        !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ;
        the_node = the_node->next ) {                                 
                                                                      
    the_extension_switch = (User_extensions_Switch_control *) the_node;
                                                                      
    (*the_extension_switch->thread_switch)( executing, heir );        
  10e75c:	83 ec 08             	sub    $0x8,%esp                      
  10e75f:	56                   	push   %esi                           
  10e760:	57                   	push   %edi                           
  10e761:	ff 53 08             	call   *0x8(%ebx)                     
  Chain_Node                     *the_node;                           
  User_extensions_Switch_control *the_extension_switch;               
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_Switches_list );   
        !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ;
        the_node = the_node->next ) {                                 
  10e764:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node                     *the_node;                           
  User_extensions_Switch_control *the_extension_switch;               
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_Switches_list );   
  10e766:	83 c4 10             	add    $0x10,%esp                     
  10e769:	81 fb 58 7e 12 00    	cmp    $0x127e58,%ebx                 
  10e76f:	75 eb                	jne    10e75c <_User_extensions_Thread_switch+0x20>
                                                                      
    the_extension_switch = (User_extensions_Switch_control *) the_node;
                                                                      
    (*the_extension_switch->thread_switch)( executing, heir );        
  }                                                                   
}                                                                     
  10e771:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e774:	5b                   	pop    %ebx                           
  10e775:	5e                   	pop    %esi                           
  10e776:	5f                   	pop    %edi                           
  10e777:	c9                   	leave                                 
  10e778:	c3                   	ret                                   
                                                                      

00110088 <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) {
  110088:	55                   	push   %ebp                           
  110089:	89 e5                	mov    %esp,%ebp                      
  11008b:	57                   	push   %edi                           
  11008c:	56                   	push   %esi                           
  11008d:	53                   	push   %ebx                           
  11008e:	83 ec 1c             	sub    $0x1c,%esp                     
  110091:	8b 75 08             	mov    0x8(%ebp),%esi                 
  110094:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  110097:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  11009a:	9c                   	pushf                                 
  11009b:	fa                   	cli                                   
  11009c:	58                   	pop    %eax                           
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
  11009d:	8b 16                	mov    (%esi),%edx                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  11009f:	8d 7e 04             	lea    0x4(%esi),%edi                 
  1100a2:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
   *       hence the compiler must not assume *header to remain       
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
  1100a5:	39 fa                	cmp    %edi,%edx                      
  1100a7:	74 3d                	je     1100e6 <_Watchdog_Adjust+0x5e> 
    switch ( direction ) {                                            
  1100a9:	85 c9                	test   %ecx,%ecx                      
  1100ab:	75 43                	jne    1100f0 <_Watchdog_Adjust+0x68> 
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
  1100ad:	85 db                	test   %ebx,%ebx                      
  1100af:	74 35                	je     1100e6 <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
          if ( units < _Watchdog_First( header )->delta_interval ) {  
  1100b1:	8b 7a 10             	mov    0x10(%edx),%edi                
  1100b4:	39 fb                	cmp    %edi,%ebx                      
  1100b6:	73 0f                	jae    1100c7 <_Watchdog_Adjust+0x3f> <== ALWAYS TAKEN
  1100b8:	eb 3e                	jmp    1100f8 <_Watchdog_Adjust+0x70> <== NOT EXECUTED
  1100ba:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
  1100bc:	29 fb                	sub    %edi,%ebx                      
  1100be:	74 26                	je     1100e6 <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
          if ( units < _Watchdog_First( header )->delta_interval ) {  
  1100c0:	8b 7a 10             	mov    0x10(%edx),%edi                
  1100c3:	39 df                	cmp    %ebx,%edi                      
  1100c5:	77 31                	ja     1100f8 <_Watchdog_Adjust+0x70> 
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
  1100c7:	c7 42 10 01 00 00 00 	movl   $0x1,0x10(%edx)                
                                                                      
            _ISR_Enable( level );                                     
  1100ce:	50                   	push   %eax                           
  1100cf:	9d                   	popf                                  
                                                                      
            _Watchdog_Tickle( header );                               
  1100d0:	83 ec 0c             	sub    $0xc,%esp                      
  1100d3:	56                   	push   %esi                           
  1100d4:	e8 d3 01 00 00       	call   1102ac <_Watchdog_Tickle>      
                                                                      
            _ISR_Disable( level );                                    
  1100d9:	9c                   	pushf                                 
  1100da:	fa                   	cli                                   
  1100db:	58                   	pop    %eax                           
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
  1100dc:	8b 16                	mov    (%esi),%edx                    
                                                                      
            _Watchdog_Tickle( header );                               
                                                                      
            _ISR_Disable( level );                                    
                                                                      
            if ( _Chain_Is_empty( header ) )                          
  1100de:	83 c4 10             	add    $0x10,%esp                     
  1100e1:	39 55 e4             	cmp    %edx,-0x1c(%ebp)               
  1100e4:	75 d6                	jne    1100bc <_Watchdog_Adjust+0x34> 
        }                                                             
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  1100e6:	50                   	push   %eax                           
  1100e7:	9d                   	popf                                  
                                                                      
}                                                                     
  1100e8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1100eb:	5b                   	pop    %ebx                           
  1100ec:	5e                   	pop    %esi                           
  1100ed:	5f                   	pop    %edi                           
  1100ee:	c9                   	leave                                 
  1100ef:	c3                   	ret                                   
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
    switch ( direction ) {                                            
  1100f0:	49                   	dec    %ecx                           
  1100f1:	75 f3                	jne    1100e6 <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
  1100f3:	01 5a 10             	add    %ebx,0x10(%edx)                
        break;                                                        
  1100f6:	eb ee                	jmp    1100e6 <_Watchdog_Adjust+0x5e> 
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
  1100f8:	29 df                	sub    %ebx,%edi                      
  1100fa:	89 7a 10             	mov    %edi,0x10(%edx)                
            break;                                                    
  1100fd:	eb e7                	jmp    1100e6 <_Watchdog_Adjust+0x5e> 
                                                                      

0010e77c <_Watchdog_Insert>: void _Watchdog_Insert( Chain_Control *header, Watchdog_Control *the_watchdog ) {
  10e77c:	55                   	push   %ebp                           
  10e77d:	89 e5                	mov    %esp,%ebp                      
  10e77f:	57                   	push   %edi                           
  10e780:	56                   	push   %esi                           
  10e781:	53                   	push   %ebx                           
  10e782:	83 ec 04             	sub    $0x4,%esp                      
  10e785:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Watchdog_Control  *after;                                           
  uint32_t           insert_isr_nest_level;                           
  Watchdog_Interval  delta_interval;                                  
                                                                      
                                                                      
  insert_isr_nest_level   = _ISR_Nest_level;                          
  10e788:	8b 3d f4 83 12 00    	mov    0x1283f4,%edi                  
                                                                      
  _ISR_Disable( level );                                              
  10e78e:	9c                   	pushf                                 
  10e78f:	fa                   	cli                                   
  10e790:	8f 45 f0             	popl   -0x10(%ebp)                    
  /*                                                                  
   *  Check to see if the watchdog has just been inserted by a        
   *  higher priority interrupt.  If so, abandon this insert.         
   */                                                                 
                                                                      
  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {                   
  10e793:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10e796:	85 c0                	test   %eax,%eax                      
  10e798:	0f 85 9e 00 00 00    	jne    10e83c <_Watchdog_Insert+0xc0> 
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  10e79e:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)                 
  _Watchdog_Sync_count++;                                             
  10e7a5:	a1 80 7f 12 00       	mov    0x127f80,%eax                  
  10e7aa:	40                   	inc    %eax                           
  10e7ab:	a3 80 7f 12 00       	mov    %eax,0x127f80                  
                                                                      
restart:                                                              
  delta_interval = the_watchdog->initial;                             
  10e7b0:	8b 43 0c             	mov    0xc(%ebx),%eax                 
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
  10e7b3:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10e7b6:	8b 11                	mov    (%ecx),%edx                    
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
  10e7b8:	85 c0                	test   %eax,%eax                      
  10e7ba:	74 5d                	je     10e819 <_Watchdog_Insert+0x9d> 
  10e7bc:	8b 32                	mov    (%edx),%esi                    
  10e7be:	85 f6                	test   %esi,%esi                      
  10e7c0:	74 57                	je     10e819 <_Watchdog_Insert+0x9d> 
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
  10e7c2:	8b 4a 10             	mov    0x10(%edx),%ecx                
  10e7c5:	39 c8                	cmp    %ecx,%eax                      
  10e7c7:	73 22                	jae    10e7eb <_Watchdog_Insert+0x6f> 
  10e7c9:	eb 49                	jmp    10e814 <_Watchdog_Insert+0x98> 
  10e7cb:	90                   	nop                                   
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
  10e7cc:	8b 35 04 7f 12 00    	mov    0x127f04,%esi                  
  10e7d2:	39 f7                	cmp    %esi,%edi                      
  10e7d4:	72 72                	jb     10e848 <_Watchdog_Insert+0xcc> 
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
  10e7d6:	29 c8                	sub    %ecx,%eax                      
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  _Watchdog_Sync_count--;                                             
  _ISR_Enable( level );                                               
}                                                                     
  10e7d8:	8b 12                	mov    (%edx),%edx                    
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
  10e7da:	85 c0                	test   %eax,%eax                      
  10e7dc:	74 3b                	je     10e819 <_Watchdog_Insert+0x9d> 
  10e7de:	8b 0a                	mov    (%edx),%ecx                    
  10e7e0:	85 c9                	test   %ecx,%ecx                      
  10e7e2:	74 35                	je     10e819 <_Watchdog_Insert+0x9d> 
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
  10e7e4:	8b 4a 10             	mov    0x10(%edx),%ecx                
  10e7e7:	39 c1                	cmp    %eax,%ecx                      
  10e7e9:	77 29                	ja     10e814 <_Watchdog_Insert+0x98> 
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
                                                                      
     _ISR_Flash( level );                                             
  10e7eb:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10e7ee:	9d                   	popf                                  
  10e7ef:	fa                   	cli                                   
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
  10e7f0:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)                 
  10e7f4:	74 d6                	je     10e7cc <_Watchdog_Insert+0x50> 
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  10e7f6:	89 3d 04 7f 12 00    	mov    %edi,0x127f04                  
  _Watchdog_Sync_count--;                                             
  10e7fc:	a1 80 7f 12 00       	mov    0x127f80,%eax                  
  10e801:	48                   	dec    %eax                           
  10e802:	a3 80 7f 12 00       	mov    %eax,0x127f80                  
  _ISR_Enable( level );                                               
  10e807:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10e80a:	9d                   	popf                                  
}                                                                     
  10e80b:	58                   	pop    %eax                           
  10e80c:	5b                   	pop    %ebx                           
  10e80d:	5e                   	pop    %esi                           
  10e80e:	5f                   	pop    %edi                           
  10e80f:	c9                   	leave                                 
  10e810:	c3                   	ret                                   
  10e811:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
  10e814:	29 c1                	sub    %eax,%ecx                      
  10e816:	89 4a 10             	mov    %ecx,0x10(%edx)                
RTEMS_INLINE_ROUTINE void _Watchdog_Activate(                         
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_ACTIVE;                              
  10e819:	c7 43 08 02 00 00 00 	movl   $0x2,0x8(%ebx)                 
     }                                                                
  }                                                                   
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
  10e820:	89 43 10             	mov    %eax,0x10(%ebx)                
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
  10e823:	8b 42 04             	mov    0x4(%edx),%eax                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  10e826:	89 43 04             	mov    %eax,0x4(%ebx)                 
  before_node           = after_node->next;                           
  10e829:	8b 10                	mov    (%eax),%edx                    
  after_node->next      = the_node;                                   
  10e82b:	89 18                	mov    %ebx,(%eax)                    
  the_node->next        = before_node;                                
  10e82d:	89 13                	mov    %edx,(%ebx)                    
  before_node->previous = the_node;                                   
  10e82f:	89 5a 04             	mov    %ebx,0x4(%edx)                 
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
  10e832:	a1 84 7f 12 00       	mov    0x127f84,%eax                  
  10e837:	89 43 14             	mov    %eax,0x14(%ebx)                
  10e83a:	eb ba                	jmp    10e7f6 <_Watchdog_Insert+0x7a> 
   *  Check to see if the watchdog has just been inserted by a        
   *  higher priority interrupt.  If so, abandon this insert.         
   */                                                                 
                                                                      
  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {                   
    _ISR_Enable( level );                                             
  10e83c:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10e83f:	9d                   	popf                                  
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  _Watchdog_Sync_count--;                                             
  _ISR_Enable( level );                                               
}                                                                     
  10e840:	58                   	pop    %eax                           
  10e841:	5b                   	pop    %ebx                           
  10e842:	5e                   	pop    %esi                           
  10e843:	5f                   	pop    %edi                           
  10e844:	c9                   	leave                                 
  10e845:	c3                   	ret                                   
  10e846:	66 90                	xchg   %ax,%ax                        
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
       _Watchdog_Sync_level = insert_isr_nest_level;                  
  10e848:	89 3d 04 7f 12 00    	mov    %edi,0x127f04                  
       goto restart;                                                  
  10e84e:	e9 5d ff ff ff       	jmp    10e7b0 <_Watchdog_Insert+0x34> 
                                                                      

0010e8bc <_Watchdog_Remove>: */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) {
  10e8bc:	55                   	push   %ebp                           
  10e8bd:	89 e5                	mov    %esp,%ebp                      
  10e8bf:	56                   	push   %esi                           
  10e8c0:	53                   	push   %ebx                           
  10e8c1:	8b 55 08             	mov    0x8(%ebp),%edx                 
  ISR_Level         level;                                            
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
  10e8c4:	9c                   	pushf                                 
  10e8c5:	fa                   	cli                                   
  10e8c6:	59                   	pop    %ecx                           
  previous_state = the_watchdog->state;                               
  10e8c7:	8b 42 08             	mov    0x8(%edx),%eax                 
  switch ( previous_state ) {                                         
  10e8ca:	83 f8 01             	cmp    $0x1,%eax                      
  10e8cd:	74 4d                	je     10e91c <_Watchdog_Remove+0x60> 
  10e8cf:	73 0f                	jae    10e8e0 <_Watchdog_Remove+0x24> 
        _Watchdog_Sync_level = _ISR_Nest_level;                       
                                                                      
      _Chain_Extract_unprotected( &the_watchdog->Node );              
      break;                                                          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
  10e8d1:	8b 1d 84 7f 12 00    	mov    0x127f84,%ebx                  
  10e8d7:	89 5a 18             	mov    %ebx,0x18(%edx)                
                                                                      
  _ISR_Enable( level );                                               
  10e8da:	51                   	push   %ecx                           
  10e8db:	9d                   	popf                                  
  return( previous_state );                                           
}                                                                     
  10e8dc:	5b                   	pop    %ebx                           
  10e8dd:	5e                   	pop    %esi                           
  10e8de:	c9                   	leave                                 
  10e8df:	c3                   	ret                                   
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
  previous_state = the_watchdog->state;                               
  switch ( previous_state ) {                                         
  10e8e0:	83 f8 03             	cmp    $0x3,%eax                      
  10e8e3:	77 ec                	ja     10e8d1 <_Watchdog_Remove+0x15> <== NEVER TAKEN
      break;                                                          
                                                                      
    case WATCHDOG_ACTIVE:                                             
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
  10e8e5:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)                 
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
                                                                      
  _ISR_Enable( level );                                               
  return( previous_state );                                           
}                                                                     
  10e8ec:	8b 1a                	mov    (%edx),%ebx                    
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
      next_watchdog = _Watchdog_Next( the_watchdog );                 
                                                                      
      if ( _Watchdog_Next(next_watchdog) )                            
  10e8ee:	8b 33                	mov    (%ebx),%esi                    
  10e8f0:	85 f6                	test   %esi,%esi                      
  10e8f2:	74 06                	je     10e8fa <_Watchdog_Remove+0x3e> 
        next_watchdog->delta_interval += the_watchdog->delta_interval;
  10e8f4:	8b 72 10             	mov    0x10(%edx),%esi                
  10e8f7:	01 73 10             	add    %esi,0x10(%ebx)                
                                                                      
      if ( _Watchdog_Sync_count )                                     
  10e8fa:	8b 35 80 7f 12 00    	mov    0x127f80,%esi                  
  10e900:	85 f6                	test   %esi,%esi                      
  10e902:	74 0c                	je     10e910 <_Watchdog_Remove+0x54> 
        _Watchdog_Sync_level = _ISR_Nest_level;                       
  10e904:	8b 35 f4 83 12 00    	mov    0x1283f4,%esi                  
  10e90a:	89 35 04 7f 12 00    	mov    %esi,0x127f04                  
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  10e910:	8b 72 04             	mov    0x4(%edx),%esi                 
  next->previous = previous;                                          
  10e913:	89 73 04             	mov    %esi,0x4(%ebx)                 
  previous->next = next;                                              
  10e916:	89 1e                	mov    %ebx,(%esi)                    
  10e918:	eb b7                	jmp    10e8d1 <_Watchdog_Remove+0x15> 
  10e91a:	66 90                	xchg   %ax,%ax                        
                                                                      
      /*                                                              
       *  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;                        
  10e91c:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)                 
      break;                                                          
  10e923:	eb ac                	jmp    10e8d1 <_Watchdog_Remove+0x15> 
                                                                      

0010fc68 <_Watchdog_Report>: void _Watchdog_Report( const char *name, Watchdog_Control *watch ) {
  10fc68:	55                   	push   %ebp                           
  10fc69:	89 e5                	mov    %esp,%ebp                      
  10fc6b:	57                   	push   %edi                           
  10fc6c:	56                   	push   %esi                           
  10fc6d:	53                   	push   %ebx                           
  10fc6e:	83 ec 2c             	sub    $0x2c,%esp                     
  10fc71:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10fc74:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  printk(                                                             
  10fc77:	8b 78 24             	mov    0x24(%eax),%edi                
  10fc7a:	8b 70 20             	mov    0x20(%eax),%esi                
  10fc7d:	8b 58 1c             	mov    0x1c(%eax),%ebx                
  10fc80:	8b 48 0c             	mov    0xc(%eax),%ecx                 
  10fc83:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  10fc86:	8b 48 10             	mov    0x10(%eax),%ecx                
  10fc89:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  10fc8c:	85 d2                	test   %edx,%edx                      
  10fc8e:	74 2c                	je     10fcbc <_Watchdog_Report+0x54> 
  10fc90:	b9 43 35 12 00       	mov    $0x123543,%ecx                 
  10fc95:	83 ec 0c             	sub    $0xc,%esp                      
  10fc98:	57                   	push   %edi                           
  10fc99:	56                   	push   %esi                           
  10fc9a:	53                   	push   %ebx                           
  10fc9b:	50                   	push   %eax                           
  10fc9c:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10fc9f:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10fca2:	51                   	push   %ecx                           
  10fca3:	52                   	push   %edx                           
  10fca4:	68 96 3f 12 00       	push   $0x123f96                      
  10fca9:	e8 32 9e ff ff       	call   109ae0 <printk>                
  10fcae:	83 c4 30             	add    $0x30,%esp                     
    watch,                                                            
    watch->routine,                                                   
    watch->id,                                                        
    watch->user_data                                                  
  );                                                                  
}                                                                     
  10fcb1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fcb4:	5b                   	pop    %ebx                           
  10fcb5:	5e                   	pop    %esi                           
  10fcb6:	5f                   	pop    %edi                           
  10fcb7:	c9                   	leave                                 
  10fcb8:	c3                   	ret                                   
  10fcb9:	8d 76 00             	lea    0x0(%esi),%esi                 
void _Watchdog_Report(                                                
  const char        *name,                                            
  Watchdog_Control  *watch                                            
)                                                                     
{                                                                     
  printk(                                                             
  10fcbc:	b9 09 3e 12 00       	mov    $0x123e09,%ecx                 
  10fcc1:	89 ca                	mov    %ecx,%edx                      
  10fcc3:	eb d0                	jmp    10fc95 <_Watchdog_Report+0x2d> 
                                                                      

0010fbf8 <_Watchdog_Report_chain>: void _Watchdog_Report_chain( const char *name, Chain_Control *header ) {
  10fbf8:	55                   	push   %ebp                           
  10fbf9:	89 e5                	mov    %esp,%ebp                      
  10fbfb:	57                   	push   %edi                           
  10fbfc:	56                   	push   %esi                           
  10fbfd:	53                   	push   %ebx                           
  10fbfe:	83 ec 20             	sub    $0x20,%esp                     
  10fc01:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10fc04:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
  10fc07:	9c                   	pushf                                 
  10fc08:	fa                   	cli                                   
  10fc09:	8f 45 e4             	popl   -0x1c(%ebp)                    
    printk( "Watchdog Chain: %s %p\n", name, header );                
  10fc0c:	56                   	push   %esi                           
  10fc0d:	57                   	push   %edi                           
  10fc0e:	68 60 3f 12 00       	push   $0x123f60                      
  10fc13:	e8 c8 9e ff ff       	call   109ae0 <printk>                
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
  10fc18:	8b 1e                	mov    (%esi),%ebx                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10fc1a:	83 c6 04             	add    $0x4,%esi                      
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
  10fc1d:	83 c4 10             	add    $0x10,%esp                     
  10fc20:	39 f3                	cmp    %esi,%ebx                      
  10fc22:	74 31                	je     10fc55 <_Watchdog_Report_chain+0x5d>
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
  10fc24:	83 ec 08             	sub    $0x8,%esp                      
  10fc27:	53                   	push   %ebx                           
  10fc28:	6a 00                	push   $0x0                           
  10fc2a:	e8 39 00 00 00       	call   10fc68 <_Watchdog_Report>      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
  10fc2f:	8b 1b                	mov    (%ebx),%ebx                    
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
  10fc31:	83 c4 10             	add    $0x10,%esp                     
  10fc34:	39 f3                	cmp    %esi,%ebx                      
  10fc36:	75 ec                	jne    10fc24 <_Watchdog_Report_chain+0x2c><== NEVER TAKEN
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
  10fc38:	83 ec 08             	sub    $0x8,%esp                      
  10fc3b:	57                   	push   %edi                           
  10fc3c:	68 77 3f 12 00       	push   $0x123f77                      
  10fc41:	e8 9a 9e ff ff       	call   109ae0 <printk>                
  10fc46:	83 c4 10             	add    $0x10,%esp                     
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
  10fc49:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10fc4c:	9d                   	popf                                  
}                                                                     
  10fc4d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fc50:	5b                   	pop    %ebx                           
  10fc51:	5e                   	pop    %esi                           
  10fc52:	5f                   	pop    %edi                           
  10fc53:	c9                   	leave                                 
  10fc54:	c3                   	ret                                   
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
  10fc55:	83 ec 0c             	sub    $0xc,%esp                      
  10fc58:	68 86 3f 12 00       	push   $0x123f86                      
  10fc5d:	e8 7e 9e ff ff       	call   109ae0 <printk>                
  10fc62:	83 c4 10             	add    $0x10,%esp                     
  10fc65:	eb e2                	jmp    10fc49 <_Watchdog_Report_chain+0x51>
                                                                      

0010e994 <_Workspace_Handler_initialization>: /* * _Workspace_Handler_initialization */ void _Workspace_Handler_initialization(void) {
  10e994:	55                   	push   %ebp                           
  10e995:	89 e5                	mov    %esp,%ebp                      
  10e997:	57                   	push   %edi                           
  10e998:	53                   	push   %ebx                           
  uintptr_t memory_available = 0;                                     
  void *starting_address = Configuration.work_space_start;            
  10e999:	8b 1d 40 3b 12 00    	mov    0x123b40,%ebx                  
  uintptr_t size = Configuration.work_space_size;                     
  10e99f:	8b 15 44 3b 12 00    	mov    0x123b44,%edx                  
                                                                      
  if ( Configuration.do_zero_of_workspace )                           
  10e9a5:	80 3d 68 3b 12 00 00 	cmpb   $0x0,0x123b68                  
  10e9ac:	75 1e                	jne    10e9cc <_Workspace_Handler_initialization+0x38>
   memset( starting_address, 0, size );                               
                                                                      
  memory_available = _Heap_Initialize(                                
  10e9ae:	6a 04                	push   $0x4                           
  10e9b0:	52                   	push   %edx                           
  10e9b1:	53                   	push   %ebx                           
  10e9b2:	68 80 7e 12 00       	push   $0x127e80                      
  10e9b7:	e8 78 dd ff ff       	call   10c734 <_Heap_Initialize>      
    starting_address,                                                 
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
  10e9bc:	83 c4 10             	add    $0x10,%esp                     
  10e9bf:	85 c0                	test   %eax,%eax                      
  10e9c1:	74 13                	je     10e9d6 <_Workspace_Handler_initialization+0x42>
    _Internal_error_Occurred(                                         
      INTERNAL_ERROR_CORE,                                            
      true,                                                           
      INTERNAL_ERROR_TOO_LITTLE_WORKSPACE                             
    );                                                                
}                                                                     
  10e9c3:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e9c6:	5b                   	pop    %ebx                           
  10e9c7:	5f                   	pop    %edi                           
  10e9c8:	c9                   	leave                                 
  10e9c9:	c3                   	ret                                   
  10e9ca:	66 90                	xchg   %ax,%ax                        
  uintptr_t memory_available = 0;                                     
  void *starting_address = Configuration.work_space_start;            
  uintptr_t size = Configuration.work_space_size;                     
                                                                      
  if ( Configuration.do_zero_of_workspace )                           
   memset( starting_address, 0, size );                               
  10e9cc:	31 c0                	xor    %eax,%eax                      
  10e9ce:	89 df                	mov    %ebx,%edi                      
  10e9d0:	89 d1                	mov    %edx,%ecx                      
  10e9d2:	f3 aa                	rep stos %al,%es:(%edi)               
  10e9d4:	eb d8                	jmp    10e9ae <_Workspace_Handler_initialization+0x1a>
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
    _Internal_error_Occurred(                                         
  10e9d6:	50                   	push   %eax                           
  10e9d7:	6a 02                	push   $0x2                           
  10e9d9:	6a 01                	push   $0x1                           
  10e9db:	6a 00                	push   $0x0                           
  10e9dd:	e8 5a df ff ff       	call   10c93c <_Internal_error_Occurred>
                                                                      

0010b62c <adjtime>: int adjtime( struct timeval *delta, struct timeval *olddelta ) {
  10b62c:	55                   	push   %ebp                           
  10b62d:	89 e5                	mov    %esp,%ebp                      
  10b62f:	57                   	push   %edi                           
  10b630:	56                   	push   %esi                           
  10b631:	53                   	push   %ebx                           
  10b632:	83 ec 1c             	sub    $0x1c,%esp                     
  10b635:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b638:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  long   adjustment;                                                  
                                                                      
  /*                                                                  
   * Simple validations                                               
   */                                                                 
  if ( !delta )                                                       
  10b63b:	85 db                	test   %ebx,%ebx                      
  10b63d:	0f 84 f1 00 00 00    	je     10b734 <adjtime+0x108>         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND )                
  10b643:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b646:	81 fa 3f 42 0f 00    	cmp    $0xf423f,%edx                  
  10b64c:	0f 87 e2 00 00 00    	ja     10b734 <adjtime+0x108>         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( olddelta ) {                                                   
  10b652:	85 f6                	test   %esi,%esi                      
  10b654:	74 10                	je     10b666 <adjtime+0x3a>          
    olddelta->tv_sec  = 0;                                            
  10b656:	c7 06 00 00 00 00    	movl   $0x0,(%esi)                    
    olddelta->tv_usec = 0;                                            
  10b65c:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)                 
  10b663:	8b 53 04             	mov    0x4(%ebx),%edx                 
  }                                                                   
                                                                      
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
  10b666:	8b 03                	mov    (%ebx),%eax                    
  10b668:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b66b:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b66e:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b671:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b674:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b677:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b67a:	c1 e0 06             	shl    $0x6,%eax                      
  adjustment += delta->tv_usec;                                       
  10b67d:	8d 04 02             	lea    (%edx,%eax,1),%eax             
                                                                      
  /* too small to account for */                                      
  if ( adjustment < rtems_configuration_get_microseconds_per_tick() ) 
  10b680:	3b 05 6c 42 12 00    	cmp    0x12426c,%eax                  
  10b686:	73 0c                	jae    10b694 <adjtime+0x68>          
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
    *olddelta = *delta;                                               
                                                                      
  return 0;                                                           
  10b688:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b68a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b68d:	5b                   	pop    %ebx                           
  10b68e:	5e                   	pop    %esi                           
  10b68f:	5f                   	pop    %edi                           
  10b690:	c9                   	leave                                 
  10b691:	c3                   	ret                                   
  10b692:	66 90                	xchg   %ax,%ax                        
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b694:	a1 d0 86 12 00       	mov    0x1286d0,%eax                  
  10b699:	40                   	inc    %eax                           
  10b69a:	a3 d0 86 12 00       	mov    %eax,0x1286d0                  
   * This prevents context switches while we are adjusting the TOD    
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
  10b69f:	83 ec 0c             	sub    $0xc,%esp                      
  10b6a2:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10b6a5:	57                   	push   %edi                           
  10b6a6:	e8 85 17 00 00       	call   10ce30 <_TOD_Get>              
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
  10b6ab:	8b 03                	mov    (%ebx),%eax                    
  10b6ad:	01 45 e0             	add    %eax,-0x20(%ebp)               
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
  10b6b0:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10b6b3:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b6b6:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b6b9:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b6bc:	c1 e0 03             	shl    $0x3,%eax                      
  10b6bf:	03 45 e4             	add    -0x1c(%ebp),%eax               
  10b6c2:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
  10b6c5:	83 c4 10             	add    $0x10,%esp                     
  10b6c8:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  10b6cd:	76 18                	jbe    10b6e7 <adjtime+0xbb>          
  10b6cf:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10b6d2:	66 90                	xchg   %ax,%ax                        
      ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                       
  10b6d4:	2d 00 ca 9a 3b       	sub    $0x3b9aca00,%eax               
 *  At one point there was a static variable named adjustment         
 *  used by this implementation.  I don't see any reason for it       
 *  to be here based upon the GNU/Linux documentation.                
 */                                                                   
                                                                      
int  adjtime(                                                         
  10b6d9:	42                   	inc    %edx                           
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
  10b6da:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  10b6df:	77 f3                	ja     10b6d4 <adjtime+0xa8>          <== NEVER TAKEN
  10b6e1:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b6e4:	89 55 e0             	mov    %edx,-0x20(%ebp)               
      ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                       
      ts.tv_sec++;                                                    
    }                                                                 
                                                                      
    /* if adjustment is too much negative */                          
    while ( ts.tv_nsec <= (-1 * TOD_NANOSECONDS_PER_SECOND) ) {       
  10b6e7:	3d 00 36 65 c4       	cmp    $0xc4653600,%eax               
  10b6ec:	77 19                	ja     10b707 <adjtime+0xdb>          <== NEVER TAKEN
  10b6ee:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10b6f1:	8d 76 00             	lea    0x0(%esi),%esi                 
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
  10b6f4:	05 00 ca 9a 3b       	add    $0x3b9aca00,%eax               
 *  At one point there was a static variable named adjustment         
 *  used by this implementation.  I don't see any reason for it       
 *  to be here based upon the GNU/Linux documentation.                
 */                                                                   
                                                                      
int  adjtime(                                                         
  10b6f9:	4a                   	dec    %edx                           
      ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                       
      ts.tv_sec++;                                                    
    }                                                                 
                                                                      
    /* if adjustment is too much negative */                          
    while ( ts.tv_nsec <= (-1 * TOD_NANOSECONDS_PER_SECOND) ) {       
  10b6fa:	3d 00 36 65 c4       	cmp    $0xc4653600,%eax               
  10b6ff:	76 f3                	jbe    10b6f4 <adjtime+0xc8>          
  10b701:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b704:	89 55 e0             	mov    %edx,-0x20(%ebp)               
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
      ts.tv_sec--;                                                    
    }                                                                 
                                                                      
    _TOD_Set( &ts );                                                  
  10b707:	83 ec 0c             	sub    $0xc,%esp                      
  10b70a:	57                   	push   %edi                           
  10b70b:	e8 a8 17 00 00       	call   10ceb8 <_TOD_Set>              
                                                                      
  _Thread_Enable_dispatch();                                          
  10b710:	e8 bb 2c 00 00       	call   10e3d0 <_Thread_Enable_dispatch>
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
  10b715:	83 c4 10             	add    $0x10,%esp                     
  10b718:	85 f6                	test   %esi,%esi                      
  10b71a:	0f 84 68 ff ff ff    	je     10b688 <adjtime+0x5c>          
    *olddelta = *delta;                                               
  10b720:	8b 03                	mov    (%ebx),%eax                    
  10b722:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b725:	89 06                	mov    %eax,(%esi)                    
  10b727:	89 56 04             	mov    %edx,0x4(%esi)                 
                                                                      
  return 0;                                                           
  10b72a:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b72c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b72f:	5b                   	pop    %ebx                           
  10b730:	5e                   	pop    %esi                           
  10b731:	5f                   	pop    %edi                           
  10b732:	c9                   	leave                                 
  10b733:	c3                   	ret                                   
   */                                                                 
  if ( !delta )                                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND )                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10b734:	e8 6f 86 00 00       	call   113da8 <__errno>               
  10b739:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b73f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b744:	e9 41 ff ff ff       	jmp    10b68a <adjtime+0x5e>          
                                                                      

0010bd5c <aio_cancel>: * operation(s) cannot be canceled */ int aio_cancel(int fildes, struct aiocb *aiocbp) {
  10bd5c:	55                   	push   %ebp                           
  10bd5d:	89 e5                	mov    %esp,%ebp                      
  10bd5f:	57                   	push   %edi                           
  10bd60:	56                   	push   %esi                           
  10bd61:	53                   	push   %ebx                           
  10bd62:	83 ec 18             	sub    $0x18,%esp                     
  10bd65:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10bd68:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
  10bd6b:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10bd70:	e8 bf 11 00 00       	call   10cf34 <pthread_mutex_lock>    
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
  10bd75:	5a                   	pop    %edx                           
  10bd76:	59                   	pop    %ecx                           
  10bd77:	6a 01                	push   $0x1                           
  10bd79:	56                   	push   %esi                           
  10bd7a:	e8 09 6b 00 00       	call   112888 <fcntl>                 
  10bd7f:	83 c4 10             	add    $0x10,%esp                     
  10bd82:	85 c0                	test   %eax,%eax                      
  10bd84:	0f 88 9b 01 00 00    	js     10bf25 <aio_cancel+0x1c9>      
    pthread_mutex_unlock(&aio_request_queue.mutex);                   
    rtems_set_errno_and_return_minus_one (EBADF);                     
  }                                                                   
                                                                      
  /* if aiocbp is NULL remove all request for given file descriptor */
  if (aiocbp == NULL) {                                               
  10bd8a:	85 db                	test   %ebx,%ebx                      
  10bd8c:	0f 84 ea 00 00 00    	je     10be7c <aio_cancel+0x120>      
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
    return AIO_CANCELED;                                              
  } else {                                                            
    AIO_printf ("Cancel request\n");                                  
                                                                      
    if (aiocbp->aio_fildes != fildes) {                               
  10bd92:	8b 3b                	mov    (%ebx),%edi                    
  10bd94:	39 f7                	cmp    %esi,%edi                      
  10bd96:	0f 85 b8 00 00 00    	jne    10be54 <aio_cancel+0xf8>       
      pthread_mutex_unlock (&aio_request_queue.mutex);                
      rtems_set_errno_and_return_minus_one (EINVAL);                  
    }                                                                 
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
  10bd9c:	56                   	push   %esi                           
  10bd9d:	6a 00                	push   $0x0                           
  10bd9f:	57                   	push   %edi                           
  10bda0:	68 e8 aa 12 00       	push   $0x12aae8                      
  10bda5:	e8 9e 03 00 00       	call   10c148 <rtems_aio_search_fd>   
  10bdaa:	89 c6                	mov    %eax,%esi                      
    if (r_chain == NULL) {                                            
  10bdac:	83 c4 10             	add    $0x10,%esp                     
  10bdaf:	85 c0                	test   %eax,%eax                      
  10bdb1:	74 3d                	je     10bdf0 <aio_cancel+0x94>       
        return AIO_ALLDONE;                                           
      }                                                               
    }                                                                 
      AIO_printf ("Request on [WQ]\n");                               
                                                                      
      pthread_mutex_lock (&r_chain->mutex);                           
  10bdb3:	8d 78 1c             	lea    0x1c(%eax),%edi                
  10bdb6:	83 ec 0c             	sub    $0xc,%esp                      
  10bdb9:	57                   	push   %edi                           
  10bdba:	e8 75 11 00 00       	call   10cf34 <pthread_mutex_lock>    
      result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);        
  10bdbf:	58                   	pop    %eax                           
  10bdc0:	5a                   	pop    %edx                           
  10bdc1:	53                   	push   %ebx                           
  10bdc2:	83 c6 08             	add    $0x8,%esi                      
  10bdc5:	56                   	push   %esi                           
  10bdc6:	e8 5d 07 00 00       	call   10c528 <rtems_aio_remove_req>  
  10bdcb:	89 c3                	mov    %eax,%ebx                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10bdcd:	89 3c 24             	mov    %edi,(%esp)                    
  10bdd0:	e8 e7 11 00 00       	call   10cfbc <pthread_mutex_unlock>  
      pthread_mutex_unlock (&aio_request_queue.mutex);                
  10bdd5:	c7 04 24 a0 aa 12 00 	movl   $0x12aaa0,(%esp)               
  10bddc:	e8 db 11 00 00       	call   10cfbc <pthread_mutex_unlock>  
      return result;                                                  
  10bde1:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
  10bde4:	89 d8                	mov    %ebx,%eax                      
  10bde6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bde9:	5b                   	pop    %ebx                           
  10bdea:	5e                   	pop    %esi                           
  10bdeb:	5f                   	pop    %edi                           
  10bdec:	c9                   	leave                                 
  10bded:	c3                   	ret                                   
  10bdee:	66 90                	xchg   %ax,%ax                        
      rtems_set_errno_and_return_minus_one (EINVAL);                  
    }                                                                 
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
    if (r_chain == NULL) {                                            
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
  10bdf0:	81 3d f4 aa 12 00 f8 	cmpl   $0x12aaf8,0x12aaf4             
  10bdf7:	aa 12 00                                                    
  10bdfa:	74 40                	je     10be3c <aio_cancel+0xe0>       <== NEVER TAKEN
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
  10bdfc:	51                   	push   %ecx                           
  10bdfd:	6a 00                	push   $0x0                           
  10bdff:	57                   	push   %edi                           
  10be00:	68 f4 aa 12 00       	push   $0x12aaf4                      
  10be05:	e8 3e 03 00 00       	call   10c148 <rtems_aio_search_fd>   
        if (r_chain == NULL) {                                        
  10be0a:	83 c4 10             	add    $0x10,%esp                     
  10be0d:	85 c0                	test   %eax,%eax                      
  10be0f:	74 43                	je     10be54 <aio_cancel+0xf8>       
          rtems_set_errno_and_return_minus_one (EINVAL);              
        }                                                             
                                                                      
        AIO_printf ("Request on [IQ]\n");                             
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
  10be11:	83 ec 08             	sub    $0x8,%esp                      
  10be14:	53                   	push   %ebx                           
  10be15:	83 c0 08             	add    $0x8,%eax                      
  10be18:	50                   	push   %eax                           
  10be19:	e8 0a 07 00 00       	call   10c528 <rtems_aio_remove_req>  
  10be1e:	89 c3                	mov    %eax,%ebx                      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
  10be20:	c7 04 24 a0 aa 12 00 	movl   $0x12aaa0,(%esp)               
  10be27:	e8 90 11 00 00       	call   10cfbc <pthread_mutex_unlock>  
        return result;                                                
  10be2c:	83 c4 10             	add    $0x10,%esp                     
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_unlock (&aio_request_queue.mutex);                
      return result;                                                  
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
  10be2f:	89 d8                	mov    %ebx,%eax                      
  10be31:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10be34:	5b                   	pop    %ebx                           
  10be35:	5e                   	pop    %esi                           
  10be36:	5f                   	pop    %edi                           
  10be37:	c9                   	leave                                 
  10be38:	c3                   	ret                                   
  10be39:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
        return result;                                                
      } else {                                                        
        pthread_mutex_unlock (&aio_request_queue.mutex);              
  10be3c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10be3f:	68 a0 aa 12 00       	push   $0x12aaa0                      <== NOT EXECUTED
  10be44:	e8 73 11 00 00       	call   10cfbc <pthread_mutex_unlock>  <== NOT EXECUTED
        return AIO_ALLDONE;                                           
  10be49:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10be4c:	bb 02 00 00 00       	mov    $0x2,%ebx                      <== NOT EXECUTED
  10be51:	eb 91                	jmp    10bde4 <aio_cancel+0x88>       <== NOT EXECUTED
  10be53:	90                   	nop                                   <== NOT EXECUTED
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
    if (r_chain == NULL) {                                            
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
        if (r_chain == NULL) {                                        
          pthread_mutex_unlock (&aio_request_queue.mutex);            
  10be54:	83 ec 0c             	sub    $0xc,%esp                      
  10be57:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10be5c:	e8 5b 11 00 00       	call   10cfbc <pthread_mutex_unlock>  
          rtems_set_errno_and_return_minus_one (EINVAL);              
  10be61:	e8 96 9d 00 00       	call   115bfc <__errno>               
  10be66:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10be6c:	83 c4 10             	add    $0x10,%esp                     
  10be6f:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
  10be74:	e9 6b ff ff ff       	jmp    10bde4 <aio_cancel+0x88>       
  10be79:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /* if aiocbp is NULL remove all request for given file descriptor */
  if (aiocbp == NULL) {                                               
    AIO_printf ("Cancel all requests\n");                             
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
  10be7c:	50                   	push   %eax                           
  10be7d:	6a 00                	push   $0x0                           
  10be7f:	56                   	push   %esi                           
  10be80:	68 e8 aa 12 00       	push   $0x12aae8                      
  10be85:	e8 be 02 00 00       	call   10c148 <rtems_aio_search_fd>   
  10be8a:	89 c3                	mov    %eax,%ebx                      
    if (r_chain == NULL) {                                            
  10be8c:	83 c4 10             	add    $0x10,%esp                     
  10be8f:	85 c0                	test   %eax,%eax                      
  10be91:	74 3d                	je     10bed0 <aio_cancel+0x174>      
      return AIO_ALLDONE;                                             
    }                                                                 
                                                                      
    AIO_printf ("Request chain on [WQ]\n");                           
                                                                      
    pthread_mutex_lock (&r_chain->mutex);                             
  10be93:	8d 70 1c             	lea    0x1c(%eax),%esi                
  10be96:	83 ec 0c             	sub    $0xc,%esp                      
  10be99:	56                   	push   %esi                           
  10be9a:	e8 95 10 00 00       	call   10cf34 <pthread_mutex_lock>    
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10be9f:	89 1c 24             	mov    %ebx,(%esp)                    
  10bea2:	e8 55 2a 00 00       	call   10e8fc <_Chain_Extract>        
    rtems_chain_extract (&r_chain->next_fd);                          
    rtems_aio_remove_fd (r_chain);                                    
  10bea7:	89 1c 24             	mov    %ebx,(%esp)                    
  10beaa:	e8 29 06 00 00       	call   10c4d8 <rtems_aio_remove_fd>   
    pthread_mutex_unlock (&r_chain->mutex);                           
  10beaf:	89 34 24             	mov    %esi,(%esp)                    
  10beb2:	e8 05 11 00 00       	call   10cfbc <pthread_mutex_unlock>  
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
  10beb7:	c7 04 24 a0 aa 12 00 	movl   $0x12aaa0,(%esp)               
  10bebe:	e8 f9 10 00 00       	call   10cfbc <pthread_mutex_unlock>  
    return AIO_CANCELED;                                              
  10bec3:	83 c4 10             	add    $0x10,%esp                     
  10bec6:	31 db                	xor    %ebx,%ebx                      
  10bec8:	e9 17 ff ff ff       	jmp    10bde4 <aio_cancel+0x88>       
  10becd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
    if (r_chain == NULL) {                                            
      AIO_printf ("Request chain not on [WQ]\n");                     
                                                                      
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
  10bed0:	81 3d f4 aa 12 00 f8 	cmpl   $0x12aaf8,0x12aaf4             
  10bed7:	aa 12 00                                                    
  10beda:	0f 84 5c ff ff ff    	je     10be3c <aio_cancel+0xe0>       <== NEVER TAKEN
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
  10bee0:	57                   	push   %edi                           
  10bee1:	6a 00                	push   $0x0                           
  10bee3:	56                   	push   %esi                           
  10bee4:	68 f4 aa 12 00       	push   $0x12aaf4                      
  10bee9:	e8 5a 02 00 00       	call   10c148 <rtems_aio_search_fd>   
  10beee:	89 c3                	mov    %eax,%ebx                      
        if (r_chain == NULL) {                                        
  10bef0:	83 c4 10             	add    $0x10,%esp                     
  10bef3:	85 c0                	test   %eax,%eax                      
  10bef5:	74 53                	je     10bf4a <aio_cancel+0x1ee>      <== NEVER TAKEN
  10bef7:	83 ec 0c             	sub    $0xc,%esp                      
  10befa:	50                   	push   %eax                           
  10befb:	e8 fc 29 00 00       	call   10e8fc <_Chain_Extract>        
        }                                                             
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
  10bf00:	89 1c 24             	mov    %ebx,(%esp)                    
  10bf03:	e8 d0 05 00 00       	call   10c4d8 <rtems_aio_remove_fd>   
        pthread_mutex_destroy (&r_chain->mutex);                      
  10bf08:	8d 73 1c             	lea    0x1c(%ebx),%esi                
  10bf0b:	89 34 24             	mov    %esi,(%esp)                    
  10bf0e:	e8 b5 0d 00 00       	call   10ccc8 <pthread_mutex_destroy> 
        pthread_cond_destroy (&r_chain->mutex);                       
  10bf13:	89 34 24             	mov    %esi,(%esp)                    
  10bf16:	e8 69 0a 00 00       	call   10c984 <pthread_cond_destroy>  
        free (r_chain);                                               
  10bf1b:	89 1c 24             	mov    %ebx,(%esp)                    
  10bf1e:	e8 31 cc ff ff       	call   108b54 <free>                  
  10bf23:	eb 92                	jmp    10beb7 <aio_cancel+0x15b>      
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
    pthread_mutex_unlock(&aio_request_queue.mutex);                   
  10bf25:	83 ec 0c             	sub    $0xc,%esp                      
  10bf28:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10bf2d:	e8 8a 10 00 00       	call   10cfbc <pthread_mutex_unlock>  
    rtems_set_errno_and_return_minus_one (EBADF);                     
  10bf32:	e8 c5 9c 00 00       	call   115bfc <__errno>               
  10bf37:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10bf3d:	83 c4 10             	add    $0x10,%esp                     
  10bf40:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
  10bf45:	e9 9a fe ff ff       	jmp    10bde4 <aio_cancel+0x88>       
      AIO_printf ("Request chain not on [WQ]\n");                     
                                                                      
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
        if (r_chain == NULL) {                                        
          pthread_mutex_unlock(&aio_request_queue.mutex);             
  10bf4a:	83 ec 0c             	sub    $0xc,%esp                      
  10bf4d:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10bf52:	e8 65 10 00 00       	call   10cfbc <pthread_mutex_unlock>  
          return AIO_ALLDONE;                                         
  10bf57:	83 c4 10             	add    $0x10,%esp                     
  10bf5a:	b3 02                	mov    $0x2,%bl                       
  10bf5c:	e9 83 fe ff ff       	jmp    10bde4 <aio_cancel+0x88>       
                                                                      

0010bf70 <aio_fsync>: int aio_fsync( int op, struct aiocb *aiocbp ) {
  10bf70:	55                   	push   %ebp                           
  10bf71:	89 e5                	mov    %esp,%ebp                      
  10bf73:	53                   	push   %ebx                           
  10bf74:	83 ec 04             	sub    $0x4,%esp                      
  10bf77:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
  10bf7a:	81 7d 08 00 20 00 00 	cmpl   $0x2000,0x8(%ebp)              
  10bf81:	75 41                	jne    10bfc4 <aio_fsync+0x54>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10bf83:	83 ec 08             	sub    $0x8,%esp                      
  10bf86:	6a 03                	push   $0x3                           
  10bf88:	ff 33                	pushl  (%ebx)                         
  10bf8a:	e8 f9 68 00 00       	call   112888 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10bf8f:	83 e0 03             	and    $0x3,%eax                      
  10bf92:	48                   	dec    %eax                           
  10bf93:	83 c4 10             	add    $0x10,%esp                     
  10bf96:	83 f8 01             	cmp    $0x1,%eax                      
  10bf99:	77 4d                	ja     10bfe8 <aio_fsync+0x78>        
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10bf9b:	83 ec 0c             	sub    $0xc,%esp                      
  10bf9e:	6a 18                	push   $0x18                          
  10bfa0:	e8 c3 d0 ff ff       	call   109068 <malloc>                
  if (req == NULL)                                                    
  10bfa5:	83 c4 10             	add    $0x10,%esp                     
  10bfa8:	85 c0                	test   %eax,%eax                      
  10bfaa:	74 57                	je     10c003 <aio_fsync+0x93>        <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10bfac:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
  10bfaf:	c7 43 2c 03 00 00 00 	movl   $0x3,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10bfb6:	89 45 08             	mov    %eax,0x8(%ebp)                 
                                                                      
}                                                                     
  10bfb9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bfbc:	c9                   	leave                                 
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
  10bfbd:	e9 d6 05 00 00       	jmp    10c598 <rtems_aio_enqueue>     
  10bfc2:	66 90                	xchg   %ax,%ax                        
{                                                                     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
  10bfc4:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10bfcb:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10bfd2:	e8 25 9c 00 00       	call   115bfc <__errno>               
  10bfd7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
                                                                      
}                                                                     
  10bfdd:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10bfe2:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bfe5:	c9                   	leave                                 
  10bfe6:	c3                   	ret                                   
  10bfe7:	90                   	nop                                   
  if (op != O_SYNC)                                                   
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
  10bfe8:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10bfef:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10bff6:	e8 01 9c 00 00       	call   115bfc <__errno>               
  10bffb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10c001:	eb da                	jmp    10bfdd <aio_fsync+0x6d>        
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10c003:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10c00a:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10c011:	e8 e6 9b 00 00       	call   115bfc <__errno>               <== NOT EXECUTED
  10c016:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10c01c:	eb bf                	jmp    10bfdd <aio_fsync+0x6d>        <== NOT EXECUTED
                                                                      

0010c7a8 <aio_read>: * 0 - otherwise */ int aio_read (struct aiocb *aiocbp) {
  10c7a8:	55                   	push   %ebp                           
  10c7a9:	89 e5                	mov    %esp,%ebp                      
  10c7ab:	53                   	push   %ebx                           
  10c7ac:	83 ec 0c             	sub    $0xc,%esp                      
  10c7af:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10c7b2:	6a 03                	push   $0x3                           
  10c7b4:	ff 33                	pushl  (%ebx)                         
  10c7b6:	e8 cd 60 00 00       	call   112888 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10c7bb:	83 c4 10             	add    $0x10,%esp                     
  10c7be:	83 e0 03             	and    $0x3,%eax                      
  10c7c1:	74 05                	je     10c7c8 <aio_read+0x20>         <== NEVER TAKEN
  10c7c3:	83 f8 02             	cmp    $0x2,%eax                      
  10c7c6:	75 38                	jne    10c800 <aio_read+0x58>         
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
  10c7c8:	8b 53 14             	mov    0x14(%ebx),%edx                
  10c7cb:	85 d2                	test   %edx,%edx                      
  10c7cd:	75 55                	jne    10c824 <aio_read+0x7c>         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
  10c7cf:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10c7d2:	85 c0                	test   %eax,%eax                      
  10c7d4:	78 4e                	js     10c824 <aio_read+0x7c>         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10c7d6:	83 ec 0c             	sub    $0xc,%esp                      
  10c7d9:	6a 18                	push   $0x18                          
  10c7db:	e8 88 c8 ff ff       	call   109068 <malloc>                
  if (req == NULL)                                                    
  10c7e0:	83 c4 10             	add    $0x10,%esp                     
  10c7e3:	85 c0                	test   %eax,%eax                      
  10c7e5:	74 58                	je     10c83f <aio_read+0x97>         <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10c7e7:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
  10c7ea:	c7 43 2c 01 00 00 00 	movl   $0x1,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10c7f1:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10c7f4:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c7f7:	c9                   	leave                                 
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
  10c7f8:	e9 9b fd ff ff       	jmp    10c598 <rtems_aio_enqueue>     
  10c7fd:	8d 76 00             	lea    0x0(%esi),%esi                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
  10c800:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10c807:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10c80e:	e8 e9 93 00 00       	call   115bfc <__errno>               
  10c813:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
  10c819:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10c81e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c821:	c9                   	leave                                 
  10c822:	c3                   	ret                                   
  10c823:	90                   	nop                                   
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
  10c824:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10c82b:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10c832:	e8 c5 93 00 00       	call   115bfc <__errno>               
  10c837:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10c83d:	eb da                	jmp    10c819 <aio_read+0x71>         
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10c83f:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10c846:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10c84d:	e8 aa 93 00 00       	call   115bfc <__errno>               <== NOT EXECUTED
  10c852:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10c858:	eb bf                	jmp    10c819 <aio_read+0x71>         <== NOT EXECUTED
                                                                      

0010c868 <aio_write>: * 0 - otherwise */ int aio_write (struct aiocb *aiocbp) {
  10c868:	55                   	push   %ebp                           
  10c869:	89 e5                	mov    %esp,%ebp                      
  10c86b:	53                   	push   %ebx                           
  10c86c:	83 ec 0c             	sub    $0xc,%esp                      
  10c86f:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10c872:	6a 03                	push   $0x3                           
  10c874:	ff 33                	pushl  (%ebx)                         
  10c876:	e8 0d 60 00 00       	call   112888 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10c87b:	83 e0 03             	and    $0x3,%eax                      
  10c87e:	48                   	dec    %eax                           
  10c87f:	83 c4 10             	add    $0x10,%esp                     
  10c882:	83 f8 01             	cmp    $0x1,%eax                      
  10c885:	77 35                	ja     10c8bc <aio_write+0x54>        
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
  10c887:	8b 53 14             	mov    0x14(%ebx),%edx                
  10c88a:	85 d2                	test   %edx,%edx                      
  10c88c:	75 52                	jne    10c8e0 <aio_write+0x78>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
  10c88e:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10c891:	85 c0                	test   %eax,%eax                      
  10c893:	78 4b                	js     10c8e0 <aio_write+0x78>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10c895:	83 ec 0c             	sub    $0xc,%esp                      
  10c898:	6a 18                	push   $0x18                          
  10c89a:	e8 c9 c7 ff ff       	call   109068 <malloc>                
  if (req == NULL)                                                    
  10c89f:	83 c4 10             	add    $0x10,%esp                     
  10c8a2:	85 c0                	test   %eax,%eax                      
  10c8a4:	74 55                	je     10c8fb <aio_write+0x93>        <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10c8a6:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
  10c8a9:	c7 43 2c 02 00 00 00 	movl   $0x2,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10c8b0:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10c8b3:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c8b6:	c9                   	leave                                 
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
  10c8b7:	e9 dc fc ff ff       	jmp    10c598 <rtems_aio_enqueue>     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
  10c8bc:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10c8c3:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10c8ca:	e8 2d 93 00 00       	call   115bfc <__errno>               
  10c8cf:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
  10c8d5:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10c8da:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c8dd:	c9                   	leave                                 
  10c8de:	c3                   	ret                                   
  10c8df:	90                   	nop                                   
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
  10c8e0:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10c8e7:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10c8ee:	e8 09 93 00 00       	call   115bfc <__errno>               
  10c8f3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10c8f9:	eb da                	jmp    10c8d5 <aio_write+0x6d>        
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10c8fb:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10c902:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10c909:	e8 ee 92 00 00       	call   115bfc <__errno>               <== NOT EXECUTED
  10c90e:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10c914:	eb bf                	jmp    10c8d5 <aio_write+0x6d>        <== NOT EXECUTED
                                                                      

0010b49c <clock_gettime>: int clock_gettime( clockid_t clock_id, struct timespec *tp ) {
  10b49c:	55                   	push   %ebp                           
  10b49d:	89 e5                	mov    %esp,%ebp                      
  10b49f:	83 ec 08             	sub    $0x8,%esp                      
  10b4a2:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b4a5:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !tp )                                                          
  10b4a8:	85 d2                	test   %edx,%edx                      
  10b4aa:	74 14                	je     10b4c0 <clock_gettime+0x24>    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
  10b4ac:	83 f8 01             	cmp    $0x1,%eax                      
  10b4af:	74 47                	je     10b4f8 <clock_gettime+0x5c>    
    _TOD_Get(tp);                                                     
    return 0;                                                         
  }                                                                   
#ifdef CLOCK_MONOTONIC                                                
  if ( clock_id == CLOCK_MONOTONIC ) {                                
  10b4b1:	83 f8 04             	cmp    $0x4,%eax                      
  10b4b4:	74 32                	je     10b4e8 <clock_gettime+0x4c>    <== NEVER TAKEN
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
  10b4b6:	83 f8 02             	cmp    $0x2,%eax                      
  10b4b9:	74 2d                	je     10b4e8 <clock_gettime+0x4c>    
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
  10b4bb:	83 f8 03             	cmp    $0x3,%eax                      
  10b4be:	74 14                	je     10b4d4 <clock_gettime+0x38>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10b4c0:	e8 1b 8e 00 00       	call   1142e0 <__errno>               
  10b4c5:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b4cb:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
                                                                      
  return 0;                                                           
}                                                                     
  10b4d0:	c9                   	leave                                 
  10b4d1:	c3                   	ret                                   
  10b4d2:	66 90                	xchg   %ax,%ax                        
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
  10b4d4:	e8 07 8e 00 00       	call   1142e0 <__errno>               
  10b4d9:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  10b4df:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10b4e4:	c9                   	leave                                 
  10b4e5:	c3                   	ret                                   
  10b4e6:	66 90                	xchg   %ax,%ax                        
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
    _TOD_Get_uptime_as_timespec( tp );                                
  10b4e8:	83 ec 0c             	sub    $0xc,%esp                      
  10b4eb:	52                   	push   %edx                           
  10b4ec:	e8 93 1e 00 00       	call   10d384 <_TOD_Get_uptime_as_timespec>
    return 0;                                                         
  10b4f1:	83 c4 10             	add    $0x10,%esp                     
  10b4f4:	31 c0                	xor    %eax,%eax                      
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10b4f6:	c9                   	leave                                 
  10b4f7:	c3                   	ret                                   
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    _TOD_Get(tp);                                                     
  10b4f8:	83 ec 0c             	sub    $0xc,%esp                      
  10b4fb:	52                   	push   %edx                           
  10b4fc:	e8 2f 1e 00 00       	call   10d330 <_TOD_Get>              
    return 0;                                                         
  10b501:	83 c4 10             	add    $0x10,%esp                     
  10b504:	31 c0                	xor    %eax,%eax                      
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10b506:	c9                   	leave                                 
  10b507:	c3                   	ret                                   
                                                                      

0010b508 <clock_settime>: int clock_settime( clockid_t clock_id, const struct timespec *tp ) {
  10b508:	55                   	push   %ebp                           
  10b509:	89 e5                	mov    %esp,%ebp                      
  10b50b:	83 ec 08             	sub    $0x8,%esp                      
  10b50e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b511:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !tp )                                                          
  10b514:	85 d2                	test   %edx,%edx                      
  10b516:	74 0f                	je     10b527 <clock_settime+0x1f>    <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
  10b518:	83 f8 01             	cmp    $0x1,%eax                      
  10b51b:	74 1f                	je     10b53c <clock_settime+0x34>    
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
    _Thread_Enable_dispatch();                                        
  }                                                                   
#ifdef _POSIX_CPUTIME                                                 
  else if ( clock_id == CLOCK_PROCESS_CPUTIME )                       
  10b51d:	83 f8 02             	cmp    $0x2,%eax                      
  10b520:	74 42                	je     10b564 <clock_settime+0x5c>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
#ifdef _POSIX_THREAD_CPUTIME                                          
  else if ( clock_id == CLOCK_THREAD_CPUTIME )                        
  10b522:	83 f8 03             	cmp    $0x3,%eax                      
  10b525:	74 3d                	je     10b564 <clock_settime+0x5c>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10b527:	e8 b4 8d 00 00       	call   1142e0 <__errno>               
  10b52c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b532:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
                                                                      
  return 0;                                                           
}                                                                     
  10b537:	c9                   	leave                                 
  10b538:	c3                   	ret                                   
  10b539:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )                 
  10b53c:	81 3a ff e4 da 21    	cmpl   $0x21dae4ff,(%edx)             
  10b542:	76 e3                	jbe    10b527 <clock_settime+0x1f>    
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b544:	a1 50 9e 12 00       	mov    0x129e50,%eax                  
  10b549:	40                   	inc    %eax                           
  10b54a:	a3 50 9e 12 00       	mov    %eax,0x129e50                  
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
  10b54f:	83 ec 0c             	sub    $0xc,%esp                      
  10b552:	52                   	push   %edx                           
  10b553:	e8 84 1e 00 00       	call   10d3dc <_TOD_Set>              
    _Thread_Enable_dispatch();                                        
  10b558:	e8 97 33 00 00       	call   10e8f4 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
  10b55d:	83 c4 10             	add    $0x10,%esp                     
  10b560:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b562:	c9                   	leave                                 
  10b563:	c3                   	ret                                   
  else if ( clock_id == CLOCK_PROCESS_CPUTIME )                       
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
#ifdef _POSIX_THREAD_CPUTIME                                          
  else if ( clock_id == CLOCK_THREAD_CPUTIME )                        
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
  10b564:	e8 77 8d 00 00       	call   1142e0 <__errno>               
  10b569:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  10b56f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
}                                                                     
  10b574:	c9                   	leave                                 
  10b575:	c3                   	ret                                   
                                                                      

0010b27c <getitimer>: int getitimer( int which, struct itimerval *value ) {
  10b27c:	55                   	push   %ebp                           
  10b27d:	89 e5                	mov    %esp,%ebp                      
  10b27f:	83 ec 08             	sub    $0x8,%esp                      
  if ( !value )                                                       
  10b282:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10b285:	85 c0                	test   %eax,%eax                      
  10b287:	74 2f                	je     10b2b8 <getitimer+0x3c>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
  10b289:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)                 
  10b28d:	76 15                	jbe    10b2a4 <getitimer+0x28>        
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10b28f:	e8 60 87 00 00       	call   1139f4 <__errno>               
  10b294:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
}                                                                     
  10b29a:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b29f:	c9                   	leave                                 
  10b2a0:	c3                   	ret                                   
  10b2a1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  switch ( which ) {                                                  
    case ITIMER_REAL:                                                 
    case ITIMER_VIRTUAL:                                              
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
  10b2a4:	e8 4b 87 00 00       	call   1139f4 <__errno>               
  10b2a9:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b2af:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b2b4:	c9                   	leave                                 
  10b2b5:	c3                   	ret                                   
  10b2b6:	66 90                	xchg   %ax,%ax                        
  int               which,                                            
  struct itimerval *value                                             
)                                                                     
{                                                                     
  if ( !value )                                                       
    rtems_set_errno_and_return_minus_one( EFAULT );                   
  10b2b8:	e8 37 87 00 00       	call   1139f4 <__errno>               
  10b2bd:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)                    
  10b2c3:	eb d5                	jmp    10b29a <getitimer+0x1e>        
                                                                      

00124a28 <killinfo>: int killinfo( pid_t pid, int sig, const union sigval *value ) {
  124a28:	55                   	push   %ebp                           
  124a29:	89 e5                	mov    %esp,%ebp                      
  124a2b:	57                   	push   %edi                           
  124a2c:	56                   	push   %esi                           
  124a2d:	53                   	push   %ebx                           
  124a2e:	83 ec 3c             	sub    $0x3c,%esp                     
  124a31:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  124a34:	8b 7d 10             	mov    0x10(%ebp),%edi                
  POSIX_signals_Siginfo_node  *psiginfo;                              
                                                                      
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
  if ( pid != getpid() )                                              
  124a37:	e8 00 fd ff ff       	call   12473c <getpid>                
  124a3c:	3b 45 08             	cmp    0x8(%ebp),%eax                 
  124a3f:	0f 85 3f 02 00 00    	jne    124c84 <killinfo+0x25c>        <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  /*                                                                  
   *  Validate the signal passed.                                     
   */                                                                 
  if ( !sig )                                                         
  124a45:	85 f6                	test   %esi,%esi                      
  124a47:	0f 84 4c 02 00 00    	je     124c99 <killinfo+0x271>        <== NEVER TAKEN
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  124a4d:	8d 4e ff             	lea    -0x1(%esi),%ecx                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  124a50:	83 f9 1f             	cmp    $0x1f,%ecx                     
  124a53:	0f 87 40 02 00 00    	ja     124c99 <killinfo+0x271>        <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /*                                                                  
   *  If the signal is being ignored, then we are out of here.        
   */                                                                 
  if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN )          
  124a59:	8d 04 76             	lea    (%esi,%esi,2),%eax             
  124a5c:	83 3c 85 e8 f1 12 00 	cmpl   $0x1,0x12f1e8(,%eax,4)         
  124a63:	01                                                          
  124a64:	0f 84 e6 01 00 00    	je     124c50 <killinfo+0x228>        
  /*                                                                  
   *  P1003.1c/Draft 10, p. 33 says that certain signals should always
   *  be directed to the executing thread such as those caused by hardware
   *  faults.                                                         
   */                                                                 
  if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) )      
  124a6a:	83 fe 08             	cmp    $0x8,%esi                      
  124a6d:	0f 84 c9 00 00 00    	je     124b3c <killinfo+0x114>        
  124a73:	83 fe 04             	cmp    $0x4,%esi                      
  124a76:	0f 84 c0 00 00 00    	je     124b3c <killinfo+0x114>        
  124a7c:	83 fe 0b             	cmp    $0xb,%esi                      
  124a7f:	0f 84 b7 00 00 00    	je     124b3c <killinfo+0x114>        
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  124a85:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  124a8a:	d3 e3                	shl    %cl,%ebx                       
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  124a8c:	89 75 dc             	mov    %esi,-0x24(%ebp)               
  siginfo->si_code = SI_USER;                                         
  124a8f:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)               
  if ( !value ) {                                                     
  124a96:	85 ff                	test   %edi,%edi                      
  124a98:	0f 84 ba 01 00 00    	je     124c58 <killinfo+0x230>        
    siginfo->si_value.sival_int = 0;                                  
  } else {                                                            
    siginfo->si_value = *value;                                       
  124a9e:	8b 07                	mov    (%edi),%eax                    
  124aa0:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  124aa3:	a1 d0 eb 12 00       	mov    0x12ebd0,%eax                  
  124aa8:	40                   	inc    %eax                           
  124aa9:	a3 d0 eb 12 00       	mov    %eax,0x12ebd0                  
                                                                      
  /*                                                                  
   *  Is the currently executing thread interested?  If so then it will
   *  get it an execute it as soon as the dispatcher executes.        
   */                                                                 
  the_thread = _Thread_Executing;                                     
  124aae:	8b 0d 78 f1 12 00    	mov    0x12f178,%ecx                  
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  if ( _POSIX_signals_Is_interested( api, mask ) ) {                  
  124ab4:	8b 81 ec 00 00 00    	mov    0xec(%ecx),%eax                
  124aba:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  124ac0:	f7 d0                	not    %eax                           
  124ac2:	85 c3                	test   %eax,%ebx                      
  124ac4:	75 34                	jne    124afa <killinfo+0xd2>         
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  124ac6:	a1 80 f3 12 00       	mov    0x12f380,%eax                  
                                                                      
  /* XXX violation of visibility -- need to define thread queue support */
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
  124acb:	3d 84 f3 12 00       	cmp    $0x12f384,%eax                 
  124ad0:	75 1b                	jne    124aed <killinfo+0xc5>         
  124ad2:	e9 81 00 00 00       	jmp    124b58 <killinfo+0x130>        
  124ad7:	90                   	nop                                   
                                                                      
    /*                                                                
     * Is this thread is blocked waiting for another signal but has   
     * not blocked this one?                                          
     */                                                               
    if (~api->signals_blocked & mask)                                 
  124ad8:	8b 92 d0 00 00 00    	mov    0xd0(%edx),%edx                
  124ade:	f7 d2                	not    %edx                           
  124ae0:	85 d3                	test   %edx,%ebx                      
  124ae2:	75 16                	jne    124afa <killinfo+0xd2>         
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
  124ae4:	8b 00                	mov    (%eax),%eax                    
                                                                      
  /* XXX violation of visibility -- need to define thread queue support */
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
  124ae6:	3d 84 f3 12 00       	cmp    $0x12f384,%eax                 
  124aeb:	74 6b                	je     124b58 <killinfo+0x130>        <== ALWAYS TAKEN
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
  124aed:	89 c1                	mov    %eax,%ecx                      
    api = the_thread->API_Extensions[ THREAD_API_POSIX ];             
  124aef:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
  124af5:	85 58 30             	test   %ebx,0x30(%eax)                
  124af8:	74 de                	je     124ad8 <killinfo+0xb0>         
                                                                      
  /*                                                                  
   *  Returns true if the signal was synchronously given to a thread  
   *  blocked waiting for the signal.                                 
   */                                                                 
  if ( _POSIX_signals_Unblock_thread( the_thread, sig, siginfo ) ) {  
  124afa:	50                   	push   %eax                           
  mask = signo_to_mask( sig );                                        
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  124afb:	8d 45 dc             	lea    -0x24(%ebp),%eax               
                                                                      
  /*                                                                  
   *  Returns true if the signal was synchronously given to a thread  
   *  blocked waiting for the signal.                                 
   */                                                                 
  if ( _POSIX_signals_Unblock_thread( the_thread, sig, siginfo ) ) {  
  124afe:	50                   	push   %eax                           
  124aff:	56                   	push   %esi                           
  124b00:	51                   	push   %ecx                           
  124b01:	e8 d6 01 00 00       	call   124cdc <_POSIX_signals_Unblock_thread>
  124b06:	83 c4 10             	add    $0x10,%esp                     
  124b09:	84 c0                	test   %al,%al                        
  124b0b:	75 1f                	jne    124b2c <killinfo+0x104>        
                                                                      
  /*                                                                  
   *  We may have woken up a thread but we definitely need to post the
   *  signal to the process wide information set.                     
   */                                                                 
  _POSIX_signals_Set_process_signals( mask );                         
  124b0d:	83 ec 0c             	sub    $0xc,%esp                      
  124b10:	53                   	push   %ebx                           
  124b11:	e8 b2 01 00 00       	call   124cc8 <_POSIX_signals_Set_process_signals>
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
  124b16:	8d 1c 76             	lea    (%esi,%esi,2),%ebx             
  124b19:	c1 e3 02             	shl    $0x2,%ebx                      
  124b1c:	83 c4 10             	add    $0x10,%esp                     
  124b1f:	83 bb e0 f1 12 00 02 	cmpl   $0x2,0x12f1e0(%ebx)            
  124b26:	0f 84 e4 00 00 00    	je     124c10 <killinfo+0x1e8>        
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  124b2c:	e8 ff df fe ff       	call   112b30 <_Thread_Enable_dispatch>
  return 0;                                                           
  124b31:	31 c0                	xor    %eax,%eax                      
}                                                                     
  124b33:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124b36:	5b                   	pop    %ebx                           
  124b37:	5e                   	pop    %esi                           
  124b38:	5f                   	pop    %edi                           
  124b39:	c9                   	leave                                 
  124b3a:	c3                   	ret                                   
  124b3b:	90                   	nop                                   
   *  P1003.1c/Draft 10, p. 33 says that certain signals should always
   *  be directed to the executing thread such as those caused by hardware
   *  faults.                                                         
   */                                                                 
  if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) )      
      return pthread_kill( pthread_self(), sig );                     
  124b3c:	e8 77 03 00 00       	call   124eb8 <pthread_self>          
  124b41:	83 ec 08             	sub    $0x8,%esp                      
  124b44:	56                   	push   %esi                           
  124b45:	50                   	push   %eax                           
  124b46:	e8 b1 02 00 00       	call   124dfc <pthread_kill>          
  124b4b:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  124b4e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124b51:	5b                   	pop    %ebx                           
  124b52:	5e                   	pop    %esi                           
  124b53:	5f                   	pop    %edi                           
  124b54:	c9                   	leave                                 
  124b55:	c3                   	ret                                   
  124b56:	66 90                	xchg   %ax,%ax                        
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
  124b58:	0f b6 05 14 a7 12 00 	movzbl 0x12a714,%eax                  
  124b5f:	40                   	inc    %eax                           
  124b60:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
   *                                                                  
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  124b63:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)               
  interested_priority = PRIORITY_MAXIMUM + 1;                         
                                                                      
  for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
  124b6a:	c7 45 cc 02 00 00 00 	movl   $0x2,-0x34(%ebp)               
  124b71:	89 5d d0             	mov    %ebx,-0x30(%ebp)               
  124b74:	89 75 c0             	mov    %esi,-0x40(%ebp)               
                                                                      
    /*                                                                
     *  This can occur when no one is interested and an API is not configured.
     */                                                               
    if ( !_Objects_Information_table[ the_api ] )                     
  124b77:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  124b7a:	8b 04 95 a8 eb 12 00 	mov    0x12eba8(,%edx,4),%eax         
  124b81:	85 c0                	test   %eax,%eax                      
  124b83:	74 68                	je     124bed <killinfo+0x1c5>        <== NEVER TAKEN
      continue;                                                       
                                                                      
    the_info = _Objects_Information_table[ the_api ][ 1 ];            
  124b85:	8b 40 04             	mov    0x4(%eax),%eax                 
       */                                                             
      if ( !the_info )                                                
        continue;                                                     
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
  124b88:	0f b7 70 10          	movzwl 0x10(%eax),%esi                
    object_table = the_info->local_table;                             
  124b8c:	8b 78 1c             	mov    0x1c(%eax),%edi                
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
  124b8f:	85 f6                	test   %esi,%esi                      
  124b91:	74 5a                	je     124bed <killinfo+0x1c5>        
  124b93:	b8 01 00 00 00       	mov    $0x1,%eax                      
      the_thread = (Thread_Control *) object_table[ index ];          
  124b98:	8b 14 87             	mov    (%edi,%eax,4),%edx             
                                                                      
      if ( !the_thread )                                              
  124b9b:	85 d2                	test   %edx,%edx                      
  124b9d:	74 49                	je     124be8 <killinfo+0x1c0>        
                                                                      
      /*                                                              
       *  If this thread is of lower priority than the interested thread,
       *  go on to the next thread.                                   
       */                                                             
      if ( the_thread->current_priority > interested_priority )       
  124b9f:	8b 4a 14             	mov    0x14(%edx),%ecx                
  124ba2:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  124ba5:	77 41                	ja     124be8 <killinfo+0x1c0>        
      #if defined(RTEMS_DEBUG)                                        
        if ( !api )                                                   
          continue;                                                   
      #endif                                                          
                                                                      
      if ( !_POSIX_signals_Is_interested( api, mask ) )               
  124ba7:	8b 9a ec 00 00 00    	mov    0xec(%edx),%ebx                
  124bad:	8b 9b d0 00 00 00    	mov    0xd0(%ebx),%ebx                
  124bb3:	f7 d3                	not    %ebx                           
  124bb5:	85 5d d0             	test   %ebx,-0x30(%ebp)               
  124bb8:	74 2e                	je     124be8 <killinfo+0x1c0>        
       *                                                              
       *  NOTE: We initialized interested_priority to PRIORITY_MAXIMUM + 1
       *        so we never have to worry about deferencing a NULL    
       *        interested thread.                                    
       */                                                             
      if ( the_thread->current_priority < interested_priority ) {     
  124bba:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  124bbd:	72 21                	jb     124be0 <killinfo+0x1b8>        
       *  and blocking interruptibutable by signal.                   
       *                                                              
       *  If the interested thread is ready, don't think about changing.
       */                                                             
                                                                      
      if ( interested && !_States_Is_ready( interested->current_state ) ) {
  124bbf:	8b 5d c8             	mov    -0x38(%ebp),%ebx               
  124bc2:	85 db                	test   %ebx,%ebx                      
  124bc4:	74 22                	je     124be8 <killinfo+0x1c0>        <== NEVER TAKEN
  124bc6:	8b 5d c8             	mov    -0x38(%ebp),%ebx               
  124bc9:	8b 5b 10             	mov    0x10(%ebx),%ebx                
  124bcc:	89 5d c4             	mov    %ebx,-0x3c(%ebp)               
  124bcf:	85 db                	test   %ebx,%ebx                      
  124bd1:	74 15                	je     124be8 <killinfo+0x1c0>        <== NEVER TAKEN
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
  124bd3:	8b 5a 10             	mov    0x10(%edx),%ebx                
  124bd6:	85 db                	test   %ebx,%ebx                      
  124bd8:	0f 85 86 00 00 00    	jne    124c64 <killinfo+0x23c>        
  124bde:	66 90                	xchg   %ax,%ax                        
  124be0:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  124be3:	89 55 c8             	mov    %edx,-0x38(%ebp)               
  124be6:	66 90                	xchg   %ax,%ax                        
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
  124be8:	40                   	inc    %eax                           
  124be9:	39 c6                	cmp    %eax,%esi                      
  124beb:	73 ab                	jae    124b98 <killinfo+0x170>        
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
                                                                      
  for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
  124bed:	ff 45 cc             	incl   -0x34(%ebp)                    
  124bf0:	83 7d cc 04          	cmpl   $0x4,-0x34(%ebp)               
  124bf4:	75 81                	jne    124b77 <killinfo+0x14f>        
  124bf6:	8b 5d d0             	mov    -0x30(%ebp),%ebx               
  124bf9:	8b 75 c0             	mov    -0x40(%ebp),%esi               
        }                                                             
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( interested ) {                                                 
  124bfc:	8b 55 c8             	mov    -0x38(%ebp),%edx               
  124bff:	85 d2                	test   %edx,%edx                      
  124c01:	0f 84 06 ff ff ff    	je     124b0d <killinfo+0xe5>         
  124c07:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  124c0a:	e9 eb fe ff ff       	jmp    124afa <killinfo+0xd2>         
  124c0f:	90                   	nop                                   
  _POSIX_signals_Set_process_signals( mask );                         
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
                                                                      
    psiginfo = (POSIX_signals_Siginfo_node *)                         
               _Chain_Get( &_POSIX_signals_Inactive_siginfo );        
  124c10:	83 ec 0c             	sub    $0xc,%esp                      
  124c13:	68 60 f3 12 00       	push   $0x12f360                      
  124c18:	e8 c7 c4 fe ff       	call   1110e4 <_Chain_Get>            
    if ( !psiginfo ) {                                                
  124c1d:	83 c4 10             	add    $0x10,%esp                     
  124c20:	85 c0                	test   %eax,%eax                      
  124c22:	0f 84 86 00 00 00    	je     124cae <killinfo+0x286>        
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
    }                                                                 
                                                                      
    psiginfo->Info = *siginfo;                                        
  124c28:	8d 78 08             	lea    0x8(%eax),%edi                 
  124c2b:	8d 75 dc             	lea    -0x24(%ebp),%esi               
  124c2e:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  124c33:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
  124c35:	83 ec 08             	sub    $0x8,%esp                      
  124c38:	50                   	push   %eax                           
  124c39:	81 c3 00 f4 12 00    	add    $0x12f400,%ebx                 
  124c3f:	53                   	push   %ebx                           
  124c40:	e8 63 c4 fe ff       	call   1110a8 <_Chain_Append>         
  124c45:	83 c4 10             	add    $0x10,%esp                     
  124c48:	e9 df fe ff ff       	jmp    124b2c <killinfo+0x104>        
  124c4d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /*                                                                  
   *  If the signal is being ignored, then we are out of here.        
   */                                                                 
  if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN )          
    return 0;                                                         
  124c50:	31 c0                	xor    %eax,%eax                      
  124c52:	e9 f7 fe ff ff       	jmp    124b4e <killinfo+0x126>        
  124c57:	90                   	nop                                   
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
  if ( !value ) {                                                     
    siginfo->si_value.sival_int = 0;                                  
  124c58:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  124c5f:	e9 3f fe ff ff       	jmp    124aa3 <killinfo+0x7b>         
          continue;                                                   
        }                                                             
                                                                      
        DEBUG_STEP("6");                                              
        /* prefer blocked/interruptible over blocked/not interruptible */
        if ( !_States_Is_interruptible_by_signal(interested->current_state) ) {
  124c64:	f7 45 c4 00 00 00 10 	testl  $0x10000000,-0x3c(%ebp)        
  124c6b:	0f 85 77 ff ff ff    	jne    124be8 <killinfo+0x1c0>        
          DEBUG_STEP("7");                                            
          if ( _States_Is_interruptible_by_signal(the_thread->current_state) ) {
  124c71:	81 e3 00 00 00 10    	and    $0x10000000,%ebx               
  124c77:	0f 84 6b ff ff ff    	je     124be8 <killinfo+0x1c0>        
  124c7d:	e9 5e ff ff ff       	jmp    124be0 <killinfo+0x1b8>        
  124c82:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
  if ( pid != getpid() )                                              
    rtems_set_errno_and_return_minus_one( ESRCH );                    
  124c84:	e8 23 38 ff ff       	call   1184ac <__errno>               <== NOT EXECUTED
  124c89:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    <== NOT EXECUTED
  124c8f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               <== NOT EXECUTED
  124c94:	e9 b5 fe ff ff       	jmp    124b4e <killinfo+0x126>        <== NOT EXECUTED
   */                                                                 
  if ( !sig )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  124c99:	e8 0e 38 ff ff       	call   1184ac <__errno>               <== NOT EXECUTED
  124c9e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   <== NOT EXECUTED
  124ca4:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               <== NOT EXECUTED
  124ca9:	e9 a0 fe ff ff       	jmp    124b4e <killinfo+0x126>        <== NOT EXECUTED
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
                                                                      
    psiginfo = (POSIX_signals_Siginfo_node *)                         
               _Chain_Get( &_POSIX_signals_Inactive_siginfo );        
    if ( !psiginfo ) {                                                
      _Thread_Enable_dispatch();                                      
  124cae:	e8 7d de fe ff       	call   112b30 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
  124cb3:	e8 f4 37 ff ff       	call   1184ac <__errno>               
  124cb8:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    
  124cbe:	83 c8 ff             	or     $0xffffffff,%eax               
  124cc1:	e9 88 fe ff ff       	jmp    124b4e <killinfo+0x126>        
                                                                      

0010fb5c <mq_open>: int oflag, ... /* mode_t mode, */ /* struct mq_attr attr */ ) {
  10fb5c:	55                   	push   %ebp                           
  10fb5d:	89 e5                	mov    %esp,%ebp                      
  10fb5f:	57                   	push   %edi                           
  10fb60:	56                   	push   %esi                           
  10fb61:	53                   	push   %ebx                           
  10fb62:	83 ec 2c             	sub    $0x2c,%esp                     
  10fb65:	8b 75 0c             	mov    0xc(%ebp),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10fb68:	a1 90 0f 13 00       	mov    0x130f90,%eax                  
  10fb6d:	40                   	inc    %eax                           
  10fb6e:	a3 90 0f 13 00       	mov    %eax,0x130f90                  
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  Objects_Locations               location;                           
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
  10fb73:	89 f0                	mov    %esi,%eax                      
  10fb75:	25 00 02 00 00       	and    $0x200,%eax                    
  10fb7a:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10fb7d:	0f 85 c9 00 00 00    	jne    10fc4c <mq_open+0xf0>          
  /* struct mq_attr  attr */                                          
)                                                                     
{                                                                     
  va_list                         arg;                                
  mode_t                          mode;                               
  struct mq_attr                 *attr = NULL;                        
  10fb83:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)               
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *                 
  _POSIX_Message_queue_Allocate_fd( void )                            
{                                                                     
  return (POSIX_Message_queue_Control_fd *)                           
    _Objects_Allocate( &_POSIX_Message_queue_Information_fds );       
  10fb8a:	83 ec 0c             	sub    $0xc,%esp                      
  10fb8d:	68 c0 14 13 00       	push   $0x1314c0                      
  10fb92:	e8 55 2c 00 00       	call   1127ec <_Objects_Allocate>     
  10fb97:	89 c3                	mov    %eax,%ebx                      
    attr = (struct mq_attr *) va_arg( arg, struct mq_attr * );        
    va_end(arg);                                                      
  }                                                                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Allocate_fd();                     
  if ( !the_mq_fd ) {                                                 
  10fb99:	83 c4 10             	add    $0x10,%esp                     
  10fb9c:	85 c0                	test   %eax,%eax                      
  10fb9e:	0f 84 b4 00 00 00    	je     10fc58 <mq_open+0xfc>          
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
  the_mq_fd->oflag = oflag;                                           
  10fba4:	89 70 14             	mov    %esi,0x14(%eax)                
                                                                      
  status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id );       
  10fba7:	83 ec 08             	sub    $0x8,%esp                      
  10fbaa:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10fbad:	50                   	push   %eax                           
  10fbae:	ff 75 08             	pushl  0x8(%ebp)                      
  10fbb1:	e8 ca 69 00 00       	call   116580 <_POSIX_Message_queue_Name_to_id>
  10fbb6:	89 c7                	mov    %eax,%edi                      
   *  If the name to id translation worked, then the message queue exists
   *  and we can just return a pointer to the id.  Otherwise we may   
   *  need to check to see if this is a "message queue does not exist"
   *  or some other miscellaneous error on the name.                  
   */                                                                 
  if ( status ) {                                                     
  10fbb8:	83 c4 10             	add    $0x10,%esp                     
  10fbbb:	85 c0                	test   %eax,%eax                      
  10fbbd:	75 59                	jne    10fc18 <mq_open+0xbc>          
                                                                      
  } else {                /* name -> ID translation succeeded */      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
  10fbbf:	81 e6 00 0a 00 00    	and    $0xa00,%esi                    
  10fbc5:	81 fe 00 0a 00 00    	cmp    $0xa00,%esi                    
  10fbcb:	0f 84 a7 00 00 00    	je     10fc78 <mq_open+0x11c>         
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control *)                              
    _Objects_Get( &_POSIX_Message_queue_Information, id, location );  
  10fbd1:	50                   	push   %eax                           
                                                                      
    /*                                                                
     * In this case we need to do an ID->pointer conversion to        
     * check the mode.                                                
     */                                                               
    the_mq = _POSIX_Message_queue_Get( the_mq_id, &location );        
  10fbd2:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10fbd5:	50                   	push   %eax                           
  10fbd6:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10fbd9:	68 20 13 13 00       	push   $0x131320                      
  10fbde:	e8 bd 30 00 00       	call   112ca0 <_Objects_Get>          
  10fbe3:	89 45 e0             	mov    %eax,-0x20(%ebp)               
    the_mq->open_count += 1;                                          
  10fbe6:	ff 40 18             	incl   0x18(%eax)                     
    the_mq_fd->Queue = the_mq;                                        
  10fbe9:	89 43 10             	mov    %eax,0x10(%ebx)                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10fbec:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10fbf0:	a1 dc 14 13 00       	mov    0x1314dc,%eax                  
  10fbf5:	89 1c 90             	mov    %ebx,(%eax,%edx,4)             
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
  10fbf8:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
    _Objects_Open_string(                                             
      &_POSIX_Message_queue_Information_fds,                          
      &the_mq_fd->Object,                                             
      NULL                                                            
    );                                                                
    _Thread_Enable_dispatch();                                        
  10fbff:	e8 a4 3c 00 00       	call   1138a8 <_Thread_Enable_dispatch>
    _Thread_Enable_dispatch();                                        
  10fc04:	e8 9f 3c 00 00       	call   1138a8 <_Thread_Enable_dispatch>
    return (mqd_t)the_mq_fd->Object.id;                               
  10fc09:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10fc0c:	83 c4 10             	add    $0x10,%esp                     
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10fc0f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fc12:	5b                   	pop    %ebx                           
  10fc13:	5e                   	pop    %esi                           
  10fc14:	5f                   	pop    %edi                           
  10fc15:	c9                   	leave                                 
  10fc16:	c3                   	ret                                   
  10fc17:	90                   	nop                                   
  if ( status ) {                                                     
    /*                                                                
     * Unless provided a valid name that did not already exist        
     * and we are willing to create then it is an error.              
     */                                                               
    if ( !( status == ENOENT && (oflag & O_CREAT) ) ) {               
  10fc18:	83 f8 02             	cmp    $0x2,%eax                      
  10fc1b:	0f 84 87 00 00 00    	je     10fca8 <mq_open+0x14c>         
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd (              
  POSIX_Message_queue_Control_fd *the_mq_fd                           
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object );
  10fc21:	83 ec 08             	sub    $0x8,%esp                      
  10fc24:	53                   	push   %ebx                           
  10fc25:	68 c0 14 13 00       	push   $0x1314c0                      
  10fc2a:	e8 31 2f 00 00       	call   112b60 <_Objects_Free>         
      _POSIX_Message_queue_Free_fd( the_mq_fd );                      
      _Thread_Enable_dispatch();                                      
  10fc2f:	e8 74 3c 00 00       	call   1138a8 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( status, mqd_t );     
  10fc34:	e8 3b 9c 00 00       	call   119874 <__errno>               
  10fc39:	89 38                	mov    %edi,(%eax)                    
  10fc3b:	83 c4 10             	add    $0x10,%esp                     
  10fc3e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10fc43:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fc46:	5b                   	pop    %ebx                           
  10fc47:	5e                   	pop    %esi                           
  10fc48:	5f                   	pop    %edi                           
  10fc49:	c9                   	leave                                 
  10fc4a:	c3                   	ret                                   
  10fc4b:	90                   	nop                                   
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
    va_start(arg, oflag);                                             
    mode = (mode_t) va_arg( arg, unsigned int );                      
    attr = (struct mq_attr *) va_arg( arg, struct mq_attr * );        
  10fc4c:	8b 45 14             	mov    0x14(%ebp),%eax                
  10fc4f:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  10fc52:	e9 33 ff ff ff       	jmp    10fb8a <mq_open+0x2e>          
  10fc57:	90                   	nop                                   
    va_end(arg);                                                      
  }                                                                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Allocate_fd();                     
  if ( !the_mq_fd ) {                                                 
    _Thread_Enable_dispatch();                                        
  10fc58:	e8 4b 3c 00 00       	call   1138a8 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  10fc5d:	e8 12 9c 00 00       	call   119874 <__errno>               
  10fc62:	c7 00 17 00 00 00    	movl   $0x17,(%eax)                   
  10fc68:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10fc6d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fc70:	5b                   	pop    %ebx                           
  10fc71:	5e                   	pop    %esi                           
  10fc72:	5f                   	pop    %edi                           
  10fc73:	c9                   	leave                                 
  10fc74:	c3                   	ret                                   
  10fc75:	8d 76 00             	lea    0x0(%esi),%esi                 
  10fc78:	83 ec 08             	sub    $0x8,%esp                      
  10fc7b:	53                   	push   %ebx                           
  10fc7c:	68 c0 14 13 00       	push   $0x1314c0                      
  10fc81:	e8 da 2e 00 00       	call   112b60 <_Objects_Free>         
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _POSIX_Message_queue_Free_fd( the_mq_fd );                      
      _Thread_Enable_dispatch();                                      
  10fc86:	e8 1d 3c 00 00       	call   1138a8 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t );     
  10fc8b:	e8 e4 9b 00 00       	call   119874 <__errno>               
  10fc90:	c7 00 11 00 00 00    	movl   $0x11,(%eax)                   
  10fc96:	83 c4 10             	add    $0x10,%esp                     
  10fc99:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10fc9e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fca1:	5b                   	pop    %ebx                           
  10fca2:	5e                   	pop    %esi                           
  10fca3:	5f                   	pop    %edi                           
  10fca4:	c9                   	leave                                 
  10fca5:	c3                   	ret                                   
  10fca6:	66 90                	xchg   %ax,%ax                        
  if ( status ) {                                                     
    /*                                                                
     * Unless provided a valid name that did not already exist        
     * and we are willing to create then it is an error.              
     */                                                               
    if ( !( status == ENOENT && (oflag & O_CREAT) ) ) {               
  10fca8:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  10fcab:	85 d2                	test   %edx,%edx                      
  10fcad:	0f 84 6e ff ff ff    	je     10fc21 <mq_open+0xc5>          
                                                                      
  /*                                                                  
   *  At this point, the message queue does not exist and everything has been
   *  checked. We should go ahead and create a message queue.         
   */                                                                 
  status = _POSIX_Message_queue_Create_support(                       
  10fcb3:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10fcb6:	50                   	push   %eax                           
  10fcb7:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10fcba:	6a 01                	push   $0x1                           
  10fcbc:	ff 75 08             	pushl  0x8(%ebp)                      
  10fcbf:	e8 34 67 00 00       	call   1163f8 <_POSIX_Message_queue_Create_support>
  );                                                                  
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
  if ( status == -1 ) {                                               
  10fcc4:	83 c4 10             	add    $0x10,%esp                     
  10fcc7:	40                   	inc    %eax                           
  10fcc8:	74 26                	je     10fcf0 <mq_open+0x194>         
    _POSIX_Message_queue_Free_fd( the_mq_fd );                        
    _Thread_Enable_dispatch();                                        
    return (mqd_t) -1;                                                
  }                                                                   
                                                                      
  the_mq_fd->Queue = the_mq;                                          
  10fcca:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10fccd:	89 43 10             	mov    %eax,0x10(%ebx)                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10fcd0:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10fcd4:	a1 dc 14 13 00       	mov    0x1314dc,%eax                  
  10fcd9:	89 1c 90             	mov    %ebx,(%eax,%edx,4)             
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
  10fcdc:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
    &_POSIX_Message_queue_Information_fds,                            
    &the_mq_fd->Object,                                               
    NULL                                                              
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
  10fce3:	e8 c0 3b 00 00       	call   1138a8 <_Thread_Enable_dispatch>
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
  10fce8:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10fceb:	e9 1f ff ff ff       	jmp    10fc0f <mq_open+0xb3>          
  10fcf0:	83 ec 08             	sub    $0x8,%esp                      
  10fcf3:	53                   	push   %ebx                           
  10fcf4:	68 c0 14 13 00       	push   $0x1314c0                      
  10fcf9:	e8 62 2e 00 00       	call   112b60 <_Objects_Free>         
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
  if ( status == -1 ) {                                               
    _POSIX_Message_queue_Free_fd( the_mq_fd );                        
    _Thread_Enable_dispatch();                                        
  10fcfe:	e8 a5 3b 00 00       	call   1138a8 <_Thread_Enable_dispatch>
    return (mqd_t) -1;                                                
  10fd03:	83 c4 10             	add    $0x10,%esp                     
  10fd06:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10fd0b:	e9 ff fe ff ff       	jmp    10fc0f <mq_open+0xb3>          
                                                                      

0011fe84 <nanosleep>: int nanosleep( const struct timespec *rqtp, struct timespec *rmtp ) {
  11fe84:	55                   	push   %ebp                           
  11fe85:	89 e5                	mov    %esp,%ebp                      
  11fe87:	56                   	push   %esi                           
  11fe88:	53                   	push   %ebx                           
  11fe89:	8b 75 08             	mov    0x8(%ebp),%esi                 
  11fe8c:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
   *  Return EINVAL if the delay interval is negative.                
   *                                                                  
   *  NOTE:  This behavior is beyond the POSIX specification.         
   *         FSU and GNU/Linux pthreads shares this behavior.         
   */                                                                 
  if ( !_Timespec_Is_valid( rqtp ) )                                  
  11fe8f:	83 ec 0c             	sub    $0xc,%esp                      
  11fe92:	56                   	push   %esi                           
  11fe93:	e8 80 01 00 00       	call   120018 <_Timespec_Is_valid>    
  11fe98:	83 c4 10             	add    $0x10,%esp                     
  11fe9b:	84 c0                	test   %al,%al                        
  11fe9d:	0f 84 e1 00 00 00    	je     11ff84 <nanosleep+0x100>       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  ticks = _Timespec_To_ticks( rqtp );                                 
  11fea3:	83 ec 0c             	sub    $0xc,%esp                      
  11fea6:	56                   	push   %esi                           
  11fea7:	e8 60 1f ff ff       	call   111e0c <_Timespec_To_ticks>    
  11feac:	89 c6                	mov    %eax,%esi                      
   *  A nanosleep for zero time is implemented as a yield.            
   *  This behavior is also beyond the POSIX specification but is     
   *  consistent with the RTEMS API and yields desirable behavior.    
   */                                                                 
                                                                      
  if ( !ticks ) {                                                     
  11feae:	83 c4 10             	add    $0x10,%esp                     
  11feb1:	85 c0                	test   %eax,%eax                      
  11feb3:	75 37                	jne    11feec <nanosleep+0x68>        
  11feb5:	a1 50 8d 12 00       	mov    0x128d50,%eax                  
  11feba:	40                   	inc    %eax                           
  11febb:	a3 50 8d 12 00       	mov    %eax,0x128d50                  
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
  11fec0:	ff 15 cc 48 12 00    	call   *0x1248cc                      
    _Thread_Disable_dispatch();                                       
      _Scheduler_Yield();                                             
    _Thread_Enable_dispatch();                                        
  11fec6:	e8 4d df fe ff       	call   10de18 <_Thread_Enable_dispatch>
    if ( rmtp ) {                                                     
  11fecb:	85 db                	test   %ebx,%ebx                      
  11fecd:	0f 84 93 00 00 00    	je     11ff66 <nanosleep+0xe2>        
       rmtp->tv_sec = 0;                                              
  11fed3:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
       rmtp->tv_nsec = 0;                                             
  11fed9:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)                 
    }                                                                 
    return 0;                                                         
  11fee0:	31 c0                	xor    %eax,%eax                      
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
  11fee2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11fee5:	5b                   	pop    %ebx                           
  11fee6:	5e                   	pop    %esi                           
  11fee7:	c9                   	leave                                 
  11fee8:	c3                   	ret                                   
  11fee9:	8d 76 00             	lea    0x0(%esi),%esi                 
  11feec:	a1 50 8d 12 00       	mov    0x128d50,%eax                  
  11fef1:	40                   	inc    %eax                           
  11fef2:	a3 50 8d 12 00       	mov    %eax,0x128d50                  
                                                                      
  /*                                                                  
   *  Block for the desired amount of time                            
   */                                                                 
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
  11fef7:	83 ec 08             	sub    $0x8,%esp                      
  11fefa:	68 08 00 00 10       	push   $0x10000008                    
  11feff:	ff 35 f8 92 12 00    	pushl  0x1292f8                       
  11ff05:	e8 32 e7 fe ff       	call   10e63c <_Thread_Set_state>     
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
  11ff0a:	8b 15 f8 92 12 00    	mov    0x1292f8,%edx                  
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
      _Thread_Executing,                                              
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
  11ff10:	8b 42 08             	mov    0x8(%edx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  11ff13:	c7 42 50 00 00 00 00 	movl   $0x0,0x50(%edx)                
  the_watchdog->routine   = routine;                                  
  11ff1a:	c7 42 64 64 dc 10 00 	movl   $0x10dc64,0x64(%edx)           
  the_watchdog->id        = id;                                       
  11ff21:	89 42 68             	mov    %eax,0x68(%edx)                
  the_watchdog->user_data = user_data;                                
  11ff24:	c7 42 6c 00 00 00 00 	movl   $0x0,0x6c(%edx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  11ff2b:	89 72 54             	mov    %esi,0x54(%edx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  11ff2e:	58                   	pop    %eax                           
  11ff2f:	59                   	pop    %ecx                           
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );       
  11ff30:	83 c2 48             	add    $0x48,%edx                     
  11ff33:	52                   	push   %edx                           
  11ff34:	68 20 8e 12 00       	push   $0x128e20                      
  11ff39:	e8 c6 ec fe ff       	call   10ec04 <_Watchdog_Insert>      
  _Thread_Enable_dispatch();                                          
  11ff3e:	e8 d5 de fe ff       	call   10de18 <_Thread_Enable_dispatch>
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
  11ff43:	83 c4 10             	add    $0x10,%esp                     
  11ff46:	85 db                	test   %ebx,%ebx                      
  11ff48:	74 1c                	je     11ff66 <nanosleep+0xe2>        
    ticks -=                                                          
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
  11ff4a:	a1 f8 92 12 00       	mov    0x1292f8,%eax                  
  11ff4f:	03 70 5c             	add    0x5c(%eax),%esi                
  _Thread_Enable_dispatch();                                          
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
    ticks -=                                                          
  11ff52:	2b 70 60             	sub    0x60(%eax),%esi                
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
                                                                      
    _Timespec_From_ticks( ticks, rmtp );                              
  11ff55:	83 ec 08             	sub    $0x8,%esp                      
  11ff58:	53                   	push   %ebx                           
  11ff59:	56                   	push   %esi                           
  11ff5a:	e8 71 00 00 00       	call   11ffd0 <_Timespec_From_ticks>  
     */                                                               
    #if defined(RTEMS_POSIX_API)                                      
        /*                                                            
         *  If there is time remaining, then we were interrupted by a signal.
         */                                                           
        if ( ticks )                                                  
  11ff5f:	83 c4 10             	add    $0x10,%esp                     
  11ff62:	85 f6                	test   %esi,%esi                      
  11ff64:	75 09                	jne    11ff6f <nanosleep+0xeb>        
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
  11ff66:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11ff68:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11ff6b:	5b                   	pop    %ebx                           
  11ff6c:	5e                   	pop    %esi                           
  11ff6d:	c9                   	leave                                 
  11ff6e:	c3                   	ret                                   
    #if defined(RTEMS_POSIX_API)                                      
        /*                                                            
         *  If there is time remaining, then we were interrupted by a signal.
         */                                                           
        if ( ticks )                                                  
          rtems_set_errno_and_return_minus_one( EINTR );              
  11ff6f:	e8 10 38 ff ff       	call   113784 <__errno>               
  11ff74:	c7 00 04 00 00 00    	movl   $0x4,(%eax)                    
  11ff7a:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  11ff7f:	e9 5e ff ff ff       	jmp    11fee2 <nanosleep+0x5e>        
   *                                                                  
   *  NOTE:  This behavior is beyond the POSIX specification.         
   *         FSU and GNU/Linux pthreads shares this behavior.         
   */                                                                 
  if ( !_Timespec_Is_valid( rqtp ) )                                  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  11ff84:	e8 fb 37 ff ff       	call   113784 <__errno>               
  11ff89:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  11ff8f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  11ff94:	e9 49 ff ff ff       	jmp    11fee2 <nanosleep+0x5e>        
                                                                      

00110998 <pthread_attr_destroy>: #include <rtems/system.h> int pthread_attr_destroy( pthread_attr_t *attr ) {
  110998:	55                   	push   %ebp                           
  110999:	89 e5                	mov    %esp,%ebp                      
  11099b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  11099e:	85 c0                	test   %eax,%eax                      
  1109a0:	74 12                	je     1109b4 <pthread_attr_destroy+0x1c>
  1109a2:	8b 10                	mov    (%eax),%edx                    
  1109a4:	85 d2                	test   %edx,%edx                      
  1109a6:	74 0c                	je     1109b4 <pthread_attr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  1109a8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  1109ae:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1109b0:	c9                   	leave                                 
  1109b1:	c3                   	ret                                   
  1109b2:	66 90                	xchg   %ax,%ax                        
int pthread_attr_destroy(                                             
  pthread_attr_t  *attr                                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  1109b4:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  1109b9:	c9                   	leave                                 
  1109ba:	c3                   	ret                                   
                                                                      

00110ae4 <pthread_attr_getstack>: int pthread_attr_getstack( const pthread_attr_t *attr, void **stackaddr, size_t *stacksize ) {
  110ae4:	55                   	push   %ebp                           
  110ae5:	89 e5                	mov    %esp,%ebp                      
  110ae7:	53                   	push   %ebx                           
  110ae8:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110aeb:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  110aee:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
  110af1:	85 c0                	test   %eax,%eax                      
  110af3:	74 1f                	je     110b14 <pthread_attr_getstack+0x30>
  110af5:	8b 18                	mov    (%eax),%ebx                    
  110af7:	85 db                	test   %ebx,%ebx                      
  110af9:	74 19                	je     110b14 <pthread_attr_getstack+0x30>
  110afb:	85 d2                	test   %edx,%edx                      
  110afd:	74 15                	je     110b14 <pthread_attr_getstack+0x30>
  110aff:	85 c9                	test   %ecx,%ecx                      
  110b01:	74 11                	je     110b14 <pthread_attr_getstack+0x30>
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
  110b03:	8b 58 04             	mov    0x4(%eax),%ebx                 
  110b06:	89 1a                	mov    %ebx,(%edx)                    
  *stacksize = attr->stacksize;                                       
  110b08:	8b 40 08             	mov    0x8(%eax),%eax                 
  110b0b:	89 01                	mov    %eax,(%ecx)                    
  return 0;                                                           
  110b0d:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110b0f:	5b                   	pop    %ebx                           
  110b10:	c9                   	leave                                 
  110b11:	c3                   	ret                                   
  110b12:	66 90                	xchg   %ax,%ax                        
  void                  **stackaddr,                                  
  size_t                 *stacksize                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
    return EINVAL;                                                    
  110b14:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *stackaddr = attr->stackaddr;                                       
  *stacksize = attr->stacksize;                                       
  return 0;                                                           
}                                                                     
  110b19:	5b                   	pop    %ebx                           
  110b1a:	c9                   	leave                                 
  110b1b:	c3                   	ret                                   
                                                                      

00110b98 <pthread_attr_setguardsize>: int pthread_attr_setguardsize( pthread_attr_t *attr, size_t guardsize ) {
  110b98:	55                   	push   %ebp                           
  110b99:	89 e5                	mov    %esp,%ebp                      
  110b9b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  110b9e:	85 c0                	test   %eax,%eax                      
  110ba0:	74 12                	je     110bb4 <pthread_attr_setguardsize+0x1c>
  110ba2:	8b 10                	mov    (%eax),%edx                    
  110ba4:	85 d2                	test   %edx,%edx                      
  110ba6:	74 0c                	je     110bb4 <pthread_attr_setguardsize+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->guardsize = guardsize;                                        
  110ba8:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  110bab:	89 50 34             	mov    %edx,0x34(%eax)                
  return 0;                                                           
  110bae:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110bb0:	c9                   	leave                                 
  110bb1:	c3                   	ret                                   
  110bb2:	66 90                	xchg   %ax,%ax                        
  pthread_attr_t  *attr,                                              
  size_t           guardsize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110bb4:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->guardsize = guardsize;                                        
  return 0;                                                           
}                                                                     
  110bb9:	c9                   	leave                                 
  110bba:	c3                   	ret                                   
                                                                      

00111bcc <pthread_attr_setinheritsched>: int pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched ) {
  111bcc:	55                   	push   %ebp                           
  111bcd:	89 e5                	mov    %esp,%ebp                      
  111bcf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111bd2:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  111bd5:	85 c0                	test   %eax,%eax                      
  111bd7:	74 1f                	je     111bf8 <pthread_attr_setinheritsched+0x2c>
  111bd9:	8b 08                	mov    (%eax),%ecx                    
  111bdb:	85 c9                	test   %ecx,%ecx                      
  111bdd:	74 19                	je     111bf8 <pthread_attr_setinheritsched+0x2c>
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
  111bdf:	8d 4a ff             	lea    -0x1(%edx),%ecx                
  111be2:	83 f9 01             	cmp    $0x1,%ecx                      
  111be5:	76 09                	jbe    111bf0 <pthread_attr_setinheritsched+0x24>
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  111be7:	b8 86 00 00 00       	mov    $0x86,%eax                     
  }                                                                   
}                                                                     
  111bec:	c9                   	leave                                 
  111bed:	c3                   	ret                                   
  111bee:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
    case PTHREAD_INHERIT_SCHED:                                       
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
  111bf0:	89 50 10             	mov    %edx,0x10(%eax)                
      return 0;                                                       
  111bf3:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  111bf5:	c9                   	leave                                 
  111bf6:	c3                   	ret                                   
  111bf7:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  int              inheritsched                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  111bf8:	b8 16 00 00 00       	mov    $0x16,%eax                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  111bfd:	c9                   	leave                                 
  111bfe:	c3                   	ret                                   
                                                                      

00110bf0 <pthread_attr_setschedparam>: int pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param ) {
  110bf0:	55                   	push   %ebp                           
  110bf1:	89 e5                	mov    %esp,%ebp                      
  110bf3:	57                   	push   %edi                           
  110bf4:	56                   	push   %esi                           
  110bf5:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  110bf8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !attr || !attr->is_initialized || !param )                     
  110bfb:	85 ff                	test   %edi,%edi                      
  110bfd:	74 1d                	je     110c1c <pthread_attr_setschedparam+0x2c>
  110bff:	8b 07                	mov    (%edi),%eax                    
  110c01:	85 c0                	test   %eax,%eax                      
  110c03:	74 17                	je     110c1c <pthread_attr_setschedparam+0x2c>
  110c05:	85 f6                	test   %esi,%esi                      
  110c07:	74 13                	je     110c1c <pthread_attr_setschedparam+0x2c>
    return EINVAL;                                                    
                                                                      
  attr->schedparam = *param;                                          
  110c09:	83 c7 18             	add    $0x18,%edi                     
  110c0c:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  110c11:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  return 0;                                                           
  110c13:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110c15:	5e                   	pop    %esi                           
  110c16:	5f                   	pop    %edi                           
  110c17:	c9                   	leave                                 
  110c18:	c3                   	ret                                   
  110c19:	8d 76 00             	lea    0x0(%esi),%esi                 
  pthread_attr_t           *attr,                                     
  const struct sched_param *param                                     
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !param )                     
    return EINVAL;                                                    
  110c1c:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->schedparam = *param;                                          
  return 0;                                                           
}                                                                     
  110c21:	5e                   	pop    %esi                           
  110c22:	5f                   	pop    %edi                           
  110c23:	c9                   	leave                                 
  110c24:	c3                   	ret                                   
                                                                      

00110c28 <pthread_attr_setschedpolicy>: int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) {
  110c28:	55                   	push   %ebp                           
  110c29:	89 e5                	mov    %esp,%ebp                      
  110c2b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110c2e:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  110c31:	85 c0                	test   %eax,%eax                      
  110c33:	74 23                	je     110c58 <pthread_attr_setschedpolicy+0x30>
  110c35:	8b 08                	mov    (%eax),%ecx                    
  110c37:	85 c9                	test   %ecx,%ecx                      
  110c39:	74 1d                	je     110c58 <pthread_attr_setschedpolicy+0x30>
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
  110c3b:	85 d2                	test   %edx,%edx                      
  110c3d:	78 0a                	js     110c49 <pthread_attr_setschedpolicy+0x21>
  110c3f:	83 fa 02             	cmp    $0x2,%edx                      
  110c42:	7e 0c                	jle    110c50 <pthread_attr_setschedpolicy+0x28>
  110c44:	83 fa 04             	cmp    $0x4,%edx                      
  110c47:	74 07                	je     110c50 <pthread_attr_setschedpolicy+0x28><== ALWAYS TAKEN
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  110c49:	b8 86 00 00 00       	mov    $0x86,%eax                     
  }                                                                   
}                                                                     
  110c4e:	c9                   	leave                                 
  110c4f:	c3                   	ret                                   
  switch ( policy ) {                                                 
    case SCHED_OTHER:                                                 
    case SCHED_FIFO:                                                  
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
  110c50:	89 50 14             	mov    %edx,0x14(%eax)                
      return 0;                                                       
  110c53:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  110c55:	c9                   	leave                                 
  110c56:	c3                   	ret                                   
  110c57:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  int              policy                                             
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110c58:	b8 16 00 00 00       	mov    $0x16,%eax                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  110c5d:	c9                   	leave                                 
  110c5e:	c3                   	ret                                   
                                                                      

00110c60 <pthread_attr_setscope>: int pthread_attr_setscope( pthread_attr_t *attr, int contentionscope ) {
  110c60:	55                   	push   %ebp                           
  110c61:	89 e5                	mov    %esp,%ebp                      
  110c63:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110c66:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  110c69:	85 c0                	test   %eax,%eax                      
  110c6b:	74 1a                	je     110c87 <pthread_attr_setscope+0x27>
  110c6d:	8b 08                	mov    (%eax),%ecx                    
  110c6f:	85 c9                	test   %ecx,%ecx                      
  110c71:	74 14                	je     110c87 <pthread_attr_setscope+0x27>
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
  110c73:	85 d2                	test   %edx,%edx                      
  110c75:	75 0d                	jne    110c84 <pthread_attr_setscope+0x24>
    case PTHREAD_SCOPE_PROCESS:                                       
      attr->contentionscope = contentionscope;                        
  110c77:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
      return 0;                                                       
  110c7e:	31 c0                	xor    %eax,%eax                      
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  110c80:	c9                   	leave                                 
  110c81:	c3                   	ret                                   
  110c82:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
  110c84:	4a                   	dec    %edx                           
  110c85:	74 09                	je     110c90 <pthread_attr_setscope+0x30>
                                                                      
    case PTHREAD_SCOPE_SYSTEM:                                        
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
  110c87:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  110c8c:	c9                   	leave                                 
  110c8d:	c3                   	ret                                   
  110c8e:	66 90                	xchg   %ax,%ax                        
    case PTHREAD_SCOPE_PROCESS:                                       
      attr->contentionscope = contentionscope;                        
      return 0;                                                       
                                                                      
    case PTHREAD_SCOPE_SYSTEM:                                        
      return ENOTSUP;                                                 
  110c90:	b8 86 00 00 00       	mov    $0x86,%eax                     
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  110c95:	c9                   	leave                                 
  110c96:	c3                   	ret                                   
                                                                      

00110cbc <pthread_attr_setstack>: int pthread_attr_setstack( pthread_attr_t *attr, void *stackaddr, size_t stacksize ) {
  110cbc:	55                   	push   %ebp                           
  110cbd:	89 e5                	mov    %esp,%ebp                      
  110cbf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110cc2:	8b 55 10             	mov    0x10(%ebp),%edx                
  if ( !attr || !attr->is_initialized )                               
  110cc5:	85 c0                	test   %eax,%eax                      
  110cc7:	74 27                	je     110cf0 <pthread_attr_setstack+0x34>
  110cc9:	8b 08                	mov    (%eax),%ecx                    
  110ccb:	85 c9                	test   %ecx,%ecx                      
  110ccd:	74 21                	je     110cf0 <pthread_attr_setstack+0x34>
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
  110ccf:	8b 0d 98 e4 12 00    	mov    0x12e498,%ecx                  
  110cd5:	d1 e1                	shl    %ecx                           
  110cd7:	39 d1                	cmp    %edx,%ecx                      
  110cd9:	77 0d                	ja     110ce8 <pthread_attr_setstack+0x2c>
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  110cdb:	89 50 08             	mov    %edx,0x8(%eax)                 
                                                                      
  attr->stackaddr = stackaddr;                                        
  110cde:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  110ce1:	89 50 04             	mov    %edx,0x4(%eax)                 
  return 0;                                                           
  110ce4:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110ce6:	c9                   	leave                                 
  110ce7:	c3                   	ret                                   
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  110ce8:	89 48 08             	mov    %ecx,0x8(%eax)                 
  110ceb:	eb f1                	jmp    110cde <pthread_attr_setstack+0x22>
  110ced:	8d 76 00             	lea    0x0(%esi),%esi                 
  void            *stackaddr,                                         
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110cf0:	b8 16 00 00 00       	mov    $0x16,%eax                     
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
}                                                                     
  110cf5:	c9                   	leave                                 
  110cf6:	c3                   	ret                                   
                                                                      

00110c98 <pthread_attr_setstackaddr>: int pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr ) {
  110c98:	55                   	push   %ebp                           
  110c99:	89 e5                	mov    %esp,%ebp                      
  110c9b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  110c9e:	85 c0                	test   %eax,%eax                      
  110ca0:	74 12                	je     110cb4 <pthread_attr_setstackaddr+0x1c>
  110ca2:	8b 10                	mov    (%eax),%edx                    
  110ca4:	85 d2                	test   %edx,%edx                      
  110ca6:	74 0c                	je     110cb4 <pthread_attr_setstackaddr+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->stackaddr = stackaddr;                                        
  110ca8:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  110cab:	89 50 04             	mov    %edx,0x4(%eax)                 
  return 0;                                                           
  110cae:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110cb0:	c9                   	leave                                 
  110cb1:	c3                   	ret                                   
  110cb2:	66 90                	xchg   %ax,%ax                        
  pthread_attr_t  *attr,                                              
  void            *stackaddr                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110cb4:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
}                                                                     
  110cb9:	c9                   	leave                                 
  110cba:	c3                   	ret                                   
                                                                      

00111c00 <pthread_attr_setstacksize>: int pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize ) {
  111c00:	55                   	push   %ebp                           
  111c01:	89 e5                	mov    %esp,%ebp                      
  111c03:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111c06:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  111c09:	85 c0                	test   %eax,%eax                      
  111c0b:	74 23                	je     111c30 <pthread_attr_setstacksize+0x30>
  111c0d:	8b 08                	mov    (%eax),%ecx                    
  111c0f:	85 c9                	test   %ecx,%ecx                      
  111c11:	74 1d                	je     111c30 <pthread_attr_setstacksize+0x30>
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
  111c13:	8b 0d 38 4e 12 00    	mov    0x124e38,%ecx                  
  111c19:	d1 e1                	shl    %ecx                           
  111c1b:	39 d1                	cmp    %edx,%ecx                      
  111c1d:	77 09                	ja     111c28 <pthread_attr_setstacksize+0x28>
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  111c1f:	89 50 08             	mov    %edx,0x8(%eax)                 
  return 0;                                                           
  111c22:	31 c0                	xor    %eax,%eax                      
}                                                                     
  111c24:	c9                   	leave                                 
  111c25:	c3                   	ret                                   
  111c26:	66 90                	xchg   %ax,%ax                        
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  111c28:	89 48 08             	mov    %ecx,0x8(%eax)                 
  else                                                                
    attr->stacksize = stacksize;                                      
  return 0;                                                           
  111c2b:	31 c0                	xor    %eax,%eax                      
}                                                                     
  111c2d:	c9                   	leave                                 
  111c2e:	c3                   	ret                                   
  111c2f:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  111c30:	b8 16 00 00 00       	mov    $0x16,%eax                     
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  return 0;                                                           
}                                                                     
  111c35:	c9                   	leave                                 
  111c36:	c3                   	ret                                   
                                                                      

0010b9e4 <pthread_barrier_init>: int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) {
  10b9e4:	55                   	push   %ebp                           
  10b9e5:	89 e5                	mov    %esp,%ebp                      
  10b9e7:	57                   	push   %edi                           
  10b9e8:	56                   	push   %esi                           
  10b9e9:	53                   	push   %ebx                           
  10b9ea:	83 ec 2c             	sub    $0x2c,%esp                     
  10b9ed:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b9f0:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10b9f3:	8b 75 10             	mov    0x10(%ebp),%esi                
  const pthread_barrierattr_t   *the_attr;                            
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !barrier )                                                     
  10b9f6:	85 db                	test   %ebx,%ebx                      
  10b9f8:	0f 84 82 00 00 00    	je     10ba80 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  if ( count == 0 )                                                   
  10b9fe:	85 f6                	test   %esi,%esi                      
  10ba00:	74 7e                	je     10ba80 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
  10ba02:	85 ff                	test   %edi,%edi                      
  10ba04:	0f 84 92 00 00 00    	je     10ba9c <pthread_barrier_init+0xb8>
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
  10ba0a:	8b 17                	mov    (%edi),%edx                    
  10ba0c:	85 d2                	test   %edx,%edx                      
  10ba0e:	74 70                	je     10ba80 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
  10ba10:	8b 47 04             	mov    0x4(%edi),%eax                 
  10ba13:	85 c0                	test   %eax,%eax                      
  10ba15:	75 69                	jne    10ba80 <pthread_barrier_init+0x9c><== NEVER TAKEN
  }                                                                   
                                                                      
  /*                                                                  
   * Convert from POSIX attributes to Core Barrier attributes         
   */                                                                 
  the_attributes.discipline    = CORE_BARRIER_AUTOMATIC_RELEASE;      
  10ba17:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  the_attributes.maximum_count = count;                               
  10ba1e:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10ba21:	a1 d0 95 12 00       	mov    0x1295d0,%eax                  
  10ba26:	40                   	inc    %eax                           
  10ba27:	a3 d0 95 12 00       	mov    %eax,0x1295d0                  
 *  the inactive chain of free barrier control blocks.                
 */                                                                   
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Allocate( void )
{                                                                     
  return (POSIX_Barrier_Control *)                                    
    _Objects_Allocate( &_POSIX_Barrier_Information );                 
  10ba2c:	83 ec 0c             	sub    $0xc,%esp                      
  10ba2f:	68 e0 99 12 00       	push   $0x1299e0                      
  10ba34:	e8 f7 20 00 00       	call   10db30 <_Objects_Allocate>     
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
  10ba39:	83 c4 10             	add    $0x10,%esp                     
  10ba3c:	85 c0                	test   %eax,%eax                      
  10ba3e:	74 50                	je     10ba90 <pthread_barrier_init+0xac>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
  10ba40:	83 ec 08             	sub    $0x8,%esp                      
  10ba43:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  10ba46:	52                   	push   %edx                           
  10ba47:	8d 50 10             	lea    0x10(%eax),%edx                
  10ba4a:	52                   	push   %edx                           
  10ba4b:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10ba4e:	e8 d9 16 00 00       	call   10d12c <_CORE_barrier_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10ba53:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10ba56:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10ba59:	0f b7 f2             	movzwl %dx,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10ba5c:	8b 0d fc 99 12 00    	mov    0x1299fc,%ecx                  
  10ba62:	89 04 b1             	mov    %eax,(%ecx,%esi,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10ba65:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
  );                                                                  
                                                                      
  /*                                                                  
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
  10ba6c:	89 13                	mov    %edx,(%ebx)                    
  _Thread_Enable_dispatch();                                          
  10ba6e:	e8 f9 30 00 00       	call   10eb6c <_Thread_Enable_dispatch>
  return 0;                                                           
  10ba73:	83 c4 10             	add    $0x10,%esp                     
  10ba76:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ba78:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba7b:	5b                   	pop    %ebx                           
  10ba7c:	5e                   	pop    %esi                           
  10ba7d:	5f                   	pop    %edi                           
  10ba7e:	c9                   	leave                                 
  10ba7f:	c3                   	ret                                   
  switch ( the_attr->process_shared ) {                               
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
  10ba80:	b8 16 00 00 00       	mov    $0x16,%eax                     
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10ba85:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba88:	5b                   	pop    %ebx                           
  10ba89:	5e                   	pop    %esi                           
  10ba8a:	5f                   	pop    %edi                           
  10ba8b:	c9                   	leave                                 
  10ba8c:	c3                   	ret                                   
  10ba8d:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
  10ba90:	e8 d7 30 00 00       	call   10eb6c <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10ba95:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10ba9a:	eb e9                	jmp    10ba85 <pthread_barrier_init+0xa1>
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_barrierattr_init( &my_attr );                      
  10ba9c:	83 ec 0c             	sub    $0xc,%esp                      
  10ba9f:	8d 7d d8             	lea    -0x28(%ebp),%edi               
  10baa2:	57                   	push   %edi                           
  10baa3:	e8 7c fe ff ff       	call   10b924 <pthread_barrierattr_init>
  10baa8:	83 c4 10             	add    $0x10,%esp                     
  10baab:	e9 5a ff ff ff       	jmp    10ba0a <pthread_barrier_init+0x26>
                                                                      

0010bab0 <pthread_barrier_wait>: */ int pthread_barrier_wait( pthread_barrier_t *barrier ) {
  10bab0:	55                   	push   %ebp                           
  10bab1:	89 e5                	mov    %esp,%ebp                      
  10bab3:	83 ec 18             	sub    $0x18,%esp                     
  10bab6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_Barrier_Control   *the_barrier = NULL;                        
  Objects_Locations        location;                                  
                                                                      
  if ( !barrier )                                                     
  10bab9:	85 c0                	test   %eax,%eax                      
  10babb:	74 4f                	je     10bb0c <pthread_barrier_wait+0x5c>
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (      
  pthread_barrier_t *barrier,                                         
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Barrier_Control *) _Objects_Get(                      
  10babd:	51                   	push   %ecx                           
    return EINVAL;                                                    
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  10babe:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10bac1:	52                   	push   %edx                           
  10bac2:	ff 30                	pushl  (%eax)                         
  10bac4:	68 e0 99 12 00       	push   $0x1299e0                      
  10bac9:	e8 16 25 00 00       	call   10dfe4 <_Objects_Get>          
  switch ( location ) {                                               
  10bace:	83 c4 10             	add    $0x10,%esp                     
  10bad1:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bad4:	85 d2                	test   %edx,%edx                      
  10bad6:	75 34                	jne    10bb0c <pthread_barrier_wait+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_barrier_Wait(                                             
  10bad8:	83 ec 0c             	sub    $0xc,%esp                      
  10badb:	6a 00                	push   $0x0                           
  10badd:	6a 00                	push   $0x0                           
  10badf:	6a 01                	push   $0x1                           
  10bae1:	ff 70 08             	pushl  0x8(%eax)                      
  10bae4:	83 c0 10             	add    $0x10,%eax                     
  10bae7:	50                   	push   %eax                           
  10bae8:	e8 73 16 00 00       	call   10d160 <_CORE_barrier_Wait>    
        the_barrier->Object.id,                                       
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
  10baed:	83 c4 20             	add    $0x20,%esp                     
  10baf0:	e8 77 30 00 00       	call   10eb6c <_Thread_Enable_dispatch>
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
  10baf5:	83 ec 0c             	sub    $0xc,%esp                      
                _Thread_Executing->Wait.return_code );                
  10baf8:	a1 78 9b 12 00       	mov    0x129b78,%eax                  
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
  10bafd:	ff 70 34             	pushl  0x34(%eax)                     
  10bb00:	e8 1f 5c 00 00       	call   111724 <_POSIX_Barrier_Translate_core_barrier_return_code>
  10bb05:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10bb08:	c9                   	leave                                 
  10bb09:	c3                   	ret                                   
  10bb0a:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10bb0c:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10bb11:	c9                   	leave                                 
  10bb12:	c3                   	ret                                   
                                                                      

0010b8dc <pthread_barrierattr_destroy>: */ int pthread_barrierattr_destroy( pthread_barrierattr_t *attr ) {
  10b8dc:	55                   	push   %ebp                           
  10b8dd:	89 e5                	mov    %esp,%ebp                      
  10b8df:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10b8e2:	85 c0                	test   %eax,%eax                      
  10b8e4:	74 12                	je     10b8f8 <pthread_barrierattr_destroy+0x1c>
  10b8e6:	8b 10                	mov    (%eax),%edx                    
  10b8e8:	85 d2                	test   %edx,%edx                      
  10b8ea:	74 0c                	je     10b8f8 <pthread_barrierattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10b8ec:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10b8f2:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b8f4:	c9                   	leave                                 
  10b8f5:	c3                   	ret                                   
  10b8f6:	66 90                	xchg   %ax,%ax                        
int pthread_barrierattr_destroy(                                      
  pthread_barrierattr_t *attr                                         
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10b8f8:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10b8fd:	c9                   	leave                                 
  10b8fe:	c3                   	ret                                   
                                                                      

0010b17c <pthread_cancel>: */ int pthread_cancel( pthread_t thread ) {
  10b17c:	55                   	push   %ebp                           
  10b17d:	89 e5                	mov    %esp,%ebp                      
  10b17f:	83 ec 18             	sub    $0x18,%esp                     
                                                                      
  /*                                                                  
   *  Don't even think about deleting a resource from an ISR.         
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
  10b182:	8b 0d f4 96 12 00    	mov    0x1296f4,%ecx                  
  10b188:	85 c9                	test   %ecx,%ecx                      
  10b18a:	74 08                	je     10b194 <pthread_cancel+0x18>   
    return EPROTO;                                                    
  10b18c:	b8 47 00 00 00       	mov    $0x47,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b191:	c9                   	leave                                 
  10b192:	c3                   	ret                                   
  10b193:	90                   	nop                                   
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10b194:	83 ec 08             	sub    $0x8,%esp                      
  10b197:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b19a:	50                   	push   %eax                           
  10b19b:	ff 75 08             	pushl  0x8(%ebp)                      
  10b19e:	e8 d1 2c 00 00       	call   10de74 <_Thread_Get>           
  switch ( location ) {                                               
  10b1a3:	83 c4 10             	add    $0x10,%esp                     
  10b1a6:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b1a9:	85 d2                	test   %edx,%edx                      
  10b1ab:	75 23                	jne    10b1d0 <pthread_cancel+0x54>   
                                                                      
    case OBJECTS_LOCAL:                                               
      thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];
                                                                      
      thread_support->cancelation_requested = 1;                      
  10b1ad:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
  10b1b3:	c7 82 e0 00 00 00 01 	movl   $0x1,0xe0(%edx)                
  10b1ba:	00 00 00                                                    
                                                                      
      /* This enables dispatch implicitly */                          
      _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( the_thread );
  10b1bd:	83 ec 0c             	sub    $0xc,%esp                      
  10b1c0:	50                   	push   %eax                           
  10b1c1:	e8 96 55 00 00       	call   11075c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
      return 0;                                                       
  10b1c6:	83 c4 10             	add    $0x10,%esp                     
  10b1c9:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b1cb:	c9                   	leave                                 
  10b1cc:	c3                   	ret                                   
  10b1cd:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b1d0:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10b1d5:	c9                   	leave                                 
  10b1d6:	c3                   	ret                                   
                                                                      

0010affc <pthread_cleanup_pop>: */ void pthread_cleanup_pop( int execute ) {
  10affc:	55                   	push   %ebp                           
  10affd:	89 e5                	mov    %esp,%ebp                      
  10afff:	57                   	push   %edi                           
  10b000:	56                   	push   %esi                           
  10b001:	53                   	push   %ebx                           
  10b002:	83 ec 0c             	sub    $0xc,%esp                      
  10b005:	8b 75 08             	mov    0x8(%ebp),%esi                 
  POSIX_Cancel_Handler_control      tmp_handler;                      
  Chain_Control                     *handler_stack;                   
  POSIX_API_Control                 *thread_support;                  
  ISR_Level                          level;                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10b008:	a1 18 88 12 00       	mov    0x128818,%eax                  
  10b00d:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b013:	8b 15 70 82 12 00    	mov    0x128270,%edx                  
  10b019:	42                   	inc    %edx                           
  10b01a:	89 15 70 82 12 00    	mov    %edx,0x128270                  
   * ensure that we do not get prempted and deleted while we are holding
   * memory that needs to be freed.                                   
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
  _ISR_Disable( level );                                              
  10b020:	9c                   	pushf                                 
  10b021:	fa                   	cli                                   
  10b022:	5b                   	pop    %ebx                           
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10b023:	8d 90 e8 00 00 00    	lea    0xe8(%eax),%edx                
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
  10b029:	39 90 e4 00 00 00    	cmp    %edx,0xe4(%eax)                
  10b02f:	74 47                	je     10b078 <pthread_cleanup_pop+0x7c>
      _Thread_Enable_dispatch();                                      
      _ISR_Enable( level );                                           
      return;                                                         
    }                                                                 
                                                                      
    handler = (POSIX_Cancel_Handler_control *)                        
  10b031:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10b037:	8b 08                	mov    (%eax),%ecx                    
  previous       = the_node->previous;                                
  10b039:	8b 50 04             	mov    0x4(%eax),%edx                 
  next->previous = previous;                                          
  10b03c:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  10b03f:	89 0a                	mov    %ecx,(%edx)                    
        _Chain_Tail( handler_stack )->previous;                       
    _Chain_Extract_unprotected( &handler->Node );                     
                                                                      
  _ISR_Enable( level );                                               
  10b041:	53                   	push   %ebx                           
  10b042:	9d                   	popf                                  
  10b043:	8b 58 08             	mov    0x8(%eax),%ebx                 
  10b046:	8b 78 0c             	mov    0xc(%eax),%edi                 
                                                                      
  tmp_handler = *handler;                                             
                                                                      
  _Workspace_Free( handler );                                         
  10b049:	83 ec 0c             	sub    $0xc,%esp                      
  10b04c:	50                   	push   %eax                           
  10b04d:	e8 76 3a 00 00       	call   10eac8 <_Workspace_Free>       
                                                                      
  _Thread_Enable_dispatch();                                          
  10b052:	e8 79 2a 00 00       	call   10dad0 <_Thread_Enable_dispatch>
                                                                      
  if ( execute )                                                      
  10b057:	83 c4 10             	add    $0x10,%esp                     
  10b05a:	85 f6                	test   %esi,%esi                      
  10b05c:	75 0a                	jne    10b068 <pthread_cleanup_pop+0x6c>
    (*tmp_handler.routine)( tmp_handler.arg );                        
}                                                                     
  10b05e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b061:	5b                   	pop    %ebx                           
  10b062:	5e                   	pop    %esi                           
  10b063:	5f                   	pop    %edi                           
  10b064:	c9                   	leave                                 
  10b065:	c3                   	ret                                   
  10b066:	66 90                	xchg   %ax,%ax                        
  _Workspace_Free( handler );                                         
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
  10b068:	89 7d 08             	mov    %edi,0x8(%ebp)                 
  10b06b:	89 d8                	mov    %ebx,%eax                      
}                                                                     
  10b06d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b070:	5b                   	pop    %ebx                           
  10b071:	5e                   	pop    %esi                           
  10b072:	5f                   	pop    %edi                           
  10b073:	c9                   	leave                                 
  _Workspace_Free( handler );                                         
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
  10b074:	ff e0                	jmp    *%eax                          
  10b076:	66 90                	xchg   %ax,%ax                        
                                                                      
  _Thread_Disable_dispatch();                                         
  _ISR_Disable( level );                                              
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
      _Thread_Enable_dispatch();                                      
  10b078:	e8 53 2a 00 00       	call   10dad0 <_Thread_Enable_dispatch>
      _ISR_Enable( level );                                           
  10b07d:	53                   	push   %ebx                           
  10b07e:	9d                   	popf                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
}                                                                     
  10b07f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b082:	5b                   	pop    %ebx                           
  10b083:	5e                   	pop    %esi                           
  10b084:	5f                   	pop    %edi                           
  10b085:	c9                   	leave                                 
  10b086:	c3                   	ret                                   
                                                                      

0010b3a8 <pthread_cleanup_push>: void pthread_cleanup_push( void (*routine)( void * ), void *arg ) {
  10b3a8:	55                   	push   %ebp                           
  10b3a9:	89 e5                	mov    %esp,%ebp                      
  10b3ab:	56                   	push   %esi                           
  10b3ac:	53                   	push   %ebx                           
  10b3ad:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b3b0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  /*                                                                  
   *  The POSIX standard does not address what to do when the routine 
   *  is NULL.  It also does not address what happens when we cannot  
   *  allocate memory or anything else bad happens.                   
   */                                                                 
  if ( !routine )                                                     
  10b3b3:	85 db                	test   %ebx,%ebx                      
  10b3b5:	74 4d                	je     10b404 <pthread_cleanup_push+0x5c>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b3b7:	a1 f0 98 12 00       	mov    0x1298f0,%eax                  
  10b3bc:	40                   	inc    %eax                           
  10b3bd:	a3 f0 98 12 00       	mov    %eax,0x1298f0                  
    return;                                                           
                                                                      
  _Thread_Disable_dispatch();                                         
  handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) );
  10b3c2:	83 ec 0c             	sub    $0xc,%esp                      
  10b3c5:	6a 10                	push   $0x10                          
  10b3c7:	e8 38 42 00 00       	call   10f604 <_Workspace_Allocate>   
                                                                      
  if ( handler ) {                                                    
  10b3cc:	83 c4 10             	add    $0x10,%esp                     
  10b3cf:	85 c0                	test   %eax,%eax                      
  10b3d1:	74 25                	je     10b3f8 <pthread_cleanup_push+0x50><== NEVER TAKEN
    thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10b3d3:	8b 15 98 9e 12 00    	mov    0x129e98,%edx                  
                                                                      
    handler_stack = &thread_support->Cancellation_Handlers;           
  10b3d9:	8b 92 ec 00 00 00    	mov    0xec(%edx),%edx                
  10b3df:	81 c2 e4 00 00 00    	add    $0xe4,%edx                     
                                                                      
    handler->routine = routine;                                       
  10b3e5:	89 58 08             	mov    %ebx,0x8(%eax)                 
    handler->arg = arg;                                               
  10b3e8:	89 70 0c             	mov    %esi,0xc(%eax)                 
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
  10b3eb:	83 ec 08             	sub    $0x8,%esp                      
  10b3ee:	50                   	push   %eax                           
  10b3ef:	52                   	push   %edx                           
  10b3f0:	e8 bb 17 00 00       	call   10cbb0 <_Chain_Append>         
  10b3f5:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  _Thread_Enable_dispatch();                                          
}                                                                     
  10b3f8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b3fb:	5b                   	pop    %ebx                           
  10b3fc:	5e                   	pop    %esi                           
  10b3fd:	c9                   	leave                                 
    handler->routine = routine;                                       
    handler->arg = arg;                                               
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
  }                                                                   
  _Thread_Enable_dispatch();                                          
  10b3fe:	e9 95 31 00 00       	jmp    10e598 <_Thread_Enable_dispatch>
  10b403:	90                   	nop                                   
}                                                                     
  10b404:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b407:	5b                   	pop    %ebx                           
  10b408:	5e                   	pop    %esi                           
  10b409:	c9                   	leave                                 
  10b40a:	c3                   	ret                                   
                                                                      

0010c0ac <pthread_cond_destroy>: */ int pthread_cond_destroy( pthread_cond_t *cond ) {
  10c0ac:	55                   	push   %ebp                           
  10c0ad:	89 e5                	mov    %esp,%ebp                      
  10c0af:	53                   	push   %ebx                           
  10c0b0:	83 ec 1c             	sub    $0x1c,%esp                     
  POSIX_Condition_variables_Control *the_cond;                        
  Objects_Locations                  location;                        
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  10c0b3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c0b6:	50                   	push   %eax                           
  10c0b7:	ff 75 08             	pushl  0x8(%ebp)                      
  10c0ba:	e8 65 00 00 00       	call   10c124 <_POSIX_Condition_variables_Get>
  10c0bf:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10c0c1:	83 c4 10             	add    $0x10,%esp                     
  10c0c4:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10c0c7:	85 c9                	test   %ecx,%ecx                      
  10c0c9:	75 25                	jne    10c0f0 <pthread_cond_destroy+0x44>
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
  10c0cb:	83 ec 0c             	sub    $0xc,%esp                      
  10c0ce:	8d 40 18             	lea    0x18(%eax),%eax                
  10c0d1:	50                   	push   %eax                           
  10c0d2:	e8 51 3e 00 00       	call   10ff28 <_Thread_queue_First>   
  10c0d7:	83 c4 10             	add    $0x10,%esp                     
  10c0da:	85 c0                	test   %eax,%eax                      
  10c0dc:	74 1e                	je     10c0fc <pthread_cond_destroy+0x50>
        _Thread_Enable_dispatch();                                    
  10c0de:	e8 61 37 00 00       	call   10f844 <_Thread_Enable_dispatch>
        return EBUSY;                                                 
  10c0e3:	b8 10 00 00 00       	mov    $0x10,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c0e8:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c0eb:	c9                   	leave                                 
  10c0ec:	c3                   	ret                                   
  10c0ed:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c0f0:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10c0f5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c0f8:	c9                   	leave                                 
  10c0f9:	c3                   	ret                                   
  10c0fa:	66 90                	xchg   %ax,%ax                        
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
        _Thread_Enable_dispatch();                                    
        return EBUSY;                                                 
      }                                                               
                                                                      
      _Objects_Close(                                                 
  10c0fc:	83 ec 08             	sub    $0x8,%esp                      
  10c0ff:	53                   	push   %ebx                           
  10c100:	68 60 aa 12 00       	push   $0x12aa60                      
  10c105:	e8 7a 27 00 00       	call   10e884 <_Objects_Close>        
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free (           
  POSIX_Condition_variables_Control *the_condition_variable           
)                                                                     
{                                                                     
  _Objects_Free(                                                      
  10c10a:	58                   	pop    %eax                           
  10c10b:	5a                   	pop    %edx                           
  10c10c:	53                   	push   %ebx                           
  10c10d:	68 60 aa 12 00       	push   $0x12aa60                      
  10c112:	e8 65 2a 00 00       	call   10eb7c <_Objects_Free>         
        &_POSIX_Condition_variables_Information,                      
        &the_cond->Object                                             
      );                                                              
                                                                      
      _POSIX_Condition_variables_Free( the_cond );                    
      _Thread_Enable_dispatch();                                      
  10c117:	e8 28 37 00 00       	call   10f844 <_Thread_Enable_dispatch>
      return 0;                                                       
  10c11c:	83 c4 10             	add    $0x10,%esp                     
  10c11f:	31 c0                	xor    %eax,%eax                      
  10c121:	eb d2                	jmp    10c0f5 <pthread_cond_destroy+0x49>
                                                                      

0010c178 <pthread_cond_init>: int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) {
  10c178:	55                   	push   %ebp                           
  10c179:	89 e5                	mov    %esp,%ebp                      
  10c17b:	53                   	push   %ebx                           
  10c17c:	83 ec 14             	sub    $0x14,%esp                     
  10c17f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_Condition_variables_Control   *the_cond;                      
  const pthread_condattr_t            *the_attr;                      
                                                                      
  if ( attr ) the_attr = attr;                                        
  10c182:	85 db                	test   %ebx,%ebx                      
  10c184:	0f 84 86 00 00 00    	je     10c210 <pthread_cond_init+0x98>
  else        the_attr = &_POSIX_Condition_variables_Default_attributes;
                                                                      
  /*                                                                  
   *  Be careful about attributes when global!!!                      
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
  10c18a:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)                 
  10c18e:	74 06                	je     10c196 <pthread_cond_init+0x1e><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  if ( !the_attr->is_initialized )                                    
  10c190:	8b 03                	mov    (%ebx),%eax                    
  10c192:	85 c0                	test   %eax,%eax                      
  10c194:	75 0a                	jne    10c1a0 <pthread_cond_init+0x28>
    return EINVAL;                                                    
  10c196:	b8 16 00 00 00       	mov    $0x16,%eax                     
  *cond = the_cond->Object.id;                                        
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return 0;                                                           
}                                                                     
  10c19b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c19e:	c9                   	leave                                 
  10c19f:	c3                   	ret                                   
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c1a0:	a1 b0 a5 12 00       	mov    0x12a5b0,%eax                  
  10c1a5:	40                   	inc    %eax                           
  10c1a6:	a3 b0 a5 12 00       	mov    %eax,0x12a5b0                  
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control                
  *_POSIX_Condition_variables_Allocate( void )                        
{                                                                     
  return (POSIX_Condition_variables_Control *)                        
    _Objects_Allocate( &_POSIX_Condition_variables_Information );     
  10c1ab:	83 ec 0c             	sub    $0xc,%esp                      
  10c1ae:	68 60 aa 12 00       	push   $0x12aa60                      
  10c1b3:	e8 50 26 00 00       	call   10e808 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
  10c1b8:	83 c4 10             	add    $0x10,%esp                     
  10c1bb:	85 c0                	test   %eax,%eax                      
  10c1bd:	74 5d                	je     10c21c <pthread_cond_init+0xa4>
    _Thread_Enable_dispatch();                                        
    return ENOMEM;                                                    
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
  10c1bf:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10c1c2:	89 50 10             	mov    %edx,0x10(%eax)                
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
  10c1c5:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)                
                                                                      
  _Thread_queue_Initialize(                                           
  10c1cc:	6a 74                	push   $0x74                          
  10c1ce:	68 00 08 00 10       	push   $0x10000800                    
  10c1d3:	6a 00                	push   $0x0                           
  10c1d5:	8d 50 18             	lea    0x18(%eax),%edx                
  10c1d8:	52                   	push   %edx                           
  10c1d9:	89 45 f4             	mov    %eax,-0xc(%ebp)                
  10c1dc:	e8 c3 3d 00 00       	call   10ffa4 <_Thread_queue_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c1e1:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10c1e4:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c1e7:	0f b7 da             	movzwl %dx,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c1ea:	8b 0d 7c aa 12 00    	mov    0x12aa7c,%ecx                  
  10c1f0:	89 04 99             	mov    %eax,(%ecx,%ebx,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10c1f3:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
    &_POSIX_Condition_variables_Information,                          
    &the_cond->Object,                                                
    0                                                                 
  );                                                                  
                                                                      
  *cond = the_cond->Object.id;                                        
  10c1fa:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c1fd:	89 10                	mov    %edx,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10c1ff:	e8 40 36 00 00       	call   10f844 <_Thread_Enable_dispatch>
                                                                      
  return 0;                                                           
  10c204:	83 c4 10             	add    $0x10,%esp                     
  10c207:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c209:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c20c:	c9                   	leave                                 
  10c20d:	c3                   	ret                                   
  10c20e:	66 90                	xchg   %ax,%ax                        
{                                                                     
  POSIX_Condition_variables_Control   *the_cond;                      
  const pthread_condattr_t            *the_attr;                      
                                                                      
  if ( attr ) the_attr = attr;                                        
  else        the_attr = &_POSIX_Condition_variables_Default_attributes;
  10c210:	bb fc 3b 12 00       	mov    $0x123bfc,%ebx                 
  10c215:	e9 70 ff ff ff       	jmp    10c18a <pthread_cond_init+0x12>
  10c21a:	66 90                	xchg   %ax,%ax                        
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
    _Thread_Enable_dispatch();                                        
  10c21c:	e8 23 36 00 00       	call   10f844 <_Thread_Enable_dispatch>
    return ENOMEM;                                                    
  10c221:	b8 0c 00 00 00       	mov    $0xc,%eax                      
  10c226:	e9 70 ff ff ff       	jmp    10c19b <pthread_cond_init+0x23>
                                                                      

0010c008 <pthread_condattr_destroy>: */ int pthread_condattr_destroy( pthread_condattr_t *attr ) {
  10c008:	55                   	push   %ebp                           
  10c009:	89 e5                	mov    %esp,%ebp                      
  10c00b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10c00e:	85 c0                	test   %eax,%eax                      
  10c010:	74 12                	je     10c024 <pthread_condattr_destroy+0x1c>
  10c012:	8b 10                	mov    (%eax),%edx                    
  10c014:	85 d2                	test   %edx,%edx                      
  10c016:	74 0c                	je     10c024 <pthread_condattr_destroy+0x1c><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10c018:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10c01e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c020:	c9                   	leave                                 
  10c021:	c3                   	ret                                   
  10c022:	66 90                	xchg   %ax,%ax                        
int pthread_condattr_destroy(                                         
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10c024:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10c029:	c9                   	leave                                 
  10c02a:	c3                   	ret                                   
                                                                      

0010c02c <pthread_condattr_getpshared>: int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) {
  10c02c:	55                   	push   %ebp                           
  10c02d:	89 e5                	mov    %esp,%ebp                      
  10c02f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr )                                                        
  10c032:	85 c0                	test   %eax,%eax                      
  10c034:	74 0e                	je     10c044 <pthread_condattr_getpshared+0x18>
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
  10c036:	8b 50 04             	mov    0x4(%eax),%edx                 
  10c039:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10c03c:	89 10                	mov    %edx,(%eax)                    
  return 0;                                                           
  10c03e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c040:	c9                   	leave                                 
  10c041:	c3                   	ret                                   
  10c042:	66 90                	xchg   %ax,%ax                        
  const pthread_condattr_t *attr,                                     
  int                      *pshared                                   
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
  10c044:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
}                                                                     
  10c049:	c9                   	leave                                 
  10c04a:	c3                   	ret                                   
                                                                      

0010c074 <pthread_condattr_setpshared>: int pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared ) {
  10c074:	55                   	push   %ebp                           
  10c075:	89 e5                	mov    %esp,%ebp                      
  10c077:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c07a:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr )                                                        
  10c07d:	85 c0                	test   %eax,%eax                      
  10c07f:	74 05                	je     10c086 <pthread_condattr_setpshared+0x12>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10c081:	83 fa 01             	cmp    $0x1,%edx                      
  10c084:	76 0a                	jbe    10c090 <pthread_condattr_setpshared+0x1c>
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10c086:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10c08b:	c9                   	leave                                 
  10c08c:	c3                   	ret                                   
  10c08d:	8d 76 00             	lea    0x0(%esi),%esi                 
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10c090:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10c093:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10c095:	c9                   	leave                                 
  10c096:	c3                   	ret                                   
                                                                      

0010b720 <pthread_create>: pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)( void * ), void *arg ) {
  10b720:	55                   	push   %ebp                           
  10b721:	89 e5                	mov    %esp,%ebp                      
  10b723:	57                   	push   %edi                           
  10b724:	56                   	push   %esi                           
  10b725:	53                   	push   %ebx                           
  10b726:	83 ec 5c             	sub    $0x5c,%esp                     
  10b729:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  int                                 schedpolicy = SCHED_RR;         
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
  10b72c:	8b 75 10             	mov    0x10(%ebp),%esi                
  10b72f:	85 f6                	test   %esi,%esi                      
  10b731:	0f 84 8d 01 00 00    	je     10b8c4 <pthread_create+0x1a4>  
    return EFAULT;                                                    
                                                                      
  the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;      
  10b737:	85 db                	test   %ebx,%ebx                      
  10b739:	74 65                	je     10b7a0 <pthread_create+0x80>   
                                                                      
  if ( !the_attr->is_initialized )                                    
  10b73b:	8b 0b                	mov    (%ebx),%ecx                    
  10b73d:	85 c9                	test   %ecx,%ecx                      
  10b73f:	74 1e                	je     10b75f <pthread_create+0x3f>   
   *  stack space if it is allowed to allocate it itself.             
   *                                                                  
   *  NOTE: If the user provides the stack we will let it drop below  
   *        twice the minimum.                                        
   */                                                                 
  if ( the_attr->stackaddr && !_Stack_Is_enough(the_attr->stacksize) )
  10b741:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b744:	85 d2                	test   %edx,%edx                      
  10b746:	74 0a                	je     10b752 <pthread_create+0x32>   
  10b748:	a1 38 4e 12 00       	mov    0x124e38,%eax                  
  10b74d:	39 43 08             	cmp    %eax,0x8(%ebx)                 
  10b750:	72 0d                	jb     10b75f <pthread_create+0x3f>   
   *  If inheritsched is set to PTHREAD_INHERIT_SCHED, then this thread
   *  inherits scheduling attributes from the creating thread.   If it is
   *  PTHREAD_EXPLICIT_SCHED, then scheduling parameters come from the
   *  attributes structure.                                           
   */                                                                 
  switch ( the_attr->inheritsched ) {                                 
  10b752:	8b 43 10             	mov    0x10(%ebx),%eax                
  10b755:	83 f8 01             	cmp    $0x1,%eax                      
  10b758:	74 4e                	je     10b7a8 <pthread_create+0x88>   
  10b75a:	83 f8 02             	cmp    $0x2,%eax                      
  10b75d:	74 11                	je     10b770 <pthread_create+0x50>   
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
    return EINVAL;                                                    
  10b75f:	ba 16 00 00 00       	mov    $0x16,%edx                     
   */                                                                 
  *thread = the_thread->Object.id;                                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return 0;                                                           
}                                                                     
  10b764:	89 d0                	mov    %edx,%eax                      
  10b766:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b769:	5b                   	pop    %ebx                           
  10b76a:	5e                   	pop    %esi                           
  10b76b:	5f                   	pop    %edi                           
  10b76c:	c9                   	leave                                 
  10b76d:	c3                   	ret                                   
  10b76e:	66 90                	xchg   %ax,%ax                        
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
      break;                                                          
                                                                      
    case PTHREAD_EXPLICIT_SCHED:                                      
      schedpolicy = the_attr->schedpolicy;                            
  10b770:	8b 4b 14             	mov    0x14(%ebx),%ecx                
  10b773:	89 4d b0             	mov    %ecx,-0x50(%ebp)               
      schedparam  = the_attr->schedparam;                             
  10b776:	8d 45 c4             	lea    -0x3c(%ebp),%eax               
  10b779:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10b77c:	8d 73 18             	lea    0x18(%ebx),%esi                
  10b77f:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10b784:	89 c7                	mov    %eax,%edi                      
  10b786:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /*                                                                  
   *  Check the contentionscope since rtems only supports PROCESS wide
   *  contention (i.e. no system wide contention).                    
   */                                                                 
  if ( the_attr->contentionscope != PTHREAD_SCOPE_PROCESS )           
  10b788:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10b78b:	85 c0                	test   %eax,%eax                      
  10b78d:	74 49                	je     10b7d8 <pthread_create+0xb8>   <== ALWAYS TAKEN
    return ENOTSUP;                                                   
  10b78f:	ba 86 00 00 00       	mov    $0x86,%edx                     
   */                                                                 
  *thread = the_thread->Object.id;                                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return 0;                                                           
}                                                                     
  10b794:	89 d0                	mov    %edx,%eax                      
  10b796:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b799:	5b                   	pop    %ebx                           
  10b79a:	5e                   	pop    %esi                           
  10b79b:	5f                   	pop    %edi                           
  10b79c:	c9                   	leave                                 
  10b79d:	c3                   	ret                                   
  10b79e:	66 90                	xchg   %ax,%ax                        
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
    return EFAULT;                                                    
                                                                      
  the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;      
  10b7a0:	bb a0 27 12 00       	mov    $0x1227a0,%ebx                 
  10b7a5:	eb 94                	jmp    10b73b <pthread_create+0x1b>   
  10b7a7:	90                   	nop                                   
   *  PTHREAD_EXPLICIT_SCHED, then scheduling parameters come from the
   *  attributes structure.                                           
   */                                                                 
  switch ( the_attr->inheritsched ) {                                 
    case PTHREAD_INHERIT_SCHED:                                       
      api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];    
  10b7a8:	a1 d8 96 12 00       	mov    0x1296d8,%eax                  
  10b7ad:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
      schedpolicy = api->schedpolicy;                                 
  10b7b3:	8b 8e 84 00 00 00    	mov    0x84(%esi),%ecx                
  10b7b9:	89 4d b0             	mov    %ecx,-0x50(%ebp)               
      schedparam  = api->schedparam;                                  
  10b7bc:	8d 45 c4             	lea    -0x3c(%ebp),%eax               
  10b7bf:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10b7c2:	81 c6 88 00 00 00    	add    $0x88,%esi                     
  10b7c8:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10b7cd:	89 c7                	mov    %eax,%edi                      
  10b7cf:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /*                                                                  
   *  Check the contentionscope since rtems only supports PROCESS wide
   *  contention (i.e. no system wide contention).                    
   */                                                                 
  if ( the_attr->contentionscope != PTHREAD_SCOPE_PROCESS )           
  10b7d1:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10b7d4:	85 c0                	test   %eax,%eax                      
  10b7d6:	75 b7                	jne    10b78f <pthread_create+0x6f>   
    return ENOTSUP;                                                   
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
  10b7d8:	83 ec 0c             	sub    $0xc,%esp                      
  10b7db:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  10b7de:	e8 bd 62 00 00       	call   111aa0 <_POSIX_Priority_Is_valid>
  10b7e3:	83 c4 10             	add    $0x10,%esp                     
  10b7e6:	84 c0                	test   %al,%al                        
  10b7e8:	0f 84 71 ff ff ff    	je     10b75f <pthread_create+0x3f>   <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  core_priority = _POSIX_Priority_To_core( schedparam.sched_priority );
  10b7ee:	8b 7d c4             	mov    -0x3c(%ebp),%edi               
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
  10b7f1:	0f b6 35 3c 4e 12 00 	movzbl 0x124e3c,%esi                  
                                                                      
  /*                                                                  
   *  Set the core scheduling policy information.                     
   */                                                                 
  rc = _POSIX_Thread_Translate_sched_param(                           
  10b7f8:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10b7fb:	50                   	push   %eax                           
  10b7fc:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10b7ff:	50                   	push   %eax                           
  10b800:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10b803:	ff 75 b0             	pushl  -0x50(%ebp)                    
  10b806:	e8 b1 62 00 00       	call   111abc <_POSIX_Thread_Translate_sched_param>
  10b80b:	89 c2                	mov    %eax,%edx                      
    schedpolicy,                                                      
    &schedparam,                                                      
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
  10b80d:	83 c4 10             	add    $0x10,%esp                     
  10b810:	85 c0                	test   %eax,%eax                      
  10b812:	0f 85 4c ff ff ff    	jne    10b764 <pthread_create+0x44>   
  #endif                                                              
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
  10b818:	83 ec 0c             	sub    $0xc,%esp                      
  10b81b:	ff 35 e0 91 12 00    	pushl  0x1291e0                       
  10b821:	89 45 a0             	mov    %eax,-0x60(%ebp)               
  10b824:	e8 b3 17 00 00       	call   10cfdc <_API_Mutex_Lock>       
 *  _POSIX_Threads_Allocate                                           
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void )  
{                                                                     
  return (Thread_Control *) _Objects_Allocate( &_POSIX_Threads_Information );
  10b829:	c7 04 24 c0 93 12 00 	movl   $0x1293c0,(%esp)               
  10b830:	e8 cb 21 00 00       	call   10da00 <_Objects_Allocate>     
  10b835:	89 45 ac             	mov    %eax,-0x54(%ebp)               
   *  Allocate the thread control block.                              
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
  10b838:	83 c4 10             	add    $0x10,%esp                     
  10b83b:	85 c0                	test   %eax,%eax                      
  10b83d:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10b840:	0f 84 0f 01 00 00    	je     10b955 <pthread_create+0x235>  
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
  name.name_p = NULL;   /* posix threads don't have a name by default */
  status = _Thread_Initialize(                                        
  10b846:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  10b849:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b84c:	89 45 a4             	mov    %eax,-0x5c(%ebp)               
  10b84f:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10b852:	89 45 a8             	mov    %eax,-0x58(%ebp)               
  10b855:	a1 38 4e 12 00       	mov    0x124e38,%eax                  
  10b85a:	d1 e0                	shl    %eax                           
  10b85c:	3b 45 a8             	cmp    -0x58(%ebp),%eax               
  10b85f:	73 03                	jae    10b864 <pthread_create+0x144>  
  10b861:	8b 45 a8             	mov    -0x58(%ebp),%eax               
  10b864:	83 ec 04             	sub    $0x4,%esp                      
  10b867:	6a 00                	push   $0x0                           
  10b869:	6a 00                	push   $0x0                           
  10b86b:	51                   	push   %ecx                           
  10b86c:	ff 75 a4             	pushl  -0x5c(%ebp)                    
  10b86f:	6a 01                	push   $0x1                           
  10b871:	81 e6 ff 00 00 00    	and    $0xff,%esi                     
  10b877:	29 fe                	sub    %edi,%esi                      
  10b879:	56                   	push   %esi                           
  10b87a:	6a 01                	push   $0x1                           
  10b87c:	50                   	push   %eax                           
  10b87d:	ff 73 04             	pushl  0x4(%ebx)                      
  10b880:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10b883:	68 c0 93 12 00       	push   $0x1293c0                      
  10b888:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10b88b:	e8 48 32 00 00       	call   10ead8 <_Thread_Initialize>    
    budget_callout,                                                   
    0,                    /* isr level */                             
    name                  /* posix threads don't have a name */       
  );                                                                  
                                                                      
  if ( !status ) {                                                    
  10b890:	83 c4 30             	add    $0x30,%esp                     
  10b893:	84 c0                	test   %al,%al                        
  10b895:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10b898:	75 34                	jne    10b8ce <pthread_create+0x1ae>  
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free (                       
  Thread_Control *the_pthread                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 
  10b89a:	83 ec 08             	sub    $0x8,%esp                      
  10b89d:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10b8a0:	68 c0 93 12 00       	push   $0x1293c0                      
  10b8a5:	e8 ca 24 00 00       	call   10dd74 <_Objects_Free>         
    _POSIX_Threads_Free( the_thread );                                
    _RTEMS_Unlock_allocator();                                        
  10b8aa:	59                   	pop    %ecx                           
  10b8ab:	ff 35 e0 91 12 00    	pushl  0x1291e0                       
  10b8b1:	e8 6e 17 00 00       	call   10d024 <_API_Mutex_Unlock>     
    return EAGAIN;                                                    
  10b8b6:	83 c4 10             	add    $0x10,%esp                     
  10b8b9:	ba 0b 00 00 00       	mov    $0xb,%edx                      
  10b8be:	e9 a1 fe ff ff       	jmp    10b764 <pthread_create+0x44>   
  10b8c3:	90                   	nop                                   
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
    return EFAULT;                                                    
  10b8c4:	ba 0e 00 00 00       	mov    $0xe,%edx                      
  10b8c9:	e9 96 fe ff ff       	jmp    10b764 <pthread_create+0x44>   
  }                                                                   
                                                                      
  /*                                                                  
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  10b8ce:	8b 4d ac             	mov    -0x54(%ebp),%ecx               
  10b8d1:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
  10b8d7:	89 4d a8             	mov    %ecx,-0x58(%ebp)               
                                                                      
  api->Attributes  = *the_attr;                                       
  10b8da:	b9 10 00 00 00       	mov    $0x10,%ecx                     
  10b8df:	8b 7d a8             	mov    -0x58(%ebp),%edi               
  10b8e2:	89 de                	mov    %ebx,%esi                      
  10b8e4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  api->detachstate = the_attr->detachstate;                           
  10b8e6:	8b 43 3c             	mov    0x3c(%ebx),%eax                
  10b8e9:	8b 4d a8             	mov    -0x58(%ebp),%ecx               
  10b8ec:	89 41 40             	mov    %eax,0x40(%ecx)                
  api->schedpolicy = schedpolicy;                                     
  10b8ef:	8b 45 b0             	mov    -0x50(%ebp),%eax               
  10b8f2:	89 81 84 00 00 00    	mov    %eax,0x84(%ecx)                
  api->schedparam  = schedparam;                                      
  10b8f8:	89 cf                	mov    %ecx,%edi                      
  10b8fa:	81 c7 88 00 00 00    	add    $0x88,%edi                     
  10b900:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10b905:	8b 75 b4             	mov    -0x4c(%ebp),%esi               
  10b908:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /*                                                                  
   *  POSIX threads are allocated and started in one operation.       
   */                                                                 
  status = _Thread_Start(                                             
  10b90a:	83 ec 0c             	sub    $0xc,%esp                      
  10b90d:	6a 00                	push   $0x0                           
  10b90f:	ff 75 14             	pushl  0x14(%ebp)                     
  10b912:	ff 75 10             	pushl  0x10(%ebp)                     
  10b915:	6a 01                	push   $0x1                           
  10b917:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10b91a:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10b91d:	e8 a6 3a 00 00       	call   10f3c8 <_Thread_Start>         
      _RTEMS_Unlock_allocator();                                      
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
  10b922:	83 c4 20             	add    $0x20,%esp                     
  10b925:	83 7d b0 04          	cmpl   $0x4,-0x50(%ebp)               
  10b929:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10b92c:	74 42                	je     10b970 <pthread_create+0x250>  
  }                                                                   
                                                                      
  /*                                                                  
   *  Return the id and indicate we successfully created the thread   
   */                                                                 
  *thread = the_thread->Object.id;                                    
  10b92e:	8b 45 ac             	mov    -0x54(%ebp),%eax               
  10b931:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10b934:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b937:	89 08                	mov    %ecx,(%eax)                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10b939:	83 ec 0c             	sub    $0xc,%esp                      
  10b93c:	ff 35 e0 91 12 00    	pushl  0x1291e0                       
  10b942:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10b945:	e8 da 16 00 00       	call   10d024 <_API_Mutex_Unlock>     
  return 0;                                                           
  10b94a:	83 c4 10             	add    $0x10,%esp                     
  10b94d:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10b950:	e9 0f fe ff ff       	jmp    10b764 <pthread_create+0x44>   
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
  10b955:	83 ec 0c             	sub    $0xc,%esp                      
  10b958:	ff 35 e0 91 12 00    	pushl  0x1291e0                       
  10b95e:	e8 c1 16 00 00       	call   10d024 <_API_Mutex_Unlock>     
    return EAGAIN;                                                    
  10b963:	83 c4 10             	add    $0x10,%esp                     
  10b966:	ba 0b 00 00 00       	mov    $0xb,%edx                      
  10b96b:	e9 f4 fd ff ff       	jmp    10b764 <pthread_create+0x44>   
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
    _Watchdog_Insert_ticks(                                           
  10b970:	83 ec 0c             	sub    $0xc,%esp                      
      &api->Sporadic_timer,                                           
      _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period )     
  10b973:	8b 45 a8             	mov    -0x58(%ebp),%eax               
  10b976:	05 90 00 00 00       	add    $0x90,%eax                     
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
    _Watchdog_Insert_ticks(                                           
  10b97b:	50                   	push   %eax                           
  10b97c:	e8 d7 3b 00 00       	call   10f558 <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10b981:	8b 4d a8             	mov    -0x58(%ebp),%ecx               
  10b984:	89 81 b4 00 00 00    	mov    %eax,0xb4(%ecx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10b98a:	58                   	pop    %eax                           
  10b98b:	5a                   	pop    %edx                           
  10b98c:	89 c8                	mov    %ecx,%eax                      
  10b98e:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10b993:	50                   	push   %eax                           
  10b994:	68 00 92 12 00       	push   $0x129200                      
  10b999:	e8 ea 3e 00 00       	call   10f888 <_Watchdog_Insert>      
  10b99e:	83 c4 10             	add    $0x10,%esp                     
  10b9a1:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10b9a4:	eb 88                	jmp    10b92e <pthread_create+0x20e>  
                                                                      

0010b834 <pthread_detach>: #include <rtems/posix/pthread.h> int pthread_detach( pthread_t thread ) {
  10b834:	55                   	push   %ebp                           
  10b835:	89 e5                	mov    %esp,%ebp                      
  10b837:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10b83a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b83d:	50                   	push   %eax                           
  10b83e:	ff 75 08             	pushl  0x8(%ebp)                      
  10b841:	e8 fe 2e 00 00       	call   10e744 <_Thread_Get>           
  switch ( location ) {                                               
  10b846:	83 c4 10             	add    $0x10,%esp                     
  10b849:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b84c:	85 d2                	test   %edx,%edx                      
  10b84e:	75 18                	jne    10b868 <pthread_detach+0x34>   
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
      api->detachstate = PTHREAD_CREATE_DETACHED;                     
  10b850:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10b856:	c7 40 40 00 00 00 00 	movl   $0x0,0x40(%eax)                
      _Thread_Enable_dispatch();                                      
  10b85d:	e8 be 2e 00 00       	call   10e720 <_Thread_Enable_dispatch>
      return 0;                                                       
  10b862:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10b864:	c9                   	leave                                 
  10b865:	c3                   	ret                                   
  10b866:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10b868:	b8 03 00 00 00       	mov    $0x3,%eax                      
}                                                                     
  10b86d:	c9                   	leave                                 
  10b86e:	c3                   	ret                                   
                                                                      

00112e48 <pthread_exit>: } void pthread_exit( void *value_ptr ) {
  112e48:	55                   	push   %ebp                           
  112e49:	89 e5                	mov    %esp,%ebp                      
  112e4b:	83 ec 10             	sub    $0x10,%esp                     
  _POSIX_Thread_Exit( _Thread_Executing, value_ptr );                 
  112e4e:	ff 75 08             	pushl  0x8(%ebp)                      
  112e51:	ff 35 f8 83 12 00    	pushl  0x1283f8                       
  112e57:	e8 88 ff ff ff       	call   112de4 <_POSIX_Thread_Exit>    
  112e5c:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
}                                                                     
  112e5f:	c9                   	leave                                 <== NOT EXECUTED
  112e60:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010d918 <pthread_getschedparam>: int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param ) {
  10d918:	55                   	push   %ebp                           
  10d919:	89 e5                	mov    %esp,%ebp                      
  10d91b:	57                   	push   %edi                           
  10d91c:	56                   	push   %esi                           
  10d91d:	53                   	push   %ebx                           
  10d91e:	83 ec 1c             	sub    $0x1c,%esp                     
  10d921:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10d924:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
  10d927:	85 ff                	test   %edi,%edi                      
  10d929:	74 65                	je     10d990 <pthread_getschedparam+0x78>
  10d92b:	85 db                	test   %ebx,%ebx                      
  10d92d:	74 61                	je     10d990 <pthread_getschedparam+0x78>
    return EINVAL;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10d92f:	83 ec 08             	sub    $0x8,%esp                      
  10d932:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10d935:	50                   	push   %eax                           
  10d936:	ff 75 08             	pushl  0x8(%ebp)                      
  10d939:	e8 a6 2f 00 00       	call   1108e4 <_Thread_Get>           
  switch ( location ) {                                               
  10d93e:	83 c4 10             	add    $0x10,%esp                     
  10d941:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10d944:	85 d2                	test   %edx,%edx                      
  10d946:	75 38                	jne    10d980 <pthread_getschedparam+0x68>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  10d948:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
      if ( policy )                                                   
        *policy = api->schedpolicy;                                   
  10d94e:	8b 96 84 00 00 00    	mov    0x84(%esi),%edx                
  10d954:	89 17                	mov    %edx,(%edi)                    
      if ( param ) {                                                  
        *param  = api->schedparam;                                    
  10d956:	81 c6 88 00 00 00    	add    $0x88,%esi                     
  10d95c:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10d961:	89 df                	mov    %ebx,%edi                      
  10d963:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
  10d965:	0f b6 15 3c 8a 12 00 	movzbl 0x128a3c,%edx                  
  10d96c:	2b 50 14             	sub    0x14(%eax),%edx                
  10d96f:	89 13                	mov    %edx,(%ebx)                    
        param->sched_priority =                                       
          _POSIX_Priority_From_core( the_thread->current_priority );  
      }                                                               
      _Thread_Enable_dispatch();                                      
  10d971:	e8 4a 2f 00 00       	call   1108c0 <_Thread_Enable_dispatch>
      return 0;                                                       
  10d976:	31 c0                	xor    %eax,%eax                      
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
                                                                      
}                                                                     
  10d978:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d97b:	5b                   	pop    %ebx                           
  10d97c:	5e                   	pop    %esi                           
  10d97d:	5f                   	pop    %edi                           
  10d97e:	c9                   	leave                                 
  10d97f:	c3                   	ret                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10d980:	b8 03 00 00 00       	mov    $0x3,%eax                      
                                                                      
}                                                                     
  10d985:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d988:	5b                   	pop    %ebx                           
  10d989:	5e                   	pop    %esi                           
  10d98a:	5f                   	pop    %edi                           
  10d98b:	c9                   	leave                                 
  10d98c:	c3                   	ret                                   
  10d98d:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
    return EINVAL;                                                    
  10d990:	b8 16 00 00 00       	mov    $0x16,%eax                     
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
                                                                      
}                                                                     
  10d995:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d998:	5b                   	pop    %ebx                           
  10d999:	5e                   	pop    %esi                           
  10d99a:	5f                   	pop    %edi                           
  10d99b:	c9                   	leave                                 
  10d99c:	c3                   	ret                                   
                                                                      

0010b700 <pthread_getspecific>: */ void *pthread_getspecific( pthread_key_t key ) {
  10b700:	55                   	push   %ebp                           
  10b701:	89 e5                	mov    %esp,%ebp                      
  10b703:	83 ec 2c             	sub    $0x2c,%esp                     
  uint32_t                     api;                                   
  uint32_t                     index;                                 
  Objects_Locations            location;                              
  void                        *key_data;                              
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  10b706:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  pthread_key_t      id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Keys_Control *)                                       
    _Objects_Get( &_POSIX_Keys_Information, (Objects_Id) id, location );
  10b709:	50                   	push   %eax                           
  10b70a:	ff 75 08             	pushl  0x8(%ebp)                      
  10b70d:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b712:	e8 9d 25 00 00       	call   10dcb4 <_Objects_Get>          
  switch ( location ) {                                               
  10b717:	83 c4 10             	add    $0x10,%esp                     
  10b71a:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b71d:	85 d2                	test   %edx,%edx                      
  10b71f:	75 2b                	jne    10b74c <pthread_getspecific+0x4c>
                                                                      
    case OBJECTS_LOCAL:                                               
      api      = _Objects_Get_API( _Thread_Executing->Object.id );    
  10b721:	8b 15 f8 a2 12 00    	mov    0x12a2f8,%edx                  
  10b727:	8b 4a 08             	mov    0x8(%edx),%ecx                 
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
  10b72a:	89 ca                	mov    %ecx,%edx                      
  10b72c:	c1 ea 18             	shr    $0x18,%edx                     
  10b72f:	83 e2 07             	and    $0x7,%edx                      
      index    = _Objects_Get_index( _Thread_Executing->Object.id );  
  10b732:	0f b7 c9             	movzwl %cx,%ecx                       
      key_data = (void *) the_key->Values[ api ][ index ];            
  10b735:	8b 44 90 14          	mov    0x14(%eax,%edx,4),%eax         
  10b739:	8b 04 88             	mov    (%eax,%ecx,4),%eax             
      _Thread_Enable_dispatch();                                      
  10b73c:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b73f:	e8 f8 30 00 00       	call   10e83c <_Thread_Enable_dispatch>
      return key_data;                                                
  10b744:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
}                                                                     
  10b747:	c9                   	leave                                 
  10b748:	c3                   	ret                                   
  10b749:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
  10b74c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b74e:	c9                   	leave                                 
  10b74f:	c3                   	ret                                   
                                                                      

0011115c <pthread_join>: int pthread_join( pthread_t thread, void **value_ptr ) {
  11115c:	55                   	push   %ebp                           
  11115d:	89 e5                	mov    %esp,%ebp                      
  11115f:	53                   	push   %ebx                           
  111160:	83 ec 1c             	sub    $0x1c,%esp                     
  111163:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
  void                    *return_pointer;                            
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  111166:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  111169:	50                   	push   %eax                           
  11116a:	ff 75 08             	pushl  0x8(%ebp)                      
  11116d:	e8 b2 2f 00 00       	call   114124 <_Thread_Get>           
  switch ( location ) {                                               
  111172:	83 c4 10             	add    $0x10,%esp                     
  111175:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  111178:	85 d2                	test   %edx,%edx                      
  11117a:	74 0c                	je     111188 <pthread_join+0x2c>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  11117c:	b8 03 00 00 00       	mov    $0x3,%eax                      
}                                                                     
  111181:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  111184:	c9                   	leave                                 
  111185:	c3                   	ret                                   
  111186:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  111188:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
                                                                      
      if ( api->detachstate == PTHREAD_CREATE_DETACHED ) {            
  11118e:	8b 4a 40             	mov    0x40(%edx),%ecx                
  111191:	85 c9                	test   %ecx,%ecx                      
  111193:	74 43                	je     1111d8 <pthread_join+0x7c>     
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
  111195:	8b 0d d8 2d 13 00    	mov    0x132dd8,%ecx                  
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
  11119b:	39 c8                	cmp    %ecx,%eax                      
  11119d:	74 49                	je     1111e8 <pthread_join+0x8c>     
                                                                      
      /*                                                              
       *  Put ourself on the threads join list                        
       */                                                             
                                                                      
      _Thread_Executing->Wait.return_argument = &return_pointer;      
  11119f:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  1111a2:	89 41 28             	mov    %eax,0x28(%ecx)                
                                                                      
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;
  1111a5:	c7 42 74 01 00 00 00 	movl   $0x1,0x74(%edx)                
                                                                      
      _Thread_queue_Enter_critical_section( &api->Join_List );        
                                                                      
      _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT );  
  1111ac:	50                   	push   %eax                           
  1111ad:	68 d4 48 11 00       	push   $0x1148d4                      
  1111b2:	6a 00                	push   $0x0                           
  1111b4:	83 c2 44             	add    $0x44,%edx                     
  1111b7:	52                   	push   %edx                           
  1111b8:	e8 eb 33 00 00       	call   1145a8 <_Thread_queue_Enqueue_with_handler>
                                                                      
      _Thread_Enable_dispatch();                                      
  1111bd:	e8 3e 2f 00 00       	call   114100 <_Thread_Enable_dispatch>
                                                                      
      if ( value_ptr )                                                
  1111c2:	83 c4 10             	add    $0x10,%esp                     
  1111c5:	85 db                	test   %ebx,%ebx                      
  1111c7:	74 2b                	je     1111f4 <pthread_join+0x98>     
        *value_ptr = return_pointer;                                  
  1111c9:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  1111cc:	89 03                	mov    %eax,(%ebx)                    
      return 0;                                                       
  1111ce:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  1111d0:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1111d3:	c9                   	leave                                 
  1111d4:	c3                   	ret                                   
  1111d5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( api->detachstate == PTHREAD_CREATE_DETACHED ) {            
        _Thread_Enable_dispatch();                                    
  1111d8:	e8 23 2f 00 00       	call   114100 <_Thread_Enable_dispatch>
        return EINVAL;                                                
  1111dd:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  1111e2:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1111e5:	c9                   	leave                                 
  1111e6:	c3                   	ret                                   
  1111e7:	90                   	nop                                   
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
        _Thread_Enable_dispatch();                                    
  1111e8:	e8 13 2f 00 00       	call   114100 <_Thread_Enable_dispatch>
        return EDEADLK;                                               
  1111ed:	b8 2d 00 00 00       	mov    $0x2d,%eax                     
  1111f2:	eb 8d                	jmp    111181 <pthread_join+0x25>     
                                                                      
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( value_ptr )                                                
        *value_ptr = return_pointer;                                  
      return 0;                                                       
  1111f4:	31 c0                	xor    %eax,%eax                      
  1111f6:	eb 89                	jmp    111181 <pthread_join+0x25>     
                                                                      

0010b58c <pthread_key_create>: int pthread_key_create( pthread_key_t *key, void (*destructor)( void * ) ) {
  10b58c:	55                   	push   %ebp                           
  10b58d:	89 e5                	mov    %esp,%ebp                      
  10b58f:	57                   	push   %edi                           
  10b590:	56                   	push   %esi                           
  10b591:	53                   	push   %ebx                           
  10b592:	83 ec 28             	sub    $0x28,%esp                     
  10b595:	a1 50 9d 12 00       	mov    0x129d50,%eax                  
  10b59a:	40                   	inc    %eax                           
  10b59b:	a3 50 9d 12 00       	mov    %eax,0x129d50                  
 *  the inactive chain of free keys control blocks.                   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Allocate( void ) 
{                                                                     
  return (POSIX_Keys_Control *) _Objects_Allocate( &_POSIX_Keys_Information );
  10b5a0:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b5a5:	e8 56 22 00 00       	call   10d800 <_Objects_Allocate>     
  10b5aa:	89 c6                	mov    %eax,%esi                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
  10b5ac:	83 c4 10             	add    $0x10,%esp                     
  10b5af:	85 c0                	test   %eax,%eax                      
  10b5b1:	74 79                	je     10b62c <pthread_key_create+0xa0>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_key->destructor = destructor;                                   
  10b5b3:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10b5b6:	89 46 10             	mov    %eax,0x10(%esi)                
   *  This is a bit more complex than one might initially expect because
   *  APIs are optional.                                              
   *                                                                  
   *  NOTE: Currently RTEMS Classic API tasks are always enabled.     
   */                                                                 
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) {      
  10b5b9:	bb 01 00 00 00       	mov    $0x1,%ebx                      
    the_key->Values[ the_api ] = NULL;                                
  10b5be:	c7 44 9e 14 00 00 00 	movl   $0x0,0x14(%esi,%ebx,4)         
  10b5c5:	00                                                          
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
  10b5c6:	8b 04 9d 28 9d 12 00 	mov    0x129d28(,%ebx,4),%eax         
  10b5cd:	8b 40 04             	mov    0x4(%eax),%eax                 
  10b5d0:	0f b7 40 10          	movzwl 0x10(%eax),%eax                
	  true,                                                              
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
  10b5d4:	8d 0c 85 04 00 00 00 	lea    0x4(,%eax,4),%ecx              
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
    table = _Workspace_Allocate( bytes_to_allocate );                 
  10b5db:	83 ec 0c             	sub    $0xc,%esp                      
  10b5de:	51                   	push   %ecx                           
  10b5df:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  10b5e2:	e8 39 43 00 00       	call   10f920 <_Workspace_Allocate>   
    if ( !table ) {                                                   
  10b5e7:	83 c4 10             	add    $0x10,%esp                     
  10b5ea:	85 c0                	test   %eax,%eax                      
  10b5ec:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10b5ef:	74 4f                	je     10b640 <pthread_key_create+0xb4>
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
      return ENOMEM;                                                  
    }                                                                 
                                                                      
    the_key->Values[ the_api ] = table;                               
  10b5f1:	89 44 9e 14          	mov    %eax,0x14(%esi,%ebx,4)         
    memset( table, '\0', bytes_to_allocate );                         
  10b5f5:	89 c7                	mov    %eax,%edi                      
  10b5f7:	31 c0                	xor    %eax,%eax                      
  10b5f9:	f3 aa                	rep stos %al,%es:(%edi)               
   *  This is a bit more complex than one might initially expect because
   *  APIs are optional.                                              
   *                                                                  
   *  NOTE: Currently RTEMS Classic API tasks are always enabled.     
   */                                                                 
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) {      
  10b5fb:	43                   	inc    %ebx                           
  10b5fc:	83 fb 04             	cmp    $0x4,%ebx                      
  10b5ff:	75 bd                	jne    10b5be <pthread_key_create+0x32>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10b601:	8b 46 08             	mov    0x8(%esi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b604:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b607:	8b 15 dc a1 12 00    	mov    0x12a1dc,%edx                  
  10b60d:	89 34 8a             	mov    %esi,(%edx,%ecx,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10b610:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)                 
    the_key->Values[ the_api ] = table;                               
    memset( table, '\0', bytes_to_allocate );                         
  }                                                                   
                                                                      
  _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); 
  *key = the_key->Object.id;                                          
  10b617:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10b61a:	89 02                	mov    %eax,(%edx)                    
  _Thread_Enable_dispatch();                                          
  10b61c:	e8 1b 32 00 00       	call   10e83c <_Thread_Enable_dispatch>
  return 0;                                                           
  10b621:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b623:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b626:	5b                   	pop    %ebx                           
  10b627:	5e                   	pop    %esi                           
  10b628:	5f                   	pop    %edi                           
  10b629:	c9                   	leave                                 
  10b62a:	c3                   	ret                                   
  10b62b:	90                   	nop                                   
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
    _Thread_Enable_dispatch();                                        
  10b62c:	e8 0b 32 00 00       	call   10e83c <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10b631:	b8 0b 00 00 00       	mov    $0xb,%eax                      
                                                                      
  _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); 
  *key = the_key->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10b636:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b639:	5b                   	pop    %ebx                           
  10b63a:	5e                   	pop    %esi                           
  10b63b:	5f                   	pop    %edi                           
  10b63c:	c9                   	leave                                 
  10b63d:	c3                   	ret                                   
  10b63e:	66 90                	xchg   %ax,%ax                        
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
    table = _Workspace_Allocate( bytes_to_allocate );                 
    if ( !table ) {                                                   
      _POSIX_Keys_Free_memory( the_key );                             
  10b640:	83 ec 0c             	sub    $0xc,%esp                      
  10b643:	56                   	push   %esi                           
  10b644:	e8 87 00 00 00       	call   10b6d0 <_POSIX_Keys_Free_memory>
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (                          
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );        
  10b649:	58                   	pop    %eax                           
  10b64a:	5a                   	pop    %edx                           
  10b64b:	56                   	push   %esi                           
  10b64c:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b651:	e8 1e 25 00 00       	call   10db74 <_Objects_Free>         
                                                                      
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
  10b656:	e8 e1 31 00 00       	call   10e83c <_Thread_Enable_dispatch>
      return ENOMEM;                                                  
  10b65b:	83 c4 10             	add    $0x10,%esp                     
  10b65e:	b8 0c 00 00 00       	mov    $0xc,%eax                      
                                                                      
  _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); 
  *key = the_key->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10b663:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b666:	5b                   	pop    %ebx                           
  10b667:	5e                   	pop    %esi                           
  10b668:	5f                   	pop    %edi                           
  10b669:	c9                   	leave                                 
  10b66a:	c3                   	ret                                   
                                                                      

0010b66c <pthread_key_delete>: * 17.1.3 Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ int pthread_key_delete( pthread_key_t key ) {
  10b66c:	55                   	push   %ebp                           
  10b66d:	89 e5                	mov    %esp,%ebp                      
  10b66f:	53                   	push   %ebx                           
  10b670:	83 ec 18             	sub    $0x18,%esp                     
  POSIX_Keys_Control *the_key;                                        
  Objects_Locations   location;                                       
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  10b673:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  pthread_key_t      id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Keys_Control *)                                       
    _Objects_Get( &_POSIX_Keys_Information, (Objects_Id) id, location );
  10b676:	50                   	push   %eax                           
  10b677:	ff 75 08             	pushl  0x8(%ebp)                      
  10b67a:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b67f:	e8 30 26 00 00       	call   10dcb4 <_Objects_Get>          
  10b684:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10b686:	83 c4 10             	add    $0x10,%esp                     
  10b689:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10b68c:	85 c9                	test   %ecx,%ecx                      
  10b68e:	75 34                	jne    10b6c4 <pthread_key_delete+0x58>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_POSIX_Keys_Information, &the_key->Object );   
  10b690:	83 ec 08             	sub    $0x8,%esp                      
  10b693:	50                   	push   %eax                           
  10b694:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b699:	e8 de 21 00 00       	call   10d87c <_Objects_Close>        
                                                                      
      _POSIX_Keys_Free_memory( the_key );                             
  10b69e:	89 1c 24             	mov    %ebx,(%esp)                    
  10b6a1:	e8 2a 00 00 00       	call   10b6d0 <_POSIX_Keys_Free_memory>
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (                          
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );        
  10b6a6:	58                   	pop    %eax                           
  10b6a7:	5a                   	pop    %edx                           
  10b6a8:	53                   	push   %ebx                           
  10b6a9:	68 c0 a1 12 00       	push   $0x12a1c0                      
  10b6ae:	e8 c1 24 00 00       	call   10db74 <_Objects_Free>         
      /*                                                              
       *  NOTE:  The destructor is not called and it is the responsibility
       *         of the application to free the memory.               
       */                                                             
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
  10b6b3:	e8 84 31 00 00       	call   10e83c <_Thread_Enable_dispatch>
      return 0;                                                       
  10b6b8:	83 c4 10             	add    $0x10,%esp                     
  10b6bb:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b6bd:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6c0:	c9                   	leave                                 
  10b6c1:	c3                   	ret                                   
  10b6c2:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b6c4:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10b6c9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6cc:	c9                   	leave                                 
  10b6cd:	c3                   	ret                                   
                                                                      

00124dfc <pthread_kill>: int pthread_kill( pthread_t thread, int sig ) {
  124dfc:	55                   	push   %ebp                           
  124dfd:	89 e5                	mov    %esp,%ebp                      
  124dff:	57                   	push   %edi                           
  124e00:	56                   	push   %esi                           
  124e01:	53                   	push   %ebx                           
  124e02:	83 ec 1c             	sub    $0x1c,%esp                     
  124e05:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_API_Control  *api;                                            
  Thread_Control     *the_thread;                                     
  Objects_Locations  location;                                        
                                                                      
  if ( !sig )                                                         
  124e08:	85 db                	test   %ebx,%ebx                      
  124e0a:	0f 84 80 00 00 00    	je     124e90 <pthread_kill+0x94>     <== NEVER TAKEN
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  124e10:	8d 7b ff             	lea    -0x1(%ebx),%edi                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  124e13:	83 ff 1f             	cmp    $0x1f,%edi                     
  124e16:	77 78                	ja     124e90 <pthread_kill+0x94>     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  124e18:	83 ec 08             	sub    $0x8,%esp                      
  124e1b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  124e1e:	50                   	push   %eax                           
  124e1f:	ff 75 08             	pushl  0x8(%ebp)                      
  124e22:	e8 2d dd fe ff       	call   112b54 <_Thread_Get>           
  124e27:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  124e29:	83 c4 10             	add    $0x10,%esp                     
  124e2c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  124e2f:	85 c9                	test   %ecx,%ecx                      
  124e31:	75 71                	jne    124ea4 <pthread_kill+0xa8>     <== NEVER TAKEN
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  If sig == 0 then just validate arguments                    
       */                                                             
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  124e33:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
  124e39:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  124e3c:	83 3c 85 e8 f1 12 00 	cmpl   $0x1,0x12f1e8(,%eax,4)         
  124e43:	01                                                          
  124e44:	74 2d                	je     124e73 <pthread_kill+0x77>     <== NEVER TAKEN
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  124e46:	b8 01 00 00 00       	mov    $0x1,%eax                      
  124e4b:	89 f9                	mov    %edi,%ecx                      
  124e4d:	d3 e0                	shl    %cl,%eax                       
          return 0;                                                   
        }                                                             
                                                                      
        /* XXX critical section */                                    
                                                                      
        api->signals_pending |= signo_to_mask( sig );                 
  124e4f:	09 82 d4 00 00 00    	or     %eax,0xd4(%edx)                
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
  124e55:	52                   	push   %edx                           
  124e56:	6a 00                	push   $0x0                           
  124e58:	53                   	push   %ebx                           
  124e59:	56                   	push   %esi                           
  124e5a:	e8 7d fe ff ff       	call   124cdc <_POSIX_signals_Unblock_thread>
                                                                      
        if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  124e5f:	83 c4 10             	add    $0x10,%esp                     
  124e62:	a1 74 f1 12 00       	mov    0x12f174,%eax                  
  124e67:	85 c0                	test   %eax,%eax                      
  124e69:	74 08                	je     124e73 <pthread_kill+0x77>     
  124e6b:	3b 35 78 f1 12 00    	cmp    0x12f178,%esi                  
  124e71:	74 11                	je     124e84 <pthread_kill+0x88>     
	  _Thread_Dispatch_necessary = true;                                 
      }                                                               
      _Thread_Enable_dispatch();                                      
  124e73:	e8 b8 dc fe ff       	call   112b30 <_Thread_Enable_dispatch>
      return 0;                                                       
  124e78:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
}                                                                     
  124e7a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124e7d:	5b                   	pop    %ebx                           
  124e7e:	5e                   	pop    %esi                           
  124e7f:	5f                   	pop    %edi                           
  124e80:	c9                   	leave                                 
  124e81:	c3                   	ret                                   
  124e82:	66 90                	xchg   %ax,%ax                        
        api->signals_pending |= signo_to_mask( sig );                 
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
                                                                      
        if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
	  _Thread_Dispatch_necessary = true;                                 
  124e84:	c6 05 84 f1 12 00 01 	movb   $0x1,0x12f184                  
  124e8b:	eb e6                	jmp    124e73 <pthread_kill+0x77>     
  124e8d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !sig )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  124e90:	e8 17 36 ff ff       	call   1184ac <__errno>               
  124e95:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  124e9b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  124ea0:	eb d8                	jmp    124e7a <pthread_kill+0x7e>     
  124ea2:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
  124ea4:	e8 03 36 ff ff       	call   1184ac <__errno>               <== NOT EXECUTED
  124ea9:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    <== NOT EXECUTED
  124eaf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               <== NOT EXECUTED
  124eb4:	eb c4                	jmp    124e7a <pthread_kill+0x7e>     <== NOT EXECUTED
                                                                      

0010d1e4 <pthread_mutex_getprioceiling>: int pthread_mutex_getprioceiling( pthread_mutex_t *mutex, int *prioceiling ) {
  10d1e4:	55                   	push   %ebp                           
  10d1e5:	89 e5                	mov    %esp,%ebp                      
  10d1e7:	53                   	push   %ebx                           
  10d1e8:	83 ec 14             	sub    $0x14,%esp                     
  10d1eb:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
                                                                      
  if ( !prioceiling )                                                 
  10d1ee:	85 db                	test   %ebx,%ebx                      
  10d1f0:	74 19                	je     10d20b <pthread_mutex_getprioceiling+0x27>
    return EINVAL;                                                    
                                                                      
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
  10d1f2:	83 ec 08             	sub    $0x8,%esp                      
  10d1f5:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d1f8:	50                   	push   %eax                           
  10d1f9:	ff 75 08             	pushl  0x8(%ebp)                      
  10d1fc:	e8 3b ff ff ff       	call   10d13c <_POSIX_Mutex_Get>      
  switch ( location ) {                                               
  10d201:	83 c4 10             	add    $0x10,%esp                     
  10d204:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d207:	85 d2                	test   %edx,%edx                      
  10d209:	74 0d                	je     10d218 <pthread_mutex_getprioceiling+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10d20b:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10d210:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d213:	c9                   	leave                                 
  10d214:	c3                   	ret                                   
  10d215:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
  10d218:	0f b6 15 3c 8a 12 00 	movzbl 0x128a3c,%edx                  
  10d21f:	2b 50 60             	sub    0x60(%eax),%edx                
  10d222:	89 13                	mov    %edx,(%ebx)                    
                                                                      
    case OBJECTS_LOCAL:                                               
      *prioceiling = _POSIX_Priority_From_core(                       
        the_mutex->Mutex.Attributes.priority_ceiling                  
      );                                                              
      _Thread_Enable_dispatch();                                      
  10d224:	e8 97 36 00 00       	call   1108c0 <_Thread_Enable_dispatch>
      return 0;                                                       
  10d229:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10d22b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d22e:	c9                   	leave                                 
  10d22f:	c3                   	ret                                   
                                                                      

0010d230 <pthread_mutex_init>: int pthread_mutex_init( pthread_mutex_t *mutex, const pthread_mutexattr_t *attr ) {
  10d230:	55                   	push   %ebp                           
  10d231:	89 e5                	mov    %esp,%ebp                      
  10d233:	57                   	push   %edi                           
  10d234:	56                   	push   %esi                           
  10d235:	53                   	push   %ebx                           
  10d236:	83 ec 1c             	sub    $0x1c,%esp                     
  10d239:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10d23c:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_Mutex_Control          *the_mutex;                            
  CORE_mutex_Attributes        *the_mutex_attr;                       
  const pthread_mutexattr_t    *the_attr;                             
  CORE_mutex_Disciplines        the_discipline;                       
                                                                      
  if ( attr ) the_attr = attr;                                        
  10d23f:	85 db                	test   %ebx,%ebx                      
  10d241:	0f 84 09 01 00 00    	je     10d350 <pthread_mutex_init+0x120>
  else        the_attr = &_POSIX_Mutex_Default_attributes;            
                                                                      
  /* Check for NULL mutex */                                          
  if ( !mutex )                                                       
  10d247:	85 f6                	test   %esi,%esi                      
  10d249:	0f 84 e5 00 00 00    	je     10d334 <pthread_mutex_init+0x104>
      }                                                               
    }                                                                 
  }                                                                   
  #endif                                                              
                                                                      
  if ( !the_attr->is_initialized )                                    
  10d24f:	8b 13                	mov    (%ebx),%edx                    
  10d251:	85 d2                	test   %edx,%edx                      
  10d253:	0f 84 db 00 00 00    	je     10d334 <pthread_mutex_init+0x104>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
  10d259:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10d25c:	83 f8 01             	cmp    $0x1,%eax                      
  10d25f:	0f 84 f7 00 00 00    	je     10d35c <pthread_mutex_init+0x12c>
    return ENOSYS;                                                    
                                                                      
  if ( the_attr->process_shared != PTHREAD_PROCESS_PRIVATE )          
  10d265:	85 c0                	test   %eax,%eax                      
  10d267:	0f 85 c7 00 00 00    	jne    10d334 <pthread_mutex_init+0x104>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  Determine the discipline of the mutex                           
   */                                                                 
  switch ( the_attr->protocol ) {                                     
  10d26d:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10d270:	83 f8 01             	cmp    $0x1,%eax                      
  10d273:	0f 84 eb 00 00 00    	je     10d364 <pthread_mutex_init+0x134>
  10d279:	83 f8 02             	cmp    $0x2,%eax                      
  10d27c:	0f 84 c2 00 00 00    	je     10d344 <pthread_mutex_init+0x114>
  10d282:	85 c0                	test   %eax,%eax                      
  10d284:	0f 85 aa 00 00 00    	jne    10d334 <pthread_mutex_init+0x104>
    case PTHREAD_PRIO_NONE:                                           
      the_discipline = CORE_MUTEX_DISCIPLINES_FIFO;                   
  10d28a:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  }                                                                   
                                                                      
  /*                                                                  
   *  Validate the priority ceiling field -- should always be valid.  
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( the_attr->prio_ceiling ) )          
  10d291:	83 ec 0c             	sub    $0xc,%esp                      
  10d294:	ff 73 08             	pushl  0x8(%ebx)                      
  10d297:	e8 58 03 00 00       	call   10d5f4 <_POSIX_Priority_Is_valid>
  10d29c:	83 c4 10             	add    $0x10,%esp                     
  10d29f:	84 c0                	test   %al,%al                        
  10d2a1:	0f 84 8d 00 00 00    	je     10d334 <pthread_mutex_init+0x104>
#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)                          
  /*                                                                  
   *  Validate the mutex type and set appropriate SuperCore mutex     
   *  attributes.                                                     
   */                                                                 
  switch ( the_attr->type ) {                                         
  10d2a7:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)                
  10d2ab:	0f 87 83 00 00 00    	ja     10d334 <pthread_mutex_init+0x104>
  10d2b1:	a1 90 cd 12 00       	mov    0x12cd90,%eax                  
  10d2b6:	40                   	inc    %eax                           
  10d2b7:	a3 90 cd 12 00       	mov    %eax,0x12cd90                  
 *  _POSIX_Mutex_Allocate                                             
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void )
{                                                                     
  return (POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information );
  10d2bc:	83 ec 0c             	sub    $0xc,%esp                      
  10d2bf:	68 60 d1 12 00       	push   $0x12d160                      
  10d2c4:	e8 bb 25 00 00       	call   10f884 <_Objects_Allocate>     
  10d2c9:	89 c7                	mov    %eax,%edi                      
   */                                                                 
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
  10d2cb:	83 c4 10             	add    $0x10,%esp                     
  10d2ce:	85 c0                	test   %eax,%eax                      
  10d2d0:	0f 84 9a 00 00 00    	je     10d370 <pthread_mutex_init+0x140>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
  10d2d6:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10d2d9:	89 47 10             	mov    %eax,0x10(%edi)                
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
  10d2dc:	8d 57 54             	lea    0x54(%edi),%edx                
                                                                      
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  10d2df:	31 c0                	xor    %eax,%eax                      
  10d2e1:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)                
  10d2e5:	0f 94 c0             	sete   %al                            
  10d2e8:	89 47 54             	mov    %eax,0x54(%edi)                
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
  the_mutex_attr->only_owner_release = true;                          
  10d2eb:	c6 47 58 01          	movb   $0x1,0x58(%edi)                
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
  10d2ef:	0f b6 05 3c 8a 12 00 	movzbl 0x128a3c,%eax                  
  10d2f6:	2b 43 08             	sub    0x8(%ebx),%eax                 
  10d2f9:	89 47 60             	mov    %eax,0x60(%edi)                
  the_mutex_attr->priority_ceiling =                                  
    _POSIX_Priority_To_core( the_attr->prio_ceiling );                
  the_mutex_attr->discipline = the_discipline;                        
  10d2fc:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10d2ff:	89 47 5c             	mov    %eax,0x5c(%edi)                
                                                                      
  /*                                                                  
   *  Must be initialized to unlocked.                                
   */                                                                 
  _CORE_mutex_Initialize(                                             
  10d302:	50                   	push   %eax                           
  10d303:	6a 01                	push   $0x1                           
  10d305:	52                   	push   %edx                           
  10d306:	8d 47 14             	lea    0x14(%edi),%eax                
  10d309:	50                   	push   %eax                           
  10d30a:	e8 01 1d 00 00       	call   10f010 <_CORE_mutex_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10d30f:	8b 47 08             	mov    0x8(%edi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10d312:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10d315:	8b 15 7c d1 12 00    	mov    0x12d17c,%edx                  
  10d31b:	89 3c 8a             	mov    %edi,(%edx,%ecx,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10d31e:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)                 
    CORE_MUTEX_UNLOCKED                                               
  );                                                                  
                                                                      
  _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 );
                                                                      
  *mutex = the_mutex->Object.id;                                      
  10d325:	89 06                	mov    %eax,(%esi)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10d327:	e8 94 35 00 00       	call   1108c0 <_Thread_Enable_dispatch>
  return 0;                                                           
  10d32c:	83 c4 10             	add    $0x10,%esp                     
  10d32f:	31 c0                	xor    %eax,%eax                      
  10d331:	eb 06                	jmp    10d339 <pthread_mutex_init+0x109>
  10d333:	90                   	nop                                   
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      break;                                                          
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10d334:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *mutex = the_mutex->Object.id;                                      
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10d339:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d33c:	5b                   	pop    %ebx                           
  10d33d:	5e                   	pop    %esi                           
  10d33e:	5f                   	pop    %edi                           
  10d33f:	c9                   	leave                                 
  10d340:	c3                   	ret                                   
  10d341:	8d 76 00             	lea    0x0(%esi),%esi                 
      break;                                                          
    case PTHREAD_PRIO_INHERIT:                                        
      the_discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;       
      break;                                                          
    case PTHREAD_PRIO_PROTECT:                                        
      the_discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;       
  10d344:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)               
      break;                                                          
  10d34b:	e9 41 ff ff ff       	jmp    10d291 <pthread_mutex_init+0x61>
  CORE_mutex_Attributes        *the_mutex_attr;                       
  const pthread_mutexattr_t    *the_attr;                             
  CORE_mutex_Disciplines        the_discipline;                       
                                                                      
  if ( attr ) the_attr = attr;                                        
  else        the_attr = &_POSIX_Mutex_Default_attributes;            
  10d350:	bb e0 d1 12 00       	mov    $0x12d1e0,%ebx                 
  10d355:	e9 ed fe ff ff       	jmp    10d247 <pthread_mutex_init+0x17>
  10d35a:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
    return ENOSYS;                                                    
  10d35c:	b8 58 00 00 00       	mov    $0x58,%eax                     
  10d361:	eb d6                	jmp    10d339 <pthread_mutex_init+0x109>
  10d363:	90                   	nop                                   
  switch ( the_attr->protocol ) {                                     
    case PTHREAD_PRIO_NONE:                                           
      the_discipline = CORE_MUTEX_DISCIPLINES_FIFO;                   
      break;                                                          
    case PTHREAD_PRIO_INHERIT:                                        
      the_discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;       
  10d364:	c7 45 e4 02 00 00 00 	movl   $0x2,-0x1c(%ebp)               
  10d36b:	e9 21 ff ff ff       	jmp    10d291 <pthread_mutex_init+0x61>
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
    _Thread_Enable_dispatch();                                        
  10d370:	e8 4b 35 00 00       	call   1108c0 <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10d375:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10d37a:	eb bd                	jmp    10d339 <pthread_mutex_init+0x109>
                                                                      

0010d488 <pthread_mutex_timedlock>: int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) {
  10d488:	55                   	push   %ebp                           
  10d489:	89 e5                	mov    %esp,%ebp                      
  10d48b:	56                   	push   %esi                           
  10d48c:	53                   	push   %ebx                           
  10d48d:	83 ec 18             	sub    $0x18,%esp                     
  10d490:	8b 75 08             	mov    0x8(%ebp),%esi                 
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  10d493:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d496:	50                   	push   %eax                           
  10d497:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d49a:	e8 cd 00 00 00       	call   10d56c <_POSIX_Absolute_timeout_to_ticks>
  10d49f:	89 c3                	mov    %eax,%ebx                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
  10d4a1:	83 c4 10             	add    $0x10,%esp                     
  10d4a4:	83 f8 03             	cmp    $0x3,%eax                      
  10d4a7:	74 2f                	je     10d4d8 <pthread_mutex_timedlock+0x50>
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Mutex_Lock_support( mutex, do_wait, ticks );   
  10d4a9:	50                   	push   %eax                           
  10d4aa:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10d4ad:	6a 00                	push   $0x0                           
  10d4af:	56                   	push   %esi                           
  10d4b0:	e8 db fe ff ff       	call   10d390 <_POSIX_Mutex_Lock_support>
   *  This service only gives us the option to block.  We used a polling
   *  attempt to lock if the abstime was not in the future.  If we did
   *  not obtain the mutex, then not look at the status immediately,  
   *  make sure the right reason is returned.                         
   */                                                                 
  if ( !do_wait && (lock_status == EBUSY) ) {                         
  10d4b5:	83 c4 10             	add    $0x10,%esp                     
  10d4b8:	83 f8 10             	cmp    $0x10,%eax                     
  10d4bb:	74 07                	je     10d4c4 <pthread_mutex_timedlock+0x3c><== ALWAYS TAKEN
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10d4bd:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d4c0:	5b                   	pop    %ebx                           
  10d4c1:	5e                   	pop    %esi                           
  10d4c2:	c9                   	leave                                 
  10d4c3:	c3                   	ret                                   
   *  attempt to lock if the abstime was not in the future.  If we did
   *  not obtain the mutex, then not look at the status immediately,  
   *  make sure the right reason is returned.                         
   */                                                                 
  if ( !do_wait && (lock_status == EBUSY) ) {                         
    if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                   
  10d4c4:	85 db                	test   %ebx,%ebx                      
  10d4c6:	74 28                	je     10d4f0 <pthread_mutex_timedlock+0x68><== NEVER TAKEN
      return EINVAL;                                                  
    if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||               
  10d4c8:	4b                   	dec    %ebx                           
  10d4c9:	83 fb 01             	cmp    $0x1,%ebx                      
  10d4cc:	77 ef                	ja     10d4bd <pthread_mutex_timedlock+0x35><== NEVER TAKEN
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  10d4ce:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10d4d3:	eb e8                	jmp    10d4bd <pthread_mutex_timedlock+0x35>
  10d4d5:	8d 76 00             	lea    0x0(%esi),%esi                 
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Mutex_Lock_support( mutex, do_wait, ticks );   
  10d4d8:	52                   	push   %edx                           
  10d4d9:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10d4dc:	6a 01                	push   $0x1                           
  10d4de:	56                   	push   %esi                           
  10d4df:	e8 ac fe ff ff       	call   10d390 <_POSIX_Mutex_Lock_support>
  10d4e4:	83 c4 10             	add    $0x10,%esp                     
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10d4e7:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d4ea:	5b                   	pop    %ebx                           
  10d4eb:	5e                   	pop    %esi                           
  10d4ec:	c9                   	leave                                 
  10d4ed:	c3                   	ret                                   
  10d4ee:	66 90                	xchg   %ax,%ax                        
   *  not obtain the mutex, then not look at the status immediately,  
   *  make sure the right reason is returned.                         
   */                                                                 
  if ( !do_wait && (lock_status == EBUSY) ) {                         
    if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                   
      return EINVAL;                                                  
  10d4f0:	b8 16 00 00 00       	mov    $0x16,%eax                     <== NOT EXECUTED
  10d4f5:	eb c6                	jmp    10d4bd <pthread_mutex_timedlock+0x35><== NOT EXECUTED
                                                                      

0010cf6c <pthread_mutexattr_destroy>: */ int pthread_mutexattr_destroy( pthread_mutexattr_t *attr ) {
  10cf6c:	55                   	push   %ebp                           
  10cf6d:	89 e5                	mov    %esp,%ebp                      
  10cf6f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  10cf72:	85 c0                	test   %eax,%eax                      
  10cf74:	74 12                	je     10cf88 <pthread_mutexattr_destroy+0x1c>
  10cf76:	8b 10                	mov    (%eax),%edx                    
  10cf78:	85 d2                	test   %edx,%edx                      
  10cf7a:	74 0c                	je     10cf88 <pthread_mutexattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10cf7c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10cf82:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10cf84:	c9                   	leave                                 
  10cf85:	c3                   	ret                                   
  10cf86:	66 90                	xchg   %ax,%ax                        
int pthread_mutexattr_destroy(                                        
  pthread_mutexattr_t *attr                                           
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  10cf88:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10cf8d:	c9                   	leave                                 
  10cf8e:	c3                   	ret                                   
                                                                      

0010cfe0 <pthread_mutexattr_getpshared>: int pthread_mutexattr_getpshared( const pthread_mutexattr_t *attr, int *pshared ) {
  10cfe0:	55                   	push   %ebp                           
  10cfe1:	89 e5                	mov    %esp,%ebp                      
  10cfe3:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10cfe6:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized || !pshared )                   
  10cfe9:	85 c0                	test   %eax,%eax                      
  10cfeb:	74 13                	je     10d000 <pthread_mutexattr_getpshared+0x20><== NEVER TAKEN
  10cfed:	8b 08                	mov    (%eax),%ecx                    
  10cfef:	85 c9                	test   %ecx,%ecx                      
  10cff1:	74 0d                	je     10d000 <pthread_mutexattr_getpshared+0x20><== NEVER TAKEN
  10cff3:	85 d2                	test   %edx,%edx                      
  10cff5:	74 09                	je     10d000 <pthread_mutexattr_getpshared+0x20><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
  10cff7:	8b 40 04             	mov    0x4(%eax),%eax                 
  10cffa:	89 02                	mov    %eax,(%edx)                    
  return 0;                                                           
  10cffc:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10cffe:	c9                   	leave                                 
  10cfff:	c3                   	ret                                   
  const pthread_mutexattr_t *attr,                                    
  int                       *pshared                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !pshared )                   
    return EINVAL;                                                    
  10d000:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
}                                                                     
  10d005:	c9                   	leave                                 
  10d006:	c3                   	ret                                   
                                                                      

0010d034 <pthread_mutexattr_setprioceiling>: int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr, int prioceiling ) {
  10d034:	55                   	push   %ebp                           
  10d035:	89 e5                	mov    %esp,%ebp                      
  10d037:	56                   	push   %esi                           
  10d038:	53                   	push   %ebx                           
  10d039:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d03c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !attr || !attr->is_initialized )                               
  10d03f:	85 db                	test   %ebx,%ebx                      
  10d041:	74 06                	je     10d049 <pthread_mutexattr_setprioceiling+0x15>
  10d043:	8b 03                	mov    (%ebx),%eax                    
  10d045:	85 c0                	test   %eax,%eax                      
  10d047:	75 0f                	jne    10d058 <pthread_mutexattr_setprioceiling+0x24>
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
    return EINVAL;                                                    
  10d049:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->prio_ceiling = prioceiling;                                   
  return 0;                                                           
}                                                                     
  10d04e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d051:	5b                   	pop    %ebx                           
  10d052:	5e                   	pop    %esi                           
  10d053:	c9                   	leave                                 
  10d054:	c3                   	ret                                   
  10d055:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
  10d058:	83 ec 0c             	sub    $0xc,%esp                      
  10d05b:	56                   	push   %esi                           
  10d05c:	e8 93 05 00 00       	call   10d5f4 <_POSIX_Priority_Is_valid>
  10d061:	83 c4 10             	add    $0x10,%esp                     
  10d064:	84 c0                	test   %al,%al                        
  10d066:	74 e1                	je     10d049 <pthread_mutexattr_setprioceiling+0x15>
    return EINVAL;                                                    
                                                                      
  attr->prio_ceiling = prioceiling;                                   
  10d068:	89 73 08             	mov    %esi,0x8(%ebx)                 
  return 0;                                                           
  10d06b:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10d06d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d070:	5b                   	pop    %ebx                           
  10d071:	5e                   	pop    %esi                           
  10d072:	c9                   	leave                                 
  10d073:	c3                   	ret                                   
                                                                      

0010d09c <pthread_mutexattr_setpshared>: int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) {
  10d09c:	55                   	push   %ebp                           
  10d09d:	89 e5                	mov    %esp,%ebp                      
  10d09f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d0a2:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  10d0a5:	85 c0                	test   %eax,%eax                      
  10d0a7:	74 0b                	je     10d0b4 <pthread_mutexattr_setpshared+0x18>
  10d0a9:	8b 08                	mov    (%eax),%ecx                    
  10d0ab:	85 c9                	test   %ecx,%ecx                      
  10d0ad:	74 05                	je     10d0b4 <pthread_mutexattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10d0af:	83 fa 01             	cmp    $0x1,%edx                      
  10d0b2:	76 08                	jbe    10d0bc <pthread_mutexattr_setpshared+0x20><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10d0b4:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10d0b9:	c9                   	leave                                 
  10d0ba:	c3                   	ret                                   
  10d0bb:	90                   	nop                                   
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10d0bc:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10d0bf:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10d0c1:	c9                   	leave                                 
  10d0c2:	c3                   	ret                                   
                                                                      

0010b290 <pthread_mutexattr_settype>: #if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) int pthread_mutexattr_settype( pthread_mutexattr_t *attr, int type ) {
  10b290:	55                   	push   %ebp                           
  10b291:	89 e5                	mov    %esp,%ebp                      
  10b293:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b296:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  10b299:	85 c0                	test   %eax,%eax                      
  10b29b:	74 0b                	je     10b2a8 <pthread_mutexattr_settype+0x18>
  10b29d:	8b 08                	mov    (%eax),%ecx                    
  10b29f:	85 c9                	test   %ecx,%ecx                      
  10b2a1:	74 05                	je     10b2a8 <pthread_mutexattr_settype+0x18><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( type ) {                                                   
  10b2a3:	83 fa 03             	cmp    $0x3,%edx                      
  10b2a6:	76 08                	jbe    10b2b0 <pthread_mutexattr_settype+0x20>
    case PTHREAD_MUTEX_DEFAULT:                                       
      attr->type = type;                                              
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10b2a8:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10b2ad:	c9                   	leave                                 
  10b2ae:	c3                   	ret                                   
  10b2af:	90                   	nop                                   
  switch ( type ) {                                                   
    case PTHREAD_MUTEX_NORMAL:                                        
    case PTHREAD_MUTEX_RECURSIVE:                                     
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      attr->type = type;                                              
  10b2b0:	89 50 10             	mov    %edx,0x10(%eax)                
      return 0;                                                       
  10b2b3:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10b2b5:	c9                   	leave                                 
  10b2b6:	c3                   	ret                                   
                                                                      

0010bde4 <pthread_once>: int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) {
  10bde4:	55                   	push   %ebp                           
  10bde5:	89 e5                	mov    %esp,%ebp                      
  10bde7:	57                   	push   %edi                           
  10bde8:	56                   	push   %esi                           
  10bde9:	53                   	push   %ebx                           
  10bdea:	83 ec 1c             	sub    $0x1c,%esp                     
  10bded:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10bdf0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !once_control || !init_routine )                               
  10bdf3:	85 db                	test   %ebx,%ebx                      
  10bdf5:	74 51                	je     10be48 <pthread_once+0x64>     
  10bdf7:	85 f6                	test   %esi,%esi                      
  10bdf9:	74 4d                	je     10be48 <pthread_once+0x64>     
    return EINVAL;                                                    
                                                                      
  if ( !once_control->init_executed ) {                               
  10bdfb:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  10bdfe:	85 ff                	test   %edi,%edi                      
  10be00:	74 0a                	je     10be0c <pthread_once+0x28>     
      once_control->init_executed = true;                             
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
  10be02:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10be04:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10be07:	5b                   	pop    %ebx                           
  10be08:	5e                   	pop    %esi                           
  10be09:	5f                   	pop    %edi                           
  10be0a:	c9                   	leave                                 
  10be0b:	c3                   	ret                                   
  if ( !once_control || !init_routine )                               
    return EINVAL;                                                    
                                                                      
  if ( !once_control->init_executed ) {                               
    rtems_mode saveMode;                                              
    rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 
  10be0c:	51                   	push   %ecx                           
  10be0d:	8d 7d e4             	lea    -0x1c(%ebp),%edi               
  10be10:	57                   	push   %edi                           
  10be11:	68 00 01 00 00       	push   $0x100                         
  10be16:	68 00 01 00 00       	push   $0x100                         
  10be1b:	e8 ec 0b 00 00       	call   10ca0c <rtems_task_mode>       
    if ( !once_control->init_executed ) {                             
  10be20:	83 c4 10             	add    $0x10,%esp                     
  10be23:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10be26:	85 d2                	test   %edx,%edx                      
  10be28:	74 2e                	je     10be58 <pthread_once+0x74>     <== ALWAYS TAKEN
      once_control->is_initialized = true;                            
      once_control->init_executed = true;                             
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  10be2a:	50                   	push   %eax                           
  10be2b:	57                   	push   %edi                           
  10be2c:	68 00 01 00 00       	push   $0x100                         
  10be31:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10be34:	e8 d3 0b 00 00       	call   10ca0c <rtems_task_mode>       
  10be39:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  return 0;                                                           
  10be3c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10be3e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10be41:	5b                   	pop    %ebx                           
  10be42:	5e                   	pop    %esi                           
  10be43:	5f                   	pop    %edi                           
  10be44:	c9                   	leave                                 
  10be45:	c3                   	ret                                   
  10be46:	66 90                	xchg   %ax,%ax                        
  pthread_once_t  *once_control,                                      
  void           (*init_routine)(void)                                
)                                                                     
{                                                                     
  if ( !once_control || !init_routine )                               
    return EINVAL;                                                    
  10be48:	b8 16 00 00 00       	mov    $0x16,%eax                     
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
}                                                                     
  10be4d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10be50:	5b                   	pop    %ebx                           
  10be51:	5e                   	pop    %esi                           
  10be52:	5f                   	pop    %edi                           
  10be53:	c9                   	leave                                 
  10be54:	c3                   	ret                                   
  10be55:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !once_control->init_executed ) {                               
    rtems_mode saveMode;                                              
    rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 
    if ( !once_control->init_executed ) {                             
      once_control->is_initialized = true;                            
  10be58:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
      once_control->init_executed = true;                             
  10be5e:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)                 
      (*init_routine)();                                              
  10be65:	ff d6                	call   *%esi                          
  10be67:	eb c1                	jmp    10be2a <pthread_once+0x46>     
                                                                      

0010c4c8 <pthread_rwlock_destroy>: */ int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ) {
  10c4c8:	55                   	push   %ebp                           
  10c4c9:	89 e5                	mov    %esp,%ebp                      
  10c4cb:	53                   	push   %ebx                           
  10c4cc:	83 ec 14             	sub    $0x14,%esp                     
  10c4cf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_RWLock_Control *the_rwlock = NULL;                            
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
  10c4d2:	85 c0                	test   %eax,%eax                      
  10c4d4:	74 42                	je     10c518 <pthread_rwlock_destroy+0x50>
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (        
  pthread_rwlock_t *RWLock,                                           
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_RWLock_Control *) _Objects_Get(                       
  10c4d6:	53                   	push   %ebx                           
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10c4d7:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10c4da:	52                   	push   %edx                           
  10c4db:	ff 30                	pushl  (%eax)                         
  10c4dd:	68 20 ba 12 00       	push   $0x12ba20                      
  10c4e2:	e8 d9 2b 00 00       	call   10f0c0 <_Objects_Get>          
  10c4e7:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10c4e9:	83 c4 10             	add    $0x10,%esp                     
  10c4ec:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10c4ef:	85 c9                	test   %ecx,%ecx                      
  10c4f1:	75 25                	jne    10c518 <pthread_rwlock_destroy+0x50>
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  If there is at least one thread waiting, then do not delete it.
       */                                                             
      if ( _Thread_queue_First( &the_rwlock->RWLock.Wait_queue ) != NULL ) {
  10c4f3:	83 ec 0c             	sub    $0xc,%esp                      
  10c4f6:	8d 40 10             	lea    0x10(%eax),%eax                
  10c4f9:	50                   	push   %eax                           
  10c4fa:	e8 19 3f 00 00       	call   110418 <_Thread_queue_First>   
  10c4ff:	83 c4 10             	add    $0x10,%esp                     
  10c502:	85 c0                	test   %eax,%eax                      
  10c504:	74 1e                	je     10c524 <pthread_rwlock_destroy+0x5c>
        _Thread_Enable_dispatch();                                    
  10c506:	e8 3d 37 00 00       	call   10fc48 <_Thread_Enable_dispatch>
        return EBUSY;                                                 
  10c50b:	b8 10 00 00 00       	mov    $0x10,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c510:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c513:	c9                   	leave                                 
  10c514:	c3                   	ret                                   
  10c515:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c518:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10c51d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c520:	c9                   	leave                                 
  10c521:	c3                   	ret                                   
  10c522:	66 90                	xchg   %ax,%ax                        
                                                                      
      /*                                                              
       *  POSIX doesn't require behavior when it is locked.           
       */                                                             
                                                                      
      _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object );
  10c524:	83 ec 08             	sub    $0x8,%esp                      
  10c527:	53                   	push   %ebx                           
  10c528:	68 20 ba 12 00       	push   $0x12ba20                      
  10c52d:	e8 56 27 00 00       	call   10ec88 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free (                        
  POSIX_RWLock_Control *the_RWLock                                    
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_RWLock_Information, &the_RWLock->Object );   
  10c532:	58                   	pop    %eax                           
  10c533:	5a                   	pop    %edx                           
  10c534:	53                   	push   %ebx                           
  10c535:	68 20 ba 12 00       	push   $0x12ba20                      
  10c53a:	e8 41 2a 00 00       	call   10ef80 <_Objects_Free>         
                                                                      
      _POSIX_RWLock_Free( the_rwlock );                               
                                                                      
      _Thread_Enable_dispatch();                                      
  10c53f:	e8 04 37 00 00       	call   10fc48 <_Thread_Enable_dispatch>
      return 0;                                                       
  10c544:	83 c4 10             	add    $0x10,%esp                     
  10c547:	31 c0                	xor    %eax,%eax                      
  10c549:	eb d2                	jmp    10c51d <pthread_rwlock_destroy+0x55>
                                                                      

0010c54c <pthread_rwlock_init>: int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) {
  10c54c:	55                   	push   %ebp                           
  10c54d:	89 e5                	mov    %esp,%ebp                      
  10c54f:	56                   	push   %esi                           
  10c550:	53                   	push   %ebx                           
  10c551:	83 ec 20             	sub    $0x20,%esp                     
  10c554:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c557:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  const pthread_rwlockattr_t  *the_attr;                              
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !rwlock )                                                      
  10c55a:	85 db                	test   %ebx,%ebx                      
  10c55c:	74 15                	je     10c573 <pthread_rwlock_init+0x27>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
  10c55e:	85 f6                	test   %esi,%esi                      
  10c560:	0f 84 8e 00 00 00    	je     10c5f4 <pthread_rwlock_init+0xa8>
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
  10c566:	8b 16                	mov    (%esi),%edx                    
  10c568:	85 d2                	test   %edx,%edx                      
  10c56a:	74 07                	je     10c573 <pthread_rwlock_init+0x27><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
  10c56c:	8b 46 04             	mov    0x4(%esi),%eax                 
  10c56f:	85 c0                	test   %eax,%eax                      
  10c571:	74 0d                	je     10c580 <pthread_rwlock_init+0x34><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
  10c573:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10c578:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c57b:	5b                   	pop    %ebx                           
  10c57c:	5e                   	pop    %esi                           
  10c57d:	c9                   	leave                                 
  10c57e:	c3                   	ret                                   
  10c57f:	90                   	nop                                   
 */                                                                   
RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(         
  CORE_RWLock_Attributes *the_attributes                              
)                                                                     
{                                                                     
  the_attributes->XXX = 0;                                            
  10c580:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c587:	a1 d0 b7 12 00       	mov    0x12b7d0,%eax                  
  10c58c:	40                   	inc    %eax                           
  10c58d:	a3 d0 b7 12 00       	mov    %eax,0x12b7d0                  
 *  the inactive chain of free RWLock control blocks.                 
 */                                                                   
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Allocate( void )
{                                                                     
  return (POSIX_RWLock_Control *)                                     
    _Objects_Allocate( &_POSIX_RWLock_Information );                  
  10c592:	83 ec 0c             	sub    $0xc,%esp                      
  10c595:	68 20 ba 12 00       	push   $0x12ba20                      
  10c59a:	e8 6d 26 00 00       	call   10ec0c <_Objects_Allocate>     
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
  10c59f:	83 c4 10             	add    $0x10,%esp                     
  10c5a2:	85 c0                	test   %eax,%eax                      
  10c5a4:	74 42                	je     10c5e8 <pthread_rwlock_init+0x9c>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes );    
  10c5a6:	83 ec 08             	sub    $0x8,%esp                      
  10c5a9:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10c5ac:	52                   	push   %edx                           
  10c5ad:	8d 50 10             	lea    0x10(%eax),%edx                
  10c5b0:	52                   	push   %edx                           
  10c5b1:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c5b4:	e8 3b 1e 00 00       	call   10e3f4 <_CORE_RWLock_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c5b9:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c5bc:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c5bf:	0f b7 f2             	movzwl %dx,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c5c2:	8b 0d 3c ba 12 00    	mov    0x12ba3c,%ecx                  
  10c5c8:	89 04 b1             	mov    %eax,(%ecx,%esi,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10c5cb:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
    &_POSIX_RWLock_Information,                                       
    &the_rwlock->Object,                                              
    0                                                                 
  );                                                                  
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
  10c5d2:	89 13                	mov    %edx,(%ebx)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10c5d4:	e8 6f 36 00 00       	call   10fc48 <_Thread_Enable_dispatch>
  return 0;                                                           
  10c5d9:	83 c4 10             	add    $0x10,%esp                     
  10c5dc:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c5de:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c5e1:	5b                   	pop    %ebx                           
  10c5e2:	5e                   	pop    %esi                           
  10c5e3:	c9                   	leave                                 
  10c5e4:	c3                   	ret                                   
  10c5e5:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
    _Thread_Enable_dispatch();                                        
  10c5e8:	e8 5b 36 00 00       	call   10fc48 <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10c5ed:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10c5f2:	eb 84                	jmp    10c578 <pthread_rwlock_init+0x2c>
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_rwlockattr_init( &default_attr );                  
  10c5f4:	83 ec 0c             	sub    $0xc,%esp                      
  10c5f7:	8d 75 ec             	lea    -0x14(%ebp),%esi               
  10c5fa:	56                   	push   %esi                           
  10c5fb:	e8 84 09 00 00       	call   10cf84 <pthread_rwlockattr_init>
  10c600:	83 c4 10             	add    $0x10,%esp                     
  10c603:	e9 5e ff ff ff       	jmp    10c566 <pthread_rwlock_init+0x1a>
                                                                      

0010c670 <pthread_rwlock_timedrdlock>: int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
  10c670:	55                   	push   %ebp                           
  10c671:	89 e5                	mov    %esp,%ebp                      
  10c673:	56                   	push   %esi                           
  10c674:	53                   	push   %ebx                           
  10c675:	83 ec 20             	sub    $0x20,%esp                     
  10c678:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
  10c67b:	85 db                	test   %ebx,%ebx                      
  10c67d:	74 7d                	je     10c6fc <pthread_rwlock_timedrdlock+0x8c>
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  10c67f:	83 ec 08             	sub    $0x8,%esp                      
  10c682:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10c685:	50                   	push   %eax                           
  10c686:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c689:	e8 f6 62 00 00       	call   112984 <_POSIX_Absolute_timeout_to_ticks>
  10c68e:	89 c6                	mov    %eax,%esi                      
  10c690:	83 c4 0c             	add    $0xc,%esp                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10c693:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c696:	50                   	push   %eax                           
  10c697:	ff 33                	pushl  (%ebx)                         
  10c699:	68 20 ba 12 00       	push   $0x12ba20                      
  10c69e:	e8 1d 2a 00 00       	call   10f0c0 <_Objects_Get>          
  switch ( location ) {                                               
  10c6a3:	83 c4 10             	add    $0x10,%esp                     
  10c6a6:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c6a9:	85 d2                	test   %edx,%edx                      
  10c6ab:	75 4f                	jne    10c6fc <pthread_rwlock_timedrdlock+0x8c>
int	_EXFUN(pthread_rwlock_init,                                       
	(pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr));  
int	_EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock));     
int	_EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock));    
int	_EXFUN(pthread_rwlock_timedrdlock,                                
  10c6ad:	83 fe 03             	cmp    $0x3,%esi                      
  10c6b0:	0f 94 c2             	sete   %dl                            
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
  10c6b3:	83 ec 0c             	sub    $0xc,%esp                      
  10c6b6:	6a 00                	push   $0x0                           
  10c6b8:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10c6bb:	0f b6 ca             	movzbl %dl,%ecx                       
  10c6be:	51                   	push   %ecx                           
  10c6bf:	ff 33                	pushl  (%ebx)                         
  10c6c1:	83 c0 10             	add    $0x10,%eax                     
  10c6c4:	50                   	push   %eax                           
  10c6c5:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10c6c8:	e8 5b 1d 00 00       	call   10e428 <_CORE_RWLock_Obtain_for_reading>
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10c6cd:	83 c4 20             	add    $0x20,%esp                     
  10c6d0:	e8 73 35 00 00       	call   10fc48 <_Thread_Enable_dispatch>
      if ( !do_wait ) {                                               
  10c6d5:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10c6d8:	84 d2                	test   %dl,%dl                        
  10c6da:	75 40                	jne    10c71c <pthread_rwlock_timedrdlock+0xac>
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
  10c6dc:	a1 78 bd 12 00       	mov    0x12bd78,%eax                  
  10c6e1:	8b 40 34             	mov    0x34(%eax),%eax                
  10c6e4:	83 f8 02             	cmp    $0x2,%eax                      
  10c6e7:	74 1f                	je     10c708 <pthread_rwlock_timedrdlock+0x98>
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
  10c6e9:	83 ec 0c             	sub    $0xc,%esp                      
  10c6ec:	50                   	push   %eax                           
  10c6ed:	e8 ee 00 00 00       	call   10c7e0 <_POSIX_RWLock_Translate_core_RWLock_return_code>
  10c6f2:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c6f5:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c6f8:	5b                   	pop    %ebx                           
  10c6f9:	5e                   	pop    %esi                           
  10c6fa:	c9                   	leave                                 
  10c6fb:	c3                   	ret                                   
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
	    return EINVAL;                                                   
  10c6fc:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c701:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c704:	5b                   	pop    %ebx                           
  10c705:	5e                   	pop    %esi                           
  10c706:	c9                   	leave                                 
  10c707:	c3                   	ret                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
  10c708:	85 f6                	test   %esi,%esi                      
  10c70a:	74 f0                	je     10c6fc <pthread_rwlock_timedrdlock+0x8c><== NEVER TAKEN
	    return EINVAL;                                                   
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
  10c70c:	4e                   	dec    %esi                           
  10c70d:	83 fe 01             	cmp    $0x1,%esi                      
  10c710:	77 d7                	ja     10c6e9 <pthread_rwlock_timedrdlock+0x79><== NEVER TAKEN
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
  10c712:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10c717:	eb e8                	jmp    10c701 <pthread_rwlock_timedrdlock+0x91>
  10c719:	8d 76 00             	lea    0x0(%esi),%esi                 
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
  10c71c:	a1 78 bd 12 00       	mov    0x12bd78,%eax                  
  10c721:	8b 40 34             	mov    0x34(%eax),%eax                
  10c724:	eb c3                	jmp    10c6e9 <pthread_rwlock_timedrdlock+0x79>
                                                                      

0010c728 <pthread_rwlock_timedwrlock>: int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
  10c728:	55                   	push   %ebp                           
  10c729:	89 e5                	mov    %esp,%ebp                      
  10c72b:	56                   	push   %esi                           
  10c72c:	53                   	push   %ebx                           
  10c72d:	83 ec 20             	sub    $0x20,%esp                     
  10c730:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
  10c733:	85 db                	test   %ebx,%ebx                      
  10c735:	74 7d                	je     10c7b4 <pthread_rwlock_timedwrlock+0x8c>
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  10c737:	83 ec 08             	sub    $0x8,%esp                      
  10c73a:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10c73d:	50                   	push   %eax                           
  10c73e:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c741:	e8 3e 62 00 00       	call   112984 <_POSIX_Absolute_timeout_to_ticks>
  10c746:	89 c6                	mov    %eax,%esi                      
  10c748:	83 c4 0c             	add    $0xc,%esp                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10c74b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c74e:	50                   	push   %eax                           
  10c74f:	ff 33                	pushl  (%ebx)                         
  10c751:	68 20 ba 12 00       	push   $0x12ba20                      
  10c756:	e8 65 29 00 00       	call   10f0c0 <_Objects_Get>          
  switch ( location ) {                                               
  10c75b:	83 c4 10             	add    $0x10,%esp                     
  10c75e:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c761:	85 d2                	test   %edx,%edx                      
  10c763:	75 4f                	jne    10c7b4 <pthread_rwlock_timedwrlock+0x8c>
        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
int	_EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock));    
int	_EXFUN(pthread_rwlock_timedwrlock,                                
  10c765:	83 fe 03             	cmp    $0x3,%esi                      
  10c768:	0f 94 c2             	sete   %dl                            
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
  10c76b:	83 ec 0c             	sub    $0xc,%esp                      
  10c76e:	6a 00                	push   $0x0                           
  10c770:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10c773:	0f b6 ca             	movzbl %dl,%ecx                       
  10c776:	51                   	push   %ecx                           
  10c777:	ff 33                	pushl  (%ebx)                         
  10c779:	83 c0 10             	add    $0x10,%eax                     
  10c77c:	50                   	push   %eax                           
  10c77d:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10c780:	e8 6b 1d 00 00       	call   10e4f0 <_CORE_RWLock_Obtain_for_writing>
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10c785:	83 c4 20             	add    $0x20,%esp                     
  10c788:	e8 bb 34 00 00       	call   10fc48 <_Thread_Enable_dispatch>
      if ( !do_wait &&                                                
  10c78d:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10c790:	84 d2                	test   %dl,%dl                        
  10c792:	75 40                	jne    10c7d4 <pthread_rwlock_timedwrlock+0xac>
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
  10c794:	a1 78 bd 12 00       	mov    0x12bd78,%eax                  
  10c799:	8b 40 34             	mov    0x34(%eax),%eax                
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
  10c79c:	83 f8 02             	cmp    $0x2,%eax                      
  10c79f:	74 1f                	je     10c7c0 <pthread_rwlock_timedwrlock+0x98>
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
  10c7a1:	83 ec 0c             	sub    $0xc,%esp                      
  10c7a4:	50                   	push   %eax                           
  10c7a5:	e8 36 00 00 00       	call   10c7e0 <_POSIX_RWLock_Translate_core_RWLock_return_code>
  10c7aa:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c7ad:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c7b0:	5b                   	pop    %ebx                           
  10c7b1:	5e                   	pop    %esi                           
  10c7b2:	c9                   	leave                                 
  10c7b3:	c3                   	ret                                   
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
	  return EINVAL;                                                     
  10c7b4:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c7b9:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c7bc:	5b                   	pop    %ebx                           
  10c7bd:	5e                   	pop    %esi                           
  10c7be:	c9                   	leave                                 
  10c7bf:	c3                   	ret                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
  10c7c0:	85 f6                	test   %esi,%esi                      
  10c7c2:	74 f0                	je     10c7b4 <pthread_rwlock_timedwrlock+0x8c><== NEVER TAKEN
	  return EINVAL;                                                     
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
  10c7c4:	4e                   	dec    %esi                           
  10c7c5:	83 fe 01             	cmp    $0x1,%esi                      
  10c7c8:	77 d7                	ja     10c7a1 <pthread_rwlock_timedwrlock+0x79><== NEVER TAKEN
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
  10c7ca:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10c7cf:	eb e8                	jmp    10c7b9 <pthread_rwlock_timedwrlock+0x91>
  10c7d1:	8d 76 00             	lea    0x0(%esi),%esi                 
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
  10c7d4:	a1 78 bd 12 00       	mov    0x12bd78,%eax                  
  10c7d9:	8b 40 34             	mov    0x34(%eax),%eax                
  10c7dc:	eb c3                	jmp    10c7a1 <pthread_rwlock_timedwrlock+0x79>
                                                                      

0010cf3c <pthread_rwlockattr_destroy>: */ int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr ) {
  10cf3c:	55                   	push   %ebp                           
  10cf3d:	89 e5                	mov    %esp,%ebp                      
  10cf3f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10cf42:	85 c0                	test   %eax,%eax                      
  10cf44:	74 12                	je     10cf58 <pthread_rwlockattr_destroy+0x1c>
  10cf46:	8b 10                	mov    (%eax),%edx                    
  10cf48:	85 d2                	test   %edx,%edx                      
  10cf4a:	74 0c                	je     10cf58 <pthread_rwlockattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10cf4c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10cf52:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10cf54:	c9                   	leave                                 
  10cf55:	c3                   	ret                                   
  10cf56:	66 90                	xchg   %ax,%ax                        
int pthread_rwlockattr_destroy(                                       
  pthread_rwlockattr_t *attr                                          
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10cf58:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10cf5d:	c9                   	leave                                 
  10cf5e:	c3                   	ret                                   
                                                                      

0010cfa8 <pthread_rwlockattr_setpshared>: int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) {
  10cfa8:	55                   	push   %ebp                           
  10cfa9:	89 e5                	mov    %esp,%ebp                      
  10cfab:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10cfae:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr )                                                        
  10cfb1:	85 c0                	test   %eax,%eax                      
  10cfb3:	74 0b                	je     10cfc0 <pthread_rwlockattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
  10cfb5:	8b 08                	mov    (%eax),%ecx                    
  10cfb7:	85 c9                	test   %ecx,%ecx                      
  10cfb9:	74 05                	je     10cfc0 <pthread_rwlockattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10cfbb:	83 fa 01             	cmp    $0x1,%edx                      
  10cfbe:	76 08                	jbe    10cfc8 <pthread_rwlockattr_setpshared+0x20><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10cfc0:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10cfc5:	c9                   	leave                                 
  10cfc6:	c3                   	ret                                   
  10cfc7:	90                   	nop                                   
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10cfc8:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10cfcb:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10cfcd:	c9                   	leave                                 
  10cfce:	c3                   	ret                                   
                                                                      

0010b25c <pthread_setcancelstate>: int pthread_setcancelstate( int state, int *oldstate ) {
  10b25c:	55                   	push   %ebp                           
  10b25d:	89 e5                	mov    %esp,%ebp                      
  10b25f:	53                   	push   %ebx                           
  10b260:	83 ec 04             	sub    $0x4,%esp                      
  10b263:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10b266:	8b 45 0c             	mov    0xc(%ebp),%eax                 
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
  10b269:	8b 0d f4 96 12 00    	mov    0x1296f4,%ecx                  
  10b26f:	85 c9                	test   %ecx,%ecx                      
  10b271:	75 15                	jne    10b288 <pthread_setcancelstate+0x2c>
    return EPROTO;                                                    
                                                                      
  if ( !oldstate )                                                    
  10b273:	85 c0                	test   %eax,%eax                      
  10b275:	74 05                	je     10b27c <pthread_setcancelstate+0x20>
    return EINVAL;                                                    
                                                                      
  if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE )
  10b277:	83 fa 01             	cmp    $0x1,%edx                      
  10b27a:	76 18                	jbe    10b294 <pthread_setcancelstate+0x38>
    return EINVAL;                                                    
  10b27c:	b8 16 00 00 00       	mov    $0x16,%eax                     
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
  10b281:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b284:	c9                   	leave                                 
  10b285:	c3                   	ret                                   
  10b286:	66 90                	xchg   %ax,%ax                        
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
  10b288:	b8 47 00 00 00       	mov    $0x47,%eax                     
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
  10b28d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b290:	c9                   	leave                                 
  10b291:	c3                   	ret                                   
  10b292:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE )
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10b294:	8b 0d f8 96 12 00    	mov    0x1296f8,%ecx                  
  10b29a:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b2a0:	8b 1d 50 91 12 00    	mov    0x129150,%ebx                  
  10b2a6:	43                   	inc    %ebx                           
  10b2a7:	89 1d 50 91 12 00    	mov    %ebx,0x129150                  
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldstate = thread_support->cancelability_state;                  
  10b2ad:	8b 99 d8 00 00 00    	mov    0xd8(%ecx),%ebx                
  10b2b3:	89 18                	mov    %ebx,(%eax)                    
    thread_support->cancelability_state = state;                      
  10b2b5:	89 91 d8 00 00 00    	mov    %edx,0xd8(%ecx)                
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
  10b2bb:	83 ec 0c             	sub    $0xc,%esp                      
  10b2be:	ff 35 f8 96 12 00    	pushl  0x1296f8                       
  10b2c4:	e8 93 54 00 00       	call   11075c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
  10b2c9:	83 c4 10             	add    $0x10,%esp                     
  10b2cc:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b2ce:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b2d1:	c9                   	leave                                 
  10b2d2:	c3                   	ret                                   
                                                                      

0010b2d4 <pthread_setcanceltype>: int pthread_setcanceltype( int type, int *oldtype ) {
  10b2d4:	55                   	push   %ebp                           
  10b2d5:	89 e5                	mov    %esp,%ebp                      
  10b2d7:	53                   	push   %ebx                           
  10b2d8:	83 ec 04             	sub    $0x4,%esp                      
  10b2db:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10b2de:	8b 45 0c             	mov    0xc(%ebp),%eax                 
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
  10b2e1:	8b 0d f4 96 12 00    	mov    0x1296f4,%ecx                  
  10b2e7:	85 c9                	test   %ecx,%ecx                      
  10b2e9:	75 15                	jne    10b300 <pthread_setcanceltype+0x2c>
    return EPROTO;                                                    
                                                                      
  if ( !oldtype )                                                     
  10b2eb:	85 c0                	test   %eax,%eax                      
  10b2ed:	74 05                	je     10b2f4 <pthread_setcanceltype+0x20>
    return EINVAL;                                                    
                                                                      
  if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS )
  10b2ef:	83 fa 01             	cmp    $0x1,%edx                      
  10b2f2:	76 18                	jbe    10b30c <pthread_setcanceltype+0x38>
    return EINVAL;                                                    
  10b2f4:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
}                                                                     
  10b2f9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b2fc:	c9                   	leave                                 
  10b2fd:	c3                   	ret                                   
  10b2fe:	66 90                	xchg   %ax,%ax                        
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
  10b300:	b8 47 00 00 00       	mov    $0x47,%eax                     
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
}                                                                     
  10b305:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b308:	c9                   	leave                                 
  10b309:	c3                   	ret                                   
  10b30a:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS )
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10b30c:	8b 0d f8 96 12 00    	mov    0x1296f8,%ecx                  
  10b312:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
  10b318:	8b 1d 50 91 12 00    	mov    0x129150,%ebx                  
  10b31e:	43                   	inc    %ebx                           
  10b31f:	89 1d 50 91 12 00    	mov    %ebx,0x129150                  
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldtype = thread_support->cancelability_type;                    
  10b325:	8b 99 dc 00 00 00    	mov    0xdc(%ecx),%ebx                
  10b32b:	89 18                	mov    %ebx,(%eax)                    
    thread_support->cancelability_type = type;                        
  10b32d:	89 91 dc 00 00 00    	mov    %edx,0xdc(%ecx)                
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
  10b333:	83 ec 0c             	sub    $0xc,%esp                      
  10b336:	ff 35 f8 96 12 00    	pushl  0x1296f8                       
  10b33c:	e8 1b 54 00 00       	call   11075c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
  10b341:	83 c4 10             	add    $0x10,%esp                     
  10b344:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b346:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b349:	c9                   	leave                                 
  10b34a:	c3                   	ret                                   
                                                                      

0010dd58 <pthread_setschedparam>: int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) {
  10dd58:	55                   	push   %ebp                           
  10dd59:	89 e5                	mov    %esp,%ebp                      
  10dd5b:	57                   	push   %edi                           
  10dd5c:	56                   	push   %esi                           
  10dd5d:	53                   	push   %ebx                           
  10dd5e:	83 ec 2c             	sub    $0x2c,%esp                     
  10dd61:	8b 75 10             	mov    0x10(%ebp),%esi                
  int                                  rc;                            
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
  10dd64:	85 f6                	test   %esi,%esi                      
  10dd66:	0f 84 c8 00 00 00    	je     10de34 <pthread_setschedparam+0xdc>
    return EINVAL;                                                    
                                                                      
  rc = _POSIX_Thread_Translate_sched_param(                           
  10dd6c:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10dd6f:	50                   	push   %eax                           
  10dd70:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10dd73:	50                   	push   %eax                           
  10dd74:	56                   	push   %esi                           
  10dd75:	ff 75 0c             	pushl  0xc(%ebp)                      
  10dd78:	e8 23 5c 00 00       	call   1139a0 <_POSIX_Thread_Translate_sched_param>
  10dd7d:	89 c3                	mov    %eax,%ebx                      
    policy,                                                           
    param,                                                            
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
  10dd7f:	83 c4 10             	add    $0x10,%esp                     
  10dd82:	85 c0                	test   %eax,%eax                      
  10dd84:	74 0a                	je     10dd90 <pthread_setschedparam+0x38>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10dd86:	89 d8                	mov    %ebx,%eax                      
  10dd88:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10dd8b:	5b                   	pop    %ebx                           
  10dd8c:	5e                   	pop    %esi                           
  10dd8d:	5f                   	pop    %edi                           
  10dd8e:	c9                   	leave                                 
  10dd8f:	c3                   	ret                                   
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
  10dd90:	83 ec 08             	sub    $0x8,%esp                      
  10dd93:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10dd96:	50                   	push   %eax                           
  10dd97:	ff 75 08             	pushl  0x8(%ebp)                      
  10dd9a:	e8 45 2b 00 00       	call   1108e4 <_Thread_Get>           
  10dd9f:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10dda1:	83 c4 10             	add    $0x10,%esp                     
  10dda4:	8b 7d dc             	mov    -0x24(%ebp),%edi               
  10dda7:	85 ff                	test   %edi,%edi                      
  10dda9:	0f 85 95 00 00 00    	jne    10de44 <pthread_setschedparam+0xec>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  10ddaf:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10ddb5:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
  10ddb8:	83 b8 84 00 00 00 04 	cmpl   $0x4,0x84(%eax)                
  10ddbf:	0f 84 cb 00 00 00    	je     10de90 <pthread_setschedparam+0x138>
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
  10ddc5:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ddc8:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10ddcb:	89 81 84 00 00 00    	mov    %eax,0x84(%ecx)                
      api->schedparam  = *param;                                      
  10ddd1:	89 cf                	mov    %ecx,%edi                      
  10ddd3:	81 c7 88 00 00 00    	add    $0x88,%edi                     
  10ddd9:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10ddde:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
      the_thread->budget_algorithm = budget_algorithm;                
  10dde0:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10dde3:	89 42 7c             	mov    %eax,0x7c(%edx)                
      the_thread->budget_callout   = budget_callout;                  
  10dde6:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10dde9:	89 82 80 00 00 00    	mov    %eax,0x80(%edx)                
                                                                      
      switch ( api->schedpolicy ) {                                   
  10ddef:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10ddf2:	85 f6                	test   %esi,%esi                      
  10ddf4:	78 2e                	js     10de24 <pthread_setschedparam+0xcc><== NEVER TAKEN
  10ddf6:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)                 
  10ddfa:	7f 58                	jg     10de54 <pthread_setschedparam+0xfc>
        case SCHED_OTHER:                                             
        case SCHED_FIFO:                                              
        case SCHED_RR:                                                
          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;  
  10ddfc:	a1 60 cd 12 00       	mov    0x12cd60,%eax                  
  10de01:	89 42 78             	mov    %eax,0x78(%edx)                
  10de04:	0f b6 05 3c 8a 12 00 	movzbl 0x128a3c,%eax                  
  10de0b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10de0e:	2b 81 88 00 00 00    	sub    0x88(%ecx),%eax                
                                                                      
          the_thread->real_priority =                                 
  10de14:	89 42 18             	mov    %eax,0x18(%edx)                
            _POSIX_Priority_To_core( api->schedparam.sched_priority );
                                                                      
          _Thread_Change_priority(                                    
  10de17:	51                   	push   %ecx                           
  10de18:	6a 01                	push   $0x1                           
  10de1a:	50                   	push   %eax                           
  10de1b:	52                   	push   %edx                           
  10de1c:	e8 67 26 00 00       	call   110488 <_Thread_Change_priority>
             the_thread,                                              
             the_thread->real_priority,                               
             true                                                     
          );                                                          
          break;                                                      
  10de21:	83 c4 10             	add    $0x10,%esp                     
          _Watchdog_Remove( &api->Sporadic_timer );                   
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
          break;                                                      
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
  10de24:	e8 97 2a 00 00       	call   1108c0 <_Thread_Enable_dispatch>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10de29:	89 d8                	mov    %ebx,%eax                      
  10de2b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10de2e:	5b                   	pop    %ebx                           
  10de2f:	5e                   	pop    %esi                           
  10de30:	5f                   	pop    %edi                           
  10de31:	c9                   	leave                                 
  10de32:	c3                   	ret                                   
  10de33:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
    return EINVAL;                                                    
  10de34:	bb 16 00 00 00       	mov    $0x16,%ebx                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10de39:	89 d8                	mov    %ebx,%eax                      
  10de3b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10de3e:	5b                   	pop    %ebx                           
  10de3f:	5e                   	pop    %esi                           
  10de40:	5f                   	pop    %edi                           
  10de41:	c9                   	leave                                 
  10de42:	c3                   	ret                                   
  10de43:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10de44:	bb 03 00 00 00       	mov    $0x3,%ebx                      
}                                                                     
  10de49:	89 d8                	mov    %ebx,%eax                      
  10de4b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10de4e:	5b                   	pop    %ebx                           
  10de4f:	5e                   	pop    %esi                           
  10de50:	5f                   	pop    %edi                           
  10de51:	c9                   	leave                                 
  10de52:	c3                   	ret                                   
  10de53:	90                   	nop                                   
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
      the_thread->budget_algorithm = budget_algorithm;                
      the_thread->budget_callout   = budget_callout;                  
                                                                      
      switch ( api->schedpolicy ) {                                   
  10de54:	83 7d 0c 04          	cmpl   $0x4,0xc(%ebp)                 
  10de58:	75 ca                	jne    10de24 <pthread_setschedparam+0xcc><== NEVER TAKEN
             true                                                     
          );                                                          
          break;                                                      
                                                                      
        case SCHED_SPORADIC:                                          
          api->ss_high_priority = api->schedparam.sched_priority;     
  10de5a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10de5d:	8b 81 88 00 00 00    	mov    0x88(%ecx),%eax                
  10de63:	89 81 a4 00 00 00    	mov    %eax,0xa4(%ecx)                
          _Watchdog_Remove( &api->Sporadic_timer );                   
  10de69:	83 ec 0c             	sub    $0xc,%esp                      
  10de6c:	89 c8                	mov    %ecx,%eax                      
  10de6e:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10de73:	50                   	push   %eax                           
  10de74:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10de77:	e8 4c 3a 00 00       	call   1118c8 <_Watchdog_Remove>      
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
  10de7c:	58                   	pop    %eax                           
  10de7d:	5a                   	pop    %edx                           
  10de7e:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  10de81:	52                   	push   %edx                           
  10de82:	6a 00                	push   $0x0                           
  10de84:	e8 b3 fd ff ff       	call   10dc3c <_POSIX_Threads_Sporadic_budget_TSR>
          break;                                                      
  10de89:	83 c4 10             	add    $0x10,%esp                     
  10de8c:	eb 96                	jmp    10de24 <pthread_setschedparam+0xcc>
  10de8e:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
  10de90:	83 ec 0c             	sub    $0xc,%esp                      
  10de93:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10de98:	50                   	push   %eax                           
  10de99:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10de9c:	e8 27 3a 00 00       	call   1118c8 <_Watchdog_Remove>      
  10dea1:	83 c4 10             	add    $0x10,%esp                     
  10dea4:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  10dea7:	e9 19 ff ff ff       	jmp    10ddc5 <pthread_setschedparam+0x6d>
                                                                      

00111d74 <pthread_sigmask>: int pthread_sigmask( int how, const sigset_t *set, sigset_t *oset ) {
  111d74:	55                   	push   %ebp                           
  111d75:	89 e5                	mov    %esp,%ebp                      
  111d77:	56                   	push   %esi                           
  111d78:	53                   	push   %ebx                           
  111d79:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  111d7c:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  111d7f:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
  111d82:	85 d2                	test   %edx,%edx                      
  111d84:	0f 84 8a 00 00 00    	je     111e14 <pthread_sigmask+0xa0>  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
  111d8a:	a1 f8 a3 12 00       	mov    0x12a3f8,%eax                  
  111d8f:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
                                                                      
  if ( oset )                                                         
  111d95:	85 db                	test   %ebx,%ebx                      
  111d97:	74 0c                	je     111da5 <pthread_sigmask+0x31>  
    *oset = api->signals_blocked;                                     
  111d99:	8b b0 d0 00 00 00    	mov    0xd0(%eax),%esi                
  111d9f:	89 33                	mov    %esi,(%ebx)                    
                                                                      
  if ( !set )                                                         
  111da1:	85 d2                	test   %edx,%edx                      
  111da3:	74 3b                	je     111de0 <pthread_sigmask+0x6c>  
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
  111da5:	83 f9 01             	cmp    $0x1,%ecx                      
  111da8:	74 5e                	je     111e08 <pthread_sigmask+0x94>  
  111daa:	83 f9 02             	cmp    $0x2,%ecx                      
  111dad:	74 39                	je     111de8 <pthread_sigmask+0x74>  
  111daf:	85 c9                	test   %ecx,%ecx                      
  111db1:	75 41                	jne    111df4 <pthread_sigmask+0x80>  
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
      break;                                                          
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
  111db3:	8b 12                	mov    (%edx),%edx                    
  111db5:	89 90 d0 00 00 00    	mov    %edx,0xd0(%eax)                
  /* XXX are there critical section problems here? */                 
                                                                      
  /* XXX evaluate the new set */                                      
                                                                      
  if ( ~api->signals_blocked &                                        
       (api->signals_pending | _POSIX_signals_Pending) ) {            
  111dbb:	8b 15 68 a6 12 00    	mov    0x12a668,%edx                  
  111dc1:	0b 90 d4 00 00 00    	or     0xd4(%eax),%edx                
                                                                      
  /* XXX are there critical section problems here? */                 
                                                                      
  /* XXX evaluate the new set */                                      
                                                                      
  if ( ~api->signals_blocked &                                        
  111dc7:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  111dcd:	f7 d0                	not    %eax                           
  111dcf:	85 c2                	test   %eax,%edx                      
  111dd1:	74 0d                	je     111de0 <pthread_sigmask+0x6c>  
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  111dd3:	e8 a4 c9 ff ff       	call   10e77c <_Thread_Dispatch>      
  }                                                                   
                                                                      
  return 0;                                                           
  111dd8:	31 c0                	xor    %eax,%eax                      
}                                                                     
  111dda:	5b                   	pop    %ebx                           
  111ddb:	5e                   	pop    %esi                           
  111ddc:	c9                   	leave                                 
  111ddd:	c3                   	ret                                   
  111dde:	66 90                	xchg   %ax,%ax                        
  if ( ~api->signals_blocked &                                        
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  }                                                                   
                                                                      
  return 0;                                                           
  111de0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  111de2:	5b                   	pop    %ebx                           
  111de3:	5e                   	pop    %esi                           
  111de4:	c9                   	leave                                 
  111de5:	c3                   	ret                                   
  111de6:	66 90                	xchg   %ax,%ax                        
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
  111de8:	8b 12                	mov    (%edx),%edx                    
  111dea:	f7 d2                	not    %edx                           
  111dec:	21 90 d0 00 00 00    	and    %edx,0xd0(%eax)                
      break;                                                          
  111df2:	eb c7                	jmp    111dbb <pthread_sigmask+0x47>  
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
      break;                                                          
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  111df4:	e8 e7 24 00 00       	call   1142e0 <__errno>               
  111df9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  111dff:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
  111e04:	5b                   	pop    %ebx                           
  111e05:	5e                   	pop    %esi                           
  111e06:	c9                   	leave                                 
  111e07:	c3                   	ret                                   
  if ( !set )                                                         
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
  111e08:	8b 12                	mov    (%edx),%edx                    
  111e0a:	09 90 d0 00 00 00    	or     %edx,0xd0(%eax)                
      break;                                                          
  111e10:	eb a9                	jmp    111dbb <pthread_sigmask+0x47>  
  111e12:	66 90                	xchg   %ax,%ax                        
  sigset_t         *oset                                              
)                                                                     
{                                                                     
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
  111e14:	85 db                	test   %ebx,%ebx                      
  111e16:	74 dc                	je     111df4 <pthread_sigmask+0x80>  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
  111e18:	a1 f8 a3 12 00       	mov    0x12a3f8,%eax                  
  111e1d:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  111e23:	e9 71 ff ff ff       	jmp    111d99 <pthread_sigmask+0x25>  
                                                                      

0010bbc8 <pthread_testcancel>: * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) {
  10bbc8:	55                   	push   %ebp                           
  10bbc9:	89 e5                	mov    %esp,%ebp                      
  10bbcb:	83 ec 08             	sub    $0x8,%esp                      
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
  10bbce:	8b 0d 94 9e 12 00    	mov    0x129e94,%ecx                  
  10bbd4:	85 c9                	test   %ecx,%ecx                      
  10bbd6:	75 44                	jne    10bc1c <pthread_testcancel+0x54><== NEVER TAKEN
    return;                                                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10bbd8:	a1 98 9e 12 00       	mov    0x129e98,%eax                  
  10bbdd:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10bbe3:	8b 15 f0 98 12 00    	mov    0x1298f0,%edx                  
  10bbe9:	42                   	inc    %edx                           
  10bbea:	89 15 f0 98 12 00    	mov    %edx,0x1298f0                  
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
  10bbf0:	8b 90 d8 00 00 00    	mov    0xd8(%eax),%edx                
  10bbf6:	85 d2                	test   %edx,%edx                      
  10bbf8:	75 26                	jne    10bc20 <pthread_testcancel+0x58><== NEVER TAKEN
  10bbfa:	8b 80 e0 00 00 00    	mov    0xe0(%eax),%eax                
  10bc00:	85 c0                	test   %eax,%eax                      
  10bc02:	74 1c                	je     10bc20 <pthread_testcancel+0x58>
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
  10bc04:	e8 8f 29 00 00       	call   10e598 <_Thread_Enable_dispatch>
                                                                      
  if ( cancel )                                                       
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
  10bc09:	83 ec 08             	sub    $0x8,%esp                      
  10bc0c:	6a ff                	push   $0xffffffff                    
  10bc0e:	ff 35 98 9e 12 00    	pushl  0x129e98                       
  10bc14:	e8 8f 5b 00 00       	call   1117a8 <_POSIX_Thread_Exit>    
  10bc19:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
}                                                                     
  10bc1c:	c9                   	leave                                 <== NOT EXECUTED
  10bc1d:	c3                   	ret                                   <== NOT EXECUTED
  10bc1e:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
  10bc20:	c9                   	leave                                 
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
  10bc21:	e9 72 29 00 00       	jmp    10e598 <_Thread_Enable_dispatch>
                                                                      

0010c598 <rtems_aio_enqueue>: * errno - otherwise */ int rtems_aio_enqueue (rtems_aio_request *req) {
  10c598:	55                   	push   %ebp                           
  10c599:	89 e5                	mov    %esp,%ebp                      
  10c59b:	57                   	push   %edi                           
  10c59c:	56                   	push   %esi                           
  10c59d:	53                   	push   %ebx                           
  10c59e:	83 ec 58             	sub    $0x58,%esp                     
  10c5a1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  struct sched_param param;                                           
                                                                      
  /* The queue should be initialized */                               
  AIO_assert (aio_request_queue.initialized == AIO_QUEUE_INITIALIZED);
                                                                      
  result = pthread_mutex_lock (&aio_request_queue.mutex);             
  10c5a4:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c5a9:	e8 86 09 00 00       	call   10cf34 <pthread_mutex_lock>    
  10c5ae:	89 c6                	mov    %eax,%esi                      
  if (result != 0) {                                                  
  10c5b0:	83 c4 10             	add    $0x10,%esp                     
  10c5b3:	85 c0                	test   %eax,%eax                      
  10c5b5:	0f 85 c1 00 00 00    	jne    10c67c <rtems_aio_enqueue+0xe4><== NEVER TAKEN
    return result;                                                    
  }                                                                   
                                                                      
  /* _POSIX_PRIORITIZED_IO and _POSIX_PRIORITY_SCHEDULING are defined,
     we can use aio_reqprio to lower the priority of the request */   
  pthread_getschedparam (pthread_self(), &policy, ¶m);            
  10c5bb:	e8 20 12 00 00       	call   10d7e0 <pthread_self>          
  10c5c0:	51                   	push   %ecx                           
  10c5c1:	8d 55 c4             	lea    -0x3c(%ebp),%edx               
  10c5c4:	52                   	push   %edx                           
  10c5c5:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  10c5c8:	52                   	push   %edx                           
  10c5c9:	50                   	push   %eax                           
  10c5ca:	e8 e1 0d 00 00       	call   10d3b0 <pthread_getschedparam> 
                                                                      
  req->caller_thread = pthread_self ();                               
  10c5cf:	e8 0c 12 00 00       	call   10d7e0 <pthread_self>          
  10c5d4:	89 43 10             	mov    %eax,0x10(%ebx)                
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
  10c5d7:	8b 43 14             	mov    0x14(%ebx),%eax                
  10c5da:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10c5dd:	2b 50 14             	sub    0x14(%eax),%edx                
  10c5e0:	89 53 0c             	mov    %edx,0xc(%ebx)                 
  req->policy = policy;                                               
  10c5e3:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10c5e6:	89 53 08             	mov    %edx,0x8(%ebx)                 
  req->aiocbp->error_code = EINPROGRESS;                              
  10c5e9:	c7 40 30 77 00 00 00 	movl   $0x77,0x30(%eax)               
  req->aiocbp->return_value = 0;                                      
  10c5f0:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
  10c5f7:	83 c4 10             	add    $0x10,%esp                     
  10c5fa:	8b 15 08 ab 12 00    	mov    0x12ab08,%edx                  
  10c600:	85 d2                	test   %edx,%edx                      
  10c602:	75 0d                	jne    10c611 <rtems_aio_enqueue+0x79><== NEVER TAKEN
  10c604:	83 3d 04 ab 12 00 04 	cmpl   $0x4,0x12ab04                  
  10c60b:	0f 8e 83 00 00 00    	jle    10c694 <rtems_aio_enqueue+0xfc>
  else                                                                
    {                                                                 
      /* the maximum number of threads has been already created       
	 even though some of them might be idle.                             
	 The request belongs to one of the active fd chain */                
      r_chain = rtems_aio_search_fd (&aio_request_queue.work_req,     
  10c611:	51                   	push   %ecx                           
  10c612:	6a 00                	push   $0x0                           
  10c614:	ff 30                	pushl  (%eax)                         
  10c616:	68 e8 aa 12 00       	push   $0x12aae8                      
  10c61b:	e8 28 fb ff ff       	call   10c148 <rtems_aio_search_fd>   
  10c620:	89 c7                	mov    %eax,%edi                      
				     req->aiocbp->aio_fildes, 0);                                 
      if (r_chain != NULL)                                            
  10c622:	83 c4 10             	add    $0x10,%esp                     
  10c625:	85 c0                	test   %eax,%eax                      
  10c627:	0f 84 df 00 00 00    	je     10c70c <rtems_aio_enqueue+0x174>
	{                                                                    
	  pthread_mutex_lock (&r_chain->mutex);                              
  10c62d:	8d 57 1c             	lea    0x1c(%edi),%edx                
  10c630:	83 ec 0c             	sub    $0xc,%esp                      
  10c633:	52                   	push   %edx                           
  10c634:	89 55 b4             	mov    %edx,-0x4c(%ebp)               
  10c637:	e8 f8 08 00 00       	call   10cf34 <pthread_mutex_lock>    
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
  10c63c:	58                   	pop    %eax                           
  10c63d:	5a                   	pop    %edx                           
  10c63e:	53                   	push   %ebx                           
  10c63f:	8d 47 08             	lea    0x8(%edi),%eax                 
  10c642:	50                   	push   %eax                           
  10c643:	e8 48 fe ff ff       	call   10c490 <rtems_aio_insert_prio> 
	  pthread_cond_signal (&r_chain->cond);                              
  10c648:	83 c7 20             	add    $0x20,%edi                     
  10c64b:	89 3c 24             	mov    %edi,(%esp)                    
  10c64e:	e8 b1 04 00 00       	call   10cb04 <pthread_cond_signal>   
	  pthread_mutex_unlock (&r_chain->mutex);                            
  10c653:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  10c656:	89 14 24             	mov    %edx,(%esp)                    
  10c659:	e8 5e 09 00 00       	call   10cfbc <pthread_mutex_unlock>  
  10c65e:	83 c4 10             	add    $0x10,%esp                     
	if (aio_request_queue.idle_threads > 0)                              
	  pthread_cond_signal (&aio_request_queue.new_req);                  
      }                                                               
    }                                                                 
                                                                      
  pthread_mutex_unlock (&aio_request_queue.mutex);                    
  10c661:	83 ec 0c             	sub    $0xc,%esp                      
  10c664:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c669:	e8 4e 09 00 00       	call   10cfbc <pthread_mutex_unlock>  
  return 0;                                                           
  10c66e:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10c671:	89 f0                	mov    %esi,%eax                      
  10c673:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c676:	5b                   	pop    %ebx                           
  10c677:	5e                   	pop    %esi                           
  10c678:	5f                   	pop    %edi                           
  10c679:	c9                   	leave                                 
  10c67a:	c3                   	ret                                   
  10c67b:	90                   	nop                                   
  /* The queue should be initialized */                               
  AIO_assert (aio_request_queue.initialized == AIO_QUEUE_INITIALIZED);
                                                                      
  result = pthread_mutex_lock (&aio_request_queue.mutex);             
  if (result != 0) {                                                  
    free (req);                                                       
  10c67c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c67f:	53                   	push   %ebx                           <== NOT EXECUTED
  10c680:	e8 cf c4 ff ff       	call   108b54 <free>                  <== NOT EXECUTED
    return result;                                                    
  10c685:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
      }                                                               
    }                                                                 
                                                                      
  pthread_mutex_unlock (&aio_request_queue.mutex);                    
  return 0;                                                           
}                                                                     
  10c688:	89 f0                	mov    %esi,%eax                      <== NOT EXECUTED
  10c68a:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10c68d:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10c68e:	5e                   	pop    %esi                           <== NOT EXECUTED
  10c68f:	5f                   	pop    %edi                           <== NOT EXECUTED
  10c690:	c9                   	leave                                 <== NOT EXECUTED
  10c691:	c3                   	ret                                   <== NOT EXECUTED
  10c692:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
  if ((aio_request_queue.idle_threads == 0) &&                        
      aio_request_queue.active_threads < AIO_MAX_THREADS)             
    /* we still have empty places on the active_threads chain */      
    {                                                                 
      chain = &aio_request_queue.work_req;                            
      r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);
  10c694:	57                   	push   %edi                           
  10c695:	6a 01                	push   $0x1                           
  10c697:	ff 30                	pushl  (%eax)                         
  10c699:	68 e8 aa 12 00       	push   $0x12aae8                      
  10c69e:	e8 a5 fa ff ff       	call   10c148 <rtems_aio_search_fd>   
  10c6a3:	89 c7                	mov    %eax,%edi                      
                                                                      
      if (r_chain->new_fd == 1) {                                     
  10c6a5:	83 c4 10             	add    $0x10,%esp                     
  10c6a8:	83 78 18 01          	cmpl   $0x1,0x18(%eax)                
  10c6ac:	0f 85 7b ff ff ff    	jne    10c62d <rtems_aio_enqueue+0x95>
RTEMS_INLINE_ROUTINE void _Chain_Prepend(                             
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert(_Chain_Head(the_chain), the_node);                    
  10c6b2:	83 ec 08             	sub    $0x8,%esp                      
  10c6b5:	53                   	push   %ebx                           
  10c6b6:	8d 40 08             	lea    0x8(%eax),%eax                 
  10c6b9:	50                   	push   %eax                           
  10c6ba:	e8 79 22 00 00       	call   10e938 <_Chain_Insert>         
	rtems_chain_prepend (&r_chain->perfd, &req->next_prio);              
	r_chain->new_fd = 0;                                                 
  10c6bf:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
	pthread_mutex_init (&r_chain->mutex, NULL);                          
  10c6c6:	5a                   	pop    %edx                           
  10c6c7:	59                   	pop    %ecx                           
  10c6c8:	6a 00                	push   $0x0                           
  10c6ca:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10c6cd:	50                   	push   %eax                           
  10c6ce:	e8 15 07 00 00       	call   10cde8 <pthread_mutex_init>    
	pthread_cond_init (&r_chain->cond, NULL);                            
  10c6d3:	5b                   	pop    %ebx                           
  10c6d4:	58                   	pop    %eax                           
  10c6d5:	6a 00                	push   $0x0                           
  10c6d7:	8d 47 20             	lea    0x20(%edi),%eax                
  10c6da:	50                   	push   %eax                           
  10c6db:	e8 70 03 00 00       	call   10ca50 <pthread_cond_init>     
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
  10c6e0:	57                   	push   %edi                           
  10c6e1:	68 44 c2 10 00       	push   $0x10c244                      
  10c6e6:	68 a8 aa 12 00       	push   $0x12aaa8                      
  10c6eb:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10c6ee:	50                   	push   %eax                           
  10c6ef:	e8 34 0a 00 00       	call   10d128 <pthread_create>        
  10c6f4:	89 c3                	mov    %eax,%ebx                      
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
  10c6f6:	83 c4 20             	add    $0x20,%esp                     
  10c6f9:	85 c0                	test   %eax,%eax                      
  10c6fb:	0f 85 8e 00 00 00    	jne    10c78f <rtems_aio_enqueue+0x1f7><== NEVER TAKEN
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
	  return result;                                                     
	}                                                                    
	++aio_request_queue.active_threads;                                  
  10c701:	ff 05 04 ab 12 00    	incl   0x12ab04                       
  10c707:	e9 55 ff ff ff       	jmp    10c661 <rtems_aio_enqueue+0xc9>
	                                                                     
	} else {                                                             
                                                                      
	/* or to the idle chain */                                           
	chain = &aio_request_queue.idle_req;                                 
	r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);   
  10c70c:	57                   	push   %edi                           
  10c70d:	6a 01                	push   $0x1                           
  10c70f:	8b 43 14             	mov    0x14(%ebx),%eax                
  10c712:	ff 30                	pushl  (%eax)                         
  10c714:	68 f4 aa 12 00       	push   $0x12aaf4                      
  10c719:	e8 2a fa ff ff       	call   10c148 <rtems_aio_search_fd>   
  10c71e:	89 c7                	mov    %eax,%edi                      
                                                                      
	if (r_chain->new_fd == 1) {                                          
  10c720:	83 c4 10             	add    $0x10,%esp                     
  10c723:	83 78 18 01          	cmpl   $0x1,0x18(%eax)                
  10c727:	74 33                	je     10c75c <rtems_aio_enqueue+0x1c4>
	  r_chain->new_fd = 0;                                               
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
	  pthread_cond_init (&r_chain->cond, NULL);                          
	} else                                                               
	  /* just insert the request in the existing fd chain */             
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
  10c729:	83 ec 08             	sub    $0x8,%esp                      
  10c72c:	53                   	push   %ebx                           
  10c72d:	83 c7 08             	add    $0x8,%edi                      
  10c730:	57                   	push   %edi                           
  10c731:	e8 5a fd ff ff       	call   10c490 <rtems_aio_insert_prio> 
  10c736:	83 c4 10             	add    $0x10,%esp                     
	if (aio_request_queue.idle_threads > 0)                              
  10c739:	8b 0d 08 ab 12 00    	mov    0x12ab08,%ecx                  
  10c73f:	85 c9                	test   %ecx,%ecx                      
  10c741:	0f 8e 1a ff ff ff    	jle    10c661 <rtems_aio_enqueue+0xc9><== ALWAYS TAKEN
	  pthread_cond_signal (&aio_request_queue.new_req);                  
  10c747:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c74a:	68 a4 aa 12 00       	push   $0x12aaa4                      <== NOT EXECUTED
  10c74f:	e8 b0 03 00 00       	call   10cb04 <pthread_cond_signal>   <== NOT EXECUTED
  10c754:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c757:	e9 05 ff ff ff       	jmp    10c661 <rtems_aio_enqueue+0xc9><== NOT EXECUTED
  10c75c:	83 ec 08             	sub    $0x8,%esp                      
  10c75f:	53                   	push   %ebx                           
  10c760:	8d 40 08             	lea    0x8(%eax),%eax                 
  10c763:	50                   	push   %eax                           
  10c764:	e8 cf 21 00 00       	call   10e938 <_Chain_Insert>         
	if (r_chain->new_fd == 1) {                                          
	  /* If this is a new fd chain we signal the idle threads that       
	     might be waiting for requests */                                
	  AIO_printf (" New chain on waiting queue \n ");                    
	  rtems_chain_prepend (&r_chain->perfd, &req->next_prio);            
	  r_chain->new_fd = 0;                                               
  10c769:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
  10c770:	5a                   	pop    %edx                           
  10c771:	59                   	pop    %ecx                           
  10c772:	6a 00                	push   $0x0                           
  10c774:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10c777:	50                   	push   %eax                           
  10c778:	e8 6b 06 00 00       	call   10cde8 <pthread_mutex_init>    
	  pthread_cond_init (&r_chain->cond, NULL);                          
  10c77d:	5b                   	pop    %ebx                           
  10c77e:	58                   	pop    %eax                           
  10c77f:	6a 00                	push   $0x0                           
  10c781:	83 c7 20             	add    $0x20,%edi                     
  10c784:	57                   	push   %edi                           
  10c785:	e8 c6 02 00 00       	call   10ca50 <pthread_cond_init>     
  10c78a:	83 c4 10             	add    $0x10,%esp                     
  10c78d:	eb aa                	jmp    10c739 <rtems_aio_enqueue+0x1a1>
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
  10c78f:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c792:	68 a0 aa 12 00       	push   $0x12aaa0                      <== NOT EXECUTED
  10c797:	e8 20 08 00 00       	call   10cfbc <pthread_mutex_unlock>  <== NOT EXECUTED
	  return result;                                                     
  10c79c:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c79f:	89 de                	mov    %ebx,%esi                      <== NOT EXECUTED
  10c7a1:	e9 cb fe ff ff       	jmp    10c671 <rtems_aio_enqueue+0xd9><== NOT EXECUTED
                                                                      

0010c244 <rtems_aio_handle>: * NULL - if error */ static void * rtems_aio_handle (void *arg) {
  10c244:	55                   	push   %ebp                           
  10c245:	89 e5                	mov    %esp,%ebp                      
  10c247:	57                   	push   %edi                           
  10c248:	56                   	push   %esi                           
  10c249:	53                   	push   %ebx                           
  10c24a:	83 ec 4c             	sub    $0x4c,%esp                     
                                                                      
  rtems_aio_request_chain *r_chain = arg;                             
  10c24d:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10c250:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10c253:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10c256:	66 90                	xchg   %ax,%ax                        
    /* acquire the mutex of the current fd chain.                     
       we don't need to lock the queue mutex since we can             
       add requests to idle fd chains or even active ones             
       if the working request has been extracted from the             
       chain */                                                       
    result = pthread_mutex_lock (&r_chain->mutex);                    
  10c258:	83 ec 0c             	sub    $0xc,%esp                      
  10c25b:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10c25e:	e8 d1 0c 00 00       	call   10cf34 <pthread_mutex_lock>    
    if (result != 0)                                                  
  10c263:	83 c4 10             	add    $0x10,%esp                     
  10c266:	85 c0                	test   %eax,%eax                      
  10c268:	0f 85 2a 01 00 00    	jne    10c398 <rtems_aio_handle+0x154><== NEVER TAKEN
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c26e:	8b 5f 08             	mov    0x8(%edi),%ebx                 
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10c271:	8d 47 0c             	lea    0xc(%edi),%eax                 
                                                                      
    /* If the locked chain is not empty, take the first               
       request extract it, unlock the chain and process               
       the request, in this way the user can supply more              
       requests to this fd chain */                                   
    if (!rtems_chain_is_empty (chain)) {                              
  10c274:	39 c3                	cmp    %eax,%ebx                      
  10c276:	0f 84 d0 00 00 00    	je     10c34c <rtems_aio_handle+0x108>
      node = rtems_chain_first (chain);                               
      req = (rtems_aio_request *) node;                               
                                                                      
      /* See _POSIX_PRIORITIZE_IO and _POSIX_PRIORITY_SCHEDULING      
	 discussion in rtems_aio_enqueue () */                               
      pthread_getschedparam (pthread_self(), &policy, ¶m);        
  10c27c:	e8 5f 15 00 00       	call   10d7e0 <pthread_self>          
  10c281:	52                   	push   %edx                           
  10c282:	8d 55 c0             	lea    -0x40(%ebp),%edx               
  10c285:	52                   	push   %edx                           
  10c286:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
  10c289:	52                   	push   %edx                           
  10c28a:	50                   	push   %eax                           
  10c28b:	e8 20 11 00 00       	call   10d3b0 <pthread_getschedparam> 
      param.sched_priority = req->priority;                           
  10c290:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10c293:	89 45 c0             	mov    %eax,-0x40(%ebp)               
      pthread_setschedparam (pthread_self(), req->policy, ¶m);    
  10c296:	8b 73 08             	mov    0x8(%ebx),%esi                 
  10c299:	e8 42 15 00 00       	call   10d7e0 <pthread_self>          
  10c29e:	83 c4 0c             	add    $0xc,%esp                      
  10c2a1:	8d 55 c0             	lea    -0x40(%ebp),%edx               
  10c2a4:	52                   	push   %edx                           
  10c2a5:	56                   	push   %esi                           
  10c2a6:	50                   	push   %eax                           
  10c2a7:	e8 44 15 00 00       	call   10d7f0 <pthread_setschedparam> 
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10c2ac:	89 1c 24             	mov    %ebx,(%esp)                    
  10c2af:	e8 48 26 00 00       	call   10e8fc <_Chain_Extract>        
                                                                      
      rtems_chain_extract (node);                                     
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10c2b4:	5e                   	pop    %esi                           
  10c2b5:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10c2b8:	e8 ff 0c 00 00       	call   10cfbc <pthread_mutex_unlock>  
                                                                      
      switch (req->aiocbp->aio_lio_opcode) {                          
  10c2bd:	8b 73 14             	mov    0x14(%ebx),%esi                
  10c2c0:	83 c4 10             	add    $0x10,%esp                     
  10c2c3:	8b 46 2c             	mov    0x2c(%esi),%eax                
  10c2c6:	83 f8 02             	cmp    $0x2,%eax                      
  10c2c9:	74 21                	je     10c2ec <rtems_aio_handle+0xa8> 
  10c2cb:	83 f8 03             	cmp    $0x3,%eax                      
  10c2ce:	74 6c                	je     10c33c <rtems_aio_handle+0xf8> <== NEVER TAKEN
  10c2d0:	48                   	dec    %eax                           
  10c2d1:	74 4d                	je     10c320 <rtems_aio_handle+0xdc> <== ALWAYS TAKEN
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
        req->aiocbp->return_value = -1;                               
  10c2d3:	c7 46 34 ff ff ff ff 	movl   $0xffffffff,0x34(%esi)         <== NOT EXECUTED
	req->aiocbp->error_code = errno;                                     
  10c2da:	e8 1d 99 00 00       	call   115bfc <__errno>               <== NOT EXECUTED
  10c2df:	8b 00                	mov    (%eax),%eax                    <== NOT EXECUTED
  10c2e1:	89 46 30             	mov    %eax,0x30(%esi)                <== NOT EXECUTED
  10c2e4:	e9 6f ff ff ff       	jmp    10c258 <rtems_aio_handle+0x14> <== NOT EXECUTED
  10c2e9:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
                        req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_WRITE:                                                 
	AIO_printf ("write\n");                                              
        result = pwrite (req->aiocbp->aio_fildes,                     
  10c2ec:	83 ec 0c             	sub    $0xc,%esp                      
  10c2ef:	ff 76 08             	pushl  0x8(%esi)                      
  10c2f2:	ff 76 04             	pushl  0x4(%esi)                      
  10c2f5:	ff 76 10             	pushl  0x10(%esi)                     
  10c2f8:	ff 76 0c             	pushl  0xc(%esi)                      
  10c2fb:	ff 36                	pushl  (%esi)                         
  10c2fd:	e8 92 a3 00 00       	call   116694 <pwrite>                
                         (void *) req->aiocbp->aio_buf,               
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
  10c302:	83 c4 20             	add    $0x20,%esp                     
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
  10c305:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10c308:	0f 84 78 01 00 00    	je     10c486 <rtems_aio_handle+0x242><== NEVER TAKEN
        req->aiocbp->return_value = -1;                               
	req->aiocbp->error_code = errno;                                     
      } else {                                                        
        req->aiocbp->return_value = result;                           
  10c30e:	8b 53 14             	mov    0x14(%ebx),%edx                
  10c311:	89 42 34             	mov    %eax,0x34(%edx)                
        req->aiocbp->error_code = 0;                                  
  10c314:	c7 42 30 00 00 00 00 	movl   $0x0,0x30(%edx)                
  10c31b:	e9 38 ff ff ff       	jmp    10c258 <rtems_aio_handle+0x14> 
      pthread_mutex_unlock (&r_chain->mutex);                         
                                                                      
      switch (req->aiocbp->aio_lio_opcode) {                          
      case LIO_READ:                                                  
	AIO_printf ("read\n");                                               
        result = pread (req->aiocbp->aio_fildes,                      
  10c320:	83 ec 0c             	sub    $0xc,%esp                      
  10c323:	ff 76 08             	pushl  0x8(%esi)                      
  10c326:	ff 76 04             	pushl  0x4(%esi)                      
  10c329:	ff 76 10             	pushl  0x10(%esi)                     
  10c32c:	ff 76 0c             	pushl  0xc(%esi)                      
  10c32f:	ff 36                	pushl  (%esi)                         
  10c331:	e8 aa a2 00 00       	call   1165e0 <pread>                 
                        (void *) req->aiocbp->aio_buf,                
                        req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
  10c336:	83 c4 20             	add    $0x20,%esp                     
  10c339:	eb ca                	jmp    10c305 <rtems_aio_handle+0xc1> 
  10c33b:	90                   	nop                                   
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_SYNC:                                                  
	AIO_printf ("sync\n");                                               
      	result = fsync (req->aiocbp->aio_fildes);                      
  10c33c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c33f:	ff 36                	pushl  (%esi)                         <== NOT EXECUTED
  10c341:	e8 1e 67 00 00       	call   112a64 <fsync>                 <== NOT EXECUTED
      	break;                                                         
  10c346:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c349:	eb ba                	jmp    10c305 <rtems_aio_handle+0xc1> <== NOT EXECUTED
  10c34b:	90                   	nop                                   <== NOT EXECUTED
                                                                      
      struct timespec timeout;                                        
                                                                      
      AIO_printf ("Chain is empty [WQ], wait for work\n");            
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10c34c:	83 ec 0c             	sub    $0xc,%esp                      
  10c34f:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10c352:	e8 65 0c 00 00       	call   10cfbc <pthread_mutex_unlock>  
      pthread_mutex_lock (&aio_request_queue.mutex);                  
  10c357:	c7 04 24 a0 aa 12 00 	movl   $0x12aaa0,(%esp)               
  10c35e:	e8 d1 0b 00 00       	call   10cf34 <pthread_mutex_lock>    
                                                                      
      if (rtems_chain_is_empty (chain))                               
  10c363:	83 c4 10             	add    $0x10,%esp                     
  10c366:	3b 5f 08             	cmp    0x8(%edi),%ebx                 
  10c369:	74 39                	je     10c3a4 <rtems_aio_handle+0x160><== ALWAYS TAKEN
	                                                                     
	  }                                                                  
	}                                                                    
      /* If there was a request added in the initial fd chain then release
	 the mutex and process it */                                         
      pthread_mutex_unlock (&aio_request_queue.mutex);                
  10c36b:	83 ec 0c             	sub    $0xc,%esp                      
  10c36e:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c373:	e8 44 0c 00 00       	call   10cfbc <pthread_mutex_unlock>  
  10c378:	83 c4 10             	add    $0x10,%esp                     
  10c37b:	e9 d8 fe ff ff       	jmp    10c258 <rtems_aio_handle+0x14> 
	                                                                     
	      /* If no new fd chain was added in the idle requests           
		 then this thread is finished */                                    
	      if (result == ETIMEDOUT) {                                     
		AIO_printf ("Etimeout\n");                                          
		--aio_request_queue.idle_threads;                                   
  10c380:	ff 0d 08 ab 12 00    	decl   0x12ab08                       
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
  10c386:	83 ec 0c             	sub    $0xc,%esp                      
  10c389:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c38e:	e8 29 0c 00 00       	call   10cfbc <pthread_mutex_unlock>  
		return NULL;                                                        
  10c393:	83 c4 10             	add    $0x10,%esp                     
  10c396:	66 90                	xchg   %ax,%ax                        
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c398:	31 c0                	xor    %eax,%eax                      
  10c39a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c39d:	5b                   	pop    %ebx                           
  10c39e:	5e                   	pop    %esi                           
  10c39f:	5f                   	pop    %edi                           
  10c3a0:	c9                   	leave                                 
  10c3a1:	c3                   	ret                                   
  10c3a2:	66 90                	xchg   %ax,%ax                        
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
  10c3a4:	83 ec 08             	sub    $0x8,%esp                      
  10c3a7:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10c3aa:	50                   	push   %eax                           
  10c3ab:	6a 01                	push   $0x1                           
  10c3ad:	e8 66 05 00 00       	call   10c918 <clock_gettime>         
	  timeout.tv_sec += 3;                                               
  10c3b2:	83 45 dc 03          	addl   $0x3,-0x24(%ebp)               
	  timeout.tv_nsec = 0;                                               
  10c3b6:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
  10c3bd:	8d 5f 20             	lea    0x20(%edi),%ebx                
  10c3c0:	83 c4 0c             	add    $0xc,%esp                      
  10c3c3:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  10c3c6:	52                   	push   %edx                           
  10c3c7:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c3cc:	53                   	push   %ebx                           
  10c3cd:	e8 b6 07 00 00       	call   10cb88 <pthread_cond_timedwait>
					   &aio_request_queue.mutex,                                     
					   &timeout);                                                    
                                                                      
	  /* If no requests were added to the chain we delete the fd chain from
	     the queue and start working with idle fd chains */              
	  if (result == ETIMEDOUT) {                                         
  10c3d2:	83 c4 10             	add    $0x10,%esp                     
  10c3d5:	83 f8 74             	cmp    $0x74,%eax                     
  10c3d8:	75 91                	jne    10c36b <rtems_aio_handle+0x127><== NEVER TAKEN
  10c3da:	83 ec 0c             	sub    $0xc,%esp                      
  10c3dd:	57                   	push   %edi                           
  10c3de:	e8 19 25 00 00       	call   10e8fc <_Chain_Extract>        
	    rtems_chain_extract (&r_chain->next_fd);                         
	    pthread_mutex_destroy (&r_chain->mutex);                         
  10c3e3:	59                   	pop    %ecx                           
  10c3e4:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10c3e7:	e8 dc 08 00 00       	call   10ccc8 <pthread_mutex_destroy> 
	    pthread_cond_destroy (&r_chain->cond);                           
  10c3ec:	89 1c 24             	mov    %ebx,(%esp)                    
  10c3ef:	e8 90 05 00 00       	call   10c984 <pthread_cond_destroy>  
	    free (r_chain);                                                  
  10c3f4:	89 3c 24             	mov    %edi,(%esp)                    
  10c3f7:	e8 58 c7 ff ff       	call   108b54 <free>                  
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c3fc:	8b 3d f4 aa 12 00    	mov    0x12aaf4,%edi                  
	    pthread_cond_destroy (&r_chain->cond);                           
	    free (r_chain);                                                  
	                                                                     
	    /* If the idle chain is empty sleep for 3 seconds and wait for a 
	       signal. The thread now becomes idle. */                       
	    if (rtems_chain_is_empty (&aio_request_queue.idle_req)) {        
  10c402:	83 c4 10             	add    $0x10,%esp                     
  10c405:	81 ff f8 aa 12 00    	cmp    $0x12aaf8,%edi                 
  10c40b:	74 2b                	je     10c438 <rtems_aio_handle+0x1f4>
	      }                                                              
	    }                                                                
	    /* Otherwise move this chain to the working chain and            
	       start the loop all over again */                              
	    AIO_printf ("Work on idle\n");                                   
	    --aio_request_queue.idle_threads;                                
  10c40d:	ff 0d 08 ab 12 00    	decl   0x12ab08                       
	    ++aio_request_queue.active_threads;                              
  10c413:	ff 05 04 ab 12 00    	incl   0x12ab04                       
  10c419:	83 ec 0c             	sub    $0xc,%esp                      
  10c41c:	57                   	push   %edi                           
  10c41d:	e8 da 24 00 00       	call   10e8fc <_Chain_Extract>        
                                                                      
	    node = rtems_chain_first (&aio_request_queue.idle_req);          
	    rtems_chain_extract (node);                                      
                                                                      
	    r_chain = (rtems_aio_request_chain *) node;                      
	    rtems_aio_move_to_work (r_chain);                                
  10c422:	89 3c 24             	mov    %edi,(%esp)                    
  10c425:	e8 de fd ff ff       	call   10c208 <rtems_aio_move_to_work>
  10c42a:	83 c4 10             	add    $0x10,%esp                     
  10c42d:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10c430:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10c433:	e9 33 ff ff ff       	jmp    10c36b <rtems_aio_handle+0x127>
	    /* If the idle chain is empty sleep for 3 seconds and wait for a 
	       signal. The thread now becomes idle. */                       
	    if (rtems_chain_is_empty (&aio_request_queue.idle_req)) {        
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
  10c438:	ff 05 08 ab 12 00    	incl   0x12ab08                       
	      --aio_request_queue.active_threads;                            
  10c43e:	ff 0d 04 ab 12 00    	decl   0x12ab04                       
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
  10c444:	52                   	push   %edx                           
  10c445:	52                   	push   %edx                           
  10c446:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10c449:	50                   	push   %eax                           
  10c44a:	6a 01                	push   $0x1                           
  10c44c:	e8 c7 04 00 00       	call   10c918 <clock_gettime>         
	      timeout.tv_sec += 3;                                           
  10c451:	83 45 dc 03          	addl   $0x3,-0x24(%ebp)               
	      timeout.tv_nsec = 0;                                           
  10c455:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
  10c45c:	83 c4 0c             	add    $0xc,%esp                      
  10c45f:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  10c462:	52                   	push   %edx                           
  10c463:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c468:	68 a4 aa 12 00       	push   $0x12aaa4                      
  10c46d:	e8 16 07 00 00       	call   10cb88 <pthread_cond_timedwait>
					       &aio_request_queue.mutex,                                 
					       &timeout);                                                
	                                                                     
	      /* If no new fd chain was added in the idle requests           
		 then this thread is finished */                                    
	      if (result == ETIMEDOUT) {                                     
  10c472:	83 c4 10             	add    $0x10,%esp                     
  10c475:	83 f8 74             	cmp    $0x74,%eax                     
  10c478:	0f 84 02 ff ff ff    	je     10c380 <rtems_aio_handle+0x13c><== ALWAYS TAKEN
  10c47e:	8b 3d f4 aa 12 00    	mov    0x12aaf4,%edi                  <== NOT EXECUTED
  10c484:	eb 87                	jmp    10c40d <rtems_aio_handle+0x1c9><== NOT EXECUTED
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
  10c486:	8b 73 14             	mov    0x14(%ebx),%esi                <== NOT EXECUTED
  10c489:	e9 45 fe ff ff       	jmp    10c2d3 <rtems_aio_handle+0x8f> <== NOT EXECUTED
                                                                      

0010c020 <rtems_aio_init>: * 0 - if initialization succeeded */ int rtems_aio_init (void) {
  10c020:	55                   	push   %ebp                           
  10c021:	89 e5                	mov    %esp,%ebp                      
  10c023:	53                   	push   %ebx                           
  10c024:	83 ec 10             	sub    $0x10,%esp                     
  int result = 0;                                                     
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
  10c027:	68 a8 aa 12 00       	push   $0x12aaa8                      
  10c02c:	e8 a3 10 00 00       	call   10d0d4 <pthread_attr_init>     
  10c031:	89 c3                	mov    %eax,%ebx                      
  if (result != 0)                                                    
  10c033:	83 c4 10             	add    $0x10,%esp                     
  10c036:	85 c0                	test   %eax,%eax                      
  10c038:	74 0a                	je     10c044 <rtems_aio_init+0x24>   <== ALWAYS TAKEN
  aio_request_queue.active_threads = 0;                               
  aio_request_queue.idle_threads = 0;                                 
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
                                                                      
  return result;                                                      
}                                                                     
  10c03a:	89 d8                	mov    %ebx,%eax                      <== NOT EXECUTED
  10c03c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10c03f:	c9                   	leave                                 <== NOT EXECUTED
  10c040:	c3                   	ret                                   <== NOT EXECUTED
  10c041:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
  if (result != 0)                                                    
    return result;                                                    
                                                                      
  result =                                                            
  10c044:	83 ec 08             	sub    $0x8,%esp                      
  10c047:	6a 00                	push   $0x0                           
  10c049:	68 a8 aa 12 00       	push   $0x12aaa8                      
  10c04e:	e8 ad 10 00 00       	call   10d100 <pthread_attr_setdetachstate>
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
  10c053:	83 c4 10             	add    $0x10,%esp                     
  10c056:	85 c0                	test   %eax,%eax                      
  10c058:	0f 85 96 00 00 00    	jne    10c0f4 <rtems_aio_init+0xd4>   <== NEVER TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
  10c05e:	83 ec 08             	sub    $0x8,%esp                      
  10c061:	6a 00                	push   $0x0                           
  10c063:	68 a0 aa 12 00       	push   $0x12aaa0                      
  10c068:	e8 7b 0d 00 00       	call   10cde8 <pthread_mutex_init>    
  if (result != 0)                                                    
  10c06d:	83 c4 10             	add    $0x10,%esp                     
  10c070:	85 c0                	test   %eax,%eax                      
  10c072:	0f 85 b8 00 00 00    	jne    10c130 <rtems_aio_init+0x110>  <== NEVER TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
  10c078:	83 ec 08             	sub    $0x8,%esp                      
  10c07b:	6a 00                	push   $0x0                           
  10c07d:	68 a4 aa 12 00       	push   $0x12aaa4                      
  10c082:	e8 c9 09 00 00       	call   10ca50 <pthread_cond_init>     
  10c087:	89 c3                	mov    %eax,%ebx                      
  if (result != 0) {                                                  
  10c089:	83 c4 10             	add    $0x10,%esp                     
  10c08c:	85 c0                	test   %eax,%eax                      
  10c08e:	75 7c                	jne    10c10c <rtems_aio_init+0xec>   <== NEVER TAKEN
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10c090:	c7 05 e8 aa 12 00 ec 	movl   $0x12aaec,0x12aae8             
  10c097:	aa 12 00                                                    
  head->previous = NULL;                                              
  10c09a:	c7 05 ec aa 12 00 00 	movl   $0x0,0x12aaec                  
  10c0a1:	00 00 00                                                    
  tail->previous = head;                                              
  10c0a4:	c7 05 f0 aa 12 00 e8 	movl   $0x12aae8,0x12aaf0             
  10c0ab:	aa 12 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10c0ae:	c7 05 f4 aa 12 00 f8 	movl   $0x12aaf8,0x12aaf4             
  10c0b5:	aa 12 00                                                    
  head->previous = NULL;                                              
  10c0b8:	c7 05 f8 aa 12 00 00 	movl   $0x0,0x12aaf8                  
  10c0bf:	00 00 00                                                    
  tail->previous = head;                                              
  10c0c2:	c7 05 fc aa 12 00 f4 	movl   $0x12aaf4,0x12aafc             
  10c0c9:	aa 12 00                                                    
  }                                                                   
                                                                      
  rtems_chain_initialize_empty (&aio_request_queue.work_req);         
  rtems_chain_initialize_empty (&aio_request_queue.idle_req);         
                                                                      
  aio_request_queue.active_threads = 0;                               
  10c0cc:	c7 05 04 ab 12 00 00 	movl   $0x0,0x12ab04                  
  10c0d3:	00 00 00                                                    
  aio_request_queue.idle_threads = 0;                                 
  10c0d6:	c7 05 08 ab 12 00 00 	movl   $0x0,0x12ab08                  
  10c0dd:	00 00 00                                                    
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
  10c0e0:	c7 05 00 ab 12 00 0b 	movl   $0xb00b,0x12ab00               
  10c0e7:	b0 00 00                                                    
                                                                      
  return result;                                                      
}                                                                     
  10c0ea:	89 d8                	mov    %ebx,%eax                      
  10c0ec:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c0ef:	c9                   	leave                                 
  10c0f0:	c3                   	ret                                   
  10c0f1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  result =                                                            
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
    pthread_attr_destroy (&aio_request_queue.attr);                   
  10c0f4:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c0f7:	68 a8 aa 12 00       	push   $0x12aaa8                      <== NOT EXECUTED
  10c0fc:	e8 af 0f 00 00       	call   10d0b0 <pthread_attr_destroy>  <== NOT EXECUTED
  10c101:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c104:	e9 55 ff ff ff       	jmp    10c05e <rtems_aio_init+0x3e>   <== NOT EXECUTED
  10c109:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
  if (result != 0) {                                                  
    pthread_mutex_destroy (&aio_request_queue.mutex);                 
  10c10c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c10f:	68 a0 aa 12 00       	push   $0x12aaa0                      <== NOT EXECUTED
  10c114:	e8 af 0b 00 00       	call   10ccc8 <pthread_mutex_destroy> <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
  10c119:	c7 04 24 a8 aa 12 00 	movl   $0x12aaa8,(%esp)               <== NOT EXECUTED
  10c120:	e8 8b 0f 00 00       	call   10d0b0 <pthread_attr_destroy>  <== NOT EXECUTED
  10c125:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c128:	e9 63 ff ff ff       	jmp    10c090 <rtems_aio_init+0x70>   <== NOT EXECUTED
  10c12d:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
  if (result != 0)                                                    
    pthread_attr_destroy (&aio_request_queue.attr);                   
  10c130:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10c133:	68 a8 aa 12 00       	push   $0x12aaa8                      <== NOT EXECUTED
  10c138:	e8 73 0f 00 00       	call   10d0b0 <pthread_attr_destroy>  <== NOT EXECUTED
  10c13d:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10c140:	e9 33 ff ff ff       	jmp    10c078 <rtems_aio_init+0x58>   <== NOT EXECUTED
                                                                      

0010c490 <rtems_aio_insert_prio>: * NONE */ void rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req) {
  10c490:	55                   	push   %ebp                           
  10c491:	89 e5                	mov    %esp,%ebp                      
  10c493:	56                   	push   %esi                           
  10c494:	53                   	push   %ebx                           
  10c495:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c498:	8b 75 0c             	mov    0xc(%ebp),%esi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c49b:	8b 02                	mov    (%edx),%eax                    
  10c49d:	8d 4a 04             	lea    0x4(%edx),%ecx                 
  rtems_chain_node *node;                                             
                                                                      
  AIO_printf ("FD exists \n");                                        
  node = rtems_chain_first (chain);                                   
                                                                      
  if (rtems_chain_is_empty (chain)) {                                 
  10c4a0:	39 c8                	cmp    %ecx,%eax                      
  10c4a2:	74 27                	je     10c4cb <rtems_aio_insert_prio+0x3b><== NEVER TAKEN
    rtems_chain_prepend (chain, &req->next_prio);                     
  } else {                                                            
    AIO_printf ("Add by priority \n");                                
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
  10c4a4:	8b 56 14             	mov    0x14(%esi),%edx                
  10c4a7:	8b 5a 14             	mov    0x14(%edx),%ebx                
  if (rtems_chain_is_empty (chain)) {                                 
    AIO_printf ("First in chain \n");                                 
    rtems_chain_prepend (chain, &req->next_prio);                     
  } else {                                                            
    AIO_printf ("Add by priority \n");                                
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
  10c4aa:	8b 50 14             	mov    0x14(%eax),%edx                
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
  10c4ad:	39 5a 14             	cmp    %ebx,0x14(%edx)                
  10c4b0:	7c 06                	jl     10c4b8 <rtems_aio_insert_prio+0x28><== NEVER TAKEN
  10c4b2:	eb 0e                	jmp    10c4c2 <rtems_aio_insert_prio+0x32>
  10c4b4:	39 c8                	cmp    %ecx,%eax                      <== NOT EXECUTED
  10c4b6:	74 1c                	je     10c4d4 <rtems_aio_insert_prio+0x44><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c4b8:	8b 00                	mov    (%eax),%eax                    <== NOT EXECUTED
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
           !rtems_chain_is_tail (chain, node)) {                      
      node = rtems_chain_next (node);                                 
      prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;       
  10c4ba:	8b 50 14             	mov    0x14(%eax),%edx                <== NOT EXECUTED
    rtems_chain_prepend (chain, &req->next_prio);                     
  } else {                                                            
    AIO_printf ("Add by priority \n");                                
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
  10c4bd:	39 5a 14             	cmp    %ebx,0x14(%edx)                <== NOT EXECUTED
  10c4c0:	7c f2                	jl     10c4b4 <rtems_aio_insert_prio+0x24><== NOT EXECUTED
RTEMS_INLINE_ROUTINE void rtems_chain_insert(                         
  rtems_chain_node *after_node,                                       
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Insert( after_node, the_node );                              
  10c4c2:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10c4c5:	8b 40 04             	mov    0x4(%eax),%eax                 
  10c4c8:	89 45 08             	mov    %eax,0x8(%ebp)                 
    }                                                                 
                                                                      
    rtems_chain_insert (node->previous, &req->next_prio);             
                                                                      
  }                                                                   
}                                                                     
  10c4cb:	5b                   	pop    %ebx                           
  10c4cc:	5e                   	pop    %esi                           
  10c4cd:	c9                   	leave                                 
  10c4ce:	e9 65 24 00 00       	jmp    10e938 <_Chain_Insert>         
  10c4d3:	90                   	nop                                   
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c4d4:	89 c8                	mov    %ecx,%eax                      <== NOT EXECUTED
  10c4d6:	eb ea                	jmp    10c4c2 <rtems_aio_insert_prio+0x32><== NOT EXECUTED
                                                                      

0010c208 <rtems_aio_move_to_work>: * NONE */ void rtems_aio_move_to_work (rtems_aio_request_chain *r_chain) {
  10c208:	55                   	push   %ebp                           
  10c209:	89 e5                	mov    %esp,%ebp                      
  10c20b:	83 ec 08             	sub    $0x8,%esp                      
  10c20e:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c211:	a1 e8 aa 12 00       	mov    0x12aae8,%eax                  
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (&aio_request_queue.work_req);             
  temp = (rtems_aio_request_chain *) node;                            
                                                                      
  while (temp->fildes < r_chain->fildes &&                            
  10c216:	8b 51 14             	mov    0x14(%ecx),%edx                
  10c219:	39 50 14             	cmp    %edx,0x14(%eax)                
  10c21c:	7c 09                	jl     10c227 <rtems_aio_move_to_work+0x1f><== ALWAYS TAKEN
  10c21e:	eb 13                	jmp    10c233 <rtems_aio_move_to_work+0x2b><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c220:	8b 00                	mov    (%eax),%eax                    
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (&aio_request_queue.work_req);             
  temp = (rtems_aio_request_chain *) node;                            
                                                                      
  while (temp->fildes < r_chain->fildes &&                            
  10c222:	39 50 14             	cmp    %edx,0x14(%eax)                
  10c225:	7d 0c                	jge    10c233 <rtems_aio_move_to_work+0x2b>
  10c227:	3d ec aa 12 00       	cmp    $0x12aaec,%eax                 
  10c22c:	75 f2                	jne    10c220 <rtems_aio_move_to_work+0x18><== ALWAYS TAKEN
  10c22e:	b8 ec aa 12 00       	mov    $0x12aaec,%eax                 <== NOT EXECUTED
  10c233:	83 ec 08             	sub    $0x8,%esp                      
  10c236:	51                   	push   %ecx                           
  10c237:	ff 70 04             	pushl  0x4(%eax)                      
  10c23a:	e8 f9 26 00 00       	call   10e938 <_Chain_Insert>         
  10c23f:	83 c4 10             	add    $0x10,%esp                     
    node = rtems_chain_next (node);                                   
    temp = (rtems_aio_request_chain *) node;                          
  }                                                                   
                                                                      
  rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd);
}                                                                     
  10c242:	c9                   	leave                                 
  10c243:	c3                   	ret                                   
                                                                      

0010c4d8 <rtems_aio_remove_fd>: * Output parameters: * NONE */ void rtems_aio_remove_fd (rtems_aio_request_chain *r_chain) {
  10c4d8:	55                   	push   %ebp                           
  10c4d9:	89 e5                	mov    %esp,%ebp                      
  10c4db:	57                   	push   %edi                           
  10c4dc:	56                   	push   %esi                           
  10c4dd:	53                   	push   %ebx                           
  10c4de:	83 ec 0c             	sub    $0xc,%esp                      
  10c4e1:	8b 7d 08             	mov    0x8(%ebp),%edi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c4e4:	8b 5f 08             	mov    0x8(%edi),%ebx                 
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
  10c4e7:	83 c7 0c             	add    $0xc,%edi                      
  rtems_chain_control *chain;                                         
  rtems_chain_node *node;                                             
  chain = &r_chain->perfd;                                            
  node = rtems_chain_first (chain);                                   
                                                                      
  while (!rtems_chain_is_tail (chain, node))                          
  10c4ea:	39 fb                	cmp    %edi,%ebx                      
  10c4ec:	75 04                	jne    10c4f2 <rtems_aio_remove_fd+0x1a><== ALWAYS TAKEN
  10c4ee:	eb 2d                	jmp    10c51d <rtems_aio_remove_fd+0x45><== NOT EXECUTED
    {                                                                 
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
  10c4f0:	89 f3                	mov    %esi,%ebx                      
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10c4f2:	83 ec 0c             	sub    $0xc,%esp                      
  10c4f5:	53                   	push   %ebx                           
  10c4f6:	e8 01 24 00 00       	call   10e8fc <_Chain_Extract>        
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c4fb:	8b 33                	mov    (%ebx),%esi                    
  while (!rtems_chain_is_tail (chain, node))                          
    {                                                                 
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
      req->aiocbp->error_code = ECANCELED;                            
  10c4fd:	8b 43 14             	mov    0x14(%ebx),%eax                
  10c500:	c7 40 30 8c 00 00 00 	movl   $0x8c,0x30(%eax)               
      req->aiocbp->return_value = -1;                                 
  10c507:	c7 40 34 ff ff ff ff 	movl   $0xffffffff,0x34(%eax)         
      free (req);                                                     
  10c50e:	89 1c 24             	mov    %ebx,(%esp)                    
  10c511:	e8 3e c6 ff ff       	call   108b54 <free>                  
  rtems_chain_control *chain;                                         
  rtems_chain_node *node;                                             
  chain = &r_chain->perfd;                                            
  node = rtems_chain_first (chain);                                   
                                                                      
  while (!rtems_chain_is_tail (chain, node))                          
  10c516:	83 c4 10             	add    $0x10,%esp                     
  10c519:	39 fe                	cmp    %edi,%esi                      
  10c51b:	75 d3                	jne    10c4f0 <rtems_aio_remove_fd+0x18>
      node = rtems_chain_next (node);                                 
      req->aiocbp->error_code = ECANCELED;                            
      req->aiocbp->return_value = -1;                                 
      free (req);                                                     
    }                                                                 
}                                                                     
  10c51d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c520:	5b                   	pop    %ebx                           
  10c521:	5e                   	pop    %esi                           
  10c522:	5f                   	pop    %edi                           
  10c523:	c9                   	leave                                 
  10c524:	c3                   	ret                                   
                                                                      

0010c528 <rtems_aio_remove_req>: * AIO_NOTCANCELED - if request was not canceled * AIO_CANCELED - if request was canceled */ int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp) {
  10c528:	55                   	push   %ebp                           
  10c529:	89 e5                	mov    %esp,%ebp                      
  10c52b:	53                   	push   %ebx                           
  10c52c:	83 ec 04             	sub    $0x4,%esp                      
  10c52f:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c532:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c535:	8b 02                	mov    (%edx),%eax                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10c537:	83 c2 04             	add    $0x4,%edx                      
 *         AIO_CANCELED      - if request was canceled                
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
  10c53a:	39 d0                	cmp    %edx,%eax                      
  10c53c:	74 4e                	je     10c58c <rtems_aio_remove_req+0x64>
    return AIO_ALLDONE;                                               
                                                                      
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
  10c53e:	89 c3                	mov    %eax,%ebx                      
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
  10c540:	39 48 14             	cmp    %ecx,0x14(%eax)                
  10c543:	75 0a                	jne    10c54f <rtems_aio_remove_req+0x27><== NEVER TAKEN
  10c545:	eb 19                	jmp    10c560 <rtems_aio_remove_req+0x38>
  10c547:	90                   	nop                                   
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
  10c548:	89 c3                	mov    %eax,%ebx                      <== NOT EXECUTED
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
  10c54a:	39 48 14             	cmp    %ecx,0x14(%eax)                <== NOT EXECUTED
  10c54d:	74 11                	je     10c560 <rtems_aio_remove_req+0x38><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c54f:	8b 00                	mov    (%eax),%eax                    <== NOT EXECUTED
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
  10c551:	39 d0                	cmp    %edx,%eax                      <== NOT EXECUTED
  10c553:	75 f3                	jne    10c548 <rtems_aio_remove_req+0x20><== NOT EXECUTED
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
  }                                                                   
                                                                      
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
  10c555:	b8 01 00 00 00       	mov    $0x1,%eax                      <== NOT EXECUTED
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
  10c55a:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10c55d:	c9                   	leave                                 <== NOT EXECUTED
  10c55e:	c3                   	ret                                   <== NOT EXECUTED
  10c55f:	90                   	nop                                   <== NOT EXECUTED
  10c560:	83 ec 0c             	sub    $0xc,%esp                      
  10c563:	50                   	push   %eax                           
  10c564:	e8 93 23 00 00       	call   10e8fc <_Chain_Extract>        
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
  else                                                                
    {                                                                 
      rtems_chain_extract (node);                                     
      current->aiocbp->error_code = ECANCELED;                        
  10c569:	8b 43 14             	mov    0x14(%ebx),%eax                
  10c56c:	c7 40 30 8c 00 00 00 	movl   $0x8c,0x30(%eax)               
      current->aiocbp->return_value = -1;                             
  10c573:	c7 40 34 ff ff ff ff 	movl   $0xffffffff,0x34(%eax)         
      free (current);                                                 
  10c57a:	89 1c 24             	mov    %ebx,(%esp)                    
  10c57d:	e8 d2 c5 ff ff       	call   108b54 <free>                  
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
  10c582:	83 c4 10             	add    $0x10,%esp                     
  10c585:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c587:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c58a:	c9                   	leave                                 
  10c58b:	c3                   	ret                                   
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
    return AIO_ALLDONE;                                               
  10c58c:	b8 02 00 00 00       	mov    $0x2,%eax                      
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
  10c591:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c594:	c9                   	leave                                 
  10c595:	c3                   	ret                                   
                                                                      

0010c148 <rtems_aio_search_fd>: * */ rtems_aio_request_chain * rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create) {
  10c148:	55                   	push   %ebp                           
  10c149:	89 e5                	mov    %esp,%ebp                      
  10c14b:	57                   	push   %edi                           
  10c14c:	56                   	push   %esi                           
  10c14d:	53                   	push   %ebx                           
  10c14e:	83 ec 1c             	sub    $0x1c,%esp                     
  10c151:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10c154:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c157:	8b 06                	mov    (%esi),%eax                    
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (chain);                                   
  r_chain = (rtems_aio_request_chain *) node;                         
                                                                      
  while (r_chain->fildes < fildes && !rtems_chain_is_tail (chain, node)) {
  10c159:	8b 50 14             	mov    0x14(%eax),%edx                
  10c15c:	39 d3                	cmp    %edx,%ebx                      
  10c15e:	7e 28                	jle    10c188 <rtems_aio_search_fd+0x40>
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
  10c160:	8d 4e 04             	lea    0x4(%esi),%ecx                 
  10c163:	eb 0c                	jmp    10c171 <rtems_aio_search_fd+0x29>
  10c165:	8d 76 00             	lea    0x0(%esi),%esi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c168:	8b 00                	mov    (%eax),%eax                    
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (chain);                                   
  r_chain = (rtems_aio_request_chain *) node;                         
                                                                      
  while (r_chain->fildes < fildes && !rtems_chain_is_tail (chain, node)) {
  10c16a:	8b 50 14             	mov    0x14(%eax),%edx                
  10c16d:	39 da                	cmp    %ebx,%edx                      
  10c16f:	7d 17                	jge    10c188 <rtems_aio_search_fd+0x40>
  10c171:	39 c8                	cmp    %ecx,%eax                      
  10c173:	75 f3                	jne    10c168 <rtems_aio_search_fd+0x20>
  10c175:	89 c7                	mov    %eax,%edi                      
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
  10c177:	8b 45 10             	mov    0x10(%ebp),%eax                
  10c17a:	85 c0                	test   %eax,%eax                      
  10c17c:	75 1f                	jne    10c19d <rtems_aio_search_fd+0x55>
      r_chain = NULL;                                                 
  10c17e:	31 c0                	xor    %eax,%eax                      
      r_chain->new_fd = 1;                                            
	  r_chain->fildes = fildes;                                          
    }                                                                 
  }                                                                   
  return r_chain;                                                     
}                                                                     
  10c180:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c183:	5b                   	pop    %ebx                           
  10c184:	5e                   	pop    %esi                           
  10c185:	5f                   	pop    %edi                           
  10c186:	c9                   	leave                                 
  10c187:	c3                   	ret                                   
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10c188:	89 c7                	mov    %eax,%edi                      
  while (r_chain->fildes < fildes && !rtems_chain_is_tail (chain, node)) {
    node = rtems_chain_next (node);                                   
    r_chain = (rtems_aio_request_chain *) node;                       
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
  10c18a:	39 d3                	cmp    %edx,%ebx                      
  10c18c:	75 e9                	jne    10c177 <rtems_aio_search_fd+0x2f>
    r_chain->new_fd = 0;                                              
  10c18e:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
      r_chain->new_fd = 1;                                            
	  r_chain->fildes = fildes;                                          
    }                                                                 
  }                                                                   
  return r_chain;                                                     
}                                                                     
  10c195:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c198:	5b                   	pop    %ebx                           
  10c199:	5e                   	pop    %esi                           
  10c19a:	5f                   	pop    %edi                           
  10c19b:	c9                   	leave                                 
  10c19c:	c3                   	ret                                   
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
      r_chain = NULL;                                                 
    else {                                                            
      r_chain = malloc (sizeof (rtems_aio_request_chain));            
  10c19d:	83 ec 0c             	sub    $0xc,%esp                      
  10c1a0:	6a 24                	push   $0x24                          
  10c1a2:	e8 c1 ce ff ff       	call   109068 <malloc>                
  10c1a7:	89 c2                	mov    %eax,%edx                      
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  10c1a9:	8d 4a 0c             	lea    0xc(%edx),%ecx                 
  10c1ac:	89 4a 08             	mov    %ecx,0x8(%edx)                 
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10c1af:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  10c1b6:	8d 4a 08             	lea    0x8(%edx),%ecx                 
  10c1b9:	89 4a 10             	mov    %ecx,0x10(%edx)                
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
  10c1bc:	8d 4e 04             	lea    0x4(%esi),%ecx                 
      rtems_chain_initialize_empty (&r_chain->perfd);                 
                                                                      
      if (rtems_chain_is_empty (chain))                               
  10c1bf:	83 c4 10             	add    $0x10,%esp                     
  10c1c2:	39 0e                	cmp    %ecx,(%esi)                    
  10c1c4:	74 27                	je     10c1ed <rtems_aio_search_fd+0xa5>
RTEMS_INLINE_ROUTINE void rtems_chain_insert(                         
  rtems_chain_node *after_node,                                       
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Insert( after_node, the_node );                              
  10c1c6:	83 ec 08             	sub    $0x8,%esp                      
  10c1c9:	52                   	push   %edx                           
  10c1ca:	ff 77 04             	pushl  0x4(%edi)                      
  10c1cd:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c1d0:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  10c1d3:	e8 60 27 00 00       	call   10e938 <_Chain_Insert>         
  10c1d8:	83 c4 10             	add    $0x10,%esp                     
  10c1db:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10c1de:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
        rtems_chain_prepend (chain, &r_chain->next_fd);               
      else                                                            
        rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd);
                                                                      
      r_chain->new_fd = 1;                                            
  10c1e1:	c7 42 18 01 00 00 00 	movl   $0x1,0x18(%edx)                
	  r_chain->fildes = fildes;                                          
  10c1e8:	89 5a 14             	mov    %ebx,0x14(%edx)                
  10c1eb:	eb a8                	jmp    10c195 <rtems_aio_search_fd+0x4d>
RTEMS_INLINE_ROUTINE void _Chain_Prepend(                             
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert(_Chain_Head(the_chain), the_node);                    
  10c1ed:	83 ec 08             	sub    $0x8,%esp                      
  10c1f0:	52                   	push   %edx                           
  10c1f1:	56                   	push   %esi                           
  10c1f2:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c1f5:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  10c1f8:	e8 3b 27 00 00       	call   10e938 <_Chain_Insert>         
  10c1fd:	83 c4 10             	add    $0x10,%esp                     
  10c200:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c203:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10c206:	eb d9                	jmp    10c1e1 <rtems_aio_search_fd+0x99>
                                                                      

00113704 <rtems_barrier_create>: rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) {
  113704:	55                   	push   %ebp                           
  113705:	89 e5                	mov    %esp,%ebp                      
  113707:	57                   	push   %edi                           
  113708:	56                   	push   %esi                           
  113709:	53                   	push   %ebx                           
  11370a:	83 ec 2c             	sub    $0x2c,%esp                     
  11370d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  113710:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  113713:	8b 45 10             	mov    0x10(%ebp),%eax                
  113716:	8b 75 14             	mov    0x14(%ebp),%esi                
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  113719:	85 db                	test   %ebx,%ebx                      
  11371b:	0f 84 87 00 00 00    	je     1137a8 <rtems_barrier_create+0xa4><== NEVER TAKEN
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  113721:	85 f6                	test   %esi,%esi                      
  113723:	0f 84 bf 00 00 00    	je     1137e8 <rtems_barrier_create+0xe4><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Initialize core barrier attributes */                            
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
  113729:	f7 c7 10 00 00 00    	test   $0x10,%edi                     
  11372f:	0f 84 83 00 00 00    	je     1137b8 <rtems_barrier_create+0xb4>
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
  113735:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
    if ( maximum_waiters == 0 )                                       
  11373c:	85 c0                	test   %eax,%eax                      
  11373e:	0f 84 80 00 00 00    	je     1137c4 <rtems_barrier_create+0xc0><== NEVER TAKEN
      return RTEMS_INVALID_NUMBER;                                    
  } else                                                              
    the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE;          
  the_attributes.maximum_count = maximum_waiters;                     
  113744:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  113747:	a1 30 a8 12 00       	mov    0x12a830,%eax                  
  11374c:	40                   	inc    %eax                           
  11374d:	a3 30 a8 12 00       	mov    %eax,0x12a830                  
 *  This function allocates a barrier control block from              
 *  the inactive chain of free barrier control blocks.                
 */                                                                   
RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Allocate( void )       
{                                                                     
  return (Barrier_Control *) _Objects_Allocate( &_Barrier_Information );
  113752:	83 ec 0c             	sub    $0xc,%esp                      
  113755:	68 20 b2 12 00       	push   $0x12b220                      
  11375a:	e8 49 b0 ff ff       	call   10e7a8 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
  11375f:	83 c4 10             	add    $0x10,%esp                     
  113762:	85 c0                	test   %eax,%eax                      
  113764:	74 6e                	je     1137d4 <rtems_barrier_create+0xd0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_barrier->attribute_set = attribute_set;                         
  113766:	89 78 10             	mov    %edi,0x10(%eax)                
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
  113769:	83 ec 08             	sub    $0x8,%esp                      
  11376c:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  11376f:	52                   	push   %edx                           
  113770:	8d 50 14             	lea    0x14(%eax),%edx                
  113773:	52                   	push   %edx                           
  113774:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  113777:	e8 c0 07 00 00       	call   113f3c <_CORE_barrier_Initialize>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  11377c:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  11377f:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  113782:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  113785:	8b 0d 3c b2 12 00    	mov    0x12b23c,%ecx                  
  11378b:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  11378e:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Barrier_Information,                                            
    &the_barrier->Object,                                             
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_barrier->Object.id;                                       
  113791:	89 16                	mov    %edx,(%esi)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  113793:	e8 7c c0 ff ff       	call   10f814 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  113798:	83 c4 10             	add    $0x10,%esp                     
  11379b:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11379d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1137a0:	5b                   	pop    %ebx                           
  1137a1:	5e                   	pop    %esi                           
  1137a2:	5f                   	pop    %edi                           
  1137a3:	c9                   	leave                                 
  1137a4:	c3                   	ret                                   
  1137a5:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  1137a8:	b8 03 00 00 00       	mov    $0x3,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1137ad:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1137b0:	5b                   	pop    %ebx                           
  1137b1:	5e                   	pop    %esi                           
  1137b2:	5f                   	pop    %edi                           
  1137b3:	c9                   	leave                                 
  1137b4:	c3                   	ret                                   
  1137b5:	8d 76 00             	lea    0x0(%esi),%esi                 
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
    if ( maximum_waiters == 0 )                                       
      return RTEMS_INVALID_NUMBER;                                    
  } else                                                              
    the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE;          
  1137b8:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)               
  1137bf:	eb 83                	jmp    113744 <rtems_barrier_create+0x40>
  1137c1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  /* Initialize core barrier attributes */                            
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
    if ( maximum_waiters == 0 )                                       
      return RTEMS_INVALID_NUMBER;                                    
  1137c4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1137c9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1137cc:	5b                   	pop    %ebx                           
  1137cd:	5e                   	pop    %esi                           
  1137ce:	5f                   	pop    %edi                           
  1137cf:	c9                   	leave                                 
  1137d0:	c3                   	ret                                   
  1137d1:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
  1137d4:	e8 3b c0 ff ff       	call   10f814 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  1137d9:	b8 05 00 00 00       	mov    $0x5,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1137de:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1137e1:	5b                   	pop    %ebx                           
  1137e2:	5e                   	pop    %esi                           
  1137e3:	5f                   	pop    %edi                           
  1137e4:	c9                   	leave                                 
  1137e5:	c3                   	ret                                   
  1137e6:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  1137e8:	b8 09 00 00 00       	mov    $0x9,%eax                      
  1137ed:	eb ae                	jmp    11379d <rtems_barrier_create+0x99>
                                                                      

0010c268 <rtems_chain_append_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
  10c268:	55                   	push   %ebp                           
  10c269:	89 e5                	mov    %esp,%ebp                      
  10c26b:	56                   	push   %esi                           
  10c26c:	53                   	push   %ebx                           
  10c26d:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10c270:	8b 75 14             	mov    0x14(%ebp),%esi                
RTEMS_INLINE_ROUTINE bool rtems_chain_append_with_empty_check(        
  rtems_chain_control *chain,                                         
  rtems_chain_node *node                                              
)                                                                     
{                                                                     
  return _Chain_Append_with_empty_check( chain, node );               
  10c273:	83 ec 08             	sub    $0x8,%esp                      
  10c276:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c279:	ff 75 08             	pushl  0x8(%ebp)                      
  10c27c:	e8 eb 04 00 00       	call   10c76c <_Chain_Append_with_empty_check>
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_append_with_empty_check( chain, node );
                                                                      
  if ( was_empty ) {                                                  
  10c281:	83 c4 10             	add    $0x10,%esp                     
  10c284:	84 c0                	test   %al,%al                        
  10c286:	75 0c                	jne    10c294 <rtems_chain_append_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c288:	31 c0                	xor    %eax,%eax                      
  10c28a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c28d:	5b                   	pop    %ebx                           
  10c28e:	5e                   	pop    %esi                           
  10c28f:	c9                   	leave                                 
  10c290:	c3                   	ret                                   
  10c291:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_append_with_empty_check( chain, node );
                                                                      
  if ( was_empty ) {                                                  
    sc = rtems_event_send( task, events );                            
  10c294:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10c297:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c29a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c29d:	5b                   	pop    %ebx                           
  10c29e:	5e                   	pop    %esi                           
  10c29f:	c9                   	leave                                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_append_with_empty_check( chain, node );
                                                                      
  if ( was_empty ) {                                                  
    sc = rtems_event_send( task, events );                            
  10c2a0:	e9 af f5 ff ff       	jmp    10b854 <rtems_event_send>      
                                                                      

0010c2a8 <rtems_chain_get_with_notification>: rtems_chain_control *chain, rtems_id task, rtems_event_set events, rtems_chain_node **node ) {
  10c2a8:	55                   	push   %ebp                           
  10c2a9:	89 e5                	mov    %esp,%ebp                      
  10c2ab:	56                   	push   %esi                           
  10c2ac:	53                   	push   %ebx                           
  10c2ad:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c2b0:	8b 75 10             	mov    0x10(%ebp),%esi                
RTEMS_INLINE_ROUTINE bool rtems_chain_get_with_empty_check(           
  rtems_chain_control *chain,                                         
  rtems_chain_node **node                                             
)                                                                     
{                                                                     
  return _Chain_Get_with_empty_check( chain, node );                  
  10c2b3:	83 ec 08             	sub    $0x8,%esp                      
  10c2b6:	ff 75 14             	pushl  0x14(%ebp)                     
  10c2b9:	ff 75 08             	pushl  0x8(%ebp)                      
  10c2bc:	e8 13 05 00 00       	call   10c7d4 <_Chain_Get_with_empty_check>
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool is_empty = rtems_chain_get_with_empty_check( chain, node );    
                                                                      
  if ( is_empty ) {                                                   
  10c2c1:	83 c4 10             	add    $0x10,%esp                     
  10c2c4:	84 c0                	test   %al,%al                        
  10c2c6:	75 0c                	jne    10c2d4 <rtems_chain_get_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c2c8:	31 c0                	xor    %eax,%eax                      
  10c2ca:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c2cd:	5b                   	pop    %ebx                           
  10c2ce:	5e                   	pop    %esi                           
  10c2cf:	c9                   	leave                                 
  10c2d0:	c3                   	ret                                   
  10c2d1:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool is_empty = rtems_chain_get_with_empty_check( chain, node );    
                                                                      
  if ( is_empty ) {                                                   
    sc = rtems_event_send( task, events );                            
  10c2d4:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10c2d7:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c2da:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c2dd:	5b                   	pop    %ebx                           
  10c2de:	5e                   	pop    %esi                           
  10c2df:	c9                   	leave                                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool is_empty = rtems_chain_get_with_empty_check( chain, node );    
                                                                      
  if ( is_empty ) {                                                   
    sc = rtems_event_send( task, events );                            
  10c2e0:	e9 6f f5 ff ff       	jmp    10b854 <rtems_event_send>      
                                                                      

0010c2e8 <rtems_chain_get_with_wait>: rtems_chain_control *chain, rtems_event_set events, rtems_interval timeout, rtems_chain_node **node_ptr ) {
  10c2e8:	55                   	push   %ebp                           
  10c2e9:	89 e5                	mov    %esp,%ebp                      
  10c2eb:	57                   	push   %edi                           
  10c2ec:	56                   	push   %esi                           
  10c2ed:	53                   	push   %ebx                           
  10c2ee:	83 ec 1c             	sub    $0x1c,%esp                     
  10c2f1:	8b 75 08             	mov    0x8(%ebp),%esi                 
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
  10c2f4:	8d 7d e4             	lea    -0x1c(%ebp),%edi               
  10c2f7:	90                   	nop                                   
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
  10c2f8:	83 ec 0c             	sub    $0xc,%esp                      
  10c2fb:	56                   	push   %esi                           
  10c2fc:	e8 0f 05 00 00       	call   10c810 <_Chain_Get>            
  10c301:	89 c3                	mov    %eax,%ebx                      
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  10c303:	83 c4 10             	add    $0x10,%esp                     
  10c306:	85 c0                	test   %eax,%eax                      
  10c308:	75 22                	jne    10c32c <rtems_chain_get_with_wait+0x44>
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
  10c30a:	57                   	push   %edi                           
  10c30b:	ff 75 10             	pushl  0x10(%ebp)                     
  10c30e:	6a 00                	push   $0x0                           
  10c310:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c313:	e8 b4 f3 ff ff       	call   10b6cc <rtems_event_receive>   
)                                                                     
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
  10c318:	83 c4 10             	add    $0x10,%esp                     
  10c31b:	85 c0                	test   %eax,%eax                      
  10c31d:	74 d9                	je     10c2f8 <rtems_chain_get_with_wait+0x10><== NEVER TAKEN
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
  10c31f:	8b 55 14             	mov    0x14(%ebp),%edx                
  10c322:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  return sc;                                                          
}                                                                     
  10c324:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c327:	5b                   	pop    %ebx                           
  10c328:	5e                   	pop    %esi                           
  10c329:	5f                   	pop    %edi                           
  10c32a:	c9                   	leave                                 
  10c32b:	c3                   	ret                                   
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  10c32c:	31 c0                	xor    %eax,%eax                      
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
  10c32e:	8b 55 14             	mov    0x14(%ebp),%edx                
  10c331:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  return sc;                                                          
}                                                                     
  10c333:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c336:	5b                   	pop    %ebx                           
  10c337:	5e                   	pop    %esi                           
  10c338:	5f                   	pop    %edi                           
  10c339:	c9                   	leave                                 
  10c33a:	c3                   	ret                                   
                                                                      

0010c33c <rtems_chain_prepend_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
  10c33c:	55                   	push   %ebp                           
  10c33d:	89 e5                	mov    %esp,%ebp                      
  10c33f:	56                   	push   %esi                           
  10c340:	53                   	push   %ebx                           
  10c341:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10c344:	8b 75 14             	mov    0x14(%ebp),%esi                
RTEMS_INLINE_ROUTINE bool rtems_chain_prepend_with_empty_check(       
  rtems_chain_control *chain,                                         
  rtems_chain_node *node                                              
)                                                                     
{                                                                     
  return _Chain_Prepend_with_empty_check( chain, node );              
  10c347:	83 ec 08             	sub    $0x8,%esp                      
  10c34a:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c34d:	ff 75 08             	pushl  0x8(%ebp)                      
  10c350:	e8 ff 04 00 00       	call   10c854 <_Chain_Prepend_with_empty_check>
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_prepend_with_empty_check( chain, node );
                                                                      
  if (was_empty) {                                                    
  10c355:	83 c4 10             	add    $0x10,%esp                     
  10c358:	84 c0                	test   %al,%al                        
  10c35a:	75 0c                	jne    10c368 <rtems_chain_prepend_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c35c:	31 c0                	xor    %eax,%eax                      
  10c35e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c361:	5b                   	pop    %ebx                           
  10c362:	5e                   	pop    %esi                           
  10c363:	c9                   	leave                                 
  10c364:	c3                   	ret                                   
  10c365:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_prepend_with_empty_check( chain, node );
                                                                      
  if (was_empty) {                                                    
    sc = rtems_event_send( task, events );                            
  10c368:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10c36b:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10c36e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c371:	5b                   	pop    %ebx                           
  10c372:	5e                   	pop    %esi                           
  10c373:	c9                   	leave                                 
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_prepend_with_empty_check( chain, node );
                                                                      
  if (was_empty) {                                                    
    sc = rtems_event_send( task, events );                            
  10c374:	e9 db f4 ff ff       	jmp    10b854 <rtems_event_send>      
                                                                      

00115aa8 <rtems_clock_get>: rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) {
  115aa8:	55                   	push   %ebp                           
  115aa9:	89 e5                	mov    %esp,%ebp                      
  115aab:	53                   	push   %ebx                           
  115aac:	83 ec 04             	sub    $0x4,%esp                      
  115aaf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  115ab2:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  if ( !time_buffer )                                                 
  115ab5:	85 db                	test   %ebx,%ebx                      
  115ab7:	74 3b                	je     115af4 <rtems_clock_get+0x4c>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
  115ab9:	85 c0                	test   %eax,%eax                      
  115abb:	74 2b                	je     115ae8 <rtems_clock_get+0x40>  
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
                                                                      
  if ( option == RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH )                
  115abd:	83 f8 01             	cmp    $0x1,%eax                      
  115ac0:	74 3e                	je     115b00 <rtems_clock_get+0x58>  
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
  115ac2:	83 f8 02             	cmp    $0x2,%eax                      
  115ac5:	74 45                	je     115b0c <rtems_clock_get+0x64>  
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
  115ac7:	83 f8 03             	cmp    $0x3,%eax                      
  115aca:	74 4c                	je     115b18 <rtems_clock_get+0x70>  
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
  115acc:	83 f8 04             	cmp    $0x4,%eax                      
  115acf:	74 0b                	je     115adc <rtems_clock_get+0x34>  
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
  115ad1:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
}                                                                     
  115ad6:	5a                   	pop    %edx                           
  115ad7:	5b                   	pop    %ebx                           
  115ad8:	c9                   	leave                                 
  115ad9:	c3                   	ret                                   
  115ada:	66 90                	xchg   %ax,%ax                        
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
  115adc:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
  115adf:	59                   	pop    %ecx                           
  115ae0:	5b                   	pop    %ebx                           
  115ae1:	c9                   	leave                                 
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
  115ae2:	e9 41 01 00 00       	jmp    115c28 <rtems_clock_get_tod_timeval>
  115ae7:	90                   	nop                                   
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
  115ae8:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
  115aeb:	58                   	pop    %eax                           
  115aec:	5b                   	pop    %ebx                           
  115aed:	c9                   	leave                                 
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
  115aee:	e9 81 00 00 00       	jmp    115b74 <rtems_clock_get_tod>   
  115af3:	90                   	nop                                   
  rtems_clock_get_options  option,                                    
  void                    *time_buffer                                
)                                                                     
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  115af4:	b8 09 00 00 00       	mov    $0x9,%eax                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
  115af9:	5a                   	pop    %edx                           
  115afa:	5b                   	pop    %ebx                           
  115afb:	c9                   	leave                                 
  115afc:	c3                   	ret                                   
  115afd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
                                                                      
  if ( option == RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH )                
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
  115b00:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
  115b03:	5b                   	pop    %ebx                           
  115b04:	5b                   	pop    %ebx                           
  115b05:	c9                   	leave                                 
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
                                                                      
  if ( option == RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH )                
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
  115b06:	e9 19 00 00 00       	jmp    115b24 <rtems_clock_get_seconds_since_epoch>
  115b0b:	90                   	nop                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
  115b0c:	e8 57 00 00 00       	call   115b68 <rtems_clock_get_ticks_since_boot>
  115b11:	89 03                	mov    %eax,(%ebx)                    
    return RTEMS_SUCCESSFUL;                                          
  115b13:	31 c0                	xor    %eax,%eax                      
  115b15:	eb bf                	jmp    115ad6 <rtems_clock_get+0x2e>  
  115b17:	90                   	nop                                   
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
  115b18:	e8 37 00 00 00       	call   115b54 <rtems_clock_get_ticks_per_second>
  115b1d:	89 03                	mov    %eax,(%ebx)                    
    return RTEMS_SUCCESSFUL;                                          
  115b1f:	31 c0                	xor    %eax,%eax                      
  115b21:	eb b3                	jmp    115ad6 <rtems_clock_get+0x2e>  
                                                                      

00115c28 <rtems_clock_get_tod_timeval>: #include <rtems/score/watchdog.h> rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) {
  115c28:	55                   	push   %ebp                           
  115c29:	89 e5                	mov    %esp,%ebp                      
  115c2b:	56                   	push   %esi                           
  115c2c:	53                   	push   %ebx                           
  115c2d:	83 ec 10             	sub    $0x10,%esp                     
  115c30:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  if ( !time )                                                        
  115c33:	85 db                	test   %ebx,%ebx                      
  115c35:	74 51                	je     115c88 <rtems_clock_get_tod_timeval+0x60>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
  115c37:	80 3d 04 2b 14 00 00 	cmpb   $0x0,0x142b04                  
  115c3e:	75 0c                	jne    115c4c <rtems_clock_get_tod_timeval+0x24>
    return RTEMS_NOT_DEFINED;                                         
  115c40:	b8 0b 00 00 00       	mov    $0xb,%eax                      
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115c45:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115c48:	5b                   	pop    %ebx                           
  115c49:	5e                   	pop    %esi                           
  115c4a:	c9                   	leave                                 
  115c4b:	c3                   	ret                                   
{                                                                     
  ISR_Level       level;                                              
  struct timespec now;                                                
  suseconds_t     useconds;                                           
                                                                      
  _ISR_Disable(level);                                                
  115c4c:	9c                   	pushf                                 
  115c4d:	fa                   	cli                                   
  115c4e:	5e                   	pop    %esi                           
    _TOD_Get( &now );                                                 
  115c4f:	83 ec 0c             	sub    $0xc,%esp                      
  115c52:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  115c55:	50                   	push   %eax                           
  115c56:	e8 1d 44 00 00       	call   11a078 <_TOD_Get>              
  _ISR_Enable(level);                                                 
  115c5b:	56                   	push   %esi                           
  115c5c:	9d                   	popf                                  
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  115c5d:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  115c60:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  115c63:	89 03                	mov    %eax,(%ebx)                    
  _ISR_Disable(level);                                                
    _TOD_Get( &now );                                                 
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
  115c65:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax               
  115c6a:	f7 e9                	imul   %ecx                           
  115c6c:	89 d0                	mov    %edx,%eax                      
  115c6e:	c1 f8 06             	sar    $0x6,%eax                      
  115c71:	c1 f9 1f             	sar    $0x1f,%ecx                     
  115c74:	29 c8                	sub    %ecx,%eax                      
  115c76:	89 43 04             	mov    %eax,0x4(%ebx)                 
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  115c79:	83 c4 10             	add    $0x10,%esp                     
  115c7c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  115c7e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115c81:	5b                   	pop    %ebx                           
  115c82:	5e                   	pop    %esi                           
  115c83:	c9                   	leave                                 
  115c84:	c3                   	ret                                   
  115c85:	8d 76 00             	lea    0x0(%esi),%esi                 
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  115c88:	b8 09 00 00 00       	mov    $0x9,%eax                      
  115c8d:	eb b6                	jmp    115c45 <rtems_clock_get_tod_timeval+0x1d>
                                                                      

0010b21c <rtems_clock_get_uptime>: * error code - if unsuccessful */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) {
  10b21c:	55                   	push   %ebp                           
  10b21d:	89 e5                	mov    %esp,%ebp                      
  10b21f:	83 ec 08             	sub    $0x8,%esp                      
  10b222:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !uptime )                                                      
  10b225:	85 c0                	test   %eax,%eax                      
  10b227:	74 13                	je     10b23c <rtems_clock_get_uptime+0x20>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
  10b229:	83 ec 0c             	sub    $0xc,%esp                      
  10b22c:	50                   	push   %eax                           
  10b22d:	e8 76 16 00 00       	call   10c8a8 <_TOD_Get_uptime_as_timespec>
  return RTEMS_SUCCESSFUL;                                            
  10b232:	83 c4 10             	add    $0x10,%esp                     
  10b235:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b237:	c9                   	leave                                 
  10b238:	c3                   	ret                                   
  10b239:	8d 76 00             	lea    0x0(%esi),%esi                 
rtems_status_code rtems_clock_get_uptime(                             
  struct timespec *uptime                                             
)                                                                     
{                                                                     
  if ( !uptime )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  10b23c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b241:	c9                   	leave                                 
  10b242:	c3                   	ret                                   
                                                                      

0010c180 <rtems_clock_set>: */ rtems_status_code rtems_clock_set( rtems_time_of_day *time_buffer ) {
  10c180:	55                   	push   %ebp                           
  10c181:	89 e5                	mov    %esp,%ebp                      
  10c183:	53                   	push   %ebx                           
  10c184:	83 ec 14             	sub    $0x14,%esp                     
  10c187:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  struct timespec  newtime;                                           
                                                                      
  if ( !time_buffer )                                                 
  10c18a:	85 db                	test   %ebx,%ebx                      
  10c18c:	74 66                	je     10c1f4 <rtems_clock_set+0x74>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( _TOD_Validate( time_buffer ) ) {                               
  10c18e:	83 ec 0c             	sub    $0xc,%esp                      
  10c191:	53                   	push   %ebx                           
  10c192:	e8 39 01 00 00       	call   10c2d0 <_TOD_Validate>         
  10c197:	83 c4 10             	add    $0x10,%esp                     
  10c19a:	84 c0                	test   %al,%al                        
  10c19c:	75 0a                	jne    10c1a8 <rtems_clock_set+0x28>  
    _Thread_Disable_dispatch();                                       
      _TOD_Set( &newtime );                                           
    _Thread_Enable_dispatch();                                        
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
  10c19e:	b8 14 00 00 00       	mov    $0x14,%eax                     
}                                                                     
  10c1a3:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c1a6:	c9                   	leave                                 
  10c1a7:	c3                   	ret                                   
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( _TOD_Validate( time_buffer ) ) {                               
    newtime.tv_sec = _TOD_To_seconds( time_buffer );                  
  10c1a8:	83 ec 0c             	sub    $0xc,%esp                      
  10c1ab:	53                   	push   %ebx                           
  10c1ac:	e8 93 00 00 00       	call   10c244 <_TOD_To_seconds>       
  10c1b1:	89 45 f0             	mov    %eax,-0x10(%ebp)               
    newtime.tv_nsec = time_buffer->ticks *                            
  10c1b4:	8b 43 18             	mov    0x18(%ebx),%eax                
  10c1b7:	0f af 05 ec 72 12 00 	imul   0x1272ec,%eax                  
  10c1be:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10c1c1:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10c1c4:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10c1c7:	c1 e0 03             	shl    $0x3,%eax                      
  10c1ca:	89 45 f4             	mov    %eax,-0xc(%ebp)                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c1cd:	a1 90 ba 12 00       	mov    0x12ba90,%eax                  
  10c1d2:	40                   	inc    %eax                           
  10c1d3:	a3 90 ba 12 00       	mov    %eax,0x12ba90                  
      rtems_configuration_get_nanoseconds_per_tick();                 
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( &newtime );                                           
  10c1d8:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10c1db:	89 04 24             	mov    %eax,(%esp)                    
  10c1de:	e8 55 19 00 00       	call   10db38 <_TOD_Set>              
    _Thread_Enable_dispatch();                                        
  10c1e3:	e8 b4 2f 00 00       	call   10f19c <_Thread_Enable_dispatch>
    return RTEMS_SUCCESSFUL;                                          
  10c1e8:	83 c4 10             	add    $0x10,%esp                     
  10c1eb:	31 c0                	xor    %eax,%eax                      
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
}                                                                     
  10c1ed:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c1f0:	c9                   	leave                                 
  10c1f1:	c3                   	ret                                   
  10c1f2:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  struct timespec  newtime;                                           
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  10c1f4:	b8 09 00 00 00       	mov    $0x9,%eax                      
      _TOD_Set( &newtime );                                           
    _Thread_Enable_dispatch();                                        
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
}                                                                     
  10c1f9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c1fc:	c9                   	leave                                 
  10c1fd:	c3                   	ret                                   
                                                                      

0010b018 <rtems_clock_tick>: * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) {
  10b018:	55                   	push   %ebp                           
  10b019:	89 e5                	mov    %esp,%ebp                      
  10b01b:	83 ec 08             	sub    $0x8,%esp                      
  _TOD_Tickle_ticks();                                                
  10b01e:	e8 39 15 00 00       	call   10c55c <_TOD_Tickle_ticks>     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void )              
{                                                                     
                                                                      
  _Watchdog_Tickle( &_Watchdog_Ticks_chain );                         
  10b023:	83 ec 0c             	sub    $0xc,%esp                      
  10b026:	68 20 7f 12 00       	push   $0x127f20                      
  10b02b:	e8 f8 38 00 00       	call   10e928 <_Watchdog_Tickle>      
                                                                      
  _Watchdog_Tickle_ticks();                                           
                                                                      
  _Thread_Tickle_timeslice();                                         
  10b030:	e8 bf 33 00 00       	call   10e3f4 <_Thread_Tickle_timeslice>
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) 
{                                                                     
  return ( _Thread_Dispatch_necessary );                              
  10b035:	a0 04 84 12 00       	mov    0x128404,%al                   
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
  10b03a:	83 c4 10             	add    $0x10,%esp                     
  10b03d:	84 c0                	test   %al,%al                        
  10b03f:	74 09                	je     10b04a <rtems_clock_tick+0x32> 
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )      
{                                                                     
  return ( _Thread_Dispatch_disable_level == 0 );                     
  10b041:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10b046:	85 c0                	test   %eax,%eax                      
  10b048:	74 06                	je     10b050 <rtems_clock_tick+0x38> 
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b04a:	31 c0                	xor    %eax,%eax                      
  10b04c:	c9                   	leave                                 
  10b04d:	c3                   	ret                                   
  10b04e:	66 90                	xchg   %ax,%ax                        
                                                                      
  _Thread_Tickle_timeslice();                                         
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
  10b050:	e8 3b 28 00 00       	call   10d890 <_Thread_Dispatch>      
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b055:	31 c0                	xor    %eax,%eax                      
  10b057:	c9                   	leave                                 
  10b058:	c3                   	ret                                   
                                                                      

0010b1e4 <rtems_event_send>: rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in ) {
  10b1e4:	55                   	push   %ebp                           
  10b1e5:	89 e5                	mov    %esp,%ebp                      
  10b1e7:	53                   	push   %ebx                           
  10b1e8:	83 ec 1c             	sub    $0x1c,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10b1eb:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b1ee:	50                   	push   %eax                           
  10b1ef:	ff 75 08             	pushl  0x8(%ebp)                      
  10b1f2:	e8 35 28 00 00       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  10b1f7:	83 c4 10             	add    $0x10,%esp                     
  10b1fa:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b1fd:	85 d2                	test   %edx,%edx                      
  10b1ff:	75 2b                	jne    10b22c <rtems_event_send+0x48> 
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
  10b201:	8b 90 e8 00 00 00    	mov    0xe8(%eax),%edx                
  rtems_event_set *the_event_set                                      
)                                                                     
{                                                                     
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  10b207:	9c                   	pushf                                 
  10b208:	fa                   	cli                                   
  10b209:	59                   	pop    %ecx                           
    *the_event_set |= the_new_events;                                 
  10b20a:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b20d:	09 1a                	or     %ebx,(%edx)                    
  _ISR_Enable( level );                                               
  10b20f:	51                   	push   %ecx                           
  10b210:	9d                   	popf                                  
      _Event_sets_Post( event_in, &api->pending_events );             
      _Event_Surrender( the_thread );                                 
  10b211:	83 ec 0c             	sub    $0xc,%esp                      
  10b214:	50                   	push   %eax                           
  10b215:	e8 1e 00 00 00       	call   10b238 <_Event_Surrender>      
      _Thread_Enable_dispatch();                                      
  10b21a:	e8 e9 27 00 00       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10b21f:	83 c4 10             	add    $0x10,%esp                     
  10b222:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b224:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b227:	c9                   	leave                                 
  10b228:	c3                   	ret                                   
  10b229:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b22c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b231:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b234:	c9                   	leave                                 
  10b235:	c3                   	ret                                   
                                                                      

0010d048 <rtems_extension_delete>: #include <rtems/extension.h> rtems_status_code rtems_extension_delete( rtems_id id ) {
  10d048:	55                   	push   %ebp                           
  10d049:	89 e5                	mov    %esp,%ebp                      
  10d04b:	53                   	push   %ebx                           
  10d04c:	83 ec 18             	sub    $0x18,%esp                     
  Extension_Control   *the_extension;                                 
  Objects_Locations    location;                                      
                                                                      
  the_extension = _Extension_Get( id, &location );                    
  10d04f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Extension_Control *)                                        
    _Objects_Get( &_Extension_Information, id, location );            
  10d052:	50                   	push   %eax                           
  10d053:	ff 75 08             	pushl  0x8(%ebp)                      
  10d056:	68 60 ac 12 00       	push   $0x12ac60                      
  10d05b:	e8 28 12 00 00       	call   10e288 <_Objects_Get>          
  10d060:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10d062:	83 c4 10             	add    $0x10,%esp                     
  10d065:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d068:	85 d2                	test   %edx,%edx                      
  10d06a:	75 38                	jne    10d0a4 <rtems_extension_delete+0x5c>
    case OBJECTS_LOCAL:                                               
      _User_extensions_Remove_set( &the_extension->Extension );       
  10d06c:	83 ec 0c             	sub    $0xc,%esp                      
  10d06f:	8d 40 10             	lea    0x10(%eax),%eax                
  10d072:	50                   	push   %eax                           
  10d073:	e8 e4 29 00 00       	call   10fa5c <_User_extensions_Remove_set>
      _Objects_Close( &_Extension_Information, &the_extension->Object );
  10d078:	59                   	pop    %ecx                           
  10d079:	58                   	pop    %eax                           
  10d07a:	53                   	push   %ebx                           
  10d07b:	68 60 ac 12 00       	push   $0x12ac60                      
  10d080:	e8 cb 0d 00 00       	call   10de50 <_Objects_Close>        
                                                                      
RTEMS_INLINE_ROUTINE void _Extension_Free (                           
  Extension_Control *the_extension                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Extension_Information, &the_extension->Object );   
  10d085:	58                   	pop    %eax                           
  10d086:	5a                   	pop    %edx                           
  10d087:	53                   	push   %ebx                           
  10d088:	68 60 ac 12 00       	push   $0x12ac60                      
  10d08d:	e8 b6 10 00 00       	call   10e148 <_Objects_Free>         
      _Extension_Free( the_extension );                               
      _Thread_Enable_dispatch();                                      
  10d092:	e8 79 1d 00 00       	call   10ee10 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10d097:	83 c4 10             	add    $0x10,%esp                     
  10d09a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d09c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d09f:	c9                   	leave                                 
  10d0a0:	c3                   	ret                                   
  10d0a1:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10d0a4:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10d0a9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d0ac:	c9                   	leave                                 
  10d0ad:	c3                   	ret                                   
                                                                      

00112fc8 <rtems_io_close>: rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112fc8:	55                   	push   %ebp                           
  112fc9:	89 e5                	mov    %esp,%ebp                      
  112fcb:	53                   	push   %ebx                           
  112fcc:	83 ec 04             	sub    $0x4,%esp                      
  112fcf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112fd2:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  112fd8:	76 1a                	jbe    112ff4 <rtems_io_close+0x2c>   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  112fda:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112fdd:	c1 e2 03             	shl    $0x3,%edx                      
  112fe0:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  112fe6:	8b 52 08             	mov    0x8(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112fe9:	85 d2                	test   %edx,%edx                      
  112feb:	74 13                	je     113000 <rtems_io_close+0x38>   
}                                                                     
  112fed:	59                   	pop    %ecx                           
  112fee:	5b                   	pop    %ebx                           
  112fef:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112ff0:	ff e2                	jmp    *%edx                          
  112ff2:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112ff4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112ff9:	5a                   	pop    %edx                           
  112ffa:	5b                   	pop    %ebx                           
  112ffb:	c9                   	leave                                 
  112ffc:	c3                   	ret                                   
  112ffd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113000:	31 c0                	xor    %eax,%eax                      
}                                                                     
  113002:	5a                   	pop    %edx                           
  113003:	5b                   	pop    %ebx                           
  113004:	c9                   	leave                                 
  113005:	c3                   	ret                                   
                                                                      

00113008 <rtems_io_control>: rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  113008:	55                   	push   %ebp                           
  113009:	89 e5                	mov    %esp,%ebp                      
  11300b:	53                   	push   %ebx                           
  11300c:	83 ec 04             	sub    $0x4,%esp                      
  11300f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  113012:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  113018:	76 1a                	jbe    113034 <rtems_io_control+0x2c> 
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  11301a:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  11301d:	c1 e2 03             	shl    $0x3,%edx                      
  113020:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  113026:	8b 52 14             	mov    0x14(%edx),%edx                
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113029:	85 d2                	test   %edx,%edx                      
  11302b:	74 13                	je     113040 <rtems_io_control+0x38> 
}                                                                     
  11302d:	59                   	pop    %ecx                           
  11302e:	5b                   	pop    %ebx                           
  11302f:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113030:	ff e2                	jmp    *%edx                          
  113032:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  113034:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  113039:	5a                   	pop    %edx                           
  11303a:	5b                   	pop    %ebx                           
  11303b:	c9                   	leave                                 
  11303c:	c3                   	ret                                   
  11303d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113040:	31 c0                	xor    %eax,%eax                      
}                                                                     
  113042:	5a                   	pop    %edx                           
  113043:	5b                   	pop    %ebx                           
  113044:	c9                   	leave                                 
  113045:	c3                   	ret                                   
                                                                      

001110a4 <rtems_io_initialize>: rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  1110a4:	55                   	push   %ebp                           
  1110a5:	89 e5                	mov    %esp,%ebp                      
  1110a7:	53                   	push   %ebx                           
  1110a8:	83 ec 04             	sub    $0x4,%esp                      
  1110ab:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  1110ae:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  1110b4:	76 1a                	jbe    1110d0 <rtems_io_initialize+0x2c>
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  1110b6:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  1110b9:	c1 e2 03             	shl    $0x3,%edx                      
  1110bc:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  1110c2:	8b 12                	mov    (%edx),%edx                    
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1110c4:	85 d2                	test   %edx,%edx                      
  1110c6:	74 14                	je     1110dc <rtems_io_initialize+0x38>
}                                                                     
  1110c8:	59                   	pop    %ecx                           
  1110c9:	5b                   	pop    %ebx                           
  1110ca:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1110cb:	ff e2                	jmp    *%edx                          
  1110cd:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  1110d0:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  1110d5:	5a                   	pop    %edx                           
  1110d6:	5b                   	pop    %ebx                           
  1110d7:	c9                   	leave                                 
  1110d8:	c3                   	ret                                   
  1110d9:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1110dc:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1110de:	5a                   	pop    %edx                           
  1110df:	5b                   	pop    %ebx                           
  1110e0:	c9                   	leave                                 
  1110e1:	c3                   	ret                                   
                                                                      

00113048 <rtems_io_open>: rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  113048:	55                   	push   %ebp                           
  113049:	89 e5                	mov    %esp,%ebp                      
  11304b:	53                   	push   %ebx                           
  11304c:	83 ec 04             	sub    $0x4,%esp                      
  11304f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  113052:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  113058:	76 1a                	jbe    113074 <rtems_io_open+0x2c>    
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  11305a:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  11305d:	c1 e2 03             	shl    $0x3,%edx                      
  113060:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  113066:	8b 52 04             	mov    0x4(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113069:	85 d2                	test   %edx,%edx                      
  11306b:	74 13                	je     113080 <rtems_io_open+0x38>    
}                                                                     
  11306d:	59                   	pop    %ecx                           
  11306e:	5b                   	pop    %ebx                           
  11306f:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113070:	ff e2                	jmp    *%edx                          
  113072:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  113074:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  113079:	5a                   	pop    %edx                           
  11307a:	5b                   	pop    %ebx                           
  11307b:	c9                   	leave                                 
  11307c:	c3                   	ret                                   
  11307d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113080:	31 c0                	xor    %eax,%eax                      
}                                                                     
  113082:	5a                   	pop    %edx                           
  113083:	5b                   	pop    %ebx                           
  113084:	c9                   	leave                                 
  113085:	c3                   	ret                                   
                                                                      

00113088 <rtems_io_read>: rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  113088:	55                   	push   %ebp                           
  113089:	89 e5                	mov    %esp,%ebp                      
  11308b:	53                   	push   %ebx                           
  11308c:	83 ec 04             	sub    $0x4,%esp                      
  11308f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  113092:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  113098:	76 1a                	jbe    1130b4 <rtems_io_read+0x2c>    
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  11309a:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  11309d:	c1 e2 03             	shl    $0x3,%edx                      
  1130a0:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  1130a6:	8b 52 0c             	mov    0xc(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1130a9:	85 d2                	test   %edx,%edx                      
  1130ab:	74 13                	je     1130c0 <rtems_io_read+0x38>    
}                                                                     
  1130ad:	59                   	pop    %ecx                           
  1130ae:	5b                   	pop    %ebx                           
  1130af:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1130b0:	ff e2                	jmp    *%edx                          
  1130b2:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  1130b4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  1130b9:	5a                   	pop    %edx                           
  1130ba:	5b                   	pop    %ebx                           
  1130bb:	c9                   	leave                                 
  1130bc:	c3                   	ret                                   
  1130bd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1130c0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1130c2:	5a                   	pop    %edx                           
  1130c3:	5b                   	pop    %ebx                           
  1130c4:	c9                   	leave                                 
  1130c5:	c3                   	ret                                   
                                                                      

0010cf18 <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 ) {
  10cf18:	55                   	push   %ebp                           
  10cf19:	89 e5                	mov    %esp,%ebp                      
  10cf1b:	57                   	push   %edi                           
  10cf1c:	56                   	push   %esi                           
  10cf1d:	53                   	push   %ebx                           
  10cf1e:	83 ec 0c             	sub    $0xc,%esp                      
  10cf21:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10cf24:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10cf27:	8b 55 10             	mov    0x10(%ebp),%edx                
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
  10cf2a:	a1 c0 c5 12 00       	mov    0x12c5c0,%eax                  
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
  10cf2f:	8b 0d f4 c0 12 00    	mov    0x12c0f4,%ecx                  
  10cf35:	85 c9                	test   %ecx,%ecx                      
  10cf37:	0f 85 ab 00 00 00    	jne    10cfe8 <rtems_io_register_driver+0xd0>
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
  10cf3d:	85 d2                	test   %edx,%edx                      
  10cf3f:	0f 84 e7 00 00 00    	je     10d02c <rtems_io_register_driver+0x114>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
  10cf45:	89 02                	mov    %eax,(%edx)                    
                                                                      
  if ( driver_table == NULL )                                         
  10cf47:	85 f6                	test   %esi,%esi                      
  10cf49:	0f 84 dd 00 00 00    	je     10d02c <rtems_io_register_driver+0x114>
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
  10cf4f:	8b 3e                	mov    (%esi),%edi                    
  10cf51:	85 ff                	test   %edi,%edi                      
  10cf53:	0f 84 c7 00 00 00    	je     10d020 <rtems_io_register_driver+0x108>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
  10cf59:	39 d8                	cmp    %ebx,%eax                      
  10cf5b:	76 7b                	jbe    10cfd8 <rtems_io_register_driver+0xc0>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10cf5d:	a1 50 bb 12 00       	mov    0x12bb50,%eax                  
  10cf62:	40                   	inc    %eax                           
  10cf63:	a3 50 bb 12 00       	mov    %eax,0x12bb50                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
  10cf68:	85 db                	test   %ebx,%ebx                      
  10cf6a:	0f 85 88 00 00 00    	jne    10cff8 <rtems_io_register_driver+0xe0>
                                                                      
static rtems_status_code rtems_io_obtain_major_number(                
  rtems_device_major_number *major                                    
)                                                                     
{                                                                     
  rtems_device_major_number n = _IO_Number_of_drivers;                
  10cf70:	8b 0d c0 c5 12 00    	mov    0x12c5c0,%ecx                  
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
  10cf76:	85 c9                	test   %ecx,%ecx                      
  10cf78:	0f 84 bb 00 00 00    	je     10d039 <rtems_io_register_driver+0x121><== NEVER TAKEN
  10cf7e:	8b 3d c4 c5 12 00    	mov    0x12c5c4,%edi                  
  10cf84:	89 f8                	mov    %edi,%eax                      
  10cf86:	eb 08                	jmp    10cf90 <rtems_io_register_driver+0x78>
  10cf88:	43                   	inc    %ebx                           
  10cf89:	83 c0 18             	add    $0x18,%eax                     
  10cf8c:	39 d9                	cmp    %ebx,%ecx                      
  10cf8e:	76 0b                	jbe    10cf9b <rtems_io_register_driver+0x83>
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
  10cf90:	83 38 00             	cmpl   $0x0,(%eax)                    
  10cf93:	75 f3                	jne    10cf88 <rtems_io_register_driver+0x70>
  10cf95:	83 78 04 00          	cmpl   $0x0,0x4(%eax)                 
  10cf99:	75 ed                	jne    10cf88 <rtems_io_register_driver+0x70>
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
  10cf9b:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  if ( m != n )                                                       
  10cf9d:	39 d9                	cmp    %ebx,%ecx                      
  10cf9f:	0f 84 9b 00 00 00    	je     10d040 <rtems_io_register_driver+0x128>
  10cfa5:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  10cfa8:	c1 e0 03             	shl    $0x3,%eax                      
    }                                                                 
                                                                      
    *registered_major = major;                                        
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
  10cfab:	01 c7                	add    %eax,%edi                      
  10cfad:	b9 06 00 00 00       	mov    $0x6,%ecx                      
  10cfb2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  _Thread_Enable_dispatch();                                          
  10cfb4:	e8 7b 1d 00 00       	call   10ed34 <_Thread_Enable_dispatch>
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
  10cfb9:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)                
  10cfc0:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)                 
  10cfc7:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
}                                                                     
  10cfca:	83 c4 0c             	add    $0xc,%esp                      
  10cfcd:	5b                   	pop    %ebx                           
  10cfce:	5e                   	pop    %esi                           
  10cfcf:	5f                   	pop    %edi                           
  10cfd0:	c9                   	leave                                 
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
  10cfd1:	e9 7a 7e 00 00       	jmp    114e50 <rtems_io_initialize>   
  10cfd6:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
    return RTEMS_INVALID_NUMBER;                                      
  10cfd8:	b8 0a 00 00 00       	mov    $0xa,%eax                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
  10cfdd:	83 c4 0c             	add    $0xc,%esp                      
  10cfe0:	5b                   	pop    %ebx                           
  10cfe1:	5e                   	pop    %esi                           
  10cfe2:	5f                   	pop    %edi                           
  10cfe3:	c9                   	leave                                 
  10cfe4:	c3                   	ret                                   
  10cfe5:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
  10cfe8:	b8 12 00 00 00       	mov    $0x12,%eax                     
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
  10cfed:	83 c4 0c             	add    $0xc,%esp                      
  10cff0:	5b                   	pop    %ebx                           
  10cff1:	5e                   	pop    %esi                           
  10cff2:	5f                   	pop    %edi                           
  10cff3:	c9                   	leave                                 
  10cff4:	c3                   	ret                                   
  10cff5:	8d 76 00             	lea    0x0(%esi),%esi                 
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
  10cff8:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  10cffb:	c1 e0 03             	shl    $0x3,%eax                      
  10cffe:	8b 0d c4 c5 12 00    	mov    0x12c5c4,%ecx                  
  10d004:	01 c1                	add    %eax,%ecx                      
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
  10d006:	8b 39                	mov    (%ecx),%edi                    
  10d008:	85 ff                	test   %edi,%edi                      
  10d00a:	74 40                	je     10d04c <rtems_io_register_driver+0x134>
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
                                                                      
    if ( !rtems_io_is_empty_table( table ) ) {                        
      _Thread_Enable_dispatch();                                      
  10d00c:	e8 23 1d 00 00       	call   10ed34 <_Thread_Enable_dispatch>
      return RTEMS_RESOURCE_IN_USE;                                   
  10d011:	b8 0c 00 00 00       	mov    $0xc,%eax                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
  10d016:	83 c4 0c             	add    $0xc,%esp                      
  10d019:	5b                   	pop    %ebx                           
  10d01a:	5e                   	pop    %esi                           
  10d01b:	5f                   	pop    %edi                           
  10d01c:	c9                   	leave                                 
  10d01d:	c3                   	ret                                   
  10d01e:	66 90                	xchg   %ax,%ax                        
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
  10d020:	8b 4e 04             	mov    0x4(%esi),%ecx                 
  10d023:	85 c9                	test   %ecx,%ecx                      
  10d025:	0f 85 2e ff ff ff    	jne    10cf59 <rtems_io_register_driver+0x41>
  10d02b:	90                   	nop                                   
                                                                      
  if ( driver_table == NULL )                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
  10d02c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
  10d031:	83 c4 0c             	add    $0xc,%esp                      
  10d034:	5b                   	pop    %ebx                           
  10d035:	5e                   	pop    %esi                           
  10d036:	5f                   	pop    %edi                           
  10d037:	c9                   	leave                                 
  10d038:	c3                   	ret                                   
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
  10d039:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    <== NOT EXECUTED
  10d03f:	90                   	nop                                   <== NOT EXECUTED
                                                                      
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
  10d040:	e8 ef 1c 00 00       	call   10ed34 <_Thread_Enable_dispatch>
  *major = m;                                                         
                                                                      
  if ( m != n )                                                       
    return RTEMS_SUCCESSFUL;                                          
                                                                      
  return RTEMS_TOO_MANY;                                              
  10d045:	b8 05 00 00 00       	mov    $0x5,%eax                      
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
  10d04a:	eb 91                	jmp    10cfdd <rtems_io_register_driver+0xc5>
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
  10d04c:	8b 49 04             	mov    0x4(%ecx),%ecx                 
  10d04f:	85 c9                	test   %ecx,%ecx                      
  10d051:	75 b9                	jne    10d00c <rtems_io_register_driver+0xf4>
    if ( !rtems_io_is_empty_table( table ) ) {                        
      _Thread_Enable_dispatch();                                      
      return RTEMS_RESOURCE_IN_USE;                                   
    }                                                                 
                                                                      
    *registered_major = major;                                        
  10d053:	89 1a                	mov    %ebx,(%edx)                    
  10d055:	8b 3d c4 c5 12 00    	mov    0x12c5c4,%edi                  
  10d05b:	e9 4b ff ff ff       	jmp    10cfab <rtems_io_register_driver+0x93>
                                                                      

0010d060 <rtems_io_unregister_driver>: */ rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) {
  10d060:	55                   	push   %ebp                           
  10d061:	89 e5                	mov    %esp,%ebp                      
  10d063:	57                   	push   %edi                           
  10d064:	83 ec 04             	sub    $0x4,%esp                      
  10d067:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( rtems_interrupt_is_in_progress() )                             
  10d06a:	8b 0d f4 c0 12 00    	mov    0x12c0f4,%ecx                  
  10d070:	85 c9                	test   %ecx,%ecx                      
  10d072:	75 44                	jne    10d0b8 <rtems_io_unregister_driver+0x58>
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
  10d074:	39 05 c0 c5 12 00    	cmp    %eax,0x12c5c0                  
  10d07a:	77 0c                	ja     10d088 <rtems_io_unregister_driver+0x28>
    _Thread_Enable_dispatch();                                        
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
  10d07c:	b8 0d 00 00 00       	mov    $0xd,%eax                      
}                                                                     
  10d081:	5a                   	pop    %edx                           
  10d082:	5f                   	pop    %edi                           
  10d083:	c9                   	leave                                 
  10d084:	c3                   	ret                                   
  10d085:	8d 76 00             	lea    0x0(%esi),%esi                 
  10d088:	8b 15 50 bb 12 00    	mov    0x12bb50,%edx                  
  10d08e:	42                   	inc    %edx                           
  10d08f:	89 15 50 bb 12 00    	mov    %edx,0x12bb50                  
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
    _Thread_Disable_dispatch();                                       
    memset(                                                           
      &_IO_Driver_address_table[major],                               
  10d095:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  10d098:	c1 e2 03             	shl    $0x3,%edx                      
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
    _Thread_Disable_dispatch();                                       
    memset(                                                           
  10d09b:	03 15 c4 c5 12 00    	add    0x12c5c4,%edx                  
  10d0a1:	b9 18 00 00 00       	mov    $0x18,%ecx                     
  10d0a6:	31 c0                	xor    %eax,%eax                      
  10d0a8:	89 d7                	mov    %edx,%edi                      
  10d0aa:	f3 aa                	rep stos %al,%es:(%edi)               
      &_IO_Driver_address_table[major],                               
      0,                                                              
      sizeof( rtems_driver_address_table )                            
    );                                                                
    _Thread_Enable_dispatch();                                        
  10d0ac:	e8 83 1c 00 00       	call   10ed34 <_Thread_Enable_dispatch>
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  10d0b1:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
}                                                                     
  10d0b3:	5a                   	pop    %edx                           
  10d0b4:	5f                   	pop    %edi                           
  10d0b5:	c9                   	leave                                 
  10d0b6:	c3                   	ret                                   
  10d0b7:	90                   	nop                                   
rtems_status_code rtems_io_unregister_driver(                         
  rtems_device_major_number major                                     
)                                                                     
{                                                                     
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
  10d0b8:	b8 12 00 00 00       	mov    $0x12,%eax                     
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
}                                                                     
  10d0bd:	5a                   	pop    %edx                           
  10d0be:	5f                   	pop    %edi                           
  10d0bf:	c9                   	leave                                 
  10d0c0:	c3                   	ret                                   
                                                                      

001130c8 <rtems_io_write>: rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  1130c8:	55                   	push   %ebp                           
  1130c9:	89 e5                	mov    %esp,%ebp                      
  1130cb:	53                   	push   %ebx                           
  1130cc:	83 ec 04             	sub    $0x4,%esp                      
  1130cf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  1130d2:	39 05 c0 88 12 00    	cmp    %eax,0x1288c0                  
  1130d8:	76 1a                	jbe    1130f4 <rtems_io_write+0x2c>   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  1130da:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  1130dd:	c1 e2 03             	shl    $0x3,%edx                      
  1130e0:	03 15 c4 88 12 00    	add    0x1288c4,%edx                  
  1130e6:	8b 52 10             	mov    0x10(%edx),%edx                
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1130e9:	85 d2                	test   %edx,%edx                      
  1130eb:	74 13                	je     113100 <rtems_io_write+0x38>   
}                                                                     
  1130ed:	59                   	pop    %ecx                           
  1130ee:	5b                   	pop    %ebx                           
  1130ef:	c9                   	leave                                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1130f0:	ff e2                	jmp    *%edx                          
  1130f2:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  1130f4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  1130f9:	5a                   	pop    %edx                           
  1130fa:	5b                   	pop    %ebx                           
  1130fb:	c9                   	leave                                 
  1130fc:	c3                   	ret                                   
  1130fd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  113100:	31 c0                	xor    %eax,%eax                      
}                                                                     
  113102:	5a                   	pop    %edx                           
  113103:	5b                   	pop    %ebx                           
  113104:	c9                   	leave                                 
  113105:	c3                   	ret                                   
                                                                      

0010e014 <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) {
  10e014:	55                   	push   %ebp                           
  10e015:	89 e5                	mov    %esp,%ebp                      
  10e017:	57                   	push   %edi                           
  10e018:	56                   	push   %esi                           
  10e019:	53                   	push   %ebx                           
  10e01a:	83 ec 1c             	sub    $0x1c,%esp                     
  10e01d:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
  10e020:	85 ff                	test   %edi,%edi                      
  10e022:	74 49                	je     10e06d <rtems_iterate_over_all_threads+0x59><== NEVER TAKEN
  10e024:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)               
    #if !defined(RTEMS_POSIX_API) || defined(RTEMS_DEBUG)             
      if ( !_Objects_Information_table[ api_index ] )                 
        continue;                                                     
    #endif                                                            
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
  10e02b:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10e02e:	8b 04 95 68 ba 12 00 	mov    0x12ba68(,%edx,4),%eax         
  10e035:	8b 70 04             	mov    0x4(%eax),%esi                 
    if ( !information )                                               
  10e038:	85 f6                	test   %esi,%esi                      
  10e03a:	74 28                	je     10e064 <rtems_iterate_over_all_threads+0x50>
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
  10e03c:	66 83 7e 10 00       	cmpw   $0x0,0x10(%esi)                
  10e041:	74 21                	je     10e064 <rtems_iterate_over_all_threads+0x50>
  10e043:	bb 01 00 00 00       	mov    $0x1,%ebx                      
      the_thread = (Thread_Control *)information->local_table[ i ];   
  10e048:	8b 46 1c             	mov    0x1c(%esi),%eax                
  10e04b:	8b 04 98             	mov    (%eax,%ebx,4),%eax             
                                                                      
      if ( !the_thread )                                              
  10e04e:	85 c0                	test   %eax,%eax                      
  10e050:	74 09                	je     10e05b <rtems_iterate_over_all_threads+0x47><== NEVER TAKEN
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
  10e052:	83 ec 0c             	sub    $0xc,%esp                      
  10e055:	50                   	push   %eax                           
  10e056:	ff d7                	call   *%edi                          
  10e058:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
  10e05b:	43                   	inc    %ebx                           
  10e05c:	0f b7 46 10          	movzwl 0x10(%esi),%eax                
  10e060:	39 d8                	cmp    %ebx,%eax                      
  10e062:	73 e4                	jae    10e048 <rtems_iterate_over_all_threads+0x34>
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
  10e064:	ff 45 e4             	incl   -0x1c(%ebp)                    
  10e067:	83 7d e4 04          	cmpl   $0x4,-0x1c(%ebp)               
  10e06b:	75 be                	jne    10e02b <rtems_iterate_over_all_threads+0x17>
                                                                      
      (*routine)(the_thread);                                         
    }                                                                 
  }                                                                   
                                                                      
}                                                                     
  10e06d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e070:	5b                   	pop    %ebx                           
  10e071:	5e                   	pop    %esi                           
  10e072:	5f                   	pop    %edi                           
  10e073:	c9                   	leave                                 
  10e074:	c3                   	ret                                   
                                                                      

00116404 <rtems_message_queue_broadcast>: rtems_id id, const void *buffer, size_t size, uint32_t *count ) {
  116404:	55                   	push   %ebp                           
  116405:	89 e5                	mov    %esp,%ebp                      
  116407:	57                   	push   %edi                           
  116408:	56                   	push   %esi                           
  116409:	53                   	push   %ebx                           
  11640a:	83 ec 1c             	sub    $0x1c,%esp                     
  11640d:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  116410:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  116413:	8b 75 14             	mov    0x14(%ebp),%esi                
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  CORE_message_queue_Status       core_status;                        
                                                                      
  if ( !buffer )                                                      
  116416:	85 db                	test   %ebx,%ebx                      
  116418:	74 62                	je     11647c <rtems_message_queue_broadcast+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
  11641a:	85 f6                	test   %esi,%esi                      
  11641c:	74 5e                	je     11647c <rtems_message_queue_broadcast+0x78>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  11641e:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  11641f:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  116422:	50                   	push   %eax                           
  116423:	57                   	push   %edi                           
  116424:	68 e0 34 14 00       	push   $0x1434e0                      
  116429:	e8 0a 4f 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  11642e:	83 c4 10             	add    $0x10,%esp                     
  116431:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  116434:	85 d2                	test   %edx,%edx                      
  116436:	74 10                	je     116448 <rtems_message_queue_broadcast+0x44>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  116438:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  11643d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116440:	5b                   	pop    %ebx                           
  116441:	5e                   	pop    %esi                           
  116442:	5f                   	pop    %edi                           
  116443:	c9                   	leave                                 
  116444:	c3                   	ret                                   
  116445:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      core_status = _CORE_message_queue_Broadcast(                    
  116448:	83 ec 08             	sub    $0x8,%esp                      
  11644b:	56                   	push   %esi                           
  11644c:	6a 00                	push   $0x0                           
  11644e:	57                   	push   %edi                           
  11644f:	ff 75 10             	pushl  0x10(%ebp)                     
  116452:	53                   	push   %ebx                           
  116453:	83 c0 14             	add    $0x14,%eax                     
  116456:	50                   	push   %eax                           
  116457:	e8 c8 34 00 00       	call   119924 <_CORE_message_queue_Broadcast>
  11645c:	89 c3                	mov    %eax,%ebx                      
                        NULL,                                         
                      #endif                                          
                      count                                           
                    );                                                
                                                                      
      _Thread_Enable_dispatch();                                      
  11645e:	83 c4 20             	add    $0x20,%esp                     
  116461:	e8 5a 5a 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return                                                          
  116466:	83 ec 0c             	sub    $0xc,%esp                      
  116469:	53                   	push   %ebx                           
  11646a:	e8 69 03 00 00       	call   1167d8 <_Message_queue_Translate_core_message_queue_return_code>
  11646f:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116472:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116475:	5b                   	pop    %ebx                           
  116476:	5e                   	pop    %esi                           
  116477:	5f                   	pop    %edi                           
  116478:	c9                   	leave                                 
  116479:	c3                   	ret                                   
  11647a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  11647c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116481:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116484:	5b                   	pop    %ebx                           
  116485:	5e                   	pop    %esi                           
  116486:	5f                   	pop    %edi                           
  116487:	c9                   	leave                                 
  116488:	c3                   	ret                                   
                                                                      

001138a0 <rtems_message_queue_create>: uint32_t count, size_t max_message_size, rtems_attribute attribute_set, rtems_id *id ) {
  1138a0:	55                   	push   %ebp                           
  1138a1:	89 e5                	mov    %esp,%ebp                      
  1138a3:	57                   	push   %edi                           
  1138a4:	56                   	push   %esi                           
  1138a5:	53                   	push   %ebx                           
  1138a6:	83 ec 2c             	sub    $0x2c,%esp                     
  1138a9:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  1138ac:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  1138af:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  1138b2:	8b 7d 18             	mov    0x18(%ebp),%edi                
  CORE_message_queue_Attributes   the_msgq_attributes;                
#if defined(RTEMS_MULTIPROCESSING)                                    
  bool                            is_global;                          
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  1138b5:	85 db                	test   %ebx,%ebx                      
  1138b7:	74 2f                	je     1138e8 <rtems_message_queue_create+0x48>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  1138b9:	85 ff                	test   %edi,%edi                      
  1138bb:	0f 84 a3 00 00 00    	je     113964 <rtems_message_queue_create+0xc4>
  if ( (is_global = _Attributes_Is_global( attribute_set ) ) &&       
       !_System_state_Is_multiprocessing )                            
    return RTEMS_MP_NOT_CONFIGURED;                                   
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
  1138c1:	85 f6                	test   %esi,%esi                      
  1138c3:	74 13                	je     1138d8 <rtems_message_queue_create+0x38>
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  if ( max_message_size == 0 )                                        
  1138c5:	85 c9                	test   %ecx,%ecx                      
  1138c7:	75 2f                	jne    1138f8 <rtems_message_queue_create+0x58>
      return RTEMS_INVALID_SIZE;                                      
  1138c9:	b8 08 00 00 00       	mov    $0x8,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1138ce:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1138d1:	5b                   	pop    %ebx                           
  1138d2:	5e                   	pop    %esi                           
  1138d3:	5f                   	pop    %edi                           
  1138d4:	c9                   	leave                                 
  1138d5:	c3                   	ret                                   
  1138d6:	66 90                	xchg   %ax,%ax                        
       !_System_state_Is_multiprocessing )                            
    return RTEMS_MP_NOT_CONFIGURED;                                   
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
      return RTEMS_INVALID_NUMBER;                                    
  1138d8:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1138dd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1138e0:	5b                   	pop    %ebx                           
  1138e1:	5e                   	pop    %esi                           
  1138e2:	5f                   	pop    %edi                           
  1138e3:	c9                   	leave                                 
  1138e4:	c3                   	ret                                   
  1138e5:	8d 76 00             	lea    0x0(%esi),%esi                 
#if defined(RTEMS_MULTIPROCESSING)                                    
  bool                            is_global;                          
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  1138e8:	b8 03 00 00 00       	mov    $0x3,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1138ed:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1138f0:	5b                   	pop    %ebx                           
  1138f1:	5e                   	pop    %esi                           
  1138f2:	5f                   	pop    %edi                           
  1138f3:	c9                   	leave                                 
  1138f4:	c3                   	ret                                   
  1138f5:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  1138f8:	a1 30 07 13 00       	mov    0x130730,%eax                  
  1138fd:	40                   	inc    %eax                           
  1138fe:	a3 30 07 13 00       	mov    %eax,0x130730                  
#endif                                                                
#endif                                                                
                                                                      
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
  113903:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  113906:	e8 21 60 00 00       	call   11992c <_Message_queue_Allocate>
  11390b:	89 c2                	mov    %eax,%edx                      
                                                                      
  if ( !the_message_queue ) {                                         
  11390d:	85 c0                	test   %eax,%eax                      
  11390f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  113912:	74 7c                	je     113990 <rtems_message_queue_create+0xf0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_message_queue->attribute_set = attribute_set;                   
  113914:	8b 45 14             	mov    0x14(%ebp),%eax                
  113917:	89 42 10             	mov    %eax,0x10(%edx)                
                                                                      
  if (_Attributes_Is_priority( attribute_set ) )                      
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY;
  11391a:	a8 04                	test   $0x4,%al                       
  11391c:	0f 95 c0             	setne  %al                            
  11391f:	0f b6 c0             	movzbl %al,%eax                       
  113922:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  else                                                                
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;
                                                                      
  if ( ! _CORE_message_queue_Initialize(                              
  113925:	51                   	push   %ecx                           
  113926:	56                   	push   %esi                           
  113927:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  11392a:	50                   	push   %eax                           
  11392b:	8d 42 14             	lea    0x14(%edx),%eax                
  11392e:	50                   	push   %eax                           
  11392f:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  113932:	e8 2d 11 00 00       	call   114a64 <_CORE_message_queue_Initialize>
  113937:	83 c4 10             	add    $0x10,%esp                     
  11393a:	84 c0                	test   %al,%al                        
  11393c:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  11393f:	75 2f                	jne    113970 <rtems_message_queue_create+0xd0>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Message_queue_Free (                       
  Message_queue_Control *the_message_queue                            
)                                                                     
{                                                                     
  _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
  113941:	83 ec 08             	sub    $0x8,%esp                      
  113944:	52                   	push   %edx                           
  113945:	68 20 11 13 00       	push   $0x131120                      
  11394a:	e8 b1 1f 00 00       	call   115900 <_Objects_Free>         
        _Objects_MP_Close(                                            
          &_Message_queue_Information, the_message_queue->Object.id); 
#endif                                                                
                                                                      
    _Message_queue_Free( the_message_queue );                         
    _Thread_Enable_dispatch();                                        
  11394f:	e8 f4 2c 00 00       	call   116648 <_Thread_Enable_dispatch>
    return RTEMS_UNSATISFIED;                                         
  113954:	83 c4 10             	add    $0x10,%esp                     
  113957:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  11395c:	e9 6d ff ff ff       	jmp    1138ce <rtems_message_queue_create+0x2e>
  113961:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  113964:	b8 09 00 00 00       	mov    $0x9,%eax                      
  113969:	e9 60 ff ff ff       	jmp    1138ce <rtems_message_queue_create+0x2e>
  11396e:	66 90                	xchg   %ax,%ax                        
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  113970:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  113973:	0f b7 f0             	movzwl %ax,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  113976:	8b 0d 3c 11 13 00    	mov    0x13113c,%ecx                  
  11397c:	89 14 b1             	mov    %edx,(%ecx,%esi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  11397f:	89 5a 0c             	mov    %ebx,0xc(%edx)                 
    &_Message_queue_Information,                                      
    &the_message_queue->Object,                                       
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_message_queue->Object.id;                                 
  113982:	89 07                	mov    %eax,(%edi)                    
      name,                                                           
      0                                                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  113984:	e8 bf 2c 00 00       	call   116648 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  113989:	31 c0                	xor    %eax,%eax                      
  11398b:	e9 3e ff ff ff       	jmp    1138ce <rtems_message_queue_create+0x2e>
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
                                                                      
  if ( !the_message_queue ) {                                         
    _Thread_Enable_dispatch();                                        
  113990:	e8 b3 2c 00 00       	call   116648 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  113995:	b8 05 00 00 00       	mov    $0x5,%eax                      
  11399a:	e9 2f ff ff ff       	jmp    1138ce <rtems_message_queue_create+0x2e>
                                                                      

0011658c <rtems_message_queue_delete>: */ rtems_status_code rtems_message_queue_delete( rtems_id id ) {
  11658c:	55                   	push   %ebp                           
  11658d:	89 e5                	mov    %esp,%ebp                      
  11658f:	53                   	push   %ebx                           
  116590:	83 ec 18             	sub    $0x18,%esp                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  116593:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  116596:	50                   	push   %eax                           
  116597:	ff 75 08             	pushl  0x8(%ebp)                      
  11659a:	68 e0 34 14 00       	push   $0x1434e0                      
  11659f:	e8 94 4d 00 00       	call   11b338 <_Objects_Get>          
  1165a4:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  1165a6:	83 c4 10             	add    $0x10,%esp                     
  1165a9:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  1165ac:	85 c9                	test   %ecx,%ecx                      
  1165ae:	75 3c                	jne    1165ec <rtems_message_queue_delete+0x60>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Message_queue_Information,                    
  1165b0:	83 ec 08             	sub    $0x8,%esp                      
  1165b3:	50                   	push   %eax                           
  1165b4:	68 e0 34 14 00       	push   $0x1434e0                      
  1165b9:	e8 06 49 00 00       	call   11aec4 <_Objects_Close>        
                      &the_message_queue->Object );                   
                                                                      
      _CORE_message_queue_Close(                                      
  1165be:	83 c4 0c             	add    $0xc,%esp                      
  1165c1:	6a 05                	push   $0x5                           
  1165c3:	6a 00                	push   $0x0                           
  1165c5:	8d 43 14             	lea    0x14(%ebx),%eax                
  1165c8:	50                   	push   %eax                           
  1165c9:	e8 da 33 00 00       	call   1199a8 <_CORE_message_queue_Close>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Message_queue_Free (                       
  Message_queue_Control *the_message_queue                            
)                                                                     
{                                                                     
  _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
  1165ce:	58                   	pop    %eax                           
  1165cf:	5a                   	pop    %edx                           
  1165d0:	53                   	push   %ebx                           
  1165d1:	68 e0 34 14 00       	push   $0x1434e0                      
  1165d6:	e8 e1 4b 00 00       	call   11b1bc <_Objects_Free>         
          0,                                 /* Not used */           
          0                                                           
        );                                                            
      }                                                               
#endif                                                                
      _Thread_Enable_dispatch();                                      
  1165db:	e8 e0 58 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1165e0:	83 c4 10             	add    $0x10,%esp                     
  1165e3:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1165e5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1165e8:	c9                   	leave                                 
  1165e9:	c3                   	ret                                   
  1165ea:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1165ec:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1165f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1165f4:	c9                   	leave                                 
  1165f5:	c3                   	ret                                   
                                                                      

001165f8 <rtems_message_queue_flush>: rtems_status_code rtems_message_queue_flush( rtems_id id, uint32_t *count ) {
  1165f8:	55                   	push   %ebp                           
  1165f9:	89 e5                	mov    %esp,%ebp                      
  1165fb:	53                   	push   %ebx                           
  1165fc:	83 ec 14             	sub    $0x14,%esp                     
  1165ff:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
  116602:	85 db                	test   %ebx,%ebx                      
  116604:	74 46                	je     11664c <rtems_message_queue_flush+0x54>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  116606:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  116607:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11660a:	50                   	push   %eax                           
  11660b:	ff 75 08             	pushl  0x8(%ebp)                      
  11660e:	68 e0 34 14 00       	push   $0x1434e0                      
  116613:	e8 20 4d 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  116618:	83 c4 10             	add    $0x10,%esp                     
  11661b:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  11661e:	85 d2                	test   %edx,%edx                      
  116620:	74 0a                	je     11662c <rtems_message_queue_flush+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116622:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116627:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11662a:	c9                   	leave                                 
  11662b:	c3                   	ret                                   
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      *count = _CORE_message_queue_Flush( &the_message_queue->message_queue );
  11662c:	83 ec 0c             	sub    $0xc,%esp                      
  11662f:	83 c0 14             	add    $0x14,%eax                     
  116632:	50                   	push   %eax                           
  116633:	e8 ac 33 00 00       	call   1199e4 <_CORE_message_queue_Flush>
  116638:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  11663a:	e8 81 58 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  11663f:	83 c4 10             	add    $0x10,%esp                     
  116642:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116644:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116647:	c9                   	leave                                 
  116648:	c3                   	ret                                   
  116649:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  11664c:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116651:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116654:	c9                   	leave                                 
  116655:	c3                   	ret                                   
                                                                      

00116658 <rtems_message_queue_get_number_pending>: rtems_status_code rtems_message_queue_get_number_pending( rtems_id id, uint32_t *count ) {
  116658:	55                   	push   %ebp                           
  116659:	89 e5                	mov    %esp,%ebp                      
  11665b:	53                   	push   %ebx                           
  11665c:	83 ec 14             	sub    $0x14,%esp                     
  11665f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
  116662:	85 db                	test   %ebx,%ebx                      
  116664:	74 3a                	je     1166a0 <rtems_message_queue_get_number_pending+0x48>
  116666:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  116667:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11666a:	50                   	push   %eax                           
  11666b:	ff 75 08             	pushl  0x8(%ebp)                      
  11666e:	68 e0 34 14 00       	push   $0x1434e0                      
  116673:	e8 c0 4c 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  116678:	83 c4 10             	add    $0x10,%esp                     
  11667b:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  11667e:	85 d2                	test   %edx,%edx                      
  116680:	74 0a                	je     11668c <rtems_message_queue_get_number_pending+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116682:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116687:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11668a:	c9                   	leave                                 
  11668b:	c3                   	ret                                   
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      *count = the_message_queue->message_queue.number_of_pending_messages;
  11668c:	8b 40 5c             	mov    0x5c(%eax),%eax                
  11668f:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  116691:	e8 2a 58 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  116696:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116698:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11669b:	c9                   	leave                                 
  11669c:	c3                   	ret                                   
  11669d:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  1166a0:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1166a5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1166a8:	c9                   	leave                                 
  1166a9:	c3                   	ret                                   
                                                                      

001139c4 <rtems_message_queue_receive>: void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) {
  1139c4:	55                   	push   %ebp                           
  1139c5:	89 e5                	mov    %esp,%ebp                      
  1139c7:	56                   	push   %esi                           
  1139c8:	53                   	push   %ebx                           
  1139c9:	83 ec 10             	sub    $0x10,%esp                     
  1139cc:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  1139cf:	8b 75 10             	mov    0x10(%ebp),%esi                
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  bool                            wait;                               
                                                                      
  if ( !buffer )                                                      
  1139d2:	85 db                	test   %ebx,%ebx                      
  1139d4:	74 6e                	je     113a44 <rtems_message_queue_receive+0x80>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
  1139d6:	85 f6                	test   %esi,%esi                      
  1139d8:	74 6a                	je     113a44 <rtems_message_queue_receive+0x80>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  1139da:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  1139db:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1139de:	50                   	push   %eax                           
  1139df:	ff 75 08             	pushl  0x8(%ebp)                      
  1139e2:	68 20 11 13 00       	push   $0x131120                      
  1139e7:	e8 54 20 00 00       	call   115a40 <_Objects_Get>          
  switch ( location ) {                                               
  1139ec:	83 c4 10             	add    $0x10,%esp                     
  1139ef:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1139f2:	85 d2                	test   %edx,%edx                      
  1139f4:	75 42                	jne    113a38 <rtems_message_queue_receive+0x74>
      if ( _Options_Is_no_wait( option_set ) )                        
        wait = false;                                                 
      else                                                            
        wait = true;                                                  
                                                                      
      _CORE_message_queue_Seize(                                      
  1139f6:	83 ec 08             	sub    $0x8,%esp                      
  1139f9:	ff 75 18             	pushl  0x18(%ebp)                     
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (                       
  rtems_option option_set                                             
)                                                                     
{                                                                     
   return (option_set & RTEMS_NO_WAIT) ? true : false;                
  1139fc:	8b 55 14             	mov    0x14(%ebp),%edx                
  1139ff:	83 e2 01             	and    $0x1,%edx                      
  113a02:	83 f2 01             	xor    $0x1,%edx                      
  113a05:	52                   	push   %edx                           
  113a06:	56                   	push   %esi                           
  113a07:	53                   	push   %ebx                           
  113a08:	ff 70 08             	pushl  0x8(%eax)                      
  113a0b:	83 c0 14             	add    $0x14,%eax                     
  113a0e:	50                   	push   %eax                           
  113a0f:	e8 00 11 00 00       	call   114b14 <_CORE_message_queue_Seize>
        buffer,                                                       
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
  113a14:	83 c4 20             	add    $0x20,%esp                     
  113a17:	e8 2c 2c 00 00       	call   116648 <_Thread_Enable_dispatch>
      return _Message_queue_Translate_core_message_queue_return_code( 
  113a1c:	83 ec 0c             	sub    $0xc,%esp                      
        _Thread_Executing->Wait.return_code                           
  113a1f:	a1 d8 0c 13 00       	mov    0x130cd8,%eax                  
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _Message_queue_Translate_core_message_queue_return_code( 
  113a24:	ff 70 34             	pushl  0x34(%eax)                     
  113a27:	e8 a0 00 00 00       	call   113acc <_Message_queue_Translate_core_message_queue_return_code>
  113a2c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  113a2f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  113a32:	5b                   	pop    %ebx                           
  113a33:	5e                   	pop    %esi                           
  113a34:	c9                   	leave                                 
  113a35:	c3                   	ret                                   
  113a36:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  113a38:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  113a3d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  113a40:	5b                   	pop    %ebx                           
  113a41:	5e                   	pop    %esi                           
  113a42:	c9                   	leave                                 
  113a43:	c3                   	ret                                   
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  113a44:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  113a49:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  113a4c:	5b                   	pop    %ebx                           
  113a4d:	5e                   	pop    %esi                           
  113a4e:	c9                   	leave                                 
  113a4f:	c3                   	ret                                   
                                                                      

0010b3f0 <rtems_message_queue_send>: rtems_status_code rtems_message_queue_send( rtems_id id, const void *buffer, size_t size ) {
  10b3f0:	55                   	push   %ebp                           
  10b3f1:	89 e5                	mov    %esp,%ebp                      
  10b3f3:	56                   	push   %esi                           
  10b3f4:	53                   	push   %ebx                           
  10b3f5:	83 ec 10             	sub    $0x10,%esp                     
  10b3f8:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10b3fb:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
  10b3fe:	85 db                	test   %ebx,%ebx                      
  10b400:	74 5e                	je     10b460 <rtems_message_queue_send+0x70>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  10b402:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  10b403:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b406:	50                   	push   %eax                           
  10b407:	56                   	push   %esi                           
  10b408:	68 40 88 12 00       	push   $0x128840                      
  10b40d:	e8 6e 1a 00 00       	call   10ce80 <_Objects_Get>          
  switch ( location ) {                                               
  10b412:	83 c4 10             	add    $0x10,%esp                     
  10b415:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b418:	85 d2                	test   %edx,%edx                      
  10b41a:	74 0c                	je     10b428 <rtems_message_queue_send+0x38>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  10b41c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b421:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b424:	5b                   	pop    %ebx                           
  10b425:	5e                   	pop    %esi                           
  10b426:	c9                   	leave                                 
  10b427:	c3                   	ret                                   
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  bool                                    wait,                       
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
  return _CORE_message_queue_Submit(                                  
  10b428:	6a 00                	push   $0x0                           
  10b42a:	6a 00                	push   $0x0                           
  10b42c:	68 ff ff ff 7f       	push   $0x7fffffff                    
  10b431:	6a 00                	push   $0x0                           
  10b433:	56                   	push   %esi                           
  10b434:	ff 75 10             	pushl  0x10(%ebp)                     
  10b437:	53                   	push   %ebx                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_message_queue_Send(                              
  10b438:	83 c0 14             	add    $0x14,%eax                     
  10b43b:	50                   	push   %eax                           
  10b43c:	e8 3f 0c 00 00       	call   10c080 <_CORE_message_queue_Submit>
  10b441:	89 c3                	mov    %eax,%ebx                      
        MESSAGE_QUEUE_MP_HANDLER,                                     
        false,   /* sender does not block */                          
        0        /* no timeout */                                     
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10b443:	83 c4 20             	add    $0x20,%esp                     
  10b446:	e8 bd 25 00 00       	call   10da08 <_Thread_Enable_dispatch>
      /*                                                              
       *  Since this API does not allow for blocking sends, we can directly
       *  return the returned status.                                 
       */                                                             
                                                                      
      return _Message_queue_Translate_core_message_queue_return_code(status);
  10b44b:	83 ec 0c             	sub    $0xc,%esp                      
  10b44e:	53                   	push   %ebx                           
  10b44f:	e8 18 00 00 00       	call   10b46c <_Message_queue_Translate_core_message_queue_return_code>
  10b454:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b457:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b45a:	5b                   	pop    %ebx                           
  10b45b:	5e                   	pop    %esi                           
  10b45c:	c9                   	leave                                 
  10b45d:	c3                   	ret                                   
  10b45e:	66 90                	xchg   %ax,%ax                        
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  10b460:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b465:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b468:	5b                   	pop    %ebx                           
  10b469:	5e                   	pop    %esi                           
  10b46a:	c9                   	leave                                 
  10b46b:	c3                   	ret                                   
                                                                      

001167e8 <rtems_message_queue_urgent>: rtems_status_code rtems_message_queue_urgent( rtems_id id, const void *buffer, size_t size ) {
  1167e8:	55                   	push   %ebp                           
  1167e9:	89 e5                	mov    %esp,%ebp                      
  1167eb:	56                   	push   %esi                           
  1167ec:	53                   	push   %ebx                           
  1167ed:	83 ec 10             	sub    $0x10,%esp                     
  1167f0:	8b 75 08             	mov    0x8(%ebp),%esi                 
  1167f3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
  1167f6:	85 db                	test   %ebx,%ebx                      
  1167f8:	74 5e                	je     116858 <rtems_message_queue_urgent+0x70>
  1167fa:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  1167fb:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1167fe:	50                   	push   %eax                           
  1167ff:	56                   	push   %esi                           
  116800:	68 e0 34 14 00       	push   $0x1434e0                      
  116805:	e8 2e 4b 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  11680a:	83 c4 10             	add    $0x10,%esp                     
  11680d:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  116810:	85 d2                	test   %edx,%edx                      
  116812:	74 0c                	je     116820 <rtems_message_queue_urgent+0x38>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116814:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116819:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11681c:	5b                   	pop    %ebx                           
  11681d:	5e                   	pop    %esi                           
  11681e:	c9                   	leave                                 
  11681f:	c3                   	ret                                   
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  bool                                    wait,                       
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
  return _CORE_message_queue_Submit(                                  
  116820:	6a 00                	push   $0x0                           
  116822:	6a 00                	push   $0x0                           
  116824:	68 00 00 00 80       	push   $0x80000000                    
  116829:	6a 00                	push   $0x0                           
  11682b:	56                   	push   %esi                           
  11682c:	ff 75 10             	pushl  0x10(%ebp)                     
  11682f:	53                   	push   %ebx                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_message_queue_Urgent(                            
  116830:	83 c0 14             	add    $0x14,%eax                     
  116833:	50                   	push   %eax                           
  116834:	e8 eb 33 00 00       	call   119c24 <_CORE_message_queue_Submit>
  116839:	89 c3                	mov    %eax,%ebx                      
        id,                                                           
        MESSAGE_QUEUE_MP_HANDLER,                                     
        false,   /* sender does not block */                          
        0        /* no timeout */                                     
      );                                                              
      _Thread_Enable_dispatch();                                      
  11683b:	83 c4 20             	add    $0x20,%esp                     
  11683e:	e8 7d 56 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      /*                                                              
       *  Since this API does not allow for blocking sends, we can directly
       *  return the returned status.                                 
       */                                                             
                                                                      
      return _Message_queue_Translate_core_message_queue_return_code(status);
  116843:	83 ec 0c             	sub    $0xc,%esp                      
  116846:	53                   	push   %ebx                           
  116847:	e8 8c ff ff ff       	call   1167d8 <_Message_queue_Translate_core_message_queue_return_code>
  11684c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11684f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116852:	5b                   	pop    %ebx                           
  116853:	5e                   	pop    %esi                           
  116854:	c9                   	leave                                 
  116855:	c3                   	ret                                   
  116856:	66 90                	xchg   %ax,%ax                        
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  116858:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11685d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116860:	5b                   	pop    %ebx                           
  116861:	5e                   	pop    %esi                           
  116862:	c9                   	leave                                 
  116863:	c3                   	ret                                   
                                                                      

0010b9c0 <rtems_object_get_api_name>: }; const char *rtems_object_get_api_name( int api ) {
  10b9c0:	55                   	push   %ebp                           
  10b9c1:	89 e5                	mov    %esp,%ebp                      
  10b9c3:	83 ec 10             	sub    $0x10,%esp                     
  const rtems_assoc_t *api_assoc;                                     
                                                                      
  api_assoc = rtems_assoc_ptr_by_local( rtems_objects_api_assoc, api );
  10b9c6:	ff 75 08             	pushl  0x8(%ebp)                      
  10b9c9:	68 e0 7c 12 00       	push   $0x127ce0                      
  10b9ce:	e8 e1 49 00 00       	call   1103b4 <rtems_assoc_ptr_by_local>
  if ( api_assoc )                                                    
  10b9d3:	83 c4 10             	add    $0x10,%esp                     
  10b9d6:	85 c0                	test   %eax,%eax                      
  10b9d8:	74 06                	je     10b9e0 <rtems_object_get_api_name+0x20>
    return api_assoc->name;                                           
  10b9da:	8b 00                	mov    (%eax),%eax                    
  return "BAD CLASS";                                                 
}                                                                     
  10b9dc:	c9                   	leave                                 
  10b9dd:	c3                   	ret                                   
  10b9de:	66 90                	xchg   %ax,%ax                        
  const rtems_assoc_t *api_assoc;                                     
                                                                      
  api_assoc = rtems_assoc_ptr_by_local( rtems_objects_api_assoc, api );
  if ( api_assoc )                                                    
    return api_assoc->name;                                           
  return "BAD CLASS";                                                 
  10b9e0:	b8 03 2d 12 00       	mov    $0x122d03,%eax                 
}                                                                     
  10b9e5:	c9                   	leave                                 
  10b9e6:	c3                   	ret                                   
                                                                      

0010d0e8 <rtems_object_get_class_information>: rtems_status_code rtems_object_get_class_information( int the_api, int the_class, rtems_object_api_class_information *info ) {
  10d0e8:	55                   	push   %ebp                           
  10d0e9:	89 e5                	mov    %esp,%ebp                      
  10d0eb:	57                   	push   %edi                           
  10d0ec:	56                   	push   %esi                           
  10d0ed:	53                   	push   %ebx                           
  10d0ee:	83 ec 0c             	sub    $0xc,%esp                      
  10d0f1:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  int                  i;                                             
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
  10d0f4:	85 db                	test   %ebx,%ebx                      
  10d0f6:	74 60                	je     10d158 <rtems_object_get_class_information+0x70>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  obj_info = _Objects_Get_information( the_api, the_class );          
  10d0f8:	83 ec 08             	sub    $0x8,%esp                      
  10d0fb:	0f b7 45 0c          	movzwl 0xc(%ebp),%eax                 
  10d0ff:	50                   	push   %eax                           
  10d100:	ff 75 08             	pushl  0x8(%ebp)                      
  10d103:	e8 4c 1b 00 00       	call   10ec54 <_Objects_Get_information>
  if ( !obj_info )                                                    
  10d108:	83 c4 10             	add    $0x10,%esp                     
  10d10b:	85 c0                	test   %eax,%eax                      
  10d10d:	74 59                	je     10d168 <rtems_object_get_class_information+0x80>
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  /*                                                                  
   * Return information about this object class to the user.          
   */                                                                 
  info->minimum_id  = obj_info->minimum_id;                           
  10d10f:	8b 50 08             	mov    0x8(%eax),%edx                 
  10d112:	89 13                	mov    %edx,(%ebx)                    
  info->maximum_id  = obj_info->maximum_id;                           
  10d114:	8b 50 0c             	mov    0xc(%eax),%edx                 
  10d117:	89 53 04             	mov    %edx,0x4(%ebx)                 
  info->auto_extend = obj_info->auto_extend;                          
  10d11a:	8a 50 12             	mov    0x12(%eax),%dl                 
  10d11d:	88 53 0c             	mov    %dl,0xc(%ebx)                  
  info->maximum     = obj_info->maximum;                              
  10d120:	0f b7 70 10          	movzwl 0x10(%eax),%esi                
  10d124:	89 73 08             	mov    %esi,0x8(%ebx)                 
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
  10d127:	85 f6                	test   %esi,%esi                      
  10d129:	74 44                	je     10d16f <rtems_object_get_class_information+0x87><== NEVER TAKEN
  10d12b:	8b 78 1c             	mov    0x1c(%eax),%edi                
  10d12e:	b9 01 00 00 00       	mov    $0x1,%ecx                      
  10d133:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10d138:	31 d2                	xor    %edx,%edx                      
  10d13a:	66 90                	xchg   %ax,%ax                        
    if ( !obj_info->local_table[i] )                                  
      unallocated++;                                                  
  10d13c:	83 3c 8f 01          	cmpl   $0x1,(%edi,%ecx,4)             
  10d140:	83 d2 00             	adc    $0x0,%edx                      
  info->minimum_id  = obj_info->minimum_id;                           
  info->maximum_id  = obj_info->maximum_id;                           
  info->auto_extend = obj_info->auto_extend;                          
  info->maximum     = obj_info->maximum;                              
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
  10d143:	40                   	inc    %eax                           
  10d144:	89 c1                	mov    %eax,%ecx                      
  10d146:	39 c6                	cmp    %eax,%esi                      
  10d148:	73 f2                	jae    10d13c <rtems_object_get_class_information+0x54>
    if ( !obj_info->local_table[i] )                                  
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
  10d14a:	89 53 10             	mov    %edx,0x10(%ebx)                
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  10d14d:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10d14f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d152:	5b                   	pop    %ebx                           
  10d153:	5e                   	pop    %esi                           
  10d154:	5f                   	pop    %edi                           
  10d155:	c9                   	leave                                 
  10d156:	c3                   	ret                                   
  10d157:	90                   	nop                                   
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10d158:	b8 09 00 00 00       	mov    $0x9,%eax                      
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10d15d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d160:	5b                   	pop    %ebx                           
  10d161:	5e                   	pop    %esi                           
  10d162:	5f                   	pop    %edi                           
  10d163:	c9                   	leave                                 
  10d164:	c3                   	ret                                   
  10d165:	8d 76 00             	lea    0x0(%esi),%esi                 
  if ( !info )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  obj_info = _Objects_Get_information( the_api, the_class );          
  if ( !obj_info )                                                    
    return RTEMS_INVALID_NUMBER;                                      
  10d168:	b8 0a 00 00 00       	mov    $0xa,%eax                      
  10d16d:	eb e0                	jmp    10d14f <rtems_object_get_class_information+0x67>
  info->minimum_id  = obj_info->minimum_id;                           
  info->maximum_id  = obj_info->maximum_id;                           
  info->auto_extend = obj_info->auto_extend;                          
  info->maximum     = obj_info->maximum;                              
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
  10d16f:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10d171:	eb d7                	jmp    10d14a <rtems_object_get_class_information+0x62><== NOT EXECUTED
                                                                      

0010c568 <rtems_object_get_classic_name>: rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) {
  10c568:	55                   	push   %ebp                           
  10c569:	89 e5                	mov    %esp,%ebp                      
  10c56b:	53                   	push   %ebx                           
  10c56c:	83 ec 14             	sub    $0x14,%esp                     
  10c56f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
  10c572:	85 db                	test   %ebx,%ebx                      
  10c574:	74 26                	je     10c59c <rtems_object_get_classic_name+0x34>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
  10c576:	83 ec 08             	sub    $0x8,%esp                      
  10c579:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c57c:	50                   	push   %eax                           
  10c57d:	ff 75 08             	pushl  0x8(%ebp)                      
  10c580:	e8 a7 1b 00 00       	call   10e12c <_Objects_Id_to_name>   
                                                                      
  *name = name_u.name_u32;                                            
  10c585:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c588:	89 13                	mov    %edx,(%ebx)                    
  return _Status_Object_name_errors_to_status[ status ];              
  10c58a:	8b 04 85 ec 38 12 00 	mov    0x1238ec(,%eax,4),%eax         
  10c591:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10c594:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c597:	c9                   	leave                                 
  10c598:	c3                   	ret                                   
  10c599:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10c59c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
                                                                      
  *name = name_u.name_u32;                                            
  return _Status_Object_name_errors_to_status[ status ];              
}                                                                     
  10c5a1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c5a4:	c9                   	leave                                 
  10c5a5:	c3                   	ret                                   
                                                                      

0010b9f4 <rtems_object_set_name>: */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) {
  10b9f4:	55                   	push   %ebp                           
  10b9f5:	89 e5                	mov    %esp,%ebp                      
  10b9f7:	57                   	push   %edi                           
  10b9f8:	56                   	push   %esi                           
  10b9f9:	53                   	push   %ebx                           
  10b9fa:	83 ec 1c             	sub    $0x1c,%esp                     
  10b9fd:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10ba00:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Objects_Information *information;                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
  10ba03:	85 ff                	test   %edi,%edi                      
  10ba05:	74 61                	je     10ba68 <rtems_object_set_name+0x74>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10ba07:	85 f6                	test   %esi,%esi                      
  10ba09:	74 35                	je     10ba40 <rtems_object_set_name+0x4c>
                                                                      
  information  = _Objects_Get_information_id( tmpId );                
  10ba0b:	83 ec 0c             	sub    $0xc,%esp                      
  10ba0e:	56                   	push   %esi                           
  10ba0f:	e8 24 19 00 00       	call   10d338 <_Objects_Get_information_id>
  10ba14:	89 c3                	mov    %eax,%ebx                      
  if ( !information )                                                 
  10ba16:	83 c4 10             	add    $0x10,%esp                     
  10ba19:	85 c0                	test   %eax,%eax                      
  10ba1b:	74 16                	je     10ba33 <rtems_object_set_name+0x3f>
    return RTEMS_INVALID_ID;                                          
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  10ba1d:	50                   	push   %eax                           
  10ba1e:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10ba21:	50                   	push   %eax                           
  10ba22:	56                   	push   %esi                           
  10ba23:	53                   	push   %ebx                           
  10ba24:	e8 c7 1a 00 00       	call   10d4f0 <_Objects_Get>          
  switch ( location ) {                                               
  10ba29:	83 c4 10             	add    $0x10,%esp                     
  10ba2c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10ba2f:	85 c9                	test   %ecx,%ecx                      
  10ba31:	74 19                	je     10ba4c <rtems_object_set_name+0x58>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10ba33:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10ba38:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba3b:	5b                   	pop    %ebx                           
  10ba3c:	5e                   	pop    %esi                           
  10ba3d:	5f                   	pop    %edi                           
  10ba3e:	c9                   	leave                                 
  10ba3f:	c3                   	ret                                   
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10ba40:	a1 98 a6 12 00       	mov    0x12a698,%eax                  
  10ba45:	8b 70 08             	mov    0x8(%eax),%esi                 
  10ba48:	eb c1                	jmp    10ba0b <rtems_object_set_name+0x17>
  10ba4a:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Set_name( information, the_object, name );             
  10ba4c:	52                   	push   %edx                           
  10ba4d:	57                   	push   %edi                           
  10ba4e:	50                   	push   %eax                           
  10ba4f:	53                   	push   %ebx                           
  10ba50:	e8 93 1c 00 00       	call   10d6e8 <_Objects_Set_name>     
      _Thread_Enable_dispatch();                                      
  10ba55:	e8 fa 26 00 00       	call   10e154 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10ba5a:	83 c4 10             	add    $0x10,%esp                     
  10ba5d:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ba5f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba62:	5b                   	pop    %ebx                           
  10ba63:	5e                   	pop    %esi                           
  10ba64:	5f                   	pop    %edi                           
  10ba65:	c9                   	leave                                 
  10ba66:	c3                   	ret                                   
  10ba67:	90                   	nop                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10ba68:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10ba6d:	eb c9                	jmp    10ba38 <rtems_object_set_name+0x44>
                                                                      

00116864 <rtems_partition_create>: uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, rtems_id *id ) {
  116864:	55                   	push   %ebp                           
  116865:	89 e5                	mov    %esp,%ebp                      
  116867:	57                   	push   %edi                           
  116868:	56                   	push   %esi                           
  116869:	53                   	push   %ebx                           
  11686a:	83 ec 1c             	sub    $0x1c,%esp                     
  11686d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  116870:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  116873:	8b 55 10             	mov    0x10(%ebp),%edx                
  116876:	8b 7d 14             	mov    0x14(%ebp),%edi                
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  116879:	85 db                	test   %ebx,%ebx                      
  11687b:	74 47                	je     1168c4 <rtems_partition_create+0x60>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
  11687d:	85 f6                	test   %esi,%esi                      
  11687f:	74 23                	je     1168a4 <rtems_partition_create+0x40>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
  116881:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  116884:	85 c0                	test   %eax,%eax                      
  116886:	74 1c                	je     1168a4 <rtems_partition_create+0x40><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( length == 0 || buffer_size == 0 || length < buffer_size ||     
  116888:	85 d2                	test   %edx,%edx                      
  11688a:	74 28                	je     1168b4 <rtems_partition_create+0x50>
  11688c:	85 ff                	test   %edi,%edi                      
  11688e:	74 24                	je     1168b4 <rtems_partition_create+0x50>
  116890:	39 fa                	cmp    %edi,%edx                      
  116892:	72 20                	jb     1168b4 <rtems_partition_create+0x50>
  116894:	f7 c7 03 00 00 00    	test   $0x3,%edi                      
  11689a:	75 18                	jne    1168b4 <rtems_partition_create+0x50>
         !_Partition_Is_buffer_size_aligned( buffer_size ) )          
    return RTEMS_INVALID_SIZE;                                        
                                                                      
  if ( !_Addresses_Is_aligned( starting_address ) )                   
  11689c:	f7 c6 03 00 00 00    	test   $0x3,%esi                      
  1168a2:	74 30                	je     1168d4 <rtems_partition_create+0x70>
     return RTEMS_INVALID_ADDRESS;                                    
  1168a4:	b8 09 00 00 00       	mov    $0x9,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1168a9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1168ac:	5b                   	pop    %ebx                           
  1168ad:	5e                   	pop    %esi                           
  1168ae:	5f                   	pop    %edi                           
  1168af:	c9                   	leave                                 
  1168b0:	c3                   	ret                                   
  1168b1:	8d 76 00             	lea    0x0(%esi),%esi                 
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( length == 0 || buffer_size == 0 || length < buffer_size ||     
         !_Partition_Is_buffer_size_aligned( buffer_size ) )          
    return RTEMS_INVALID_SIZE;                                        
  1168b4:	b8 08 00 00 00       	mov    $0x8,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1168b9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1168bc:	5b                   	pop    %ebx                           
  1168bd:	5e                   	pop    %esi                           
  1168be:	5f                   	pop    %edi                           
  1168bf:	c9                   	leave                                 
  1168c0:	c3                   	ret                                   
  1168c1:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  1168c4:	b8 03 00 00 00       	mov    $0x3,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1168c9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1168cc:	5b                   	pop    %ebx                           
  1168cd:	5e                   	pop    %esi                           
  1168ce:	5f                   	pop    %edi                           
  1168cf:	c9                   	leave                                 
  1168d0:	c3                   	ret                                   
  1168d1:	8d 76 00             	lea    0x0(%esi),%esi                 
  1168d4:	a1 f0 2a 14 00       	mov    0x142af0,%eax                  
  1168d9:	40                   	inc    %eax                           
  1168da:	a3 f0 2a 14 00       	mov    %eax,0x142af0                  
 *  This function allocates a partition control block from            
 *  the inactive chain of free partition control blocks.              
 */                                                                   
RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Allocate ( void )  
{                                                                     
  return (Partition_Control *) _Objects_Allocate( &_Partition_Information );
  1168df:	83 ec 0c             	sub    $0xc,%esp                      
  1168e2:	68 80 29 14 00       	push   $0x142980                      
  1168e7:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  1168ea:	e8 59 45 00 00       	call   11ae48 <_Objects_Allocate>     
  1168ef:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
  1168f2:	83 c4 10             	add    $0x10,%esp                     
  1168f5:	85 c0                	test   %eax,%eax                      
  1168f7:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  1168fa:	74 58                	je     116954 <rtems_partition_create+0xf0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_partition->starting_address      = starting_address;            
  1168fc:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1168ff:	89 70 10             	mov    %esi,0x10(%eax)                
  the_partition->length                = length;                      
  116902:	89 50 14             	mov    %edx,0x14(%eax)                
  the_partition->buffer_size           = buffer_size;                 
  116905:	89 78 18             	mov    %edi,0x18(%eax)                
  the_partition->attribute_set         = attribute_set;               
  116908:	8b 4d 18             	mov    0x18(%ebp),%ecx                
  11690b:	89 48 1c             	mov    %ecx,0x1c(%eax)                
  the_partition->number_of_used_blocks = 0;                           
  11690e:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)                
                                                                      
  _Chain_Initialize( &the_partition->Memory, starting_address,        
  116915:	57                   	push   %edi                           
  116916:	89 d0                	mov    %edx,%eax                      
  116918:	31 d2                	xor    %edx,%edx                      
  11691a:	f7 f7                	div    %edi                           
  11691c:	50                   	push   %eax                           
  11691d:	56                   	push   %esi                           
  11691e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  116921:	83 c0 24             	add    $0x24,%eax                     
  116924:	50                   	push   %eax                           
  116925:	e8 9e 2f 00 00       	call   1198c8 <_Chain_Initialize>     
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  11692a:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  11692d:	8b 47 08             	mov    0x8(%edi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  116930:	0f b7 f0             	movzwl %ax,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  116933:	8b 15 9c 29 14 00    	mov    0x14299c,%edx                  
  116939:	89 3c b2             	mov    %edi,(%edx,%esi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  11693c:	89 5f 0c             	mov    %ebx,0xc(%edi)                 
    &_Partition_Information,                                          
    &the_partition->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_partition->Object.id;                                     
  11693f:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  116942:	89 02                	mov    %eax,(%edx)                    
      name,                                                           
      0                  /* Not used */                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  116944:	e8 77 55 00 00       	call   11bec0 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  116949:	83 c4 10             	add    $0x10,%esp                     
  11694c:	31 c0                	xor    %eax,%eax                      
  11694e:	e9 66 ff ff ff       	jmp    1168b9 <rtems_partition_create+0x55>
  116953:	90                   	nop                                   
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
    _Thread_Enable_dispatch();                                        
  116954:	e8 67 55 00 00       	call   11bec0 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  116959:	b8 05 00 00 00       	mov    $0x5,%eax                      
  11695e:	e9 56 ff ff ff       	jmp    1168b9 <rtems_partition_create+0x55>
                                                                      

001169d0 <rtems_partition_get_buffer>: rtems_status_code rtems_partition_get_buffer( rtems_id id, void **buffer ) {
  1169d0:	55                   	push   %ebp                           
  1169d1:	89 e5                	mov    %esp,%ebp                      
  1169d3:	56                   	push   %esi                           
  1169d4:	53                   	push   %ebx                           
  1169d5:	83 ec 20             	sub    $0x20,%esp                     
  1169d8:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
  void                       *the_buffer;                             
                                                                      
  if ( !buffer )                                                      
  1169db:	85 db                	test   %ebx,%ebx                      
  1169dd:	74 59                	je     116a38 <rtems_partition_get_buffer+0x68>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
  1169df:	52                   	push   %edx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  1169e0:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1169e3:	50                   	push   %eax                           
  1169e4:	ff 75 08             	pushl  0x8(%ebp)                      
  1169e7:	68 80 29 14 00       	push   $0x142980                      
  1169ec:	e8 47 49 00 00       	call   11b338 <_Objects_Get>          
  1169f1:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  1169f3:	83 c4 10             	add    $0x10,%esp                     
  1169f6:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  1169f9:	85 c0                	test   %eax,%eax                      
  1169fb:	75 2f                	jne    116a2c <rtems_partition_get_buffer+0x5c>
 */                                                                   
RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer (               
   Partition_Control *the_partition                                   
)                                                                     
{                                                                     
  return _Chain_Get( &the_partition->Memory );                        
  1169fd:	83 ec 0c             	sub    $0xc,%esp                      
  116a00:	8d 46 24             	lea    0x24(%esi),%eax                
  116a03:	50                   	push   %eax                           
  116a04:	e8 9b 2e 00 00       	call   1198a4 <_Chain_Get>            
                                                                      
    case OBJECTS_LOCAL:                                               
      the_buffer = _Partition_Allocate_buffer( the_partition );       
      if ( the_buffer ) {                                             
  116a09:	83 c4 10             	add    $0x10,%esp                     
  116a0c:	85 c0                	test   %eax,%eax                      
  116a0e:	74 34                	je     116a44 <rtems_partition_get_buffer+0x74>
        the_partition->number_of_used_blocks += 1;                    
  116a10:	ff 46 20             	incl   0x20(%esi)                     
        _Thread_Enable_dispatch();                                    
  116a13:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  116a16:	e8 a5 54 00 00       	call   11bec0 <_Thread_Enable_dispatch>
        *buffer = the_buffer;                                         
  116a1b:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  116a1e:	89 03                	mov    %eax,(%ebx)                    
        return RTEMS_SUCCESSFUL;                                      
  116a20:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116a22:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116a25:	5b                   	pop    %ebx                           
  116a26:	5e                   	pop    %esi                           
  116a27:	c9                   	leave                                 
  116a28:	c3                   	ret                                   
  116a29:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116a2c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116a31:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116a34:	5b                   	pop    %ebx                           
  116a35:	5e                   	pop    %esi                           
  116a36:	c9                   	leave                                 
  116a37:	c3                   	ret                                   
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
  void                       *the_buffer;                             
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  116a38:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116a3d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116a40:	5b                   	pop    %ebx                           
  116a41:	5e                   	pop    %esi                           
  116a42:	c9                   	leave                                 
  116a43:	c3                   	ret                                   
        the_partition->number_of_used_blocks += 1;                    
        _Thread_Enable_dispatch();                                    
        *buffer = the_buffer;                                         
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  116a44:	e8 77 54 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_UNSATISFIED;                                       
  116a49:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  116a4e:	eb e1                	jmp    116a31 <rtems_partition_get_buffer+0x61>
                                                                      

00116a74 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
  116a74:	55                   	push   %ebp                           
  116a75:	89 e5                	mov    %esp,%ebp                      
  116a77:	56                   	push   %esi                           
  116a78:	53                   	push   %ebx                           
  116a79:	83 ec 14             	sub    $0x14,%esp                     
  116a7c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  116a7f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
  116a82:	50                   	push   %eax                           
  116a83:	ff 75 08             	pushl  0x8(%ebp)                      
  116a86:	68 80 29 14 00       	push   $0x142980                      
  116a8b:	e8 a8 48 00 00       	call   11b338 <_Objects_Get>          
  116a90:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  116a92:	83 c4 10             	add    $0x10,%esp                     
  116a95:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116a98:	85 c0                	test   %eax,%eax                      
  116a9a:	74 0c                	je     116aa8 <rtems_partition_return_buffer+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116a9c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116aa1:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116aa4:	5b                   	pop    %ebx                           
  116aa5:	5e                   	pop    %esi                           
  116aa6:	c9                   	leave                                 
  116aa7:	c3                   	ret                                   
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
  116aa8:	8b 43 10             	mov    0x10(%ebx),%eax                
  ending   = _Addresses_Add_offset( starting, the_partition->length );
  116aab:	8b 53 14             	mov    0x14(%ebx),%edx                
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
  116aae:	39 c6                	cmp    %eax,%esi                      
  116ab0:	72 3a                	jb     116aec <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
  116ab2:	8d 14 10             	lea    (%eax,%edx,1),%edx             
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
  116ab5:	39 d6                	cmp    %edx,%esi                      
  116ab7:	77 33                	ja     116aec <rtems_partition_return_buffer+0x78><== NEVER TAKEN
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
  116ab9:	89 f2                	mov    %esi,%edx                      
  116abb:	29 c2                	sub    %eax,%edx                      
  116abd:	89 d0                	mov    %edx,%eax                      
  offset = (uint32_t) _Addresses_Subtract(                            
    the_buffer,                                                       
    the_partition->starting_address                                   
  );                                                                  
                                                                      
  return ((offset % the_partition->buffer_size) == 0);                
  116abf:	31 d2                	xor    %edx,%edx                      
  116ac1:	f7 73 18             	divl   0x18(%ebx)                     
                                                                      
  starting = the_partition->starting_address;                         
  ending   = _Addresses_Add_offset( starting, the_partition->length );
                                                                      
  return (                                                            
    _Addresses_Is_in_range( the_buffer, starting, ending ) &&         
  116ac4:	85 d2                	test   %edx,%edx                      
  116ac6:	75 24                	jne    116aec <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 );                
  116ac8:	83 ec 08             	sub    $0x8,%esp                      
  116acb:	56                   	push   %esi                           
  116acc:	8d 43 24             	lea    0x24(%ebx),%eax                
  116acf:	50                   	push   %eax                           
  116ad0:	e8 93 2d 00 00       	call   119868 <_Chain_Append>         
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
  116ad5:	ff 4b 20             	decl   0x20(%ebx)                     
        _Thread_Enable_dispatch();                                    
  116ad8:	e8 e3 53 00 00       	call   11bec0 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  116add:	83 c4 10             	add    $0x10,%esp                     
  116ae0:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116ae2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116ae5:	5b                   	pop    %ebx                           
  116ae6:	5e                   	pop    %esi                           
  116ae7:	c9                   	leave                                 
  116ae8:	c3                   	ret                                   
  116ae9:	8d 76 00             	lea    0x0(%esi),%esi                 
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  116aec:	e8 cf 53 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  116af1:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116af6:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116af9:	5b                   	pop    %ebx                           
  116afa:	5e                   	pop    %esi                           
  116afb:	c9                   	leave                                 
  116afc:	c3                   	ret                                   
                                                                      

00115e98 <rtems_port_create>: void *internal_start, void *external_start, uint32_t length, rtems_id *id ) {
  115e98:	55                   	push   %ebp                           
  115e99:	89 e5                	mov    %esp,%ebp                      
  115e9b:	57                   	push   %edi                           
  115e9c:	56                   	push   %esi                           
  115e9d:	53                   	push   %ebx                           
  115e9e:	83 ec 1c             	sub    $0x1c,%esp                     
  115ea1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  115ea4:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  115ea7:	8b 7d 10             	mov    0x10(%ebp),%edi                
  115eaa:	8b 75 18             	mov    0x18(%ebp),%esi                
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  115ead:	85 db                	test   %ebx,%ebx                      
  115eaf:	74 1b                	je     115ecc <rtems_port_create+0x34>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  115eb1:	85 f6                	test   %esi,%esi                      
  115eb3:	74 08                	je     115ebd <rtems_port_create+0x25>
 *    id       - port id                                              
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code - if unsuccessful                                    
 */                                                                   
                                                                      
rtems_status_code rtems_port_create(                                  
  115eb5:	89 f8                	mov    %edi,%eax                      
  115eb7:	09 d0                	or     %edx,%eax                      
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_Addresses_Is_aligned( internal_start ) ||                    
  115eb9:	a8 03                	test   $0x3,%al                       
  115ebb:	74 1f                	je     115edc <rtems_port_create+0x44>
       !_Addresses_Is_aligned( external_start ) )                     
    return RTEMS_INVALID_ADDRESS;                                     
  115ebd:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115ec2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115ec5:	5b                   	pop    %ebx                           
  115ec6:	5e                   	pop    %esi                           
  115ec7:	5f                   	pop    %edi                           
  115ec8:	c9                   	leave                                 
  115ec9:	c3                   	ret                                   
  115eca:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  115ecc:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115ed1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115ed4:	5b                   	pop    %ebx                           
  115ed5:	5e                   	pop    %esi                           
  115ed6:	5f                   	pop    %edi                           
  115ed7:	c9                   	leave                                 
  115ed8:	c3                   	ret                                   
  115ed9:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  115edc:	a1 f0 2a 14 00       	mov    0x142af0,%eax                  
  115ee1:	40                   	inc    %eax                           
  115ee2:	a3 f0 2a 14 00       	mov    %eax,0x142af0                  
 */                                                                   
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control                       
   *_Dual_ported_memory_Allocate ( void )                             
{                                                                     
  return (Dual_ported_memory_Control *)                               
     _Objects_Allocate( &_Dual_ported_memory_Information );           
  115ee7:	83 ec 0c             	sub    $0xc,%esp                      
  115eea:	68 40 29 14 00       	push   $0x142940                      
  115eef:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  115ef2:	e8 51 4f 00 00       	call   11ae48 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();             /* to prevent deletion */   
                                                                      
  the_port = _Dual_ported_memory_Allocate();                          
                                                                      
  if ( !the_port ) {                                                  
  115ef7:	83 c4 10             	add    $0x10,%esp                     
  115efa:	85 c0                	test   %eax,%eax                      
  115efc:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  115eff:	74 33                	je     115f34 <rtems_port_create+0x9c>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_port->internal_base = internal_start;                           
  115f01:	89 50 10             	mov    %edx,0x10(%eax)                
  the_port->external_base = external_start;                           
  115f04:	89 78 14             	mov    %edi,0x14(%eax)                
  the_port->length        = length - 1;                               
  115f07:	8b 55 14             	mov    0x14(%ebp),%edx                
  115f0a:	4a                   	dec    %edx                           
  115f0b:	89 50 18             	mov    %edx,0x18(%eax)                
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  115f0e:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  115f11:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  115f14:	8b 0d 5c 29 14 00    	mov    0x14295c,%ecx                  
  115f1a:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  115f1d:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Dual_ported_memory_Information,                                 
    &the_port->Object,                                                
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  115f20:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  115f22:	e8 99 5f 00 00       	call   11bec0 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  115f27:	31 c0                	xor    %eax,%eax                      
}                                                                     
  115f29:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115f2c:	5b                   	pop    %ebx                           
  115f2d:	5e                   	pop    %esi                           
  115f2e:	5f                   	pop    %edi                           
  115f2f:	c9                   	leave                                 
  115f30:	c3                   	ret                                   
  115f31:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* to prevent deletion */   
                                                                      
  the_port = _Dual_ported_memory_Allocate();                          
                                                                      
  if ( !the_port ) {                                                  
    _Thread_Enable_dispatch();                                        
  115f34:	e8 87 5f 00 00       	call   11bec0 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  115f39:	b8 05 00 00 00       	mov    $0x5,%eax                      
  115f3e:	eb 82                	jmp    115ec2 <rtems_port_create+0x2a>
                                                                      

00115f40 <rtems_port_delete>: */ rtems_status_code rtems_port_delete( rtems_id id ) {
  115f40:	55                   	push   %ebp                           
  115f41:	89 e5                	mov    %esp,%ebp                      
  115f43:	83 ec 2c             	sub    $0x2c,%esp                     
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  115f46:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Dual_ported_memory_Control *)                               
     _Objects_Get( &_Dual_ported_memory_Information, id, location );  
  115f49:	50                   	push   %eax                           
  115f4a:	ff 75 08             	pushl  0x8(%ebp)                      
  115f4d:	68 40 29 14 00       	push   $0x142940                      
  115f52:	e8 e1 53 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  115f57:	83 c4 10             	add    $0x10,%esp                     
  115f5a:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  115f5d:	85 c9                	test   %ecx,%ecx                      
  115f5f:	75 2f                	jne    115f90 <rtems_port_delete+0x50>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object );
  115f61:	83 ec 08             	sub    $0x8,%esp                      
  115f64:	50                   	push   %eax                           
  115f65:	68 40 29 14 00       	push   $0x142940                      
  115f6a:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  115f6d:	e8 52 4f 00 00       	call   11aec4 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free (                  
   Dual_ported_memory_Control *the_port                               
)                                                                     
{                                                                     
  _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object );
  115f72:	58                   	pop    %eax                           
  115f73:	5a                   	pop    %edx                           
  115f74:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  115f77:	50                   	push   %eax                           
  115f78:	68 40 29 14 00       	push   $0x142940                      
  115f7d:	e8 3a 52 00 00       	call   11b1bc <_Objects_Free>         
      _Dual_ported_memory_Free( the_port );                           
      _Thread_Enable_dispatch();                                      
  115f82:	e8 39 5f 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115f87:	83 c4 10             	add    $0x10,%esp                     
  115f8a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115f8c:	c9                   	leave                                 
  115f8d:	c3                   	ret                                   
  115f8e:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115f90:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115f95:	c9                   	leave                                 
  115f96:	c3                   	ret                                   
                                                                      

00115f98 <rtems_port_external_to_internal>: rtems_status_code rtems_port_external_to_internal( rtems_id id, void *external, void **internal ) {
  115f98:	55                   	push   %ebp                           
  115f99:	89 e5                	mov    %esp,%ebp                      
  115f9b:	56                   	push   %esi                           
  115f9c:	53                   	push   %ebx                           
  115f9d:	83 ec 10             	sub    $0x10,%esp                     
  115fa0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  115fa3:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !internal )                                                    
  115fa6:	85 db                	test   %ebx,%ebx                      
  115fa8:	74 4e                	je     115ff8 <rtems_port_external_to_internal+0x60>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Dual_ported_memory_Control *)                               
     _Objects_Get( &_Dual_ported_memory_Information, id, location );  
  115faa:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  115fab:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115fae:	50                   	push   %eax                           
  115faf:	ff 75 08             	pushl  0x8(%ebp)                      
  115fb2:	68 40 29 14 00       	push   $0x142940                      
  115fb7:	e8 7c 53 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  115fbc:	83 c4 10             	add    $0x10,%esp                     
  115fbf:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  115fc2:	85 d2                	test   %edx,%edx                      
  115fc4:	74 0e                	je     115fd4 <rtems_port_external_to_internal+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115fc6:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115fcb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115fce:	5b                   	pop    %ebx                           
  115fcf:	5e                   	pop    %esi                           
  115fd0:	c9                   	leave                                 
  115fd1:	c3                   	ret                                   
  115fd2:	66 90                	xchg   %ax,%ax                        
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
  115fd4:	89 f2                	mov    %esi,%edx                      
  115fd6:	2b 50 14             	sub    0x14(%eax),%edx                
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  switch ( location ) {                                               
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( external, the_port->external_base );
      if ( ending > the_port->length )                                
  115fd9:	3b 50 18             	cmp    0x18(%eax),%edx                
  115fdc:	77 16                	ja     115ff4 <rtems_port_external_to_internal+0x5c>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
  115fde:	03 50 10             	add    0x10(%eax),%edx                
  115fe1:	89 13                	mov    %edx,(%ebx)                    
        *internal = external;                                         
      else                                                            
        *internal = _Addresses_Add_offset( the_port->internal_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
  115fe3:	e8 d8 5e 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115fe8:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115fea:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115fed:	5b                   	pop    %ebx                           
  115fee:	5e                   	pop    %esi                           
  115fef:	c9                   	leave                                 
  115ff0:	c3                   	ret                                   
  115ff1:	8d 76 00             	lea    0x0(%esi),%esi                 
  the_port = _Dual_ported_memory_Get( id, &location );                
  switch ( location ) {                                               
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( external, the_port->external_base );
      if ( ending > the_port->length )                                
        *internal = external;                                         
  115ff4:	89 33                	mov    %esi,(%ebx)                    
  115ff6:	eb eb                	jmp    115fe3 <rtems_port_external_to_internal+0x4b>
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !internal )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
  115ff8:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115ffd:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116000:	5b                   	pop    %ebx                           
  116001:	5e                   	pop    %esi                           
  116002:	c9                   	leave                                 
  116003:	c3                   	ret                                   
                                                                      

00116028 <rtems_port_internal_to_external>: rtems_status_code rtems_port_internal_to_external( rtems_id id, void *internal, void **external ) {
  116028:	55                   	push   %ebp                           
  116029:	89 e5                	mov    %esp,%ebp                      
  11602b:	56                   	push   %esi                           
  11602c:	53                   	push   %ebx                           
  11602d:	83 ec 10             	sub    $0x10,%esp                     
  116030:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  116033:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
  116036:	85 db                	test   %ebx,%ebx                      
  116038:	74 4e                	je     116088 <rtems_port_internal_to_external+0x60>
  11603a:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  11603b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11603e:	50                   	push   %eax                           
  11603f:	ff 75 08             	pushl  0x8(%ebp)                      
  116042:	68 40 29 14 00       	push   $0x142940                      
  116047:	e8 ec 52 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  11604c:	83 c4 10             	add    $0x10,%esp                     
  11604f:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  116052:	85 d2                	test   %edx,%edx                      
  116054:	74 0e                	je     116064 <rtems_port_internal_to_external+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116056:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  11605b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11605e:	5b                   	pop    %ebx                           
  11605f:	5e                   	pop    %esi                           
  116060:	c9                   	leave                                 
  116061:	c3                   	ret                                   
  116062:	66 90                	xchg   %ax,%ax                        
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
  116064:	89 f2                	mov    %esi,%edx                      
  116066:	2b 50 10             	sub    0x10(%eax),%edx                
  the_port = _Dual_ported_memory_Get( id, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( internal, the_port->internal_base );
      if ( ending > the_port->length )                                
  116069:	3b 50 18             	cmp    0x18(%eax),%edx                
  11606c:	77 16                	ja     116084 <rtems_port_internal_to_external+0x5c>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
  11606e:	03 50 14             	add    0x14(%eax),%edx                
  116071:	89 13                	mov    %edx,(%ebx)                    
        *external = internal;                                         
      else                                                            
        *external = _Addresses_Add_offset( the_port->external_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
  116073:	e8 48 5e 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  116078:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11607a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11607d:	5b                   	pop    %ebx                           
  11607e:	5e                   	pop    %esi                           
  11607f:	c9                   	leave                                 
  116080:	c3                   	ret                                   
  116081:	8d 76 00             	lea    0x0(%esi),%esi                 
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( internal, the_port->internal_base );
      if ( ending > the_port->length )                                
        *external = internal;                                         
  116084:	89 33                	mov    %esi,(%ebx)                    
  116086:	eb eb                	jmp    116073 <rtems_port_internal_to_external+0x4b>
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
  116088:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11608d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116090:	5b                   	pop    %ebx                           
  116091:	5e                   	pop    %esi                           
  116092:	c9                   	leave                                 
  116093:	c3                   	ret                                   
                                                                      

00116b00 <rtems_rate_monotonic_cancel>: */ rtems_status_code rtems_rate_monotonic_cancel( rtems_id id ) {
  116b00:	55                   	push   %ebp                           
  116b01:	89 e5                	mov    %esp,%ebp                      
  116b03:	53                   	push   %ebx                           
  116b04:	83 ec 18             	sub    $0x18,%esp                     
  Rate_monotonic_Control *the_period;                                 
  Objects_Locations       location;                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  116b07:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
  116b0a:	50                   	push   %eax                           
  116b0b:	ff 75 08             	pushl  0x8(%ebp)                      
  116b0e:	68 c0 29 14 00       	push   $0x1429c0                      
  116b13:	e8 20 48 00 00       	call   11b338 <_Objects_Get>          
  116b18:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  116b1a:	83 c4 10             	add    $0x10,%esp                     
  116b1d:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116b20:	85 c0                	test   %eax,%eax                      
  116b22:	74 0c                	je     116b30 <rtems_rate_monotonic_cancel+0x30>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116b24:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116b29:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116b2c:	c9                   	leave                                 
  116b2d:	c3                   	ret                                   
  116b2e:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
  116b30:	a1 98 30 14 00       	mov    0x143098,%eax                  
  116b35:	39 43 40             	cmp    %eax,0x40(%ebx)                
  116b38:	74 12                	je     116b4c <rtems_rate_monotonic_cancel+0x4c>
        _Thread_Enable_dispatch();                                    
  116b3a:	e8 81 53 00 00       	call   11bec0 <_Thread_Enable_dispatch>
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
  116b3f:	b8 17 00 00 00       	mov    $0x17,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116b44:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116b47:	c9                   	leave                                 
  116b48:	c3                   	ret                                   
  116b49:	8d 76 00             	lea    0x0(%esi),%esi                 
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
        _Thread_Enable_dispatch();                                    
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
      }                                                               
      (void) _Watchdog_Remove( &the_period->Timer );                  
  116b4c:	83 ec 0c             	sub    $0xc,%esp                      
  116b4f:	8d 43 10             	lea    0x10(%ebx),%eax                
  116b52:	50                   	push   %eax                           
  116b53:	e8 a8 64 00 00       	call   11d000 <_Watchdog_Remove>      
      the_period->state = RATE_MONOTONIC_INACTIVE;                    
  116b58:	c7 43 38 00 00 00 00 	movl   $0x0,0x38(%ebx)                
      _Thread_Enable_dispatch();                                      
  116b5f:	e8 5c 53 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  116b64:	83 c4 10             	add    $0x10,%esp                     
  116b67:	31 c0                	xor    %eax,%eax                      
  116b69:	eb be                	jmp    116b29 <rtems_rate_monotonic_cancel+0x29>
                                                                      

0010c388 <rtems_rate_monotonic_create>: rtems_status_code rtems_rate_monotonic_create( rtems_name name, rtems_id *id ) {
  10c388:	55                   	push   %ebp                           
  10c389:	89 e5                	mov    %esp,%ebp                      
  10c38b:	57                   	push   %edi                           
  10c38c:	56                   	push   %esi                           
  10c38d:	53                   	push   %ebx                           
  10c38e:	83 ec 1c             	sub    $0x1c,%esp                     
  10c391:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c394:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10c397:	85 db                	test   %ebx,%ebx                      
  10c399:	0f 84 a9 00 00 00    	je     10c448 <rtems_rate_monotonic_create+0xc0>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10c39f:	85 f6                	test   %esi,%esi                      
  10c3a1:	0f 84 c5 00 00 00    	je     10c46c <rtems_rate_monotonic_create+0xe4>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c3a7:	a1 f0 b1 12 00       	mov    0x12b1f0,%eax                  
  10c3ac:	40                   	inc    %eax                           
  10c3ad:	a3 f0 b1 12 00       	mov    %eax,0x12b1f0                  
 *  the inactive chain of free period control blocks.                 
 */                                                                   
RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Allocate( &_Rate_monotonic_Information );                
  10c3b2:	83 ec 0c             	sub    $0xc,%esp                      
  10c3b5:	68 00 b1 12 00       	push   $0x12b100                      
  10c3ba:	e8 21 1f 00 00       	call   10e2e0 <_Objects_Allocate>     
  10c3bf:	89 c2                	mov    %eax,%edx                      
                                                                      
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
  10c3c1:	83 c4 10             	add    $0x10,%esp                     
  10c3c4:	85 c0                	test   %eax,%eax                      
  10c3c6:	0f 84 8c 00 00 00    	je     10c458 <rtems_rate_monotonic_create+0xd0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_period->owner = _Thread_Executing;                              
  10c3cc:	a1 98 b7 12 00       	mov    0x12b798,%eax                  
  10c3d1:	89 42 40             	mov    %eax,0x40(%edx)                
  the_period->state = RATE_MONOTONIC_INACTIVE;                        
  10c3d4:	c7 42 38 00 00 00 00 	movl   $0x0,0x38(%edx)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10c3db:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  10c3e2:	c7 42 2c 00 00 00 00 	movl   $0x0,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  10c3e9:	c7 42 30 00 00 00 00 	movl   $0x0,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  10c3f0:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
                                                                      
  _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL );          
                                                                      
  _Rate_monotonic_Reset_statistics( the_period );                     
  10c3f7:	8d 42 54             	lea    0x54(%edx),%eax                
  10c3fa:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c3fd:	b9 38 00 00 00       	mov    $0x38,%ecx                     
  10c402:	31 c0                	xor    %eax,%eax                      
  10c404:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  10c407:	f3 aa                	rep stos %al,%es:(%edi)               
  10c409:	c7 42 5c ff ff ff 7f 	movl   $0x7fffffff,0x5c(%edx)         
  10c410:	c7 42 60 ff ff ff 7f 	movl   $0x7fffffff,0x60(%edx)         
  10c417:	c7 42 74 ff ff ff 7f 	movl   $0x7fffffff,0x74(%edx)         
  10c41e:	c7 42 78 ff ff ff 7f 	movl   $0x7fffffff,0x78(%edx)         
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c425:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c428:	0f b7 f8             	movzwl %ax,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c42b:	8b 0d 1c b1 12 00    	mov    0x12b11c,%ecx                  
  10c431:	89 14 b9             	mov    %edx,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10c434:	89 5a 0c             	mov    %ebx,0xc(%edx)                 
    &_Rate_monotonic_Information,                                     
    &the_period->Object,                                              
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  10c437:	89 06                	mov    %eax,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10c439:	e8 c6 2f 00 00       	call   10f404 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10c43e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c440:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c443:	5b                   	pop    %ebx                           
  10c444:	5e                   	pop    %esi                           
  10c445:	5f                   	pop    %edi                           
  10c446:	c9                   	leave                                 
  10c447:	c3                   	ret                                   
)                                                                     
{                                                                     
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10c448:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c44d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c450:	5b                   	pop    %ebx                           
  10c451:	5e                   	pop    %esi                           
  10c452:	5f                   	pop    %edi                           
  10c453:	c9                   	leave                                 
  10c454:	c3                   	ret                                   
  10c455:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
    _Thread_Enable_dispatch();                                        
  10c458:	e8 a7 2f 00 00       	call   10f404 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10c45d:	b8 05 00 00 00       	mov    $0x5,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c462:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c465:	5b                   	pop    %ebx                           
  10c466:	5e                   	pop    %esi                           
  10c467:	5f                   	pop    %edi                           
  10c468:	c9                   	leave                                 
  10c469:	c3                   	ret                                   
  10c46a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10c46c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c471:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c474:	5b                   	pop    %ebx                           
  10c475:	5e                   	pop    %esi                           
  10c476:	5f                   	pop    %edi                           
  10c477:	c9                   	leave                                 
  10c478:	c3                   	ret                                   
                                                                      

00112950 <rtems_rate_monotonic_get_status>: rtems_status_code rtems_rate_monotonic_get_status( rtems_id id, rtems_rate_monotonic_period_status *status ) {
  112950:	55                   	push   %ebp                           
  112951:	89 e5                	mov    %esp,%ebp                      
  112953:	53                   	push   %ebx                           
  112954:	83 ec 24             	sub    $0x24,%esp                     
  112957:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Locations              location;                            
  Rate_monotonic_Period_time_t   since_last_period;                   
  Rate_monotonic_Control        *the_period;                          
  bool                           valid_status;                        
                                                                      
  if ( !status )                                                      
  11295a:	85 db                	test   %ebx,%ebx                      
  11295c:	0f 84 92 00 00 00    	je     1129f4 <rtems_rate_monotonic_get_status+0xa4>
  112962:	50                   	push   %eax                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  112963:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  112966:	50                   	push   %eax                           
  112967:	ff 75 08             	pushl  0x8(%ebp)                      
  11296a:	68 00 b1 12 00       	push   $0x12b100                      
  11296f:	e8 08 bf ff ff       	call   10e87c <_Objects_Get>          
  switch ( location ) {                                               
  112974:	83 c4 10             	add    $0x10,%esp                     
  112977:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  11297a:	85 c9                	test   %ecx,%ecx                      
  11297c:	74 0a                	je     112988 <rtems_rate_monotonic_get_status+0x38>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  11297e:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  112983:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  112986:	c9                   	leave                                 
  112987:	c3                   	ret                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = the_period->owner->Object.id;                   
  112988:	8b 50 40             	mov    0x40(%eax),%edx                
  11298b:	8b 52 08             	mov    0x8(%edx),%edx                 
  11298e:	89 13                	mov    %edx,(%ebx)                    
      status->state = the_period->state;                              
  112990:	8b 50 38             	mov    0x38(%eax),%edx                
  112993:	89 53 04             	mov    %edx,0x4(%ebx)                 
                                                                      
      /*                                                              
       *  If the period is inactive, there is no information.         
       */                                                             
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
  112996:	85 d2                	test   %edx,%edx                      
  112998:	75 2a                	jne    1129c4 <rtems_rate_monotonic_get_status+0x74>
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timespec_Set_to_zero( &status->since_last_period );        
  11299a:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)                 
  1129a1:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
          _Timespec_Set_to_zero( &status->executed_since_last_period );
  1129a8:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
  1129af:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)                
          status->since_last_period = since_last_period;              
          status->executed_since_last_period = executed;              
        #endif                                                        
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
  1129b6:	e8 49 ca ff ff       	call   10f404 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1129bb:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1129bd:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1129c0:	c9                   	leave                                 
  1129c1:	c3                   	ret                                   
  1129c2:	66 90                	xchg   %ax,%ax                        
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  1129c4:	52                   	push   %edx                           
          _Rate_monotonic_Get_status(                                 
  1129c5:	8d 55 ec             	lea    -0x14(%ebp),%edx               
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  1129c8:	52                   	push   %edx                           
          _Rate_monotonic_Get_status(                                 
  1129c9:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  1129cc:	52                   	push   %edx                           
  1129cd:	50                   	push   %eax                           
  1129ce:	e8 cd 9a ff ff       	call   10c4a0 <_Rate_monotonic_Get_status>
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
  1129d3:	83 c4 10             	add    $0x10,%esp                     
  1129d6:	84 c0                	test   %al,%al                        
  1129d8:	74 26                	je     112a00 <rtems_rate_monotonic_get_status+0xb0>
          _Thread_Enable_dispatch();                                  
          return RTEMS_NOT_DEFINED;                                   
        }                                                             
                                                                      
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timestamp_To_timespec(                                     
  1129da:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1129dd:	8b 55 e8             	mov    -0x18(%ebp),%edx               
  1129e0:	89 43 08             	mov    %eax,0x8(%ebx)                 
  1129e3:	89 53 0c             	mov    %edx,0xc(%ebx)                 
            &since_last_period, &status->since_last_period            
          );                                                          
          _Timestamp_To_timespec(                                     
  1129e6:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  1129e9:	8b 55 f0             	mov    -0x10(%ebp),%edx               
  1129ec:	89 43 10             	mov    %eax,0x10(%ebx)                
  1129ef:	89 53 14             	mov    %edx,0x14(%ebx)                
  1129f2:	eb c2                	jmp    1129b6 <rtems_rate_monotonic_get_status+0x66>
  Rate_monotonic_Period_time_t   since_last_period;                   
  Rate_monotonic_Control        *the_period;                          
  bool                           valid_status;                        
                                                                      
  if ( !status )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  1129f4:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1129f9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1129fc:	c9                   	leave                                 
  1129fd:	c3                   	ret                                   
  1129fe:	66 90                	xchg   %ax,%ax                        
        valid_status =                                                
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
          _Thread_Enable_dispatch();                                  
  112a00:	e8 ff c9 ff ff       	call   10f404 <_Thread_Enable_dispatch>
          return RTEMS_NOT_DEFINED;                                   
  112a05:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  112a0a:	e9 74 ff ff ff       	jmp    112983 <rtems_rate_monotonic_get_status+0x33>
                                                                      

0010c69c <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
  10c69c:	55                   	push   %ebp                           
  10c69d:	89 e5                	mov    %esp,%ebp                      
  10c69f:	57                   	push   %edi                           
  10c6a0:	56                   	push   %esi                           
  10c6a1:	53                   	push   %ebx                           
  10c6a2:	83 ec 30             	sub    $0x30,%esp                     
  10c6a5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c6a8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Objects_Locations                    location;                      
  rtems_status_code                    return_value;                  
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  10c6ab:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
  10c6ae:	50                   	push   %eax                           
  10c6af:	53                   	push   %ebx                           
  10c6b0:	68 00 b1 12 00       	push   $0x12b100                      
  10c6b5:	e8 c2 21 00 00       	call   10e87c <_Objects_Get>          
                                                                      
  switch ( location ) {                                               
  10c6ba:	83 c4 10             	add    $0x10,%esp                     
  10c6bd:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c6c0:	85 d2                	test   %edx,%edx                      
  10c6c2:	74 10                	je     10c6d4 <rtems_rate_monotonic_period+0x38>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10c6c4:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c6c9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c6cc:	5b                   	pop    %ebx                           
  10c6cd:	5e                   	pop    %esi                           
  10c6ce:	5f                   	pop    %edi                           
  10c6cf:	c9                   	leave                                 
  10c6d0:	c3                   	ret                                   
  10c6d1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
  10c6d4:	8b 15 98 b7 12 00    	mov    0x12b798,%edx                  
  10c6da:	39 50 40             	cmp    %edx,0x40(%eax)                
  10c6dd:	74 15                	je     10c6f4 <rtems_rate_monotonic_period+0x58>
        _Thread_Enable_dispatch();                                    
  10c6df:	e8 20 2d 00 00       	call   10f404 <_Thread_Enable_dispatch>
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
  10c6e4:	b8 17 00 00 00       	mov    $0x17,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c6e9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c6ec:	5b                   	pop    %ebx                           
  10c6ed:	5e                   	pop    %esi                           
  10c6ee:	5f                   	pop    %edi                           
  10c6ef:	c9                   	leave                                 
  10c6f0:	c3                   	ret                                   
  10c6f1:	8d 76 00             	lea    0x0(%esi),%esi                 
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
        _Thread_Enable_dispatch();                                    
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
  10c6f4:	85 f6                	test   %esi,%esi                      
  10c6f6:	75 1c                	jne    10c714 <rtems_rate_monotonic_period+0x78>
        switch ( the_period->state ) {                                
  10c6f8:	8b 40 38             	mov    0x38(%eax),%eax                
  10c6fb:	83 f8 04             	cmp    $0x4,%eax                      
  10c6fe:	77 6c                	ja     10c76c <rtems_rate_monotonic_period+0xd0><== NEVER TAKEN
  10c700:	8b 04 85 bc 3d 12 00 	mov    0x123dbc(,%eax,4),%eax         
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
  10c707:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10c70a:	e8 f5 2c 00 00       	call   10f404 <_Thread_Enable_dispatch>
        return( return_value );                                       
  10c70f:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c712:	eb b5                	jmp    10c6c9 <rtems_rate_monotonic_period+0x2d>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
  10c714:	9c                   	pushf                                 
  10c715:	fa                   	cli                                   
  10c716:	5f                   	pop    %edi                           
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
  10c717:	8b 50 38             	mov    0x38(%eax),%edx                
  10c71a:	85 d2                	test   %edx,%edx                      
  10c71c:	74 52                	je     10c770 <rtems_rate_monotonic_period+0xd4>
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
  10c71e:	83 fa 02             	cmp    $0x2,%edx                      
  10c721:	0f 84 9e 00 00 00    	je     10c7c5 <rtems_rate_monotonic_period+0x129>
                                                                      
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_EXPIRED ) {            
  10c727:	83 fa 04             	cmp    $0x4,%edx                      
  10c72a:	75 98                	jne    10c6c4 <rtems_rate_monotonic_period+0x28><== NEVER TAKEN
        /*                                                            
         *  Update statistics from the concluding period              
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
  10c72c:	83 ec 0c             	sub    $0xc,%esp                      
  10c72f:	50                   	push   %eax                           
  10c730:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10c733:	e8 74 fe ff ff       	call   10c5ac <_Rate_monotonic_Update_statistics>
                                                                      
        _ISR_Enable( level );                                         
  10c738:	57                   	push   %edi                           
  10c739:	9d                   	popf                                  
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
  10c73a:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c73d:	c7 40 38 02 00 00 00 	movl   $0x2,0x38(%eax)                
        the_period->next_length = length;                             
  10c744:	89 70 3c             	mov    %esi,0x3c(%eax)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10c747:	89 70 1c             	mov    %esi,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10c74a:	5b                   	pop    %ebx                           
  10c74b:	5e                   	pop    %esi                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
  10c74c:	83 c0 10             	add    $0x10,%eax                     
  10c74f:	50                   	push   %eax                           
  10c750:	68 c0 b2 12 00       	push   $0x12b2c0                      
  10c755:	e8 1e 3b 00 00       	call   110278 <_Watchdog_Insert>      
        _Thread_Enable_dispatch();                                    
  10c75a:	e8 a5 2c 00 00       	call   10f404 <_Thread_Enable_dispatch>
        return RTEMS_TIMEOUT;                                         
  10c75f:	83 c4 10             	add    $0x10,%esp                     
  10c762:	b8 06 00 00 00       	mov    $0x6,%eax                      
  10c767:	e9 5d ff ff ff       	jmp    10c6c9 <rtems_rate_monotonic_period+0x2d>
        _Thread_Enable_dispatch();                                    
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
        switch ( the_period->state ) {                                
  10c76c:	31 c0                	xor    %eax,%eax                      
  10c76e:	eb 97                	jmp    10c707 <rtems_rate_monotonic_period+0x6b><== NOT EXECUTED
        return( return_value );                                       
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
        _ISR_Enable( level );                                         
  10c770:	57                   	push   %edi                           
  10c771:	9d                   	popf                                  
                                                                      
        /*                                                            
         *  Baseline statistics information for the beginning of a period.
         */                                                           
        _Rate_monotonic_Initiate_statistics( the_period );            
  10c772:	83 ec 0c             	sub    $0xc,%esp                      
  10c775:	50                   	push   %eax                           
  10c776:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10c779:	e8 ba fd ff ff       	call   10c538 <_Rate_monotonic_Initiate_statistics>
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
  10c77e:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c781:	c7 40 38 02 00 00 00 	movl   $0x2,0x38(%eax)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10c788:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10c78f:	c7 40 2c f4 ca 10 00 	movl   $0x10caf4,0x2c(%eax)           
  the_watchdog->id        = id;                                       
  10c796:	89 58 30             	mov    %ebx,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10c799:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
          _Rate_monotonic_Timeout,                                    
          id,                                                         
          NULL                                                        
        );                                                            
                                                                      
        the_period->next_length = length;                             
  10c7a0:	89 70 3c             	mov    %esi,0x3c(%eax)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10c7a3:	89 70 1c             	mov    %esi,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10c7a6:	5e                   	pop    %esi                           
  10c7a7:	5f                   	pop    %edi                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
  10c7a8:	83 c0 10             	add    $0x10,%eax                     
  10c7ab:	50                   	push   %eax                           
  10c7ac:	68 c0 b2 12 00       	push   $0x12b2c0                      
  10c7b1:	e8 c2 3a 00 00       	call   110278 <_Watchdog_Insert>      
        _Thread_Enable_dispatch();                                    
  10c7b6:	e8 49 2c 00 00       	call   10f404 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10c7bb:	83 c4 10             	add    $0x10,%esp                     
  10c7be:	31 c0                	xor    %eax,%eax                      
  10c7c0:	e9 04 ff ff ff       	jmp    10c6c9 <rtems_rate_monotonic_period+0x2d>
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
        /*                                                            
         *  Update statistics from the concluding period.             
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
  10c7c5:	83 ec 0c             	sub    $0xc,%esp                      
  10c7c8:	50                   	push   %eax                           
  10c7c9:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10c7cc:	e8 db fd ff ff       	call   10c5ac <_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;         
  10c7d1:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c7d4:	c7 40 38 01 00 00 00 	movl   $0x1,0x38(%eax)                
        the_period->next_length = length;                             
  10c7db:	89 70 3c             	mov    %esi,0x3c(%eax)                
                                                                      
        _ISR_Enable( level );                                         
  10c7de:	57                   	push   %edi                           
  10c7df:	9d                   	popf                                  
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
  10c7e0:	8b 15 98 b7 12 00    	mov    0x12b798,%edx                  
  10c7e6:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10c7e9:	89 4a 20             	mov    %ecx,0x20(%edx)                
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
  10c7ec:	59                   	pop    %ecx                           
  10c7ed:	5b                   	pop    %ebx                           
  10c7ee:	68 00 40 00 00       	push   $0x4000                        
  10c7f3:	52                   	push   %edx                           
  10c7f4:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10c7f7:	e8 2c 34 00 00       	call   10fc28 <_Thread_Set_state>     
                                                                      
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
  10c7fc:	9c                   	pushf                                 
  10c7fd:	fa                   	cli                                   
  10c7fe:	59                   	pop    %ecx                           
          local_state = the_period->state;                            
  10c7ff:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c802:	8b 50 38             	mov    0x38(%eax),%edx                
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
  10c805:	c7 40 38 02 00 00 00 	movl   $0x2,0x38(%eax)                
        _ISR_Enable( level );                                         
  10c80c:	51                   	push   %ecx                           
  10c80d:	9d                   	popf                                  
                                                                      
        /*                                                            
         *  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 )   
  10c80e:	83 c4 10             	add    $0x10,%esp                     
  10c811:	83 fa 03             	cmp    $0x3,%edx                      
  10c814:	74 0c                	je     10c822 <rtems_rate_monotonic_period+0x186>
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
                                                                      
        _Thread_Enable_dispatch();                                    
  10c816:	e8 e9 2b 00 00       	call   10f404 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10c81b:	31 c0                	xor    %eax,%eax                      
  10c81d:	e9 a7 fe ff ff       	jmp    10c6c9 <rtems_rate_monotonic_period+0x2d>
        /*                                                            
         *  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 )   
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
  10c822:	57                   	push   %edi                           
  10c823:	57                   	push   %edi                           
  10c824:	68 00 40 00 00       	push   $0x4000                        
  10c829:	ff 35 98 b7 12 00    	pushl  0x12b798                       
  10c82f:	e8 6c 28 00 00       	call   10f0a0 <_Thread_Clear_state>   
  10c834:	83 c4 10             	add    $0x10,%esp                     
  10c837:	eb dd                	jmp    10c816 <rtems_rate_monotonic_period+0x17a>
                                                                      

0010c83c <rtems_rate_monotonic_report_statistics_with_plugin>: */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) {
  10c83c:	55                   	push   %ebp                           
  10c83d:	89 e5                	mov    %esp,%ebp                      
  10c83f:	57                   	push   %edi                           
  10c840:	56                   	push   %esi                           
  10c841:	53                   	push   %ebx                           
  10c842:	81 ec 8c 00 00 00    	sub    $0x8c,%esp                     
  10c848:	8b 75 08             	mov    0x8(%ebp),%esi                 
  rtems_id                               id;                          
  rtems_rate_monotonic_period_statistics the_stats;                   
  rtems_rate_monotonic_period_status     the_status;                  
  char                                   name[5];                     
                                                                      
  if ( !print )                                                       
  10c84b:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10c84e:	85 ff                	test   %edi,%edi                      
  10c850:	0f 84 be 00 00 00    	je     10c914 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8><== NEVER TAKEN
    return;                                                           
                                                                      
  (*print)( context, "Period information by period\n" );              
  10c856:	83 ec 08             	sub    $0x8,%esp                      
  10c859:	68 d0 3d 12 00       	push   $0x123dd0                      
  10c85e:	56                   	push   %esi                           
  10c85f:	ff 55 0c             	call   *0xc(%ebp)                     
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    (*print)( context, "--- CPU times are in seconds ---\n" );        
  10c862:	59                   	pop    %ecx                           
  10c863:	5b                   	pop    %ebx                           
  10c864:	68 08 3e 12 00       	push   $0x123e08                      
  10c869:	56                   	push   %esi                           
  10c86a:	ff 55 0c             	call   *0xc(%ebp)                     
    (*print)( context, "--- Wall times are in seconds ---\n" );       
  10c86d:	58                   	pop    %eax                           
  10c86e:	5a                   	pop    %edx                           
  10c86f:	68 2c 3e 12 00       	push   $0x123e2c                      
  10c874:	56                   	push   %esi                           
  10c875:	ff 55 0c             	call   *0xc(%ebp)                     
  Be sure to test the various cases.                                  
  (*print)( context,"\                                                
1234567890123456789012345678901234567890123456789012345678901234567890123456789\
\n");                                                                 
*/                                                                    
  (*print)( context, "   ID     OWNER COUNT MISSED     "              
  10c878:	5b                   	pop    %ebx                           
  10c879:	5f                   	pop    %edi                           
  10c87a:	68 50 3e 12 00       	push   $0x123e50                      
  10c87f:	56                   	push   %esi                           
  10c880:	ff 55 0c             	call   *0xc(%ebp)                     
       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                     
          "          "                                                
       #endif                                                         
          "   WALL TIME\n"                                            
  );                                                                  
  (*print)( context, "                               "                
  10c883:	5a                   	pop    %edx                           
  10c884:	59                   	pop    %ecx                           
  10c885:	68 9c 3e 12 00       	push   $0x123e9c                      
  10c88a:	56                   	push   %esi                           
  10c88b:	ff 55 0c             	call   *0xc(%ebp)                     
                                                                      
  /*                                                                  
   * Cycle through all possible ids and try to report on each one.  If it
   * is a period that is inactive, we just get an error back.  No big deal.
   */                                                                 
  for ( id=_Rate_monotonic_Information.minimum_id ;                   
  10c88e:	8b 1d 08 b1 12 00    	mov    0x12b108,%ebx                  
  10c894:	83 c4 10             	add    $0x10,%esp                     
  10c897:	3b 1d 0c b1 12 00    	cmp    0x12b10c,%ebx                  
  10c89d:	77 75                	ja     10c914 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8><== NEVER TAKEN
  10c89f:	8d 7d 88             	lea    -0x78(%ebp),%edi               
  10c8a2:	eb 09                	jmp    10c8ad <rtems_rate_monotonic_report_statistics_with_plugin+0x71>
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
  10c8a4:	43                   	inc    %ebx                           
                                                                      
  /*                                                                  
   * Cycle through all possible ids and try to report on each one.  If it
   * is a period that is inactive, we just get an error back.  No big deal.
   */                                                                 
  for ( id=_Rate_monotonic_Information.minimum_id ;                   
  10c8a5:	39 1d 0c b1 12 00    	cmp    %ebx,0x12b10c                  
  10c8ab:	72 67                	jb     10c914 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8>
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
  10c8ad:	83 ec 08             	sub    $0x8,%esp                      
  10c8b0:	57                   	push   %edi                           
  10c8b1:	53                   	push   %ebx                           
  10c8b2:	e8 ed 5f 00 00       	call   1128a4 <rtems_rate_monotonic_get_statistics>
    if ( status != RTEMS_SUCCESSFUL )                                 
  10c8b7:	83 c4 10             	add    $0x10,%esp                     
  10c8ba:	85 c0                	test   %eax,%eax                      
  10c8bc:	75 e6                	jne    10c8a4 <rtems_rate_monotonic_report_statistics_with_plugin+0x68>
    #if defined(RTEMS_DEBUG)                                          
      status = rtems_rate_monotonic_get_status( id, &the_status );    
      if ( status != RTEMS_SUCCESSFUL )                               
        continue;                                                     
    #else                                                             
      (void) rtems_rate_monotonic_get_status( id, &the_status );      
  10c8be:	83 ec 08             	sub    $0x8,%esp                      
  10c8c1:	8d 45 c0             	lea    -0x40(%ebp),%eax               
  10c8c4:	50                   	push   %eax                           
  10c8c5:	53                   	push   %ebx                           
  10c8c6:	e8 85 60 00 00       	call   112950 <rtems_rate_monotonic_get_status>
    #endif                                                            
                                                                      
    rtems_object_get_name( the_status.owner, sizeof(name), name );    
  10c8cb:	83 c4 0c             	add    $0xc,%esp                      
  10c8ce:	8d 55 e3             	lea    -0x1d(%ebp),%edx               
  10c8d1:	52                   	push   %edx                           
  10c8d2:	6a 05                	push   $0x5                           
  10c8d4:	ff 75 c0             	pushl  -0x40(%ebp)                    
  10c8d7:	e8 b4 02 00 00       	call   10cb90 <rtems_object_get_name> 
                                                                      
    /*                                                                
     *  Print part of report line that is not dependent on granularity
     */                                                               
    (*print)( context,                                                
  10c8dc:	59                   	pop    %ecx                           
  10c8dd:	58                   	pop    %eax                           
  10c8de:	ff 75 8c             	pushl  -0x74(%ebp)                    
  10c8e1:	ff 75 88             	pushl  -0x78(%ebp)                    
  10c8e4:	8d 45 e3             	lea    -0x1d(%ebp),%eax               
  10c8e7:	50                   	push   %eax                           
  10c8e8:	53                   	push   %ebx                           
  10c8e9:	68 ee 3d 12 00       	push   $0x123dee                      
  10c8ee:	56                   	push   %esi                           
  10c8ef:	ff 55 0c             	call   *0xc(%ebp)                     
    );                                                                
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
  10c8f2:	8b 45 88             	mov    -0x78(%ebp),%eax               
  10c8f5:	83 c4 20             	add    $0x20,%esp                     
  10c8f8:	85 c0                	test   %eax,%eax                      
  10c8fa:	75 20                	jne    10c91c <rtems_rate_monotonic_report_statistics_with_plugin+0xe0>
      (*print)( context, "\n" );                                      
  10c8fc:	83 ec 08             	sub    $0x8,%esp                      
  10c8ff:	68 91 1e 12 00       	push   $0x121e91                      
  10c904:	56                   	push   %esi                           
  10c905:	ff 55 0c             	call   *0xc(%ebp)                     
      continue;                                                       
  10c908:	83 c4 10             	add    $0x10,%esp                     
   * Cycle through all possible ids and try to report on each one.  If it
   * is a period that is inactive, we just get an error back.  No big deal.
   */                                                                 
  for ( id=_Rate_monotonic_Information.minimum_id ;                   
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
  10c90b:	43                   	inc    %ebx                           
                                                                      
  /*                                                                  
   * Cycle through all possible ids and try to report on each one.  If it
   * is a period that is inactive, we just get an error back.  No big deal.
   */                                                                 
  for ( id=_Rate_monotonic_Information.minimum_id ;                   
  10c90c:	39 1d 0c b1 12 00    	cmp    %ebx,0x12b10c                  
  10c912:	73 99                	jae    10c8ad <rtems_rate_monotonic_report_statistics_with_plugin+0x71><== ALWAYS TAKEN
        the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall
      );                                                              
    #endif                                                            
    }                                                                 
  }                                                                   
}                                                                     
  10c914:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c917:	5b                   	pop    %ebx                           
  10c918:	5e                   	pop    %esi                           
  10c919:	5f                   	pop    %edi                           
  10c91a:	c9                   	leave                                 
  10c91b:	c3                   	ret                                   
      struct timespec  cpu_average;                                   
      struct timespec *min_cpu = &the_stats.min_cpu_time;             
      struct timespec *max_cpu = &the_stats.max_cpu_time;             
      struct timespec *total_cpu = &the_stats.total_cpu_time;         
                                                                      
      _Timespec_Divide_by_integer( total_cpu, the_stats.count, &cpu_average );
  10c91c:	52                   	push   %edx                           
  10c91d:	8d 55 d8             	lea    -0x28(%ebp),%edx               
  10c920:	52                   	push   %edx                           
  10c921:	50                   	push   %eax                           
  10c922:	8d 45 a0             	lea    -0x60(%ebp),%eax               
  10c925:	50                   	push   %eax                           
  10c926:	e8 ad 35 00 00       	call   10fed8 <_Timespec_Divide_by_integer>
      (*print)( context,                                              
  10c92b:	b9 d3 4d 62 10       	mov    $0x10624dd3,%ecx               
  10c930:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10c933:	f7 e9                	imul   %ecx                           
  10c935:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10c93b:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10c941:	c1 f8 06             	sar    $0x6,%eax                      
  10c944:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10c947:	c1 fa 1f             	sar    $0x1f,%edx                     
  10c94a:	29 d0                	sub    %edx,%eax                      
  10c94c:	50                   	push   %eax                           
  10c94d:	ff 75 d8             	pushl  -0x28(%ebp)                    
  10c950:	8b 45 9c             	mov    -0x64(%ebp),%eax               
  10c953:	f7 e9                	imul   %ecx                           
  10c955:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10c95b:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10c961:	c1 f8 06             	sar    $0x6,%eax                      
  10c964:	8b 55 9c             	mov    -0x64(%ebp),%edx               
  10c967:	c1 fa 1f             	sar    $0x1f,%edx                     
  10c96a:	29 d0                	sub    %edx,%eax                      
  10c96c:	50                   	push   %eax                           
  10c96d:	ff 75 98             	pushl  -0x68(%ebp)                    
  10c970:	8b 45 94             	mov    -0x6c(%ebp),%eax               
  10c973:	f7 e9                	imul   %ecx                           
  10c975:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)               
  10c97b:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10c981:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10c987:	c1 f8 06             	sar    $0x6,%eax                      
  10c98a:	8b 55 94             	mov    -0x6c(%ebp),%edx               
  10c98d:	c1 fa 1f             	sar    $0x1f,%edx                     
  10c990:	29 d0                	sub    %edx,%eax                      
  10c992:	50                   	push   %eax                           
  10c993:	ff 75 90             	pushl  -0x70(%ebp)                    
  10c996:	68 e8 3e 12 00       	push   $0x123ee8                      
  10c99b:	56                   	push   %esi                           
  10c99c:	89 4d 84             	mov    %ecx,-0x7c(%ebp)               
  10c99f:	ff 55 0c             	call   *0xc(%ebp)                     
      struct timespec  wall_average;                                  
      struct timespec *min_wall = &the_stats.min_wall_time;           
      struct timespec *max_wall = &the_stats.max_wall_time;           
      struct timespec *total_wall = &the_stats.total_wall_time;       
                                                                      
      _Timespec_Divide_by_integer(total_wall, the_stats.count, &wall_average);
  10c9a2:	83 c4 2c             	add    $0x2c,%esp                     
  10c9a5:	8d 55 d8             	lea    -0x28(%ebp),%edx               
  10c9a8:	52                   	push   %edx                           
  10c9a9:	ff 75 88             	pushl  -0x78(%ebp)                    
  10c9ac:	8d 45 b8             	lea    -0x48(%ebp),%eax               
  10c9af:	50                   	push   %eax                           
  10c9b0:	e8 23 35 00 00       	call   10fed8 <_Timespec_Divide_by_integer>
      (*print)( context,                                              
  10c9b5:	8b 4d 84             	mov    -0x7c(%ebp),%ecx               
  10c9b8:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10c9bb:	f7 e9                	imul   %ecx                           
  10c9bd:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10c9c3:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10c9c9:	c1 f8 06             	sar    $0x6,%eax                      
  10c9cc:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10c9cf:	c1 fa 1f             	sar    $0x1f,%edx                     
  10c9d2:	29 d0                	sub    %edx,%eax                      
  10c9d4:	50                   	push   %eax                           
  10c9d5:	ff 75 d8             	pushl  -0x28(%ebp)                    
  10c9d8:	8b 45 b4             	mov    -0x4c(%ebp),%eax               
  10c9db:	f7 e9                	imul   %ecx                           
  10c9dd:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10c9e3:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10c9e9:	c1 f8 06             	sar    $0x6,%eax                      
  10c9ec:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  10c9ef:	c1 fa 1f             	sar    $0x1f,%edx                     
  10c9f2:	29 d0                	sub    %edx,%eax                      
  10c9f4:	50                   	push   %eax                           
  10c9f5:	ff 75 b0             	pushl  -0x50(%ebp)                    
  10c9f8:	8b 45 ac             	mov    -0x54(%ebp),%eax               
  10c9fb:	f7 e9                	imul   %ecx                           
  10c9fd:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)               
  10ca03:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10ca09:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10ca0f:	c1 f8 06             	sar    $0x6,%eax                      
  10ca12:	8b 55 ac             	mov    -0x54(%ebp),%edx               
  10ca15:	c1 fa 1f             	sar    $0x1f,%edx                     
  10ca18:	29 d0                	sub    %edx,%eax                      
  10ca1a:	50                   	push   %eax                           
  10ca1b:	ff 75 a8             	pushl  -0x58(%ebp)                    
  10ca1e:	68 08 3f 12 00       	push   $0x123f08                      
  10ca23:	56                   	push   %esi                           
  10ca24:	ff 55 0c             	call   *0xc(%ebp)                     
  10ca27:	83 c4 30             	add    $0x30,%esp                     
  10ca2a:	e9 75 fe ff ff       	jmp    10c8a4 <rtems_rate_monotonic_report_statistics_with_plugin+0x68>
                                                                      

0010ca48 <rtems_rate_monotonic_reset_all_statistics>: /* * rtems_rate_monotonic_reset_all_statistics */ void rtems_rate_monotonic_reset_all_statistics( void ) {
  10ca48:	55                   	push   %ebp                           
  10ca49:	89 e5                	mov    %esp,%ebp                      
  10ca4b:	53                   	push   %ebx                           
  10ca4c:	83 ec 04             	sub    $0x4,%esp                      
  10ca4f:	a1 f0 b1 12 00       	mov    0x12b1f0,%eax                  
  10ca54:	40                   	inc    %eax                           
  10ca55:	a3 f0 b1 12 00       	mov    %eax,0x12b1f0                  
                                                                      
    /*                                                                
     * Cycle through all possible ids and try to reset each one.  If it
     * is a period that is inactive, we just get an error back.  No big deal.
     */                                                               
    for ( id=_Rate_monotonic_Information.minimum_id ;                 
  10ca5a:	8b 1d 08 b1 12 00    	mov    0x12b108,%ebx                  
  10ca60:	3b 1d 0c b1 12 00    	cmp    0x12b10c,%ebx                  
  10ca66:	77 15                	ja     10ca7d <rtems_rate_monotonic_reset_all_statistics+0x35><== NEVER TAKEN
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
      (void) rtems_rate_monotonic_reset_statistics( id );             
  10ca68:	83 ec 0c             	sub    $0xc,%esp                      
  10ca6b:	53                   	push   %ebx                           
  10ca6c:	e8 17 00 00 00       	call   10ca88 <rtems_rate_monotonic_reset_statistics>
     * Cycle through all possible ids and try to reset each one.  If it
     * is a period that is inactive, we just get an error back.  No big deal.
     */                                                               
    for ( id=_Rate_monotonic_Information.minimum_id ;                 
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
  10ca71:	43                   	inc    %ebx                           
                                                                      
    /*                                                                
     * Cycle through all possible ids and try to reset each one.  If it
     * is a period that is inactive, we just get an error back.  No big deal.
     */                                                               
    for ( id=_Rate_monotonic_Information.minimum_id ;                 
  10ca72:	83 c4 10             	add    $0x10,%esp                     
  10ca75:	39 1d 0c b1 12 00    	cmp    %ebx,0x12b10c                  
  10ca7b:	73 eb                	jae    10ca68 <rtems_rate_monotonic_reset_all_statistics+0x20>
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
}                                                                     
  10ca7d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ca80:	c9                   	leave                                 
    }                                                                 
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
  10ca81:	e9 7e 29 00 00       	jmp    10f404 <_Thread_Enable_dispatch>
                                                                      

0010ca88 <rtems_rate_monotonic_reset_statistics>: */ rtems_status_code rtems_rate_monotonic_reset_statistics( rtems_id id ) {
  10ca88:	55                   	push   %ebp                           
  10ca89:	89 e5                	mov    %esp,%ebp                      
  10ca8b:	57                   	push   %edi                           
  10ca8c:	53                   	push   %ebx                           
  10ca8d:	83 ec 14             	sub    $0x14,%esp                     
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  10ca90:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10ca93:	50                   	push   %eax                           
  10ca94:	ff 75 08             	pushl  0x8(%ebp)                      
  10ca97:	68 00 b1 12 00       	push   $0x12b100                      
  10ca9c:	e8 db 1d 00 00       	call   10e87c <_Objects_Get>          
  10caa1:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10caa3:	83 c4 10             	add    $0x10,%esp                     
  10caa6:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10caa9:	85 c0                	test   %eax,%eax                      
  10caab:	75 3b                	jne    10cae8 <rtems_rate_monotonic_reset_statistics+0x60>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Rate_monotonic_Reset_statistics( the_period );                 
  10caad:	8d 5a 54             	lea    0x54(%edx),%ebx                
  10cab0:	b9 38 00 00 00       	mov    $0x38,%ecx                     
  10cab5:	31 c0                	xor    %eax,%eax                      
  10cab7:	89 df                	mov    %ebx,%edi                      
  10cab9:	f3 aa                	rep stos %al,%es:(%edi)               
  10cabb:	c7 42 5c ff ff ff 7f 	movl   $0x7fffffff,0x5c(%edx)         
  10cac2:	c7 42 60 ff ff ff 7f 	movl   $0x7fffffff,0x60(%edx)         
  10cac9:	c7 42 74 ff ff ff 7f 	movl   $0x7fffffff,0x74(%edx)         
  10cad0:	c7 42 78 ff ff ff 7f 	movl   $0x7fffffff,0x78(%edx)         
      _Thread_Enable_dispatch();                                      
  10cad7:	e8 28 29 00 00       	call   10f404 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10cadc:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10cade:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cae1:	5b                   	pop    %ebx                           
  10cae2:	5f                   	pop    %edi                           
  10cae3:	c9                   	leave                                 
  10cae4:	c3                   	ret                                   
  10cae5:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10cae8:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10caed:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10caf0:	5b                   	pop    %ebx                           
  10caf1:	5f                   	pop    %edi                           
  10caf2:	c9                   	leave                                 
  10caf3:	c3                   	ret                                   
                                                                      

00117294 <rtems_region_create>: uintptr_t length, uintptr_t page_size, rtems_attribute attribute_set, rtems_id *id ) {
  117294:	55                   	push   %ebp                           
  117295:	89 e5                	mov    %esp,%ebp                      
  117297:	57                   	push   %edi                           
  117298:	56                   	push   %esi                           
  117299:	53                   	push   %ebx                           
  11729a:	83 ec 1c             	sub    $0x1c,%esp                     
  11729d:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  1172a0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  1172a3:	85 ff                	test   %edi,%edi                      
  1172a5:	0f 84 c1 00 00 00    	je     11736c <rtems_region_create+0xd8>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
  1172ab:	85 f6                	test   %esi,%esi                      
  1172ad:	0f 84 e1 00 00 00    	je     117394 <rtems_region_create+0x100>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
  1172b3:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  1172b6:	85 c0                	test   %eax,%eax                      
  1172b8:	0f 84 d6 00 00 00    	je     117394 <rtems_region_create+0x100>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
  1172be:	83 ec 0c             	sub    $0xc,%esp                      
  1172c1:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1172c7:	e8 24 25 00 00       	call   1197f0 <_API_Mutex_Lock>       
 *  This function allocates a region control block from               
 *  the inactive chain of free region control blocks.                 
 */                                                                   
RTEMS_INLINE_ROUTINE Region_Control *_Region_Allocate( void )         
{                                                                     
  return (Region_Control *) _Objects_Allocate( &_Region_Information );
  1172cc:	c7 04 24 00 2a 14 00 	movl   $0x142a00,(%esp)               
  1172d3:	e8 70 3b 00 00       	call   11ae48 <_Objects_Allocate>     
  1172d8:	89 c3                	mov    %eax,%ebx                      
                                                                      
    the_region = _Region_Allocate();                                  
                                                                      
    if ( !the_region )                                                
  1172da:	83 c4 10             	add    $0x10,%esp                     
  1172dd:	85 c0                	test   %eax,%eax                      
  1172df:	0f 84 bf 00 00 00    	je     1173a4 <rtems_region_create+0x110>
      return_status = RTEMS_TOO_MANY;                                 
                                                                      
    else {                                                            
                                                                      
      the_region->maximum_segment_size = _Heap_Initialize(            
  1172e5:	ff 75 14             	pushl  0x14(%ebp)                     
  1172e8:	ff 75 10             	pushl  0x10(%ebp)                     
  1172eb:	56                   	push   %esi                           
  1172ec:	8d 40 68             	lea    0x68(%eax),%eax                
  1172ef:	50                   	push   %eax                           
  1172f0:	e8 5f 37 00 00       	call   11aa54 <_Heap_Initialize>      
  1172f5:	89 43 5c             	mov    %eax,0x5c(%ebx)                
        &the_region->Memory, starting_address, length, page_size      
      );                                                              
                                                                      
      if ( !the_region->maximum_segment_size ) {                      
  1172f8:	83 c4 10             	add    $0x10,%esp                     
  1172fb:	85 c0                	test   %eax,%eax                      
  1172fd:	74 7d                	je     11737c <rtems_region_create+0xe8>
        return_status = RTEMS_INVALID_SIZE;                           
      }                                                               
                                                                      
      else {                                                          
                                                                      
        the_region->starting_address      = starting_address;         
  1172ff:	89 73 50             	mov    %esi,0x50(%ebx)                
        the_region->length                = length;                   
  117302:	8b 45 10             	mov    0x10(%ebp),%eax                
  117305:	89 43 54             	mov    %eax,0x54(%ebx)                
        the_region->page_size             = page_size;                
  117308:	8b 55 14             	mov    0x14(%ebp),%edx                
  11730b:	89 53 58             	mov    %edx,0x58(%ebx)                
        the_region->attribute_set         = attribute_set;            
  11730e:	8b 45 18             	mov    0x18(%ebp),%eax                
  117311:	89 43 60             	mov    %eax,0x60(%ebx)                
        the_region->number_of_used_blocks = 0;                        
  117314:	c7 43 64 00 00 00 00 	movl   $0x0,0x64(%ebx)                
                                                                      
        _Thread_queue_Initialize(                                     
  11731b:	6a 06                	push   $0x6                           
  11731d:	6a 40                	push   $0x40                          
  11731f:	a8 04                	test   $0x4,%al                       
  117321:	0f 95 c0             	setne  %al                            
  117324:	0f b6 c0             	movzbl %al,%eax                       
  117327:	50                   	push   %eax                           
  117328:	8d 43 10             	lea    0x10(%ebx),%eax                
  11732b:	50                   	push   %eax                           
  11732c:	e8 9f 52 00 00       	call   11c5d0 <_Thread_queue_Initialize>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  117331:	8b 43 08             	mov    0x8(%ebx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  117334:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  117337:	8b 15 1c 2a 14 00    	mov    0x142a1c,%edx                  
  11733d:	89 1c 8a             	mov    %ebx,(%edx,%ecx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  117340:	89 7b 0c             	mov    %edi,0xc(%ebx)                 
          &_Region_Information,                                       
          &the_region->Object,                                        
          (Objects_Name) name                                         
        );                                                            
                                                                      
        *id = the_region->Object.id;                                  
  117343:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  117346:	89 02                	mov    %eax,(%edx)                    
  117348:	83 c4 10             	add    $0x10,%esp                     
        return_status = RTEMS_SUCCESSFUL;                             
  11734b:	31 c0                	xor    %eax,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  11734d:	83 ec 0c             	sub    $0xc,%esp                      
  117350:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  117356:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  117359:	e8 da 24 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  11735e:	83 c4 10             	add    $0x10,%esp                     
  117361:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
}                                                                     
  117364:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117367:	5b                   	pop    %ebx                           
  117368:	5e                   	pop    %esi                           
  117369:	5f                   	pop    %edi                           
  11736a:	c9                   	leave                                 
  11736b:	c3                   	ret                                   
{                                                                     
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  11736c:	b8 03 00 00 00       	mov    $0x3,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117371:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117374:	5b                   	pop    %ebx                           
  117375:	5e                   	pop    %esi                           
  117376:	5f                   	pop    %edi                           
  117377:	c9                   	leave                                 
  117378:	c3                   	ret                                   
  117379:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Region_Free (                              
  Region_Control *the_region                                          
)                                                                     
{                                                                     
  _Objects_Free( &_Region_Information, &the_region->Object );         
  11737c:	83 ec 08             	sub    $0x8,%esp                      
  11737f:	53                   	push   %ebx                           
  117380:	68 00 2a 14 00       	push   $0x142a00                      
  117385:	e8 32 3e 00 00       	call   11b1bc <_Objects_Free>         
  11738a:	83 c4 10             	add    $0x10,%esp                     
        &the_region->Memory, starting_address, length, page_size      
      );                                                              
                                                                      
      if ( !the_region->maximum_segment_size ) {                      
        _Region_Free( the_region );                                   
        return_status = RTEMS_INVALID_SIZE;                           
  11738d:	b8 08 00 00 00       	mov    $0x8,%eax                      
  117392:	eb b9                	jmp    11734d <rtems_region_create+0xb9>
                                                                      
  if ( !starting_address )                                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  117394:	b8 09 00 00 00       	mov    $0x9,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117399:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11739c:	5b                   	pop    %ebx                           
  11739d:	5e                   	pop    %esi                           
  11739e:	5f                   	pop    %edi                           
  11739f:	c9                   	leave                                 
  1173a0:	c3                   	ret                                   
  1173a1:	8d 76 00             	lea    0x0(%esi),%esi                 
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
                                                                      
    the_region = _Region_Allocate();                                  
                                                                      
    if ( !the_region )                                                
      return_status = RTEMS_TOO_MANY;                                 
  1173a4:	b8 05 00 00 00       	mov    $0x5,%eax                      
  1173a9:	eb a2                	jmp    11734d <rtems_region_create+0xb9>
                                                                      

001173ac <rtems_region_delete>: */ rtems_status_code rtems_region_delete( rtems_id id ) {
  1173ac:	55                   	push   %ebp                           
  1173ad:	89 e5                	mov    %esp,%ebp                      
  1173af:	53                   	push   %ebx                           
  1173b0:	83 ec 30             	sub    $0x30,%esp                     
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  1173b3:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1173b9:	e8 32 24 00 00       	call   1197f0 <_API_Mutex_Lock>       
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    _Objects_Get_no_protection( &_Region_Information, id, location ); 
  1173be:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  1173c1:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1173c4:	50                   	push   %eax                           
  1173c5:	ff 75 08             	pushl  0x8(%ebp)                      
  1173c8:	68 00 2a 14 00       	push   $0x142a00                      
  1173cd:	e8 2a 3f 00 00       	call   11b2fc <_Objects_Get_no_protection>
    switch ( location ) {                                             
  1173d2:	83 c4 10             	add    $0x10,%esp                     
  1173d5:	8b 5d f4             	mov    -0xc(%ebp),%ebx                
  1173d8:	85 db                	test   %ebx,%ebx                      
  1173da:	74 1c                	je     1173f8 <rtems_region_delete+0x4c>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  1173dc:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  1173e1:	83 ec 0c             	sub    $0xc,%esp                      
  1173e4:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1173ea:	e8 49 24 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
}                                                                     
  1173ef:	89 d8                	mov    %ebx,%eax                      
  1173f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1173f4:	c9                   	leave                                 
  1173f5:	c3                   	ret                                   
  1173f6:	66 90                	xchg   %ax,%ax                        
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
        _Region_Debug_Walk( the_region, 5 );                          
        if ( the_region->number_of_used_blocks != 0 )                 
  1173f8:	8b 48 64             	mov    0x64(%eax),%ecx                
  1173fb:	85 c9                	test   %ecx,%ecx                      
  1173fd:	74 09                	je     117408 <rtems_region_delete+0x5c>
          return_status = RTEMS_RESOURCE_IN_USE;                      
  1173ff:	bb 0c 00 00 00       	mov    $0xc,%ebx                      
  117404:	eb db                	jmp    1173e1 <rtems_region_delete+0x35>
  117406:	66 90                	xchg   %ax,%ax                        
        else {                                                        
          _Objects_Close( &_Region_Information, &the_region->Object );
  117408:	83 ec 08             	sub    $0x8,%esp                      
  11740b:	50                   	push   %eax                           
  11740c:	68 00 2a 14 00       	push   $0x142a00                      
  117411:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  117414:	e8 ab 3a 00 00       	call   11aec4 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Region_Free (                              
  Region_Control *the_region                                          
)                                                                     
{                                                                     
  _Objects_Free( &_Region_Information, &the_region->Object );         
  117419:	58                   	pop    %eax                           
  11741a:	5a                   	pop    %edx                           
  11741b:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  11741e:	50                   	push   %eax                           
  11741f:	68 00 2a 14 00       	push   $0x142a00                      
  117424:	e8 93 3d 00 00       	call   11b1bc <_Objects_Free>         
  117429:	83 c4 10             	add    $0x10,%esp                     
          _Region_Free( the_region );                                 
          return_status = RTEMS_SUCCESSFUL;                           
  11742c:	31 db                	xor    %ebx,%ebx                      
  11742e:	eb b1                	jmp    1173e1 <rtems_region_delete+0x35>
                                                                      

00117430 <rtems_region_extend>: rtems_status_code rtems_region_extend( rtems_id id, void *starting_address, uintptr_t length ) {
  117430:	55                   	push   %ebp                           
  117431:	89 e5                	mov    %esp,%ebp                      
  117433:	56                   	push   %esi                           
  117434:	53                   	push   %ebx                           
  117435:	83 ec 10             	sub    $0x10,%esp                     
  117438:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  bool                extend_ok;                                      
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
  11743b:	85 db                	test   %ebx,%ebx                      
  11743d:	74 75                	je     1174b4 <rtems_region_extend+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
  11743f:	83 ec 0c             	sub    $0xc,%esp                      
  117442:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  117448:	e8 a3 23 00 00       	call   1197f0 <_API_Mutex_Lock>       
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    _Objects_Get_no_protection( &_Region_Information, id, location ); 
  11744d:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  117450:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  117453:	50                   	push   %eax                           
  117454:	ff 75 08             	pushl  0x8(%ebp)                      
  117457:	68 00 2a 14 00       	push   $0x142a00                      
  11745c:	e8 9b 3e 00 00       	call   11b2fc <_Objects_Get_no_protection>
  117461:	89 c6                	mov    %eax,%esi                      
    switch ( location ) {                                             
  117463:	83 c4 10             	add    $0x10,%esp                     
  117466:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  117469:	85 c0                	test   %eax,%eax                      
  11746b:	74 1f                	je     11748c <rtems_region_extend+0x5c>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  11746d:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  117472:	83 ec 0c             	sub    $0xc,%esp                      
  117475:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  11747b:	e8 b8 23 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  117480:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  117483:	89 d8                	mov    %ebx,%eax                      
  117485:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  117488:	5b                   	pop    %ebx                           
  117489:	5e                   	pop    %esi                           
  11748a:	c9                   	leave                                 
  11748b:	c3                   	ret                                   
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        extend_ok = _Heap_Extend(                                     
  11748c:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11748f:	50                   	push   %eax                           
  117490:	ff 75 10             	pushl  0x10(%ebp)                     
  117493:	53                   	push   %ebx                           
  117494:	8d 46 68             	lea    0x68(%esi),%eax                
  117497:	50                   	push   %eax                           
  117498:	e8 97 2f 00 00       	call   11a434 <_Heap_Extend>          
          starting_address,                                           
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
  11749d:	83 c4 10             	add    $0x10,%esp                     
  1174a0:	84 c0                	test   %al,%al                        
  1174a2:	74 20                	je     1174c4 <rtems_region_extend+0x94>
          the_region->length                += amount_extended;       
  1174a4:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  1174a7:	01 46 54             	add    %eax,0x54(%esi)                
          the_region->maximum_segment_size  += amount_extended;       
  1174aa:	01 46 5c             	add    %eax,0x5c(%esi)                
          return_status = RTEMS_SUCCESSFUL;                           
  1174ad:	31 db                	xor    %ebx,%ebx                      
  1174af:	eb c1                	jmp    117472 <rtems_region_extend+0x42>
  1174b1:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
    return RTEMS_INVALID_ADDRESS;                                     
  1174b4:	bb 09 00 00 00       	mov    $0x9,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  1174b9:	89 d8                	mov    %ebx,%eax                      
  1174bb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1174be:	5b                   	pop    %ebx                           
  1174bf:	5e                   	pop    %esi                           
  1174c0:	c9                   	leave                                 
  1174c1:	c3                   	ret                                   
  1174c2:	66 90                	xchg   %ax,%ax                        
        if ( extend_ok ) {                                            
          the_region->length                += amount_extended;       
          the_region->maximum_segment_size  += amount_extended;       
          return_status = RTEMS_SUCCESSFUL;                           
        } else {                                                      
          return_status = RTEMS_INVALID_ADDRESS;                      
  1174c4:	bb 09 00 00 00       	mov    $0x9,%ebx                      
  1174c9:	eb a7                	jmp    117472 <rtems_region_extend+0x42>
                                                                      

001174cc <rtems_region_get_free_information>: rtems_status_code rtems_region_get_free_information( rtems_id id, Heap_Information_block *the_info ) {
  1174cc:	55                   	push   %ebp                           
  1174cd:	89 e5                	mov    %esp,%ebp                      
  1174cf:	53                   	push   %ebx                           
  1174d0:	83 ec 14             	sub    $0x14,%esp                     
  1174d3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
  1174d6:	85 db                	test   %ebx,%ebx                      
  1174d8:	74 76                	je     117550 <rtems_region_get_free_information+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  1174da:	83 ec 0c             	sub    $0xc,%esp                      
  1174dd:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1174e3:	e8 08 23 00 00       	call   1197f0 <_API_Mutex_Lock>       
  1174e8:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  1174eb:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1174ee:	50                   	push   %eax                           
  1174ef:	ff 75 08             	pushl  0x8(%ebp)                      
  1174f2:	68 00 2a 14 00       	push   $0x142a00                      
  1174f7:	e8 00 3e 00 00       	call   11b2fc <_Objects_Get_no_protection>
    switch ( location ) {                                             
  1174fc:	83 c4 10             	add    $0x10,%esp                     
  1174ff:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  117502:	85 d2                	test   %edx,%edx                      
  117504:	74 1e                	je     117524 <rtems_region_get_free_information+0x58>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  117506:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  11750b:	83 ec 0c             	sub    $0xc,%esp                      
  11750e:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  117514:	e8 1f 23 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  117519:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  11751c:	89 d8                	mov    %ebx,%eax                      
  11751e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117521:	c9                   	leave                                 
  117522:	c3                   	ret                                   
  117523:	90                   	nop                                   
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        the_info->Used.number   = 0;                                  
  117524:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
        the_info->Used.total    = 0;                                  
  11752b:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)                
        the_info->Used.largest  = 0;                                  
  117532:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
                                                                      
        _Heap_Get_free_information( &the_region->Memory, &the_info->Free );
  117539:	83 ec 08             	sub    $0x8,%esp                      
  11753c:	53                   	push   %ebx                           
  11753d:	83 c0 68             	add    $0x68,%eax                     
  117540:	50                   	push   %eax                           
  117541:	e8 ea 32 00 00       	call   11a830 <_Heap_Get_free_information>
                                                                      
        return_status = RTEMS_SUCCESSFUL;                             
        break;                                                        
  117546:	83 c4 10             	add    $0x10,%esp                     
        the_info->Used.total    = 0;                                  
        the_info->Used.largest  = 0;                                  
                                                                      
        _Heap_Get_free_information( &the_region->Memory, &the_info->Free );
                                                                      
        return_status = RTEMS_SUCCESSFUL;                             
  117549:	31 db                	xor    %ebx,%ebx                      
        break;                                                        
  11754b:	eb be                	jmp    11750b <rtems_region_get_free_information+0x3f>
  11754d:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
  117550:	bb 09 00 00 00       	mov    $0x9,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117555:	89 d8                	mov    %ebx,%eax                      
  117557:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11755a:	c9                   	leave                                 
  11755b:	c3                   	ret                                   
                                                                      

001175d4 <rtems_region_get_segment>: uintptr_t size, rtems_option option_set, rtems_interval timeout, void **segment ) {
  1175d4:	55                   	push   %ebp                           
  1175d5:	89 e5                	mov    %esp,%ebp                      
  1175d7:	57                   	push   %edi                           
  1175d8:	56                   	push   %esi                           
  1175d9:	53                   	push   %ebx                           
  1175da:	83 ec 2c             	sub    $0x2c,%esp                     
  1175dd:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  1175e0:	8b 5d 18             	mov    0x18(%ebp),%ebx                
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
  void               *the_segment;                                    
                                                                      
  if ( !segment )                                                     
  1175e3:	85 db                	test   %ebx,%ebx                      
  1175e5:	0f 84 a1 00 00 00    	je     11768c <rtems_region_get_segment+0xb8>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  *segment = NULL;                                                    
  1175eb:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
                                                                      
  if ( size == 0 )                                                    
  1175f1:	85 f6                	test   %esi,%esi                      
  1175f3:	75 0f                	jne    117604 <rtems_region_get_segment+0x30>
    return RTEMS_INVALID_SIZE;                                        
  1175f5:	b8 08 00 00 00       	mov    $0x8,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  1175fa:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1175fd:	5b                   	pop    %ebx                           
  1175fe:	5e                   	pop    %esi                           
  1175ff:	5f                   	pop    %edi                           
  117600:	c9                   	leave                                 
  117601:	c3                   	ret                                   
  117602:	66 90                	xchg   %ax,%ax                        
  *segment = NULL;                                                    
                                                                      
  if ( size == 0 )                                                    
    return RTEMS_INVALID_SIZE;                                        
                                                                      
  _RTEMS_Lock_allocator();                                            
  117604:	83 ec 0c             	sub    $0xc,%esp                      
  117607:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  11760d:	e8 de 21 00 00       	call   1197f0 <_API_Mutex_Lock>       
                                                                      
    executing  = _Thread_Executing;                                   
  117612:	a1 98 30 14 00       	mov    0x143098,%eax                  
  117617:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  11761a:	83 c4 0c             	add    $0xc,%esp                      
    the_region = _Region_Get( id, &location );                        
  11761d:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  117620:	50                   	push   %eax                           
  117621:	ff 75 08             	pushl  0x8(%ebp)                      
  117624:	68 00 2a 14 00       	push   $0x142a00                      
  117629:	e8 ce 3c 00 00       	call   11b2fc <_Objects_Get_no_protection>
  11762e:	89 c7                	mov    %eax,%edi                      
    switch ( location ) {                                             
  117630:	83 c4 10             	add    $0x10,%esp                     
  117633:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  117636:	85 c0                	test   %eax,%eax                      
  117638:	75 2a                	jne    117664 <rtems_region_get_segment+0x90>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( size > the_region->maximum_segment_size )                
  11763a:	3b 77 5c             	cmp    0x5c(%edi),%esi                
  11763d:	76 2d                	jbe    11766c <rtems_region_get_segment+0x98>
          return_status = RTEMS_INVALID_SIZE;                         
  11763f:	b8 08 00 00 00       	mov    $0x8,%eax                      
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  117644:	83 ec 0c             	sub    $0xc,%esp                      
  117647:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  11764d:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  117650:	e8 e3 21 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  117655:	83 c4 10             	add    $0x10,%esp                     
  117658:	8b 45 d0             	mov    -0x30(%ebp),%eax               
}                                                                     
  11765b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11765e:	5b                   	pop    %ebx                           
  11765f:	5e                   	pop    %esi                           
  117660:	5f                   	pop    %edi                           
  117661:	c9                   	leave                                 
  117662:	c3                   	ret                                   
  117663:	90                   	nop                                   
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  117664:	b8 04 00 00 00       	mov    $0x4,%eax                      
  117669:	eb d9                	jmp    117644 <rtems_region_get_segment+0x70>
  11766b:	90                   	nop                                   
 * @brief See _Heap_Allocate_aligned_with_boundary() with alignment and
 * boundary equals zero.                                              
 */                                                                   
RTEMS_INLINE_ROUTINE void *_Heap_Allocate( Heap_Control *heap, uintptr_t size )
{                                                                     
  return _Heap_Allocate_aligned_with_boundary( heap, size, 0, 0 );    
  11766c:	6a 00                	push   $0x0                           
  11766e:	6a 00                	push   $0x0                           
  117670:	56                   	push   %esi                           
RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment (                 
  Region_Control *the_region,                                         
  uintptr_t       size                                                
)                                                                     
{                                                                     
  return _Heap_Allocate( &the_region->Memory, size );                 
  117671:	8d 47 68             	lea    0x68(%edi),%eax                
  117674:	50                   	push   %eax                           
  117675:	e8 e6 2b 00 00       	call   11a260 <_Heap_Allocate_aligned_with_boundary>
                                                                      
          the_segment = _Region_Allocate_segment( the_region, size ); 
                                                                      
          _Region_Debug_Walk( the_region, 2 );                        
                                                                      
          if ( the_segment ) {                                        
  11767a:	83 c4 10             	add    $0x10,%esp                     
  11767d:	85 c0                	test   %eax,%eax                      
  11767f:	74 17                	je     117698 <rtems_region_get_segment+0xc4>
            the_region->number_of_used_blocks += 1;                   
  117681:	ff 47 64             	incl   0x64(%edi)                     
            *segment = the_segment;                                   
  117684:	89 03                	mov    %eax,(%ebx)                    
            return_status = RTEMS_SUCCESSFUL;                         
  117686:	31 c0                	xor    %eax,%eax                      
  117688:	eb ba                	jmp    117644 <rtems_region_get_segment+0x70>
  11768a:	66 90                	xchg   %ax,%ax                        
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
  void               *the_segment;                                    
                                                                      
  if ( !segment )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  11768c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  117691:	e9 64 ff ff ff       	jmp    1175fa <rtems_region_get_segment+0x26>
  117696:	66 90                	xchg   %ax,%ax                        
                                                                      
          if ( the_segment ) {                                        
            the_region->number_of_used_blocks += 1;                   
            *segment = the_segment;                                   
            return_status = RTEMS_SUCCESSFUL;                         
          } else if ( _Options_Is_no_wait( option_set ) ) {           
  117698:	f6 45 10 01          	testb  $0x1,0x10(%ebp)                
  11769c:	74 07                	je     1176a5 <rtems_region_get_segment+0xd1>
            return_status = RTEMS_UNSATISFIED;                        
  11769e:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  1176a3:	eb 9f                	jmp    117644 <rtems_region_get_segment+0x70>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  1176a5:	a1 f0 2a 14 00       	mov    0x142af0,%eax                  
  1176aa:	40                   	inc    %eax                           
  1176ab:	a3 f0 2a 14 00       	mov    %eax,0x142af0                  
             *  Switch from using the memory allocation mutex to using a
             *  dispatching disabled critical section.  We have to do this
             *  because this thread is going to block.                
             */                                                       
            _Thread_Disable_dispatch();                               
            _RTEMS_Unlock_allocator();                                
  1176b0:	83 ec 0c             	sub    $0xc,%esp                      
  1176b3:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1176b9:	e8 7a 21 00 00       	call   119838 <_API_Mutex_Unlock>     
                                                                      
            executing->Wait.queue           = &the_region->Wait_queue;
  1176be:	8d 47 10             	lea    0x10(%edi),%eax                
  1176c1:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  1176c4:	89 42 44             	mov    %eax,0x44(%edx)                
            executing->Wait.id              = id;                     
  1176c7:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  1176ca:	89 4a 20             	mov    %ecx,0x20(%edx)                
            executing->Wait.count           = size;                   
  1176cd:	89 72 24             	mov    %esi,0x24(%edx)                
            executing->Wait.return_argument = segment;                
  1176d0:	89 5a 28             	mov    %ebx,0x28(%edx)                
                                                                      
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;
  1176d3:	c7 47 40 01 00 00 00 	movl   $0x1,0x40(%edi)                
                                                                      
            _Thread_queue_Enter_critical_section( &the_region->Wait_queue );
                                                                      
            _Thread_queue_Enqueue( &the_region->Wait_queue, timeout );
  1176da:	83 c4 0c             	add    $0xc,%esp                      
  1176dd:	68 94 c6 11 00       	push   $0x11c694                      
  1176e2:	ff 75 14             	pushl  0x14(%ebp)                     
  1176e5:	50                   	push   %eax                           
  1176e6:	e8 7d 4c 00 00       	call   11c368 <_Thread_queue_Enqueue_with_handler>
                                                                      
            _Thread_Enable_dispatch();                                
  1176eb:	e8 d0 47 00 00       	call   11bec0 <_Thread_Enable_dispatch>
                                                                      
            return (rtems_status_code) executing->Wait.return_code;   
  1176f0:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  1176f3:	8b 42 34             	mov    0x34(%edx),%eax                
  1176f6:	83 c4 10             	add    $0x10,%esp                     
  1176f9:	e9 fc fe ff ff       	jmp    1175fa <rtems_region_get_segment+0x26>
                                                                      

001177b4 <rtems_region_resize_segment>: rtems_id id, void *segment, uintptr_t size, uintptr_t *old_size ) {
  1177b4:	55                   	push   %ebp                           
  1177b5:	89 e5                	mov    %esp,%ebp                      
  1177b7:	56                   	push   %esi                           
  1177b8:	53                   	push   %ebx                           
  1177b9:	83 ec 20             	sub    $0x20,%esp                     
  1177bc:	8b 5d 14             	mov    0x14(%ebp),%ebx                
  uintptr_t                osize;                                     
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
  1177bf:	85 db                	test   %ebx,%ebx                      
  1177c1:	0f 84 89 00 00 00    	je     117850 <rtems_region_resize_segment+0x9c>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  1177c7:	83 ec 0c             	sub    $0xc,%esp                      
  1177ca:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1177d0:	e8 1b 20 00 00       	call   1197f0 <_API_Mutex_Lock>       
  1177d5:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  1177d8:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  1177db:	50                   	push   %eax                           
  1177dc:	ff 75 08             	pushl  0x8(%ebp)                      
  1177df:	68 00 2a 14 00       	push   $0x142a00                      
  1177e4:	e8 13 3b 00 00       	call   11b2fc <_Objects_Get_no_protection>
  1177e9:	89 c6                	mov    %eax,%esi                      
    switch ( location ) {                                             
  1177eb:	83 c4 10             	add    $0x10,%esp                     
  1177ee:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  1177f1:	85 c0                	test   %eax,%eax                      
  1177f3:	74 1f                	je     117814 <rtems_region_resize_segment+0x60>
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  1177f5:	83 ec 0c             	sub    $0xc,%esp                      
  1177f8:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1177fe:	e8 35 20 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  117803:	83 c4 10             	add    $0x10,%esp                     
  117806:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  11780b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11780e:	5b                   	pop    %ebx                           
  11780f:	5e                   	pop    %esi                           
  117810:	c9                   	leave                                 
  117811:	c3                   	ret                                   
  117812:	66 90                	xchg   %ax,%ax                        
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        _Region_Debug_Walk( the_region, 7 );                          
                                                                      
        status = _Heap_Resize_block(                                  
  117814:	83 ec 0c             	sub    $0xc,%esp                      
  117817:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11781a:	50                   	push   %eax                           
  11781b:	8d 45 ec             	lea    -0x14(%ebp),%eax               
  11781e:	50                   	push   %eax                           
  11781f:	ff 75 10             	pushl  0x10(%ebp)                     
  117822:	ff 75 0c             	pushl  0xc(%ebp)                      
  117825:	8d 46 68             	lea    0x68(%esi),%eax                
  117828:	50                   	push   %eax                           
  117829:	e8 2e 34 00 00       	call   11ac5c <_Heap_Resize_block>    
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
  11782e:	8b 55 ec             	mov    -0x14(%ebp),%edx               
  117831:	89 13                	mov    %edx,(%ebx)                    
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
  117833:	83 c4 20             	add    $0x20,%esp                     
  117836:	85 c0                	test   %eax,%eax                      
  117838:	75 22                	jne    11785c <rtems_region_resize_segment+0xa8>
          _Region_Process_queue( the_region );    /* unlocks allocator */
  11783a:	83 ec 0c             	sub    $0xc,%esp                      
  11783d:	56                   	push   %esi                           
  11783e:	e8 fd 7c 00 00       	call   11f540 <_Region_Process_queue> 
  117843:	83 c4 10             	add    $0x10,%esp                     
        else                                                          
          _RTEMS_Unlock_allocator();                                  
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
  117846:	31 c0                	xor    %eax,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117848:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11784b:	5b                   	pop    %ebx                           
  11784c:	5e                   	pop    %esi                           
  11784d:	c9                   	leave                                 
  11784e:	c3                   	ret                                   
  11784f:	90                   	nop                                   
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
  117850:	b8 09 00 00 00       	mov    $0x9,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117855:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  117858:	5b                   	pop    %ebx                           
  117859:	5e                   	pop    %esi                           
  11785a:	c9                   	leave                                 
  11785b:	c3                   	ret                                   
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
          _Region_Process_queue( the_region );    /* unlocks allocator */
        else                                                          
          _RTEMS_Unlock_allocator();                                  
  11785c:	83 ec 0c             	sub    $0xc,%esp                      
  11785f:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  117865:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  117868:	e8 cb 1f 00 00       	call   119838 <_API_Mutex_Unlock>     
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
        if (status == HEAP_RESIZE_UNSATISFIED)                        
  11786d:	83 c4 10             	add    $0x10,%esp                     
          return RTEMS_UNSATISFIED;                                   
  117870:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  117873:	48                   	dec    %eax                           
  117874:	0f 94 c0             	sete   %al                            
  117877:	0f b6 c0             	movzbl %al,%eax                       
  11787a:	8d 04 85 09 00 00 00 	lea    0x9(,%eax,4),%eax              
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117881:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  117884:	5b                   	pop    %ebx                           
  117885:	5e                   	pop    %esi                           
  117886:	c9                   	leave                                 
  117887:	c3                   	ret                                   
                                                                      

00117888 <rtems_region_return_segment>: rtems_status_code rtems_region_return_segment( rtems_id id, void *segment ) {
  117888:	55                   	push   %ebp                           
  117889:	89 e5                	mov    %esp,%ebp                      
  11788b:	53                   	push   %ebx                           
  11788c:	83 ec 20             	sub    $0x20,%esp                     
  uint32_t                 size;                                      
#endif                                                                
  int                      status;                                    
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
  11788f:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  117895:	e8 56 1f 00 00       	call   1197f0 <_API_Mutex_Lock>       
  11789a:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  11789d:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1178a0:	50                   	push   %eax                           
  1178a1:	ff 75 08             	pushl  0x8(%ebp)                      
  1178a4:	68 00 2a 14 00       	push   $0x142a00                      
  1178a9:	e8 4e 3a 00 00       	call   11b2fc <_Objects_Get_no_protection>
  1178ae:	89 c3                	mov    %eax,%ebx                      
    switch ( location ) {                                             
  1178b0:	83 c4 10             	add    $0x10,%esp                     
  1178b3:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  1178b6:	85 c0                	test   %eax,%eax                      
  1178b8:	75 1e                	jne    1178d8 <rtems_region_return_segment+0x50>
RTEMS_INLINE_ROUTINE bool _Region_Free_segment (                      
  Region_Control *the_region,                                         
  void           *the_segment                                         
)                                                                     
{                                                                     
  return _Heap_Free( &the_region->Memory, the_segment );              
  1178ba:	83 ec 08             	sub    $0x8,%esp                      
  1178bd:	ff 75 0c             	pushl  0xc(%ebp)                      
  1178c0:	8d 43 68             	lea    0x68(%ebx),%eax                
  1178c3:	50                   	push   %eax                           
  1178c4:	e8 03 2e 00 00       	call   11a6cc <_Heap_Free>            
#endif                                                                
          status = _Region_Free_segment( the_region, segment );       
                                                                      
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
  1178c9:	83 c4 10             	add    $0x10,%esp                     
  1178cc:	84 c0                	test   %al,%al                        
  1178ce:	75 28                	jne    1178f8 <rtems_region_return_segment+0x70>
            return_status = RTEMS_INVALID_ADDRESS;                    
  1178d0:	bb 09 00 00 00       	mov    $0x9,%ebx                      
  1178d5:	eb 06                	jmp    1178dd <rtems_region_return_segment+0x55>
  1178d7:	90                   	nop                                   
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  1178d8:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  1178dd:	83 ec 0c             	sub    $0xc,%esp                      
  1178e0:	ff 35 a0 2b 14 00    	pushl  0x142ba0                       
  1178e6:	e8 4d 1f 00 00       	call   119838 <_API_Mutex_Unlock>     
  return return_status;                                               
  1178eb:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  1178ee:	89 d8                	mov    %ebx,%eax                      
  1178f0:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1178f3:	c9                   	leave                                 
  1178f4:	c3                   	ret                                   
  1178f5:	8d 76 00             	lea    0x0(%esi),%esi                 
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
            return_status = RTEMS_INVALID_ADDRESS;                    
          else {                                                      
            the_region->number_of_used_blocks -= 1;                   
  1178f8:	ff 4b 64             	decl   0x64(%ebx)                     
                                                                      
            _Region_Process_queue(the_region); /* unlocks allocator */
  1178fb:	83 ec 0c             	sub    $0xc,%esp                      
  1178fe:	53                   	push   %ebx                           
  1178ff:	e8 3c 7c 00 00       	call   11f540 <_Region_Process_queue> 
                                                                      
            return RTEMS_SUCCESSFUL;                                  
  117904:	83 c4 10             	add    $0x10,%esp                     
  117907:	31 db                	xor    %ebx,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  117909:	89 d8                	mov    %ebx,%eax                      
  11790b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11790e:	c9                   	leave                                 
  11790f:	c3                   	ret                                   
                                                                      

0010b47c <rtems_semaphore_create>: uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) {
  10b47c:	55                   	push   %ebp                           
  10b47d:	89 e5                	mov    %esp,%ebp                      
  10b47f:	57                   	push   %edi                           
  10b480:	56                   	push   %esi                           
  10b481:	53                   	push   %ebx                           
  10b482:	83 ec 3c             	sub    $0x3c,%esp                     
  10b485:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10b488:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10b48b:	8b 7d 18             	mov    0x18(%ebp),%edi                
  register Semaphore_Control *the_semaphore;                          
  CORE_mutex_Attributes       the_mutex_attr;                         
  CORE_semaphore_Attributes   the_semaphore_attr;                     
  CORE_mutex_Status           mutex_status;                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10b48e:	85 f6                	test   %esi,%esi                      
  10b490:	74 4a                	je     10b4dc <rtems_semaphore_create+0x60>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10b492:	85 ff                	test   %edi,%edi                      
  10b494:	0f 84 f6 00 00 00    	je     10b590 <rtems_semaphore_create+0x114>
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  } else                                                              
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
  10b49a:	89 da                	mov    %ebx,%edx                      
  10b49c:	81 e2 c0 00 00 00    	and    $0xc0,%edx                     
  10b4a2:	74 48                	je     10b4ec <rtems_semaphore_create+0x70>
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore(            
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE);
  10b4a4:	89 d8                	mov    %ebx,%eax                      
  10b4a6:	83 e0 30             	and    $0x30,%eax                     
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
  10b4a9:	83 f8 10             	cmp    $0x10,%eax                     
  10b4ac:	74 0e                	je     10b4bc <rtems_semaphore_create+0x40>
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
  10b4ae:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b4b3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b4b6:	5b                   	pop    %ebx                           
  10b4b7:	5e                   	pop    %esi                           
  10b4b8:	5f                   	pop    %edi                           
  10b4b9:	c9                   	leave                                 
  10b4ba:	c3                   	ret                                   
  10b4bb:	90                   	nop                                   
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
  10b4bc:	f6 c3 04             	test   $0x4,%bl                       
  10b4bf:	74 ed                	je     10b4ae <rtems_semaphore_create+0x32>
            _Attributes_Is_priority( attribute_set ) ) )              
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
  10b4c1:	81 fa c0 00 00 00    	cmp    $0xc0,%edx                     
  10b4c7:	74 e5                	je     10b4ae <rtems_semaphore_create+0x32>
  10b4c9:	b9 10 00 00 00       	mov    $0x10,%ecx                     
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) )
  10b4ce:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)                 
  10b4d2:	76 1f                	jbe    10b4f3 <rtems_semaphore_create+0x77>
    return RTEMS_INVALID_NUMBER;                                      
  10b4d4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
  10b4d9:	eb d8                	jmp    10b4b3 <rtems_semaphore_create+0x37>
  10b4db:	90                   	nop                                   
  CORE_mutex_Attributes       the_mutex_attr;                         
  CORE_semaphore_Attributes   the_semaphore_attr;                     
  CORE_mutex_Status           mutex_status;                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10b4dc:	b8 03 00 00 00       	mov    $0x3,%eax                      
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b4e1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b4e4:	5b                   	pop    %ebx                           
  10b4e5:	5e                   	pop    %esi                           
  10b4e6:	5f                   	pop    %edi                           
  10b4e7:	c9                   	leave                                 
  10b4e8:	c3                   	ret                                   
  10b4e9:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) )
  10b4ec:	89 d9                	mov    %ebx,%ecx                      
  10b4ee:	83 e1 30             	and    $0x30,%ecx                     
  10b4f1:	75 db                	jne    10b4ce <rtems_semaphore_create+0x52>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b4f3:	a1 50 7e 12 00       	mov    0x127e50,%eax                  
  10b4f8:	40                   	inc    %eax                           
  10b4f9:	a3 50 7e 12 00       	mov    %eax,0x127e50                  
 *  This function allocates a semaphore control block from            
 *  the inactive chain of free semaphore control blocks.              
 */                                                                   
RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Allocate( void )   
{                                                                     
  return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information );
  10b4fe:	83 ec 0c             	sub    $0xc,%esp                      
  10b501:	68 a0 7d 12 00       	push   $0x127da0                      
  10b506:	89 4d c4             	mov    %ecx,-0x3c(%ebp)               
  10b509:	e8 be 14 00 00       	call   10c9cc <_Objects_Allocate>     
  10b50e:	89 c2                	mov    %eax,%edx                      
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
  10b510:	83 c4 10             	add    $0x10,%esp                     
  10b513:	85 c0                	test   %eax,%eax                      
  10b515:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10b518:	0f 84 ba 00 00 00    	je     10b5d8 <rtems_semaphore_create+0x15c>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_semaphore->attribute_set = attribute_set;                       
  10b51e:	89 58 10             	mov    %ebx,0x10(%eax)                
                                                                      
  /*                                                                  
   *  Initialize it as a counting semaphore.                          
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
  10b521:	85 c9                	test   %ecx,%ecx                      
  10b523:	74 77                	je     10b59c <rtems_semaphore_create+0x120>
    /*                                                                
     *  It is either simple binary semaphore or a more powerful mutex 
     *  style binary semaphore.  This is the mutex style.             
     */                                                               
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;    
  10b525:	31 c0                	xor    %eax,%eax                      
  10b527:	f6 c3 04             	test   $0x4,%bl                       
  10b52a:	0f 95 c0             	setne  %al                            
  10b52d:	89 45 d8             	mov    %eax,-0x28(%ebp)               
    else                                                              
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_FIFO;        
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
  10b530:	83 f9 10             	cmp    $0x10,%ecx                     
  10b533:	0f 84 ae 00 00 00    	je     10b5e7 <rtems_semaphore_create+0x16b>
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
          the_mutex_attr.only_owner_release = true;                   
        }                                                             
      }                                                               
    } else /* must be simple binary semaphore */ {                    
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS;
  10b539:	c7 45 d0 02 00 00 00 	movl   $0x2,-0x30(%ebp)               
      the_mutex_attr.only_owner_release = false;                      
  10b540:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)               
    }                                                                 
                                                                      
    mutex_status = _CORE_mutex_Initialize(                            
  10b544:	50                   	push   %eax                           
  10b545:	31 c0                	xor    %eax,%eax                      
  10b547:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)                 
  10b54b:	0f 94 c0             	sete   %al                            
  10b54e:	50                   	push   %eax                           
  10b54f:	8d 45 d0             	lea    -0x30(%ebp),%eax               
  10b552:	50                   	push   %eax                           
  10b553:	8d 42 14             	lea    0x14(%edx),%eax                
  10b556:	50                   	push   %eax                           
  10b557:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10b55a:	e8 65 0c 00 00       	call   10c1c4 <_CORE_mutex_Initialize>
      &the_semaphore->Core_control.mutex,                             
      &the_mutex_attr,                                                
      (count == 1) ? CORE_MUTEX_UNLOCKED : CORE_MUTEX_LOCKED          
    );                                                                
                                                                      
    if ( mutex_status == CORE_MUTEX_STATUS_CEILING_VIOLATED ) {       
  10b55f:	83 c4 10             	add    $0x10,%esp                     
  10b562:	83 f8 06             	cmp    $0x6,%eax                      
  10b565:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10b568:	0f 84 a9 00 00 00    	je     10b617 <rtems_semaphore_create+0x19b>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10b56e:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b571:	0f b7 d8             	movzwl %ax,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b574:	8b 0d bc 7d 12 00    	mov    0x127dbc,%ecx                  
  10b57a:	89 14 99             	mov    %edx,(%ecx,%ebx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10b57d:	89 72 0c             	mov    %esi,0xc(%edx)                 
    &_Semaphore_Information,                                          
    &the_semaphore->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_semaphore->Object.id;                                     
  10b580:	89 07                	mov    %eax,(%edi)                    
      the_semaphore->Object.id,                                       
      name,                                                           
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  10b582:	e8 81 24 00 00       	call   10da08 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10b587:	31 c0                	xor    %eax,%eax                      
  10b589:	e9 25 ff ff ff       	jmp    10b4b3 <rtems_semaphore_create+0x37>
  10b58e:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10b590:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10b595:	e9 19 ff ff ff       	jmp    10b4b3 <rtems_semaphore_create+0x37>
  10b59a:	66 90                	xchg   %ax,%ax                        
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
    the_semaphore_attr.maximum_count = 0xFFFFFFFF;                    
  10b59c:	c7 45 e0 ff ff ff ff 	movl   $0xffffffff,-0x20(%ebp)        
                                                                      
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_semaphore_attr.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
  10b5a3:	31 c0                	xor    %eax,%eax                      
  10b5a5:	f6 c3 04             	test   $0x4,%bl                       
  10b5a8:	0f 95 c0             	setne  %al                            
  10b5ab:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
      the_semaphore_attr.discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO;
                                                                      
    /*                                                                
     *  The following are just to make Purify happy.                  
     */                                                               
    the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  10b5ae:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)               
    the_mutex_attr.priority_ceiling = PRIORITY_MINIMUM;               
  10b5b5:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)               
                                                                      
    _CORE_semaphore_Initialize(                                       
  10b5bc:	51                   	push   %ecx                           
  10b5bd:	ff 75 0c             	pushl  0xc(%ebp)                      
  10b5c0:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10b5c3:	50                   	push   %eax                           
  10b5c4:	8d 42 14             	lea    0x14(%edx),%eax                
  10b5c7:	50                   	push   %eax                           
  10b5c8:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10b5cb:	e8 84 0e 00 00       	call   10c454 <_CORE_semaphore_Initialize>
  10b5d0:	83 c4 10             	add    $0x10,%esp                     
  10b5d3:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10b5d6:	eb 96                	jmp    10b56e <rtems_semaphore_create+0xf2>
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
  10b5d8:	e8 2b 24 00 00       	call   10da08 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10b5dd:	b8 05 00 00 00       	mov    $0x5,%eax                      
  10b5e2:	e9 cc fe ff ff       	jmp    10b4b3 <rtems_semaphore_create+0x37>
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;    
    else                                                              
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_FIFO;        
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
      the_mutex_attr.priority_ceiling      = priority_ceiling;        
  10b5e7:	8b 45 14             	mov    0x14(%ebp),%eax                
  10b5ea:	89 45 dc             	mov    %eax,-0x24(%ebp)               
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  10b5ed:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)               
      the_mutex_attr.only_owner_release    = false;                   
  10b5f4:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)               
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
  10b5f8:	83 7d d8 01          	cmpl   $0x1,-0x28(%ebp)               
  10b5fc:	0f 85 42 ff ff ff    	jne    10b544 <rtems_semaphore_create+0xc8>
        if ( _Attributes_Is_inherit_priority( attribute_set ) ) {     
  10b602:	f6 c3 40             	test   $0x40,%bl                      
  10b605:	74 30                	je     10b637 <rtems_semaphore_create+0x1bb>
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
  10b607:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)               
          the_mutex_attr.only_owner_release = true;                   
  10b60e:	c6 45 d4 01          	movb   $0x1,-0x2c(%ebp)               
  10b612:	e9 2d ff ff ff       	jmp    10b544 <rtems_semaphore_create+0xc8>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
  10b617:	83 ec 08             	sub    $0x8,%esp                      
  10b61a:	52                   	push   %edx                           
  10b61b:	68 a0 7d 12 00       	push   $0x127da0                      
  10b620:	e8 1b 17 00 00       	call   10cd40 <_Objects_Free>         
      (count == 1) ? CORE_MUTEX_UNLOCKED : CORE_MUTEX_LOCKED          
    );                                                                
                                                                      
    if ( mutex_status == CORE_MUTEX_STATUS_CEILING_VIOLATED ) {       
      _Semaphore_Free( the_semaphore );                               
      _Thread_Enable_dispatch();                                      
  10b625:	e8 de 23 00 00       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_PRIORITY;                                  
  10b62a:	83 c4 10             	add    $0x10,%esp                     
  10b62d:	b8 13 00 00 00       	mov    $0x13,%eax                     
  10b632:	e9 7c fe ff ff       	jmp    10b4b3 <rtems_semaphore_create+0x37>
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
        if ( _Attributes_Is_inherit_priority( attribute_set ) ) {     
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
          the_mutex_attr.only_owner_release = true;                   
        } else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) {
  10b637:	81 e3 80 00 00 00    	and    $0x80,%ebx                     
  10b63d:	0f 84 01 ff ff ff    	je     10b544 <rtems_semaphore_create+0xc8><== NEVER TAKEN
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
  10b643:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)               
          the_mutex_attr.only_owner_release = true;                   
  10b64a:	c6 45 d4 01          	movb   $0x1,-0x2c(%ebp)               
  10b64e:	e9 f1 fe ff ff       	jmp    10b544 <rtems_semaphore_create+0xc8>
                                                                      

0010b654 <rtems_semaphore_delete>: #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) {
  10b654:	55                   	push   %ebp                           
  10b655:	89 e5                	mov    %esp,%ebp                      
  10b657:	53                   	push   %ebx                           
  10b658:	83 ec 18             	sub    $0x18,%esp                     
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  10b65b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get( &_Semaphore_Information, id, location );            
  10b65e:	50                   	push   %eax                           
  10b65f:	ff 75 08             	pushl  0x8(%ebp)                      
  10b662:	68 a0 7d 12 00       	push   $0x127da0                      
  10b667:	e8 14 18 00 00       	call   10ce80 <_Objects_Get>          
  10b66c:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10b66e:	83 c4 10             	add    $0x10,%esp                     
  10b671:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10b674:	85 c9                	test   %ecx,%ecx                      
  10b676:	74 0c                	je     10b684 <rtems_semaphore_delete+0x30>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b678:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b67d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b680:	c9                   	leave                                 
  10b681:	c3                   	ret                                   
  10b682:	66 90                	xchg   %ax,%ax                        
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore(          
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE);
  10b684:	8b 40 10             	mov    0x10(%eax),%eax                
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
  10b687:	83 e0 30             	and    $0x30,%eax                     
  10b68a:	74 58                	je     10b6e4 <rtems_semaphore_delete+0x90>
        if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) &&
  10b68c:	8b 53 64             	mov    0x64(%ebx),%edx                
  10b68f:	85 d2                	test   %edx,%edx                      
  10b691:	75 15                	jne    10b6a8 <rtems_semaphore_delete+0x54>
  10b693:	83 f8 20             	cmp    $0x20,%eax                     
  10b696:	74 10                	je     10b6a8 <rtems_semaphore_delete+0x54>
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
  10b698:	e8 6b 23 00 00       	call   10da08 <_Thread_Enable_dispatch>
          return RTEMS_RESOURCE_IN_USE;                               
  10b69d:	b8 0c 00 00 00       	mov    $0xc,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b6a2:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6a5:	c9                   	leave                                 
  10b6a6:	c3                   	ret                                   
  10b6a7:	90                   	nop                                   
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
          return RTEMS_RESOURCE_IN_USE;                               
        }                                                             
        _CORE_mutex_Flush(                                            
  10b6a8:	50                   	push   %eax                           
  10b6a9:	6a 04                	push   $0x4                           
  10b6ab:	6a 00                	push   $0x0                           
  10b6ad:	8d 43 14             	lea    0x14(%ebx),%eax                
  10b6b0:	50                   	push   %eax                           
  10b6b1:	e8 02 0b 00 00       	call   10c1b8 <_CORE_mutex_Flush>     
  10b6b6:	83 c4 10             	add    $0x10,%esp                     
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_SEMAPHORE_WAS_DELETED                                  
        );                                                            
     }                                                                
                                                                      
      _Objects_Close( &_Semaphore_Information, &the_semaphore->Object );
  10b6b9:	83 ec 08             	sub    $0x8,%esp                      
  10b6bc:	53                   	push   %ebx                           
  10b6bd:	68 a0 7d 12 00       	push   $0x127da0                      
  10b6c2:	e8 81 13 00 00       	call   10ca48 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
  10b6c7:	58                   	pop    %eax                           
  10b6c8:	5a                   	pop    %edx                           
  10b6c9:	53                   	push   %ebx                           
  10b6ca:	68 a0 7d 12 00       	push   $0x127da0                      
  10b6cf:	e8 6c 16 00 00       	call   10cd40 <_Objects_Free>         
          0,                         /* Not used */                   
          0                          /* Not used */                   
        );                                                            
      }                                                               
#endif                                                                
      _Thread_Enable_dispatch();                                      
  10b6d4:	e8 2f 23 00 00       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10b6d9:	83 c4 10             	add    $0x10,%esp                     
  10b6dc:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b6de:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6e1:	c9                   	leave                                 
  10b6e2:	c3                   	ret                                   
  10b6e3:	90                   	nop                                   
          &the_semaphore->Core_control.mutex,                         
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_MUTEX_WAS_DELETED                                      
        );                                                            
      } else {                                                        
        _CORE_semaphore_Flush(                                        
  10b6e4:	51                   	push   %ecx                           
  10b6e5:	6a 02                	push   $0x2                           
  10b6e7:	6a 00                	push   $0x0                           
  10b6e9:	8d 43 14             	lea    0x14(%ebx),%eax                
  10b6ec:	50                   	push   %eax                           
  10b6ed:	e8 56 0d 00 00       	call   10c448 <_CORE_semaphore_Flush> 
  10b6f2:	83 c4 10             	add    $0x10,%esp                     
  10b6f5:	eb c2                	jmp    10b6b9 <rtems_semaphore_delete+0x65>
                                                                      

0010b6f8 <rtems_semaphore_obtain>: rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) {
  10b6f8:	55                   	push   %ebp                           
  10b6f9:	89 e5                	mov    %esp,%ebp                      
  10b6fb:	57                   	push   %edi                           
  10b6fc:	56                   	push   %esi                           
  10b6fd:	53                   	push   %ebx                           
  10b6fe:	83 ec 1c             	sub    $0x1c,%esp                     
  10b701:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b704:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10b707:	8b 7d 10             	mov    0x10(%ebp),%edi                
  register Semaphore_Control     *the_semaphore;                      
  Objects_Locations               location;                           
  ISR_Level                       level;                              
                                                                      
  the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level );
  10b70a:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  Objects_Locations *location,                                        
  ISR_Level         *level                                            
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get_isr_disable( &_Semaphore_Information, id, location, level );
  10b70d:	50                   	push   %eax                           
  10b70e:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10b711:	50                   	push   %eax                           
  10b712:	53                   	push   %ebx                           
  10b713:	68 a0 7d 12 00       	push   $0x127da0                      
  10b718:	e8 0b 17 00 00       	call   10ce28 <_Objects_Get_isr_disable>
  switch ( location ) {                                               
  10b71d:	83 c4 10             	add    $0x10,%esp                     
  10b720:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10b723:	85 c9                	test   %ecx,%ecx                      
  10b725:	74 0d                	je     10b734 <rtems_semaphore_obtain+0x3c>
    case OBJECTS_ERROR:                                               
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b727:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b72c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b72f:	5b                   	pop    %ebx                           
  10b730:	5e                   	pop    %esi                           
  10b731:	5f                   	pop    %edi                           
  10b732:	c9                   	leave                                 
  10b733:	c3                   	ret                                   
                                                                      
  the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level );
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
  10b734:	f6 40 10 30          	testb  $0x30,0x10(%eax)               
  10b738:	74 36                	je     10b770 <rtems_semaphore_obtain+0x78>
        _CORE_mutex_Seize(                                            
  10b73a:	83 ec 0c             	sub    $0xc,%esp                      
  10b73d:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b740:	57                   	push   %edi                           
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (                       
  rtems_option option_set                                             
)                                                                     
{                                                                     
   return (option_set & RTEMS_NO_WAIT) ? true : false;                
  10b741:	83 e6 01             	and    $0x1,%esi                      
  10b744:	83 f6 01             	xor    $0x1,%esi                      
  10b747:	56                   	push   %esi                           
  10b748:	53                   	push   %ebx                           
  10b749:	83 c0 14             	add    $0x14,%eax                     
  10b74c:	50                   	push   %eax                           
  10b74d:	e8 6a 0b 00 00       	call   10c2bc <_CORE_mutex_Seize>     
          id,                                                         
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
  10b752:	83 c4 14             	add    $0x14,%esp                     
                  _Thread_Executing->Wait.return_code );              
  10b755:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
          id,                                                         
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
  10b75a:	ff 70 34             	pushl  0x34(%eax)                     
  10b75d:	e8 12 01 00 00       	call   10b874 <_Semaphore_Translate_core_mutex_return_code>
  10b762:	83 c4 10             	add    $0x10,%esp                     
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b765:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b768:	5b                   	pop    %ebx                           
  10b769:	5e                   	pop    %esi                           
  10b76a:	5f                   	pop    %edi                           
  10b76b:	c9                   	leave                                 
  10b76c:	c3                   	ret                                   
  10b76d:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  Thread_Control *executing;                                          
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  10b770:	8b 15 f8 83 12 00    	mov    0x1283f8,%edx                  
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  10b776:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  if ( the_semaphore->count != 0 ) {                                  
  10b77d:	8b 48 5c             	mov    0x5c(%eax),%ecx                
  10b780:	85 c9                	test   %ecx,%ecx                      
  10b782:	75 2c                	jne    10b7b0 <rtems_semaphore_obtain+0xb8>
    the_semaphore->count -= 1;                                        
    _ISR_Enable( *level_p );                                          
    return;                                                           
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
  10b784:	83 e6 01             	and    $0x1,%esi                      
  10b787:	74 33                	je     10b7bc <rtems_semaphore_obtain+0xc4>
    _ISR_Enable( *level_p );                                          
  10b789:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b78c:	9d                   	popf                                  
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
  10b78d:	c7 42 34 01 00 00 00 	movl   $0x1,0x34(%edx)                
        id,                                                           
        ((_Options_Is_no_wait( option_set )) ? false : true),         
        timeout,                                                      
        &level                                                        
      );                                                              
      return _Semaphore_Translate_core_semaphore_return_code(         
  10b794:	83 ec 0c             	sub    $0xc,%esp                      
                  _Thread_Executing->Wait.return_code );              
  10b797:	a1 f8 83 12 00       	mov    0x1283f8,%eax                  
        id,                                                           
        ((_Options_Is_no_wait( option_set )) ? false : true),         
        timeout,                                                      
        &level                                                        
      );                                                              
      return _Semaphore_Translate_core_semaphore_return_code(         
  10b79c:	ff 70 34             	pushl  0x34(%eax)                     
  10b79f:	e8 e0 00 00 00       	call   10b884 <_Semaphore_Translate_core_semaphore_return_code>
  10b7a4:	83 c4 10             	add    $0x10,%esp                     
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b7a7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7aa:	5b                   	pop    %ebx                           
  10b7ab:	5e                   	pop    %esi                           
  10b7ac:	5f                   	pop    %edi                           
  10b7ad:	c9                   	leave                                 
  10b7ae:	c3                   	ret                                   
  10b7af:	90                   	nop                                   
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  if ( the_semaphore->count != 0 ) {                                  
    the_semaphore->count -= 1;                                        
  10b7b0:	49                   	dec    %ecx                           
  10b7b1:	89 48 5c             	mov    %ecx,0x5c(%eax)                
    _ISR_Enable( *level_p );                                          
  10b7b4:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b7b7:	9d                   	popf                                  
  10b7b8:	eb da                	jmp    10b794 <rtems_semaphore_obtain+0x9c>
  10b7ba:	66 90                	xchg   %ax,%ax                        
  10b7bc:	8b 0d 50 7e 12 00    	mov    0x127e50,%ecx                  
  10b7c2:	41                   	inc    %ecx                           
  10b7c3:	89 0d 50 7e 12 00    	mov    %ecx,0x127e50                  
                                                                      
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;
  10b7c9:	c7 40 44 01 00 00 00 	movl   $0x1,0x44(%eax)                
    return;                                                           
  }                                                                   
                                                                      
  _Thread_Disable_dispatch();                                         
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue          = &the_semaphore->Wait_queue;        
  10b7d0:	83 c0 14             	add    $0x14,%eax                     
  10b7d3:	89 42 44             	mov    %eax,0x44(%edx)                
  executing->Wait.id             = id;                                
  10b7d6:	89 5a 20             	mov    %ebx,0x20(%edx)                
  _ISR_Enable( *level_p );                                            
  10b7d9:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10b7dc:	9d                   	popf                                  
                                                                      
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
  10b7dd:	52                   	push   %edx                           
  10b7de:	68 dc e1 10 00       	push   $0x10e1dc                      
  10b7e3:	57                   	push   %edi                           
  10b7e4:	50                   	push   %eax                           
  10b7e5:	e8 c6 26 00 00       	call   10deb0 <_Thread_queue_Enqueue_with_handler>
  _Thread_Enable_dispatch();                                          
  10b7ea:	e8 19 22 00 00       	call   10da08 <_Thread_Enable_dispatch>
  10b7ef:	83 c4 10             	add    $0x10,%esp                     
  10b7f2:	eb a0                	jmp    10b794 <rtems_semaphore_obtain+0x9c>
                                                                      

0010b7f4 <rtems_semaphore_release>: #endif rtems_status_code rtems_semaphore_release( rtems_id id ) {
  10b7f4:	55                   	push   %ebp                           
  10b7f5:	89 e5                	mov    %esp,%ebp                      
  10b7f7:	53                   	push   %ebx                           
  10b7f8:	83 ec 18             	sub    $0x18,%esp                     
  10b7fb:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
  CORE_mutex_Status           mutex_status;                           
  CORE_semaphore_Status       semaphore_status;                       
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  10b7fe:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get( &_Semaphore_Information, id, location );            
  10b801:	50                   	push   %eax                           
  10b802:	53                   	push   %ebx                           
  10b803:	68 a0 7d 12 00       	push   $0x127da0                      
  10b808:	e8 73 16 00 00       	call   10ce80 <_Objects_Get>          
  switch ( location ) {                                               
  10b80d:	83 c4 10             	add    $0x10,%esp                     
  10b810:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b813:	85 d2                	test   %edx,%edx                      
  10b815:	74 0d                	je     10b824 <rtems_semaphore_release+0x30>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b817:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b81c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b81f:	c9                   	leave                                 
  10b820:	c3                   	ret                                   
  10b821:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
  10b824:	f6 40 10 30          	testb  $0x30,0x10(%eax)               
  10b828:	75 26                	jne    10b850 <rtems_semaphore_release+0x5c>
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
        return _Semaphore_Translate_core_mutex_return_code( mutex_status );
      } else {                                                        
        semaphore_status = _CORE_semaphore_Surrender(                 
  10b82a:	52                   	push   %edx                           
  10b82b:	6a 00                	push   $0x0                           
  10b82d:	53                   	push   %ebx                           
  10b82e:	83 c0 14             	add    $0x14,%eax                     
  10b831:	50                   	push   %eax                           
  10b832:	e8 5d 0c 00 00       	call   10c494 <_CORE_semaphore_Surrender>
  10b837:	89 c3                	mov    %eax,%ebx                      
          &the_semaphore->Core_control.semaphore,                     
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
  10b839:	e8 ca 21 00 00       	call   10da08 <_Thread_Enable_dispatch>
        return                                                        
  10b83e:	89 1c 24             	mov    %ebx,(%esp)                    
  10b841:	e8 3e 00 00 00       	call   10b884 <_Semaphore_Translate_core_semaphore_return_code>
  10b846:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b849:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b84c:	c9                   	leave                                 
  10b84d:	c3                   	ret                                   
  10b84e:	66 90                	xchg   %ax,%ax                        
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
        mutex_status = _CORE_mutex_Surrender(                         
  10b850:	51                   	push   %ecx                           
  10b851:	6a 00                	push   $0x0                           
  10b853:	53                   	push   %ebx                           
  10b854:	83 c0 14             	add    $0x14,%eax                     
  10b857:	50                   	push   %eax                           
  10b858:	e8 ff 0a 00 00       	call   10c35c <_CORE_mutex_Surrender> 
  10b85d:	89 c3                	mov    %eax,%ebx                      
          &the_semaphore->Core_control.mutex,                         
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
  10b85f:	e8 a4 21 00 00       	call   10da08 <_Thread_Enable_dispatch>
        return _Semaphore_Translate_core_mutex_return_code( mutex_status );
  10b864:	89 1c 24             	mov    %ebx,(%esp)                    
  10b867:	e8 08 00 00 00       	call   10b874 <_Semaphore_Translate_core_mutex_return_code>
  10b86c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b86f:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b872:	c9                   	leave                                 
  10b873:	c3                   	ret                                   
                                                                      

00117da8 <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
  117da8:	55                   	push   %ebp                           
  117da9:	89 e5                	mov    %esp,%ebp                      
  117dab:	53                   	push   %ebx                           
  117dac:	83 ec 14             	sub    $0x14,%esp                     
  117daf:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
  117db2:	85 db                	test   %ebx,%ebx                      
  117db4:	75 0a                	jne    117dc0 <rtems_signal_send+0x18>
    return RTEMS_INVALID_NUMBER;                                      
  117db6:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117dbb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117dbe:	c9                   	leave                                 
  117dbf:	c3                   	ret                                   
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  117dc0:	83 ec 08             	sub    $0x8,%esp                      
  117dc3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  117dc6:	50                   	push   %eax                           
  117dc7:	ff 75 08             	pushl  0x8(%ebp)                      
  117dca:	e8 15 41 00 00       	call   11bee4 <_Thread_Get>           
  switch ( location ) {                                               
  117dcf:	83 c4 10             	add    $0x10,%esp                     
  117dd2:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  117dd5:	85 d2                	test   %edx,%edx                      
  117dd7:	74 0b                	je     117de4 <rtems_signal_send+0x3c>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  117dd9:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  117dde:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117de1:	c9                   	leave                                 
  117de2:	c3                   	ret                                   
  117de3:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
  117de4:	8b 90 e8 00 00 00    	mov    0xe8(%eax),%edx                
      asr = &api->Signal;                                             
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
  117dea:	8b 4a 0c             	mov    0xc(%edx),%ecx                 
  117ded:	85 c9                	test   %ecx,%ecx                      
  117def:	74 3f                	je     117e30 <rtems_signal_send+0x88>
        if ( asr->is_enabled ) {                                      
  117df1:	80 7a 08 00          	cmpb   $0x0,0x8(%edx)                 
  117df5:	74 25                	je     117e1c <rtems_signal_send+0x74>
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
  117df7:	9c                   	pushf                                 
  117df8:	fa                   	cli                                   
  117df9:	59                   	pop    %ecx                           
    *signal_set |= signals;                                           
  117dfa:	09 5a 14             	or     %ebx,0x14(%edx)                
  _ISR_Enable( _level );                                              
  117dfd:	51                   	push   %ecx                           
  117dfe:	9d                   	popf                                  
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  117dff:	8b 15 94 30 14 00    	mov    0x143094,%edx                  
  117e05:	85 d2                	test   %edx,%edx                      
  117e07:	74 1b                	je     117e24 <rtems_signal_send+0x7c>
  117e09:	3b 05 98 30 14 00    	cmp    0x143098,%eax                  
  117e0f:	75 13                	jne    117e24 <rtems_signal_send+0x7c><== NEVER TAKEN
            _Thread_Dispatch_necessary = true;                        
  117e11:	c6 05 a4 30 14 00 01 	movb   $0x1,0x1430a4                  
  117e18:	eb 0a                	jmp    117e24 <rtems_signal_send+0x7c>
  117e1a:	66 90                	xchg   %ax,%ax                        
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
  117e1c:	9c                   	pushf                                 
  117e1d:	fa                   	cli                                   
  117e1e:	58                   	pop    %eax                           
    *signal_set |= signals;                                           
  117e1f:	09 5a 18             	or     %ebx,0x18(%edx)                
  _ISR_Enable( _level );                                              
  117e22:	50                   	push   %eax                           
  117e23:	9d                   	popf                                  
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
  117e24:	e8 97 40 00 00       	call   11bec0 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  117e29:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117e2b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117e2e:	c9                   	leave                                 
  117e2f:	c3                   	ret                                   
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  117e30:	e8 8b 40 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_NOT_DEFINED;                                       
  117e35:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  117e3a:	e9 7c ff ff ff       	jmp    117dbb <rtems_signal_send+0x13>
                                                                      

0010b894 <rtems_task_create>: size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, rtems_id *id ) {
  10b894:	55                   	push   %ebp                           
  10b895:	89 e5                	mov    %esp,%ebp                      
  10b897:	57                   	push   %edi                           
  10b898:	56                   	push   %esi                           
  10b899:	53                   	push   %ebx                           
  10b89a:	83 ec 1c             	sub    $0x1c,%esp                     
  10b89d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b8a0:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10b8a3:	8b 75 1c             	mov    0x1c(%ebp),%esi                
  Priority_Control         core_priority;                             
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
  10b8a6:	85 f6                	test   %esi,%esi                      
  10b8a8:	0f 84 3e 01 00 00    	je     10b9ec <rtems_task_create+0x158>
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10b8ae:	85 db                	test   %ebx,%ebx                      
  10b8b0:	0f 84 d2 00 00 00    	je     10b988 <rtems_task_create+0xf4>
                                                                      
  /*                                                                  
   *  Validate the RTEMS API priority and convert it to the core priority range.
   */                                                                 
                                                                      
  if ( !_Attributes_Is_system_task( the_attribute_set ) ) {           
  10b8b6:	f7 45 18 00 80 00 00 	testl  $0x8000,0x18(%ebp)             
  10b8bd:	75 17                	jne    10b8d6 <rtems_task_create+0x42>
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10b8bf:	85 ff                	test   %edi,%edi                      
  10b8c1:	0f 84 b1 00 00 00    	je     10b978 <rtems_task_create+0xe4>
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
  10b8c7:	0f b6 05 34 3b 12 00 	movzbl 0x123b34,%eax                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10b8ce:	39 c7                	cmp    %eax,%edi                      
  10b8d0:	0f 87 a2 00 00 00    	ja     10b978 <rtems_task_create+0xe4>
   */                                                                 
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
  10b8d6:	83 ec 0c             	sub    $0xc,%esp                      
  10b8d9:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10b8df:	e8 c4 06 00 00       	call   10bfa8 <_API_Mutex_Lock>       
 *  This function allocates a task control block from                 
 *  the inactive chain of free task control blocks.                   
 */                                                                   
RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate( void )    
{                                                                     
  return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information );
  10b8e4:	c7 04 24 e0 7d 12 00 	movl   $0x127de0,(%esp)               
  10b8eb:	e8 dc 10 00 00       	call   10c9cc <_Objects_Allocate>     
  10b8f0:	89 c2                	mov    %eax,%edx                      
   *         the event of an error.                                   
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
  10b8f2:	83 c4 10             	add    $0x10,%esp                     
  10b8f5:	85 c0                	test   %eax,%eax                      
  10b8f7:	0f 84 cf 00 00 00    	je     10b9cc <rtems_task_create+0x138>
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
                                                                      
  status = _Thread_Initialize(                                        
  10b8fd:	50                   	push   %eax                           
  10b8fe:	53                   	push   %ebx                           
 */                                                                   
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (           
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  return ( mode_set & RTEMS_INTERRUPT_MASK );                         
  10b8ff:	8b 45 14             	mov    0x14(%ebp),%eax                
  10b902:	83 e0 01             	and    $0x1,%eax                      
  10b905:	50                   	push   %eax                           
  10b906:	6a 00                	push   $0x0                           
  10b908:	31 c0                	xor    %eax,%eax                      
  10b90a:	f7 45 14 00 02 00 00 	testl  $0x200,0x14(%ebp)              
  10b911:	0f 95 c0             	setne  %al                            
  10b914:	50                   	push   %eax                           
  10b915:	31 c0                	xor    %eax,%eax                      
  10b917:	f7 45 14 00 01 00 00 	testl  $0x100,0x14(%ebp)              
  10b91e:	0f 94 c0             	sete   %al                            
  10b921:	50                   	push   %eax                           
  10b922:	57                   	push   %edi                           
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_floating_point(              
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
   return ( attribute_set & RTEMS_FLOATING_POINT ) ? true : false;    
  10b923:	8b 45 18             	mov    0x18(%ebp),%eax                
  10b926:	83 e0 01             	and    $0x1,%eax                      
  10b929:	50                   	push   %eax                           
  10b92a:	ff 75 10             	pushl  0x10(%ebp)                     
  10b92d:	6a 00                	push   $0x0                           
  10b92f:	52                   	push   %edx                           
  10b930:	68 e0 7d 12 00       	push   $0x127de0                      
  10b935:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10b938:	e8 67 21 00 00       	call   10daa4 <_Thread_Initialize>    
    NULL,        /* no budget algorithm callout */                    
    _Modes_Get_interrupt_level(initial_modes),                        
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  if ( !status ) {                                                    
  10b93d:	83 c4 30             	add    $0x30,%esp                     
  10b940:	84 c0                	test   %al,%al                        
  10b942:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b945:	74 51                	je     10b998 <rtems_task_create+0x104>
    _RTEMS_Unlock_allocator();                                        
    return RTEMS_UNSATISFIED;                                         
  }                                                                   
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
  asr = &api->Signal;                                                 
  10b947:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax                
 *    id               - thread id                                    
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code       - if unsuccessful                              
 */                                                                   
                                                                      
rtems_status_code rtems_task_create(                                  
  10b94d:	f7 45 14 00 04 00 00 	testl  $0x400,0x14(%ebp)              
  }                                                                   
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
  asr = &api->Signal;                                                 
                                                                      
  asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true;
  10b954:	0f 94 40 08          	sete   0x8(%eax)                      
                                                                      
  *id = the_thread->Object.id;                                        
  10b958:	8b 42 08             	mov    0x8(%edx),%eax                 
  10b95b:	89 06                	mov    %eax,(%esi)                    
    );                                                                
                                                                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10b95d:	83 ec 0c             	sub    $0xc,%esp                      
  10b960:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10b966:	e8 85 06 00 00       	call   10bff0 <_API_Mutex_Unlock>     
  return RTEMS_SUCCESSFUL;                                            
  10b96b:	83 c4 10             	add    $0x10,%esp                     
  10b96e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b970:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b973:	5b                   	pop    %ebx                           
  10b974:	5e                   	pop    %esi                           
  10b975:	5f                   	pop    %edi                           
  10b976:	c9                   	leave                                 
  10b977:	c3                   	ret                                   
   *  Validate the RTEMS API priority and convert it to the core priority range.
   */                                                                 
                                                                      
  if ( !_Attributes_Is_system_task( the_attribute_set ) ) {           
    if ( !_RTEMS_tasks_Priority_is_valid( initial_priority ) )        
      return RTEMS_INVALID_PRIORITY;                                  
  10b978:	b8 13 00 00 00       	mov    $0x13,%eax                     
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b97d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b980:	5b                   	pop    %ebx                           
  10b981:	5e                   	pop    %esi                           
  10b982:	5f                   	pop    %edi                           
  10b983:	c9                   	leave                                 
  10b984:	c3                   	ret                                   
  10b985:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10b988:	b8 03 00 00 00       	mov    $0x3,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b98d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b990:	5b                   	pop    %ebx                           
  10b991:	5e                   	pop    %esi                           
  10b992:	5f                   	pop    %edi                           
  10b993:	c9                   	leave                                 
  10b994:	c3                   	ret                                   
  10b995:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (                         
  Thread_Control *the_task                                            
)                                                                     
{                                                                     
  _Objects_Free(                                                      
  10b998:	83 ec 0c             	sub    $0xc,%esp                      
  10b99b:	ff 72 08             	pushl  0x8(%edx)                      
  10b99e:	e8 0d 14 00 00       	call   10cdb0 <_Objects_Get_information_id>
  10b9a3:	5a                   	pop    %edx                           
  10b9a4:	59                   	pop    %ecx                           
  10b9a5:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b9a8:	52                   	push   %edx                           
  10b9a9:	50                   	push   %eax                           
  10b9aa:	e8 91 13 00 00       	call   10cd40 <_Objects_Free>         
#if defined(RTEMS_MULTIPROCESSING)                                    
    if ( is_global )                                                  
      _Objects_MP_Free_global_object( the_global_object );            
#endif                                                                
    _RTEMS_tasks_Free( the_thread );                                  
    _RTEMS_Unlock_allocator();                                        
  10b9af:	58                   	pop    %eax                           
  10b9b0:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10b9b6:	e8 35 06 00 00       	call   10bff0 <_API_Mutex_Unlock>     
    return RTEMS_UNSATISFIED;                                         
  10b9bb:	83 c4 10             	add    $0x10,%esp                     
  10b9be:	b8 0d 00 00 00       	mov    $0xd,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b9c3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b9c6:	5b                   	pop    %ebx                           
  10b9c7:	5e                   	pop    %esi                           
  10b9c8:	5f                   	pop    %edi                           
  10b9c9:	c9                   	leave                                 
  10b9ca:	c3                   	ret                                   
  10b9cb:	90                   	nop                                   
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
  10b9cc:	83 ec 0c             	sub    $0xc,%esp                      
  10b9cf:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10b9d5:	e8 16 06 00 00       	call   10bff0 <_API_Mutex_Unlock>     
    return RTEMS_TOO_MANY;                                            
  10b9da:	83 c4 10             	add    $0x10,%esp                     
  10b9dd:	b8 05 00 00 00       	mov    $0x5,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b9e2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b9e5:	5b                   	pop    %ebx                           
  10b9e6:	5e                   	pop    %esi                           
  10b9e7:	5f                   	pop    %edi                           
  10b9e8:	c9                   	leave                                 
  10b9e9:	c3                   	ret                                   
  10b9ea:	66 90                	xchg   %ax,%ax                        
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
  10b9ec:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10b9f1:	eb 8a                	jmp    10b97d <rtems_task_create+0xe9>
                                                                      

0010b9f4 <rtems_task_delete>: */ rtems_status_code rtems_task_delete( rtems_id id ) {
  10b9f4:	55                   	push   %ebp                           
  10b9f5:	89 e5                	mov    %esp,%ebp                      
  10b9f7:	53                   	push   %ebx                           
  10b9f8:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
  10b9fb:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10ba01:	e8 a2 05 00 00       	call   10bfa8 <_API_Mutex_Lock>       
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10ba06:	5a                   	pop    %edx                           
  10ba07:	59                   	pop    %ecx                           
  10ba08:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10ba0b:	50                   	push   %eax                           
  10ba0c:	ff 75 08             	pushl  0x8(%ebp)                      
  10ba0f:	e8 18 20 00 00       	call   10da2c <_Thread_Get>           
  10ba14:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10ba16:	83 c4 10             	add    $0x10,%esp                     
  10ba19:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10ba1c:	85 c0                	test   %eax,%eax                      
  10ba1e:	75 44                	jne    10ba64 <rtems_task_delete+0x70><== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      the_information = _Objects_Get_information_id( the_thread->Object.id );
  10ba20:	83 ec 0c             	sub    $0xc,%esp                      
  10ba23:	ff 73 08             	pushl  0x8(%ebx)                      
  10ba26:	e8 85 13 00 00       	call   10cdb0 <_Objects_Get_information_id>
            0                                /* Not used */           
          );                                                          
        }                                                             
      #endif                                                          
                                                                      
      _Thread_Close( the_information, the_thread );                   
  10ba2b:	5a                   	pop    %edx                           
  10ba2c:	59                   	pop    %ecx                           
  10ba2d:	53                   	push   %ebx                           
  10ba2e:	50                   	push   %eax                           
  10ba2f:	e8 ac 1c 00 00       	call   10d6e0 <_Thread_Close>         
  10ba34:	58                   	pop    %eax                           
  10ba35:	ff 73 08             	pushl  0x8(%ebx)                      
  10ba38:	e8 73 13 00 00       	call   10cdb0 <_Objects_Get_information_id>
  10ba3d:	5a                   	pop    %edx                           
  10ba3e:	59                   	pop    %ecx                           
  10ba3f:	53                   	push   %ebx                           
  10ba40:	50                   	push   %eax                           
  10ba41:	e8 fa 12 00 00       	call   10cd40 <_Objects_Free>         
                                                                      
      _RTEMS_tasks_Free( the_thread );                                
                                                                      
      _RTEMS_Unlock_allocator();                                      
  10ba46:	58                   	pop    %eax                           
  10ba47:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10ba4d:	e8 9e 05 00 00       	call   10bff0 <_API_Mutex_Unlock>     
      _Thread_Enable_dispatch();                                      
  10ba52:	e8 b1 1f 00 00       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10ba57:	83 c4 10             	add    $0x10,%esp                     
  10ba5a:	31 c0                	xor    %eax,%eax                      
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ba5c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba5f:	c9                   	leave                                 
  10ba60:	c3                   	ret                                   
  10ba61:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10ba64:	83 ec 0c             	sub    $0xc,%esp                      
  10ba67:	ff 35 00 7f 12 00    	pushl  0x127f00                       
  10ba6d:	e8 7e 05 00 00       	call   10bff0 <_API_Mutex_Unlock>     
  return RTEMS_INVALID_ID;                                            
  10ba72:	83 c4 10             	add    $0x10,%esp                     
  10ba75:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10ba7a:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba7d:	c9                   	leave                                 
  10ba7e:	c3                   	ret                                   
                                                                      

0010d52c <rtems_task_get_note>: rtems_status_code rtems_task_get_note( rtems_id id, uint32_t notepad, uint32_t *note ) {
  10d52c:	55                   	push   %ebp                           
  10d52d:	89 e5                	mov    %esp,%ebp                      
  10d52f:	56                   	push   %esi                           
  10d530:	53                   	push   %ebx                           
  10d531:	83 ec 10             	sub    $0x10,%esp                     
  10d534:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d537:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10d53a:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
  10d53d:	80 3d a4 79 12 00 00 	cmpb   $0x0,0x1279a4                  
  10d544:	74 6e                	je     10d5b4 <rtems_task_get_note+0x88>
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
  10d546:	85 db                	test   %ebx,%ebx                      
  10d548:	74 7e                	je     10d5c8 <rtems_task_get_note+0x9c>
  /*                                                                  
   *  NOTE:  There is no check for < RTEMS_NOTEPAD_FIRST because that would
   *         be checking an unsigned number for being negative.       
   */                                                                 
                                                                      
  if ( notepad > RTEMS_NOTEPAD_LAST )                                 
  10d54a:	83 fe 0f             	cmp    $0xf,%esi                      
  10d54d:	77 3d                	ja     10d58c <rtems_task_get_note+0x60>
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d54f:	85 c0                	test   %eax,%eax                      
  10d551:	74 45                	je     10d598 <rtems_task_get_note+0x6c>
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
  10d553:	8b 15 d8 c5 12 00    	mov    0x12c5d8,%edx                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d559:	3b 42 08             	cmp    0x8(%edx),%eax                 
  10d55c:	74 40                	je     10d59e <rtems_task_get_note+0x72>
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10d55e:	83 ec 08             	sub    $0x8,%esp                      
  10d561:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10d564:	52                   	push   %edx                           
  10d565:	50                   	push   %eax                           
  10d566:	e8 09 23 00 00       	call   10f874 <_Thread_Get>           
  switch ( location ) {                                               
  10d56b:	83 c4 10             	add    $0x10,%esp                     
  10d56e:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d571:	85 d2                	test   %edx,%edx                      
  10d573:	75 4b                	jne    10d5c0 <rtems_task_get_note+0x94>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      *note = api->Notepads[ notepad ];                               
  10d575:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax                
  10d57b:	8b 44 b0 20          	mov    0x20(%eax,%esi,4),%eax         
  10d57f:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  10d581:	e8 ca 22 00 00       	call   10f850 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10d586:	31 c0                	xor    %eax,%eax                      
  10d588:	eb 07                	jmp    10d591 <rtems_task_get_note+0x65>
  10d58a:	66 90                	xchg   %ax,%ax                        
   *  NOTE:  There is no check for < RTEMS_NOTEPAD_FIRST because that would
   *         be checking an unsigned number for being negative.       
   */                                                                 
                                                                      
  if ( notepad > RTEMS_NOTEPAD_LAST )                                 
    return RTEMS_INVALID_NUMBER;                                      
  10d58c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d591:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d594:	5b                   	pop    %ebx                           
  10d595:	5e                   	pop    %esi                           
  10d596:	c9                   	leave                                 
  10d597:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d598:	8b 15 d8 c5 12 00    	mov    0x12c5d8,%edx                  
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
  10d59e:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax                
  10d5a4:	8b 44 b0 20          	mov    0x20(%eax,%esi,4),%eax         
  10d5a8:	89 03                	mov    %eax,(%ebx)                    
      return RTEMS_SUCCESSFUL;                                        
  10d5aa:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d5ac:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d5af:	5b                   	pop    %ebx                           
  10d5b0:	5e                   	pop    %esi                           
  10d5b1:	c9                   	leave                                 
  10d5b2:	c3                   	ret                                   
  10d5b3:	90                   	nop                                   
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
  10d5b4:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d5b9:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d5bc:	5b                   	pop    %ebx                           
  10d5bd:	5e                   	pop    %esi                           
  10d5be:	c9                   	leave                                 
  10d5bf:	c3                   	ret                                   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10d5c0:	b8 04 00 00 00       	mov    $0x4,%eax                      
  10d5c5:	eb ca                	jmp    10d591 <rtems_task_get_note+0x65>
  10d5c7:	90                   	nop                                   
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10d5c8:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10d5cd:	eb c2                	jmp    10d591 <rtems_task_get_note+0x65>
                                                                      

0011818c <rtems_task_is_suspended>: */ rtems_status_code rtems_task_is_suspended( rtems_id id ) {
  11818c:	55                   	push   %ebp                           
  11818d:	89 e5                	mov    %esp,%ebp                      
  11818f:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  118192:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  118195:	50                   	push   %eax                           
  118196:	ff 75 08             	pushl  0x8(%ebp)                      
  118199:	e8 46 3d 00 00       	call   11bee4 <_Thread_Get>           
  switch ( location ) {                                               
  11819e:	83 c4 10             	add    $0x10,%esp                     
  1181a1:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1181a4:	85 d2                	test   %edx,%edx                      
  1181a6:	74 08                	je     1181b0 <rtems_task_is_suspended+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1181a8:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1181ad:	c9                   	leave                                 
  1181ae:	c3                   	ret                                   
  1181af:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
  1181b0:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  1181b4:	74 0e                	je     1181c4 <rtems_task_is_suspended+0x38>
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  1181b6:	e8 05 3d 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_ALREADY_SUSPENDED;                                 
  1181bb:	b8 0f 00 00 00       	mov    $0xf,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1181c0:	c9                   	leave                                 
  1181c1:	c3                   	ret                                   
  1181c2:	66 90                	xchg   %ax,%ax                        
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
        _Thread_Enable_dispatch();                                    
  1181c4:	e8 f7 3c 00 00       	call   11bec0 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  1181c9:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1181cb:	c9                   	leave                                 
  1181cc:	c3                   	ret                                   
                                                                      

00112e64 <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
  112e64:	55                   	push   %ebp                           
  112e65:	89 e5                	mov    %esp,%ebp                      
  112e67:	57                   	push   %edi                           
  112e68:	56                   	push   %esi                           
  112e69:	53                   	push   %ebx                           
  112e6a:	83 ec 1c             	sub    $0x1c,%esp                     
  112e6d:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  ASR_Information    *asr;                                            
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
  112e70:	85 c9                	test   %ecx,%ecx                      
  112e72:	0f 84 40 01 00 00    	je     112fb8 <rtems_task_mode+0x154> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  112e78:	8b 1d f8 83 12 00    	mov    0x1283f8,%ebx                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  112e7e:	8b bb e8 00 00 00    	mov    0xe8(%ebx),%edi                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
  112e84:	80 7b 74 01          	cmpb   $0x1,0x74(%ebx)                
  112e88:	19 f6                	sbb    %esi,%esi                      
  112e8a:	81 e6 00 01 00 00    	and    $0x100,%esi                    
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
  112e90:	8b 53 7c             	mov    0x7c(%ebx),%edx                
  112e93:	85 d2                	test   %edx,%edx                      
  112e95:	0f 85 f1 00 00 00    	jne    112f8c <rtems_task_mode+0x128> 
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
  112e9b:	80 7f 08 01          	cmpb   $0x1,0x8(%edi)                 
  112e9f:	19 d2                	sbb    %edx,%edx                      
  112ea1:	81 e2 00 04 00 00    	and    $0x400,%edx                    
  old_mode |= _ISR_Get_level();                                       
  112ea7:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  112eaa:	89 4d e0             	mov    %ecx,-0x20(%ebp)               
  112ead:	e8 3a bf ff ff       	call   10edec <_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;           
  112eb2:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  112eb5:	09 d0                	or     %edx,%eax                      
  old_mode |= _ISR_Get_level();                                       
  112eb7:	09 f0                	or     %esi,%eax                      
  112eb9:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  112ebc:	89 01                	mov    %eax,(%ecx)                    
  *previous_mode_set = old_mode;                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
  112ebe:	f7 45 0c 00 01 00 00 	testl  $0x100,0xc(%ebp)               
  112ec5:	74 0b                	je     112ed2 <rtems_task_mode+0x6e>  
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
  112ec7:	f7 45 08 00 01 00 00 	testl  $0x100,0x8(%ebp)               
  112ece:	0f 94 43 74          	sete   0x74(%ebx)                     
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
  112ed2:	f7 45 0c 00 02 00 00 	testl  $0x200,0xc(%ebp)               
  112ed9:	74 1c                	je     112ef7 <rtems_task_mode+0x93>  
    if ( _Modes_Is_timeslice(mode_set) ) {                            
  112edb:	f7 45 08 00 02 00 00 	testl  $0x200,0x8(%ebp)               
  112ee2:	0f 84 b8 00 00 00    	je     112fa0 <rtems_task_mode+0x13c> 
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
  112ee8:	c7 43 7c 01 00 00 00 	movl   $0x1,0x7c(%ebx)                
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
  112eef:	a1 20 7e 12 00       	mov    0x127e20,%eax                  
  112ef4:	89 43 78             	mov    %eax,0x78(%ebx)                
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
  112ef7:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)                 
  112efb:	74 0b                	je     112f08 <rtems_task_mode+0xa4>  
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
  112efd:	f6 45 08 01          	testb  $0x1,0x8(%ebp)                 
  112f01:	0f 84 91 00 00 00    	je     112f98 <rtems_task_mode+0x134> 
  112f07:	fa                   	cli                                   
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
  112f08:	f7 45 0c 00 04 00 00 	testl  $0x400,0xc(%ebp)               
  112f0f:	74 3f                	je     112f50 <rtems_task_mode+0xec>  
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
  112f11:	f7 45 08 00 04 00 00 	testl  $0x400,0x8(%ebp)               
  112f18:	0f 94 c0             	sete   %al                            
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
  112f1b:	38 47 08             	cmp    %al,0x8(%edi)                  
  112f1e:	74 30                	je     112f50 <rtems_task_mode+0xec>  
      asr->is_enabled = is_asr_enabled;                               
  112f20:	88 47 08             	mov    %al,0x8(%edi)                  
)                                                                     
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
  112f23:	9c                   	pushf                                 
  112f24:	fa                   	cli                                   
  112f25:	58                   	pop    %eax                           
    _signals                     = information->signals_pending;      
  112f26:	8b 57 18             	mov    0x18(%edi),%edx                
    information->signals_pending = information->signals_posted;       
  112f29:	8b 4f 14             	mov    0x14(%edi),%ecx                
  112f2c:	89 4f 18             	mov    %ecx,0x18(%edi)                
    information->signals_posted  = _signals;                          
  112f2f:	89 57 14             	mov    %edx,0x14(%edi)                
  _ISR_Enable( _level );                                              
  112f32:	50                   	push   %eax                           
  112f33:	9d                   	popf                                  
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
  112f34:	8b 47 14             	mov    0x14(%edi),%eax                
  112f37:	85 c0                	test   %eax,%eax                      
  112f39:	0f 95 c0             	setne  %al                            
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
  112f3c:	83 3d e0 7f 12 00 03 	cmpl   $0x3,0x127fe0                  
  112f43:	74 16                	je     112f5b <rtems_task_mode+0xf7>  <== ALWAYS TAKEN
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  112f45:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112f47:	83 c4 1c             	add    $0x1c,%esp                     
  112f4a:	5b                   	pop    %ebx                           
  112f4b:	5e                   	pop    %esi                           
  112f4c:	5f                   	pop    %edi                           
  112f4d:	c9                   	leave                                 
  112f4e:	c3                   	ret                                   
  112f4f:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
  112f50:	31 c0                	xor    %eax,%eax                      
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
  112f52:	83 3d e0 7f 12 00 03 	cmpl   $0x3,0x127fe0                  
  112f59:	75 ea                	jne    112f45 <rtems_task_mode+0xe1>  <== NEVER TAKEN
  bool are_signals_pending                                            
)                                                                     
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
  112f5b:	8b 15 f8 83 12 00    	mov    0x1283f8,%edx                  
                                                                      
  if ( are_signals_pending ||                                         
  112f61:	84 c0                	test   %al,%al                        
  112f63:	75 0e                	jne    112f73 <rtems_task_mode+0x10f> 
  112f65:	3b 15 fc 83 12 00    	cmp    0x1283fc,%edx                  
  112f6b:	74 d8                	je     112f45 <rtems_task_mode+0xe1>  
       (!_Thread_Is_heir( executing ) && executing->is_preemptible) ) {
  112f6d:	80 7a 74 00          	cmpb   $0x0,0x74(%edx)                
  112f71:	74 d2                	je     112f45 <rtems_task_mode+0xe1>  <== NEVER TAKEN
    _Thread_Dispatch_necessary = true;                                
  112f73:	c6 05 04 84 12 00 01 	movb   $0x1,0x128404                  
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  112f7a:	e8 11 a9 ff ff       	call   10d890 <_Thread_Dispatch>      
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  112f7f:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112f81:	83 c4 1c             	add    $0x1c,%esp                     
  112f84:	5b                   	pop    %ebx                           
  112f85:	5e                   	pop    %esi                           
  112f86:	5f                   	pop    %edi                           
  112f87:	c9                   	leave                                 
  112f88:	c3                   	ret                                   
  112f89:	8d 76 00             	lea    0x0(%esi),%esi                 
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
  112f8c:	81 ce 00 02 00 00    	or     $0x200,%esi                    
  112f92:	e9 04 ff ff ff       	jmp    112e9b <rtems_task_mode+0x37>  
  112f97:	90                   	nop                                   
  112f98:	fb                   	sti                                   
  112f99:	e9 6a ff ff ff       	jmp    112f08 <rtems_task_mode+0xa4>  
  112f9e:	66 90                	xchg   %ax,%ax                        
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
    } else                                                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 
  112fa0:	c7 43 7c 00 00 00 00 	movl   $0x0,0x7c(%ebx)                
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
  112fa7:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)                 
  112fab:	0f 84 57 ff ff ff    	je     112f08 <rtems_task_mode+0xa4>  
  112fb1:	e9 47 ff ff ff       	jmp    112efd <rtems_task_mode+0x99>  
  112fb6:	66 90                	xchg   %ax,%ax                        
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
  112fb8:	b8 09 00 00 00       	mov    $0x9,%eax                      
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  112fbd:	83 c4 1c             	add    $0x1c,%esp                     
  112fc0:	5b                   	pop    %ebx                           
  112fc1:	5e                   	pop    %esi                           
  112fc2:	5f                   	pop    %edi                           
  112fc3:	c9                   	leave                                 
  112fc4:	c3                   	ret                                   
                                                                      

0010ed24 <rtems_task_resume>: */ rtems_status_code rtems_task_resume( rtems_id id ) {
  10ed24:	55                   	push   %ebp                           
  10ed25:	89 e5                	mov    %esp,%ebp                      
  10ed27:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10ed2a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10ed2d:	50                   	push   %eax                           
  10ed2e:	ff 75 08             	pushl  0x8(%ebp)                      
  10ed31:	e8 2e 20 00 00       	call   110d64 <_Thread_Get>           
  switch ( location ) {                                               
  10ed36:	83 c4 10             	add    $0x10,%esp                     
  10ed39:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10ed3c:	85 d2                	test   %edx,%edx                      
  10ed3e:	74 08                	je     10ed48 <rtems_task_resume+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10ed40:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10ed45:	c9                   	leave                                 
  10ed46:	c3                   	ret                                   
  10ed47:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _States_Is_suspended( the_thread->current_state ) ) {      
  10ed48:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  10ed4c:	75 0e                	jne    10ed5c <rtems_task_resume+0x38>
        _Thread_Resume( the_thread, true );                           
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  10ed4e:	e8 ed 1f 00 00       	call   110d40 <_Thread_Enable_dispatch>
      return RTEMS_INCORRECT_STATE;                                   
  10ed53:	b8 0e 00 00 00       	mov    $0xe,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ed58:	c9                   	leave                                 
  10ed59:	c3                   	ret                                   
  10ed5a:	66 90                	xchg   %ax,%ax                        
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _States_Is_suspended( the_thread->current_state ) ) {      
        _Thread_Resume( the_thread, true );                           
  10ed5c:	83 ec 08             	sub    $0x8,%esp                      
  10ed5f:	6a 01                	push   $0x1                           
  10ed61:	50                   	push   %eax                           
  10ed62:	e8 e5 27 00 00       	call   11154c <_Thread_Resume>        
        _Thread_Enable_dispatch();                                    
  10ed67:	e8 d4 1f 00 00       	call   110d40 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10ed6c:	83 c4 10             	add    $0x10,%esp                     
  10ed6f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ed71:	c9                   	leave                                 
  10ed72:	c3                   	ret                                   
                                                                      

0010d6a4 <rtems_task_set_note>: rtems_status_code rtems_task_set_note( rtems_id id, uint32_t notepad, uint32_t note ) {
  10d6a4:	55                   	push   %ebp                           
  10d6a5:	89 e5                	mov    %esp,%ebp                      
  10d6a7:	56                   	push   %esi                           
  10d6a8:	53                   	push   %ebx                           
  10d6a9:	83 ec 10             	sub    $0x10,%esp                     
  10d6ac:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d6af:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10d6b2:	8b 75 10             	mov    0x10(%ebp),%esi                
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
  10d6b5:	80 3d a4 79 12 00 00 	cmpb   $0x0,0x1279a4                  
  10d6bc:	74 66                	je     10d724 <rtems_task_set_note+0x80>
  /*                                                                  
   *  NOTE:  There is no check for < RTEMS_NOTEPAD_FIRST because that would
   *         be checking an unsigned number for being negative.       
   */                                                                 
                                                                      
  if ( notepad > RTEMS_NOTEPAD_LAST )                                 
  10d6be:	83 fb 0f             	cmp    $0xf,%ebx                      
  10d6c1:	77 39                	ja     10d6fc <rtems_task_set_note+0x58>
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d6c3:	85 c0                	test   %eax,%eax                      
  10d6c5:	74 41                	je     10d708 <rtems_task_set_note+0x64>
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
  10d6c7:	8b 15 d8 c5 12 00    	mov    0x12c5d8,%edx                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d6cd:	3b 42 08             	cmp    0x8(%edx),%eax                 
  10d6d0:	74 3c                	je     10d70e <rtems_task_set_note+0x6a>
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      api->Notepads[ notepad ] = note;                                
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10d6d2:	83 ec 08             	sub    $0x8,%esp                      
  10d6d5:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10d6d8:	52                   	push   %edx                           
  10d6d9:	50                   	push   %eax                           
  10d6da:	e8 95 21 00 00       	call   10f874 <_Thread_Get>           
  switch ( location ) {                                               
  10d6df:	83 c4 10             	add    $0x10,%esp                     
  10d6e2:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d6e5:	85 d2                	test   %edx,%edx                      
  10d6e7:	75 47                	jne    10d730 <rtems_task_set_note+0x8c>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      api->Notepads[ notepad ] = note;                                
  10d6e9:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax                
  10d6ef:	89 74 98 20          	mov    %esi,0x20(%eax,%ebx,4)         
      _Thread_Enable_dispatch();                                      
  10d6f3:	e8 58 21 00 00       	call   10f850 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10d6f8:	31 c0                	xor    %eax,%eax                      
  10d6fa:	eb 05                	jmp    10d701 <rtems_task_set_note+0x5d>
   *  NOTE:  There is no check for < RTEMS_NOTEPAD_FIRST because that would
   *         be checking an unsigned number for being negative.       
   */                                                                 
                                                                      
  if ( notepad > RTEMS_NOTEPAD_LAST )                                 
    return RTEMS_INVALID_NUMBER;                                      
  10d6fc:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d701:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d704:	5b                   	pop    %ebx                           
  10d705:	5e                   	pop    %esi                           
  10d706:	c9                   	leave                                 
  10d707:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10d708:	8b 15 d8 c5 12 00    	mov    0x12c5d8,%edx                  
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      api->Notepads[ notepad ] = note;                                
  10d70e:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax                
  10d714:	89 74 98 20          	mov    %esi,0x20(%eax,%ebx,4)         
      return RTEMS_SUCCESSFUL;                                        
  10d718:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d71a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d71d:	5b                   	pop    %ebx                           
  10d71e:	5e                   	pop    %esi                           
  10d71f:	c9                   	leave                                 
  10d720:	c3                   	ret                                   
  10d721:	8d 76 00             	lea    0x0(%esi),%esi                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
  10d724:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10d729:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d72c:	5b                   	pop    %ebx                           
  10d72d:	5e                   	pop    %esi                           
  10d72e:	c9                   	leave                                 
  10d72f:	c3                   	ret                                   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10d730:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10d735:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d738:	5b                   	pop    %ebx                           
  10d739:	5e                   	pop    %esi                           
  10d73a:	c9                   	leave                                 
  10d73b:	c3                   	ret                                   
                                                                      

0010f9e8 <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
  10f9e8:	55                   	push   %ebp                           
  10f9e9:	89 e5                	mov    %esp,%ebp                      
  10f9eb:	56                   	push   %esi                           
  10f9ec:	53                   	push   %ebx                           
  10f9ed:	83 ec 10             	sub    $0x10,%esp                     
  10f9f0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10f9f3:	8b 75 10             	mov    0x10(%ebp),%esi                
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
  10f9f6:	85 db                	test   %ebx,%ebx                      
  10f9f8:	74 0b                	je     10fa05 <rtems_task_set_priority+0x1d>
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
  10f9fa:	0f b6 05 f4 7a 12 00 	movzbl 0x127af4,%eax                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10fa01:	39 c3                	cmp    %eax,%ebx                      
  10fa03:	77 5f                	ja     10fa64 <rtems_task_set_priority+0x7c>
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
  10fa05:	85 f6                	test   %esi,%esi                      
  10fa07:	74 67                	je     10fa70 <rtems_task_set_priority+0x88>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10fa09:	83 ec 08             	sub    $0x8,%esp                      
  10fa0c:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10fa0f:	50                   	push   %eax                           
  10fa10:	ff 75 08             	pushl  0x8(%ebp)                      
  10fa13:	e8 8c 21 00 00       	call   111ba4 <_Thread_Get>           
  switch ( location ) {                                               
  10fa18:	83 c4 10             	add    $0x10,%esp                     
  10fa1b:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10fa1e:	85 d2                	test   %edx,%edx                      
  10fa20:	75 36                	jne    10fa58 <rtems_task_set_priority+0x70>
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
  10fa22:	8b 50 14             	mov    0x14(%eax),%edx                
  10fa25:	89 16                	mov    %edx,(%esi)                    
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
  10fa27:	85 db                	test   %ebx,%ebx                      
  10fa29:	74 1c                	je     10fa47 <rtems_task_set_priority+0x5f>
        the_thread->real_priority = new_priority;                     
  10fa2b:	89 58 18             	mov    %ebx,0x18(%eax)                
        if ( the_thread->resource_count == 0 ||                       
  10fa2e:	8b 48 1c             	mov    0x1c(%eax),%ecx                
  10fa31:	85 c9                	test   %ecx,%ecx                      
  10fa33:	74 05                	je     10fa3a <rtems_task_set_priority+0x52>
  10fa35:	3b 58 14             	cmp    0x14(%eax),%ebx                
  10fa38:	73 0d                	jae    10fa47 <rtems_task_set_priority+0x5f><== ALWAYS TAKEN
             the_thread->current_priority > new_priority )            
          _Thread_Change_priority( the_thread, new_priority, false ); 
  10fa3a:	52                   	push   %edx                           
  10fa3b:	6a 00                	push   $0x0                           
  10fa3d:	53                   	push   %ebx                           
  10fa3e:	50                   	push   %eax                           
  10fa3f:	e8 04 1d 00 00       	call   111748 <_Thread_Change_priority>
  10fa44:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10fa47:	e8 34 21 00 00       	call   111b80 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10fa4c:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10fa4e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10fa51:	5b                   	pop    %ebx                           
  10fa52:	5e                   	pop    %esi                           
  10fa53:	c9                   	leave                                 
  10fa54:	c3                   	ret                                   
  10fa55:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10fa58:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10fa5d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10fa60:	5b                   	pop    %ebx                           
  10fa61:	5e                   	pop    %esi                           
  10fa62:	c9                   	leave                                 
  10fa63:	c3                   	ret                                   
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
  10fa64:	b8 13 00 00 00       	mov    $0x13,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10fa69:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10fa6c:	5b                   	pop    %ebx                           
  10fa6d:	5e                   	pop    %esi                           
  10fa6e:	c9                   	leave                                 
  10fa6f:	c3                   	ret                                   
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
  10fa70:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10fa75:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10fa78:	5b                   	pop    %ebx                           
  10fa79:	5e                   	pop    %esi                           
  10fa7a:	c9                   	leave                                 
  10fa7b:	c3                   	ret                                   
                                                                      

0010bb3c <rtems_task_start>: rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) {
  10bb3c:	55                   	push   %ebp                           
  10bb3d:	89 e5                	mov    %esp,%ebp                      
  10bb3f:	53                   	push   %ebx                           
  10bb40:	83 ec 14             	sub    $0x14,%esp                     
  10bb43:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
  10bb46:	85 db                	test   %ebx,%ebx                      
  10bb48:	74 4e                	je     10bb98 <rtems_task_start+0x5c> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10bb4a:	83 ec 08             	sub    $0x8,%esp                      
  10bb4d:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bb50:	50                   	push   %eax                           
  10bb51:	ff 75 08             	pushl  0x8(%ebp)                      
  10bb54:	e8 d3 1e 00 00       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  10bb59:	83 c4 10             	add    $0x10,%esp                     
  10bb5c:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bb5f:	85 d2                	test   %edx,%edx                      
  10bb61:	75 29                	jne    10bb8c <rtems_task_start+0x50> 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Start(                                             
  10bb63:	83 ec 0c             	sub    $0xc,%esp                      
  10bb66:	ff 75 10             	pushl  0x10(%ebp)                     
  10bb69:	6a 00                	push   $0x0                           
  10bb6b:	53                   	push   %ebx                           
  10bb6c:	6a 00                	push   $0x0                           
  10bb6e:	50                   	push   %eax                           
  10bb6f:	e8 20 28 00 00       	call   10e394 <_Thread_Start>         
  10bb74:	83 c4 20             	add    $0x20,%esp                     
  10bb77:	84 c0                	test   %al,%al                        
  10bb79:	75 29                	jne    10bba4 <rtems_task_start+0x68> 
             the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  10bb7b:	e8 88 1e 00 00       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_INCORRECT_STATE;                                   
  10bb80:	b8 0e 00 00 00       	mov    $0xe,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bb85:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bb88:	c9                   	leave                                 
  10bb89:	c3                   	ret                                   
  10bb8a:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10bb8c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bb91:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bb94:	c9                   	leave                                 
  10bb95:	c3                   	ret                                   
  10bb96:	66 90                	xchg   %ax,%ax                        
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10bb98:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bb9d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bba0:	c9                   	leave                                 
  10bba1:	c3                   	ret                                   
  10bba2:	66 90                	xchg   %ax,%ax                        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Start(                                             
             the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
        _Thread_Enable_dispatch();                                    
  10bba4:	e8 5f 1e 00 00       	call   10da08 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10bba9:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bbab:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bbae:	c9                   	leave                                 
  10bbaf:	c3                   	ret                                   
                                                                      

00110fd0 <rtems_task_suspend>: */ rtems_status_code rtems_task_suspend( rtems_id id ) {
  110fd0:	55                   	push   %ebp                           
  110fd1:	89 e5                	mov    %esp,%ebp                      
  110fd3:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  110fd6:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  110fd9:	50                   	push   %eax                           
  110fda:	ff 75 08             	pushl  0x8(%ebp)                      
  110fdd:	e8 4a ca ff ff       	call   10da2c <_Thread_Get>           
  switch ( location ) {                                               
  110fe2:	83 c4 10             	add    $0x10,%esp                     
  110fe5:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  110fe8:	85 d2                	test   %edx,%edx                      
  110fea:	74 08                	je     110ff4 <rtems_task_suspend+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  110fec:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  110ff1:	c9                   	leave                                 
  110ff2:	c3                   	ret                                   
  110ff3:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
  110ff4:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  110ff8:	74 0e                	je     111008 <rtems_task_suspend+0x38>
        _Thread_Suspend( the_thread );                                
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  110ffa:	e8 09 ca ff ff       	call   10da08 <_Thread_Enable_dispatch>
      return RTEMS_ALREADY_SUSPENDED;                                 
  110fff:	b8 0f 00 00 00       	mov    $0xf,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  111004:	c9                   	leave                                 
  111005:	c3                   	ret                                   
  111006:	66 90                	xchg   %ax,%ax                        
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
        _Thread_Suspend( the_thread );                                
  111008:	83 ec 0c             	sub    $0xc,%esp                      
  11100b:	50                   	push   %eax                           
  11100c:	e8 3b 09 00 00       	call   11194c <_Thread_Suspend>       
        _Thread_Enable_dispatch();                                    
  111011:	e8 f2 c9 ff ff       	call   10da08 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  111016:	83 c4 10             	add    $0x10,%esp                     
  111019:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11101b:	c9                   	leave                                 
  11101c:	c3                   	ret                                   
                                                                      

0010c6a8 <rtems_task_variable_add>: rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) {
  10c6a8:	55                   	push   %ebp                           
  10c6a9:	89 e5                	mov    %esp,%ebp                      
  10c6ab:	57                   	push   %edi                           
  10c6ac:	56                   	push   %esi                           
  10c6ad:	53                   	push   %ebx                           
  10c6ae:	83 ec 1c             	sub    $0x1c,%esp                     
  10c6b1:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c6b4:	8b 7d 10             	mov    0x10(%ebp),%edi                
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
  10c6b7:	85 db                	test   %ebx,%ebx                      
  10c6b9:	0f 84 9d 00 00 00    	je     10c75c <rtems_task_variable_add+0xb4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10c6bf:	83 ec 08             	sub    $0x8,%esp                      
  10c6c2:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10c6c5:	50                   	push   %eax                           
  10c6c6:	ff 75 08             	pushl  0x8(%ebp)                      
  10c6c9:	e8 7e 20 00 00       	call   10e74c <_Thread_Get>           
  10c6ce:	89 c6                	mov    %eax,%esi                      
  switch (location) {                                                 
  10c6d0:	83 c4 10             	add    $0x10,%esp                     
  10c6d3:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c6d6:	85 c0                	test   %eax,%eax                      
  10c6d8:	74 0e                	je     10c6e8 <rtems_task_variable_add+0x40>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  10c6da:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c6df:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c6e2:	5b                   	pop    %ebx                           
  10c6e3:	5e                   	pop    %esi                           
  10c6e4:	5f                   	pop    %edi                           
  10c6e5:	c9                   	leave                                 
  10c6e6:	c3                   	ret                                   
  10c6e7:	90                   	nop                                   
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
  10c6e8:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax                
      while (tvp) {                                                   
  10c6ee:	85 c0                	test   %eax,%eax                      
  10c6f0:	75 44                	jne    10c736 <rtems_task_variable_add+0x8e>
  10c6f2:	66 90                	xchg   %ax,%ax                        
                                                                      
      /*                                                              
       *  Now allocate memory for this task variable.                 
       */                                                             
      new = (rtems_task_variable_t *)                                 
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
  10c6f4:	83 ec 0c             	sub    $0xc,%esp                      
  10c6f7:	6a 14                	push   $0x14                          
  10c6f9:	e8 06 30 00 00       	call   10f704 <_Workspace_Allocate>   
      if (new == NULL) {                                              
  10c6fe:	83 c4 10             	add    $0x10,%esp                     
  10c701:	85 c0                	test   %eax,%eax                      
  10c703:	74 4b                	je     10c750 <rtems_task_variable_add+0xa8>
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
  10c705:	8b 13                	mov    (%ebx),%edx                    
  10c707:	89 50 08             	mov    %edx,0x8(%eax)                 
      new->ptr = ptr;                                                 
  10c70a:	89 58 04             	mov    %ebx,0x4(%eax)                 
      new->dtor = dtor;                                               
  10c70d:	89 78 10             	mov    %edi,0x10(%eax)                
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
  10c710:	8b 96 f4 00 00 00    	mov    0xf4(%esi),%edx                
  10c716:	89 10                	mov    %edx,(%eax)                    
      the_thread->task_variables = new;                               
  10c718:	89 86 f4 00 00 00    	mov    %eax,0xf4(%esi)                
      _Thread_Enable_dispatch();                                      
  10c71e:	e8 05 20 00 00       	call   10e728 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10c723:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c725:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c728:	5b                   	pop    %ebx                           
  10c729:	5e                   	pop    %esi                           
  10c72a:	5f                   	pop    %edi                           
  10c72b:	c9                   	leave                                 
  10c72c:	c3                   	ret                                   
  10c72d:	8d 76 00             	lea    0x0(%esi),%esi                 
        if (tvp->ptr == ptr) {                                        
          tvp->dtor = dtor;                                           
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
  10c730:	8b 00                	mov    (%eax),%eax                    
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
  10c732:	85 c0                	test   %eax,%eax                      
  10c734:	74 be                	je     10c6f4 <rtems_task_variable_add+0x4c>
        if (tvp->ptr == ptr) {                                        
  10c736:	39 58 04             	cmp    %ebx,0x4(%eax)                 
  10c739:	75 f5                	jne    10c730 <rtems_task_variable_add+0x88>
          tvp->dtor = dtor;                                           
  10c73b:	89 78 10             	mov    %edi,0x10(%eax)                
          _Thread_Enable_dispatch();                                  
  10c73e:	e8 e5 1f 00 00       	call   10e728 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10c743:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c745:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c748:	5b                   	pop    %ebx                           
  10c749:	5e                   	pop    %esi                           
  10c74a:	5f                   	pop    %edi                           
  10c74b:	c9                   	leave                                 
  10c74c:	c3                   	ret                                   
  10c74d:	8d 76 00             	lea    0x0(%esi),%esi                 
       *  Now allocate memory for this task variable.                 
       */                                                             
      new = (rtems_task_variable_t *)                                 
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
      if (new == NULL) {                                              
        _Thread_Enable_dispatch();                                    
  10c750:	e8 d3 1f 00 00       	call   10e728 <_Thread_Enable_dispatch>
        return RTEMS_NO_MEMORY;                                       
  10c755:	b8 1a 00 00 00       	mov    $0x1a,%eax                     
  10c75a:	eb 83                	jmp    10c6df <rtems_task_variable_add+0x37>
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
  10c75c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c761:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c764:	5b                   	pop    %ebx                           
  10c765:	5e                   	pop    %esi                           
  10c766:	5f                   	pop    %edi                           
  10c767:	c9                   	leave                                 
  10c768:	c3                   	ret                                   
                                                                      

0010c76c <rtems_task_variable_delete>: rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) {
  10c76c:	55                   	push   %ebp                           
  10c76d:	89 e5                	mov    %esp,%ebp                      
  10c76f:	53                   	push   %ebx                           
  10c770:	83 ec 14             	sub    $0x14,%esp                     
  10c773:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
  10c776:	85 db                	test   %ebx,%ebx                      
  10c778:	74 76                	je     10c7f0 <rtems_task_variable_delete+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10c77a:	83 ec 08             	sub    $0x8,%esp                      
  10c77d:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c780:	50                   	push   %eax                           
  10c781:	ff 75 08             	pushl  0x8(%ebp)                      
  10c784:	e8 c3 1f 00 00       	call   10e74c <_Thread_Get>           
  switch (location) {                                                 
  10c789:	83 c4 10             	add    $0x10,%esp                     
  10c78c:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c78f:	85 d2                	test   %edx,%edx                      
  10c791:	74 0d                	je     10c7a0 <rtems_task_variable_delete+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10c793:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c798:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c79b:	c9                   	leave                                 
  10c79c:	c3                   	ret                                   
  10c79d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
  10c7a0:	8b 88 f4 00 00 00    	mov    0xf4(%eax),%ecx                
      while (tvp) {                                                   
  10c7a6:	85 c9                	test   %ecx,%ecx                      
  10c7a8:	74 17                	je     10c7c1 <rtems_task_variable_delete+0x55>
        if (tvp->ptr == ptr) {                                        
  10c7aa:	39 59 04             	cmp    %ebx,0x4(%ecx)                 
  10c7ad:	75 0c                	jne    10c7bb <rtems_task_variable_delete+0x4f>
  10c7af:	eb 49                	jmp    10c7fa <rtems_task_variable_delete+0x8e>
  10c7b1:	8d 76 00             	lea    0x0(%esi),%esi                 
  10c7b4:	39 5a 04             	cmp    %ebx,0x4(%edx)                 
  10c7b7:	74 17                	je     10c7d0 <rtems_task_variable_delete+0x64>
  10c7b9:	89 d1                	mov    %edx,%ecx                      
          _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp );  
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
  10c7bb:	8b 11                	mov    (%ecx),%edx                    
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
  10c7bd:	85 d2                	test   %edx,%edx                      
  10c7bf:	75 f3                	jne    10c7b4 <rtems_task_variable_delete+0x48><== ALWAYS TAKEN
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10c7c1:	e8 62 1f 00 00       	call   10e728 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  10c7c6:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c7cb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c7ce:	c9                   	leave                                 
  10c7cf:	c3                   	ret                                   
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
  10c7d0:	8b 1a                	mov    (%edx),%ebx                    
  10c7d2:	89 19                	mov    %ebx,(%ecx)                    
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
                                                                      
          _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp );  
  10c7d4:	83 ec 08             	sub    $0x8,%esp                      
  10c7d7:	52                   	push   %edx                           
  10c7d8:	50                   	push   %eax                           
  10c7d9:	e8 b2 00 00 00       	call   10c890 <_RTEMS_Tasks_Invoke_task_variable_dtor>
          _Thread_Enable_dispatch();                                  
  10c7de:	e8 45 1f 00 00       	call   10e728 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10c7e3:	83 c4 10             	add    $0x10,%esp                     
  10c7e6:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c7e8:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c7eb:	c9                   	leave                                 
  10c7ec:	c3                   	ret                                   
  10c7ed:	8d 76 00             	lea    0x0(%esi),%esi                 
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
  10c7f0:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c7f5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c7f8:	c9                   	leave                                 
  10c7f9:	c3                   	ret                                   
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
  10c7fa:	8b 11                	mov    (%ecx),%edx                    
  10c7fc:	89 90 f4 00 00 00    	mov    %edx,0xf4(%eax)                
  10c802:	89 ca                	mov    %ecx,%edx                      
  10c804:	eb ce                	jmp    10c7d4 <rtems_task_variable_delete+0x68>
                                                                      

0010c808 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
  10c808:	55                   	push   %ebp                           
  10c809:	89 e5                	mov    %esp,%ebp                      
  10c80b:	56                   	push   %esi                           
  10c80c:	53                   	push   %ebx                           
  10c80d:	83 ec 10             	sub    $0x10,%esp                     
  10c810:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c813:	8b 75 10             	mov    0x10(%ebp),%esi                
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
  10c816:	85 db                	test   %ebx,%ebx                      
  10c818:	74 56                	je     10c870 <rtems_task_variable_get+0x68>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
  10c81a:	85 f6                	test   %esi,%esi                      
  10c81c:	74 52                	je     10c870 <rtems_task_variable_get+0x68>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10c81e:	83 ec 08             	sub    $0x8,%esp                      
  10c821:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c824:	50                   	push   %eax                           
  10c825:	ff 75 08             	pushl  0x8(%ebp)                      
  10c828:	e8 1f 1f 00 00       	call   10e74c <_Thread_Get>           
  switch (location) {                                                 
  10c82d:	83 c4 10             	add    $0x10,%esp                     
  10c830:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c833:	85 d2                	test   %edx,%edx                      
  10c835:	75 2d                	jne    10c864 <rtems_task_variable_get+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
  10c837:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
      while (tvp) {                                                   
  10c83d:	85 c0                	test   %eax,%eax                      
  10c83f:	75 09                	jne    10c84a <rtems_task_variable_get+0x42>
  10c841:	eb 39                	jmp    10c87c <rtems_task_variable_get+0x74>
  10c843:	90                   	nop                                   
	   */                                                                
          *result = tvp->tval;                                        
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
  10c844:	8b 00                	mov    (%eax),%eax                    
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
  10c846:	85 c0                	test   %eax,%eax                      
  10c848:	74 32                	je     10c87c <rtems_task_variable_get+0x74><== NEVER TAKEN
        if (tvp->ptr == ptr) {                                        
  10c84a:	39 58 04             	cmp    %ebx,0x4(%eax)                 
  10c84d:	75 f5                	jne    10c844 <rtems_task_variable_get+0x3c>
	  /*                                                                 
	   * Should this return the current (i.e not the                     
	   * saved) value if `tid' is the current task?                      
	   */                                                                
          *result = tvp->tval;                                        
  10c84f:	8b 40 0c             	mov    0xc(%eax),%eax                 
  10c852:	89 06                	mov    %eax,(%esi)                    
          _Thread_Enable_dispatch();                                  
  10c854:	e8 cf 1e 00 00       	call   10e728 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10c859:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c85b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c85e:	5b                   	pop    %ebx                           
  10c85f:	5e                   	pop    %esi                           
  10c860:	c9                   	leave                                 
  10c861:	c3                   	ret                                   
  10c862:	66 90                	xchg   %ax,%ax                        
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  10c864:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c869:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c86c:	5b                   	pop    %ebx                           
  10c86d:	5e                   	pop    %esi                           
  10c86e:	c9                   	leave                                 
  10c86f:	c3                   	ret                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  10c870:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c875:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c878:	5b                   	pop    %ebx                           
  10c879:	5e                   	pop    %esi                           
  10c87a:	c9                   	leave                                 
  10c87b:	c3                   	ret                                   
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10c87c:	e8 a7 1e 00 00       	call   10e728 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  10c881:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c886:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c889:	5b                   	pop    %ebx                           
  10c88a:	5e                   	pop    %esi                           
  10c88b:	c9                   	leave                                 
  10c88c:	c3                   	ret                                   
                                                                      

0010ca08 <rtems_task_wake_when>: */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) {
  10ca08:	55                   	push   %ebp                           
  10ca09:	89 e5                	mov    %esp,%ebp                      
  10ca0b:	53                   	push   %ebx                           
  10ca0c:	83 ec 14             	sub    $0x14,%esp                     
  10ca0f:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
  10ca12:	80 3d 64 ab 12 00 00 	cmpb   $0x0,0x12ab64                  
  10ca19:	0f 84 a9 00 00 00    	je     10cac8 <rtems_task_wake_when+0xc0>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
  10ca1f:	85 db                	test   %ebx,%ebx                      
  10ca21:	0f 84 ad 00 00 00    	je     10cad4 <rtems_task_wake_when+0xcc>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
  10ca27:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)                
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
  10ca2e:	83 ec 0c             	sub    $0xc,%esp                      
  10ca31:	53                   	push   %ebx                           
  10ca32:	e8 d1 f3 ff ff       	call   10be08 <_TOD_Validate>         
  10ca37:	83 c4 10             	add    $0x10,%esp                     
  10ca3a:	84 c0                	test   %al,%al                        
  10ca3c:	75 0a                	jne    10ca48 <rtems_task_wake_when+0x40>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
  10ca3e:	b8 14 00 00 00       	mov    $0x14,%eax                     
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10ca43:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ca46:	c9                   	leave                                 
  10ca47:	c3                   	ret                                   
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
  10ca48:	83 ec 0c             	sub    $0xc,%esp                      
  10ca4b:	53                   	push   %ebx                           
  10ca4c:	e8 2b f3 ff ff       	call   10bd7c <_TOD_To_seconds>       
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  10ca51:	83 c4 10             	add    $0x10,%esp                     
  10ca54:	3b 05 e8 ab 12 00    	cmp    0x12abe8,%eax                  
  10ca5a:	76 e2                	jbe    10ca3e <rtems_task_wake_when+0x36>
  10ca5c:	8b 15 50 ab 12 00    	mov    0x12ab50,%edx                  
  10ca62:	42                   	inc    %edx                           
  10ca63:	89 15 50 ab 12 00    	mov    %edx,0x12ab50                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
  10ca69:	83 ec 08             	sub    $0x8,%esp                      
  10ca6c:	6a 10                	push   $0x10                          
  10ca6e:	ff 35 f8 b0 12 00    	pushl  0x12b0f8                       
  10ca74:	89 45 f4             	mov    %eax,-0xc(%ebp)                
  10ca77:	e8 00 27 00 00       	call   10f17c <_Thread_Set_state>     
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
  10ca7c:	8b 15 f8 b0 12 00    	mov    0x12b0f8,%edx                  
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
    _Watchdog_Initialize(                                             
  10ca82:	8b 4a 08             	mov    0x8(%edx),%ecx                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10ca85:	c7 42 50 00 00 00 00 	movl   $0x0,0x50(%edx)                
  the_watchdog->routine   = routine;                                  
  10ca8c:	c7 42 64 a4 e7 10 00 	movl   $0x10e7a4,0x64(%edx)           
  the_watchdog->id        = id;                                       
  10ca93:	89 4a 68             	mov    %ecx,0x68(%edx)                
  the_watchdog->user_data = user_data;                                
  10ca96:	c7 42 6c 00 00 00 00 	movl   $0x0,0x6c(%edx)                
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
  10ca9d:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10caa0:	2b 05 e8 ab 12 00    	sub    0x12abe8,%eax                  
  10caa6:	89 42 54             	mov    %eax,0x54(%edx)                
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
  10caa9:	58                   	pop    %eax                           
  10caaa:	59                   	pop    %ecx                           
  10caab:	83 c2 48             	add    $0x48,%edx                     
  10caae:	52                   	push   %edx                           
  10caaf:	68 14 ac 12 00       	push   $0x12ac14                      
  10cab4:	e8 8b 2c 00 00       	call   10f744 <_Watchdog_Insert>      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  10cab9:	e8 9a 1e 00 00       	call   10e958 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10cabe:	83 c4 10             	add    $0x10,%esp                     
  10cac1:	31 c0                	xor    %eax,%eax                      
  10cac3:	e9 7b ff ff ff       	jmp    10ca43 <rtems_task_wake_when+0x3b>
)                                                                     
{                                                                     
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
  10cac8:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10cacd:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10cad0:	c9                   	leave                                 
  10cad1:	c3                   	ret                                   
  10cad2:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  10cad4:	b8 09 00 00 00       	mov    $0x9,%eax                      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10cad9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10cadc:	c9                   	leave                                 
  10cadd:	c3                   	ret                                   
                                                                      

0011871c <rtems_timer_cancel>: */ rtems_status_code rtems_timer_cancel( rtems_id id ) {
  11871c:	55                   	push   %ebp                           
  11871d:	89 e5                	mov    %esp,%ebp                      
  11871f:	83 ec 1c             	sub    $0x1c,%esp                     
  Timer_Control   *the_timer;                                         
  Objects_Locations       location;                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  118722:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  118725:	50                   	push   %eax                           
  118726:	ff 75 08             	pushl  0x8(%ebp)                      
  118729:	68 20 35 14 00       	push   $0x143520                      
  11872e:	e8 05 2c 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  118733:	83 c4 10             	add    $0x10,%esp                     
  118736:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  118739:	85 d2                	test   %edx,%edx                      
  11873b:	74 07                	je     118744 <rtems_timer_cancel+0x28>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  11873d:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  118742:	c9                   	leave                                 
  118743:	c3                   	ret                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Timer_Is_dormant_class( the_timer->the_class ) )         
  118744:	83 78 38 04          	cmpl   $0x4,0x38(%eax)                
  118748:	74 0f                	je     118759 <rtems_timer_cancel+0x3d><== NEVER TAKEN
        (void) _Watchdog_Remove( &the_timer->Ticker );                
  11874a:	83 ec 0c             	sub    $0xc,%esp                      
  11874d:	83 c0 10             	add    $0x10,%eax                     
  118750:	50                   	push   %eax                           
  118751:	e8 aa 48 00 00       	call   11d000 <_Watchdog_Remove>      
  118756:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Enable_dispatch();                                      
  118759:	e8 62 37 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  11875e:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118760:	c9                   	leave                                 
  118761:	c3                   	ret                                   
                                                                      

0010c038 <rtems_timer_create>: rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id ) {
  10c038:	55                   	push   %ebp                           
  10c039:	89 e5                	mov    %esp,%ebp                      
  10c03b:	57                   	push   %edi                           
  10c03c:	56                   	push   %esi                           
  10c03d:	53                   	push   %ebx                           
  10c03e:	83 ec 0c             	sub    $0xc,%esp                      
  10c041:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c044:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10c047:	85 db                	test   %ebx,%ebx                      
  10c049:	74 6d                	je     10c0b8 <rtems_timer_create+0x80>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10c04b:	85 f6                	test   %esi,%esi                      
  10c04d:	0f 84 89 00 00 00    	je     10c0dc <rtems_timer_create+0xa4>
  10c053:	a1 d0 98 12 00       	mov    0x1298d0,%eax                  
  10c058:	40                   	inc    %eax                           
  10c059:	a3 d0 98 12 00       	mov    %eax,0x1298d0                  
 *  This function allocates a timer control block from                
 *  the inactive chain of free timer control blocks.                  
 */                                                                   
RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Allocate( void )           
{                                                                     
  return (Timer_Control *) _Objects_Allocate( &_Timer_Information );  
  10c05e:	83 ec 0c             	sub    $0xc,%esp                      
  10c061:	68 00 a3 12 00       	push   $0x12a300                      
  10c066:	e8 31 0f 00 00       	call   10cf9c <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
  10c06b:	83 c4 10             	add    $0x10,%esp                     
  10c06e:	85 c0                	test   %eax,%eax                      
  10c070:	74 56                	je     10c0c8 <rtems_timer_create+0x90>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_timer->the_class = TIMER_DORMANT;                               
  10c072:	c7 40 38 04 00 00 00 	movl   $0x4,0x38(%eax)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10c079:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10c080:	c7 40 2c 00 00 00 00 	movl   $0x0,0x2c(%eax)                
  the_watchdog->id        = id;                                       
  10c087:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10c08e:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c095:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c098:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c09b:	8b 0d 1c a3 12 00    	mov    0x12a31c,%ecx                  
  10c0a1:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10c0a4:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Timer_Information,                                              
    &the_timer->Object,                                               
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  10c0a7:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10c0a9:	e8 2a 1f 00 00       	call   10dfd8 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10c0ae:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c0b0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0b3:	5b                   	pop    %ebx                           
  10c0b4:	5e                   	pop    %esi                           
  10c0b5:	5f                   	pop    %edi                           
  10c0b6:	c9                   	leave                                 
  10c0b7:	c3                   	ret                                   
)                                                                     
{                                                                     
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10c0b8:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c0bd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0c0:	5b                   	pop    %ebx                           
  10c0c1:	5e                   	pop    %esi                           
  10c0c2:	5f                   	pop    %edi                           
  10c0c3:	c9                   	leave                                 
  10c0c4:	c3                   	ret                                   
  10c0c5:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
    _Thread_Enable_dispatch();                                        
  10c0c8:	e8 0b 1f 00 00       	call   10dfd8 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10c0cd:	b8 05 00 00 00       	mov    $0x5,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c0d2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0d5:	5b                   	pop    %ebx                           
  10c0d6:	5e                   	pop    %esi                           
  10c0d7:	5f                   	pop    %edi                           
  10c0d8:	c9                   	leave                                 
  10c0d9:	c3                   	ret                                   
  10c0da:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10c0dc:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c0e1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c0e4:	5b                   	pop    %ebx                           
  10c0e5:	5e                   	pop    %esi                           
  10c0e6:	5f                   	pop    %edi                           
  10c0e7:	c9                   	leave                                 
  10c0e8:	c3                   	ret                                   
                                                                      

00118818 <rtems_timer_delete>: */ rtems_status_code rtems_timer_delete( rtems_id id ) {
  118818:	55                   	push   %ebp                           
  118819:	89 e5                	mov    %esp,%ebp                      
  11881b:	53                   	push   %ebx                           
  11881c:	83 ec 18             	sub    $0x18,%esp                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  11881f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  118822:	50                   	push   %eax                           
  118823:	ff 75 08             	pushl  0x8(%ebp)                      
  118826:	68 20 35 14 00       	push   $0x143520                      
  11882b:	e8 08 2b 00 00       	call   11b338 <_Objects_Get>          
  118830:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  118832:	83 c4 10             	add    $0x10,%esp                     
  118835:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  118838:	85 c9                	test   %ecx,%ecx                      
  11883a:	75 38                	jne    118874 <rtems_timer_delete+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Timer_Information, &the_timer->Object );      
  11883c:	83 ec 08             	sub    $0x8,%esp                      
  11883f:	50                   	push   %eax                           
  118840:	68 20 35 14 00       	push   $0x143520                      
  118845:	e8 7a 26 00 00       	call   11aec4 <_Objects_Close>        
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  11884a:	8d 43 10             	lea    0x10(%ebx),%eax                
  11884d:	89 04 24             	mov    %eax,(%esp)                    
  118850:	e8 ab 47 00 00       	call   11d000 <_Watchdog_Remove>      
 */                                                                   
RTEMS_INLINE_ROUTINE void _Timer_Free (                               
  Timer_Control *the_timer                                            
)                                                                     
{                                                                     
  _Objects_Free( &_Timer_Information, &the_timer->Object );           
  118855:	58                   	pop    %eax                           
  118856:	5a                   	pop    %edx                           
  118857:	53                   	push   %ebx                           
  118858:	68 20 35 14 00       	push   $0x143520                      
  11885d:	e8 5a 29 00 00       	call   11b1bc <_Objects_Free>         
      _Timer_Free( the_timer );                                       
      _Thread_Enable_dispatch();                                      
  118862:	e8 59 36 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  118867:	83 c4 10             	add    $0x10,%esp                     
  11886a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11886c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11886f:	c9                   	leave                                 
  118870:	c3                   	ret                                   
  118871:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118874:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  118879:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11887c:	c9                   	leave                                 
  11887d:	c3                   	ret                                   
                                                                      

0010c0ec <rtems_timer_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
  10c0ec:	55                   	push   %ebp                           
  10c0ed:	89 e5                	mov    %esp,%ebp                      
  10c0ef:	57                   	push   %edi                           
  10c0f0:	56                   	push   %esi                           
  10c0f1:	53                   	push   %ebx                           
  10c0f2:	83 ec 2c             	sub    $0x2c,%esp                     
  10c0f5:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10c0f8:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
  10c0fb:	85 db                	test   %ebx,%ebx                      
  10c0fd:	0f 84 99 00 00 00    	je     10c19c <rtems_timer_fire_after+0xb0>
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
  10c103:	85 f6                	test   %esi,%esi                      
  10c105:	0f 84 b1 00 00 00    	je     10c1bc <rtems_timer_fire_after+0xd0>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  10c10b:	57                   	push   %edi                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  10c10c:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10c10f:	50                   	push   %eax                           
  10c110:	ff 75 08             	pushl  0x8(%ebp)                      
  10c113:	68 00 a3 12 00       	push   $0x12a300                      
  10c118:	e8 33 13 00 00       	call   10d450 <_Objects_Get>          
  10c11d:	89 c7                	mov    %eax,%edi                      
  switch ( location ) {                                               
  10c11f:	83 c4 10             	add    $0x10,%esp                     
  10c122:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10c125:	85 c9                	test   %ecx,%ecx                      
  10c127:	74 0f                	je     10c138 <rtems_timer_fire_after+0x4c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10c129:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c12e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c131:	5b                   	pop    %ebx                           
  10c132:	5e                   	pop    %esi                           
  10c133:	5f                   	pop    %edi                           
  10c134:	c9                   	leave                                 
  10c135:	c3                   	ret                                   
  10c136:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  10c138:	8d 50 10             	lea    0x10(%eax),%edx                
  10c13b:	83 ec 0c             	sub    $0xc,%esp                      
  10c13e:	52                   	push   %edx                           
  10c13f:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  10c142:	e8 45 2d 00 00       	call   10ee8c <_Watchdog_Remove>      
                                                                      
      _ISR_Disable( level );                                          
  10c147:	9c                   	pushf                                 
  10c148:	fa                   	cli                                   
  10c149:	58                   	pop    %eax                           
        /*                                                            
         *  Check to see if the watchdog has just been inserted by a  
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
  10c14a:	83 c4 10             	add    $0x10,%esp                     
  10c14d:	8b 57 18             	mov    0x18(%edi),%edx                
  10c150:	85 d2                	test   %edx,%edx                      
  10c152:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  10c155:	75 55                	jne    10c1ac <rtems_timer_fire_after+0xc0>
        /*                                                            
         *  OK.  Now we now the timer was not rescheduled by an interrupt
         *  so we can atomically initialize it as in use.             
         */                                                           
                                                                      
        the_timer->the_class = TIMER_INTERVAL;                        
  10c157:	c7 47 38 00 00 00 00 	movl   $0x0,0x38(%edi)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10c15e:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
  the_watchdog->routine   = routine;                                  
  10c165:	89 77 2c             	mov    %esi,0x2c(%edi)                
  the_watchdog->id        = id;                                       
  10c168:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10c16b:	89 4f 30             	mov    %ecx,0x30(%edi)                
  the_watchdog->user_data = user_data;                                
  10c16e:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10c171:	89 4f 34             	mov    %ecx,0x34(%edi)                
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _ISR_Enable( level );                                           
  10c174:	50                   	push   %eax                           
  10c175:	9d                   	popf                                  
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10c176:	89 5f 1c             	mov    %ebx,0x1c(%edi)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10c179:	83 ec 08             	sub    $0x8,%esp                      
  10c17c:	52                   	push   %edx                           
  10c17d:	68 a0 99 12 00       	push   $0x1299a0                      
  10c182:	e8 c5 2b 00 00       	call   10ed4c <_Watchdog_Insert>      
                                                                      
                                                                      
      _Watchdog_Insert_ticks( &the_timer->Ticker, ticks );            
      _Thread_Enable_dispatch();                                      
  10c187:	e8 4c 1e 00 00       	call   10dfd8 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10c18c:	83 c4 10             	add    $0x10,%esp                     
  10c18f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c191:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c194:	5b                   	pop    %ebx                           
  10c195:	5e                   	pop    %esi                           
  10c196:	5f                   	pop    %edi                           
  10c197:	c9                   	leave                                 
  10c198:	c3                   	ret                                   
  10c199:	8d 76 00             	lea    0x0(%esi),%esi                 
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
  10c19c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c1a1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c1a4:	5b                   	pop    %ebx                           
  10c1a5:	5e                   	pop    %esi                           
  10c1a6:	5f                   	pop    %edi                           
  10c1a7:	c9                   	leave                                 
  10c1a8:	c3                   	ret                                   
  10c1a9:	8d 76 00             	lea    0x0(%esi),%esi                 
         *  Check to see if the watchdog has just been inserted by a  
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
          _ISR_Enable( level );                                       
  10c1ac:	50                   	push   %eax                           
  10c1ad:	9d                   	popf                                  
          _Thread_Enable_dispatch();                                  
  10c1ae:	e8 25 1e 00 00       	call   10dfd8 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10c1b3:	31 c0                	xor    %eax,%eax                      
  10c1b5:	e9 74 ff ff ff       	jmp    10c12e <rtems_timer_fire_after+0x42>
  10c1ba:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  10c1bc:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c1c1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c1c4:	5b                   	pop    %ebx                           
  10c1c5:	5e                   	pop    %esi                           
  10c1c6:	5f                   	pop    %edi                           
  10c1c7:	c9                   	leave                                 
  10c1c8:	c3                   	ret                                   
                                                                      

00118960 <rtems_timer_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
  118960:	55                   	push   %ebp                           
  118961:	89 e5                	mov    %esp,%ebp                      
  118963:	57                   	push   %edi                           
  118964:	56                   	push   %esi                           
  118965:	53                   	push   %ebx                           
  118966:	83 ec 2c             	sub    $0x2c,%esp                     
  118969:	8b 75 08             	mov    0x8(%ebp),%esi                 
  11896c:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  11896f:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
  118972:	80 3d 04 2b 14 00 00 	cmpb   $0x0,0x142b04                  
  118979:	75 0d                	jne    118988 <rtems_timer_fire_when+0x28>
    return RTEMS_NOT_DEFINED;                                         
  11897b:	b8 0b 00 00 00       	mov    $0xb,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118980:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118983:	5b                   	pop    %ebx                           
  118984:	5e                   	pop    %esi                           
  118985:	5f                   	pop    %edi                           
  118986:	c9                   	leave                                 
  118987:	c3                   	ret                                   
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
  118988:	83 ec 0c             	sub    $0xc,%esp                      
  11898b:	57                   	push   %edi                           
  11898c:	e8 93 d4 ff ff       	call   115e24 <_TOD_Validate>         
  118991:	83 c4 10             	add    $0x10,%esp                     
  118994:	84 c0                	test   %al,%al                        
  118996:	74 1e                	je     1189b6 <rtems_timer_fire_when+0x56>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
  118998:	85 db                	test   %ebx,%ebx                      
  11899a:	0f 84 a4 00 00 00    	je     118a44 <rtems_timer_fire_when+0xe4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  1189a0:	83 ec 0c             	sub    $0xc,%esp                      
  1189a3:	57                   	push   %edi                           
  1189a4:	e8 ef d3 ff ff       	call   115d98 <_TOD_To_seconds>       
  1189a9:	89 c7                	mov    %eax,%edi                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  1189ab:	83 c4 10             	add    $0x10,%esp                     
  1189ae:	3b 05 88 2b 14 00    	cmp    0x142b88,%eax                  
  1189b4:	77 0e                	ja     1189c4 <rtems_timer_fire_when+0x64>
    return RTEMS_INVALID_CLOCK;                                       
  1189b6:	b8 14 00 00 00       	mov    $0x14,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1189bb:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1189be:	5b                   	pop    %ebx                           
  1189bf:	5e                   	pop    %esi                           
  1189c0:	5f                   	pop    %edi                           
  1189c1:	c9                   	leave                                 
  1189c2:	c3                   	ret                                   
  1189c3:	90                   	nop                                   
  1189c4:	50                   	push   %eax                           
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  1189c5:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  1189c8:	50                   	push   %eax                           
  1189c9:	56                   	push   %esi                           
  1189ca:	68 20 35 14 00       	push   $0x143520                      
  1189cf:	e8 64 29 00 00       	call   11b338 <_Objects_Get>          
  switch ( location ) {                                               
  1189d4:	83 c4 10             	add    $0x10,%esp                     
  1189d7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  1189da:	85 c9                	test   %ecx,%ecx                      
  1189dc:	75 5a                	jne    118a38 <rtems_timer_fire_when+0xd8>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  1189de:	8d 48 10             	lea    0x10(%eax),%ecx                
  1189e1:	83 ec 0c             	sub    $0xc,%esp                      
  1189e4:	51                   	push   %ecx                           
  1189e5:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  1189e8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  1189eb:	e8 10 46 00 00       	call   11d000 <_Watchdog_Remove>      
      the_timer->the_class = TIMER_TIME_OF_DAY;                       
  1189f0:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  1189f3:	c7 42 38 02 00 00 00 	movl   $0x2,0x38(%edx)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  1189fa:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  118a01:	89 5a 2c             	mov    %ebx,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  118a04:	89 72 30             	mov    %esi,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  118a07:	8b 45 14             	mov    0x14(%ebp),%eax                
  118a0a:	89 42 34             	mov    %eax,0x34(%edx)                
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _Watchdog_Insert_seconds(                                       
  118a0d:	2b 3d 88 2b 14 00    	sub    0x142b88,%edi                  
  118a13:	89 7a 1c             	mov    %edi,0x1c(%edx)                
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
  118a16:	58                   	pop    %eax                           
  118a17:	5a                   	pop    %edx                           
  118a18:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  118a1b:	51                   	push   %ecx                           
  118a1c:	68 b4 2b 14 00       	push   $0x142bb4                      
  118a21:	e8 9a 44 00 00       	call   11cec0 <_Watchdog_Insert>      
         &the_timer->Ticker,                                          
         seconds - _TOD_Seconds_since_epoch()                         
       );                                                             
      _Thread_Enable_dispatch();                                      
  118a26:	e8 95 34 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  118a2b:	83 c4 10             	add    $0x10,%esp                     
  118a2e:	31 c0                	xor    %eax,%eax                      
  118a30:	e9 4b ff ff ff       	jmp    118980 <rtems_timer_fire_when+0x20>
  118a35:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118a38:	b8 04 00 00 00       	mov    $0x4,%eax                      
  118a3d:	e9 3e ff ff ff       	jmp    118980 <rtems_timer_fire_when+0x20>
  118a42:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118a44:	b8 09 00 00 00       	mov    $0x9,%eax                      
  118a49:	e9 32 ff ff ff       	jmp    118980 <rtems_timer_fire_when+0x20>
                                                                      

001190f8 <rtems_timer_initiate_server>: rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) {
  1190f8:	55                   	push   %ebp                           
  1190f9:	89 e5                	mov    %esp,%ebp                      
  1190fb:	56                   	push   %esi                           
  1190fc:	53                   	push   %ebx                           
  1190fd:	83 ec 10             	sub    $0x10,%esp                     
  119100:	8b 45 08             	mov    0x8(%ebp),%eax                 
  119103:	85 c0                	test   %eax,%eax                      
  119105:	74 41                	je     119148 <rtems_timer_initiate_server+0x50>
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
  119107:	0f b6 15 94 a3 13 00 	movzbl 0x13a394,%edx                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  11910e:	39 d0                	cmp    %edx,%eax                      
  119110:	76 42                	jbe    119154 <rtems_timer_initiate_server+0x5c>
   *  structured so we check it is invalid before looking for         
   *  a specific invalid value as the default.                        
   */                                                                 
  _priority = priority;                                               
  if ( !_RTEMS_tasks_Priority_is_valid( priority ) ) {                
    if ( priority != RTEMS_TIMER_SERVER_DEFAULT_PRIORITY )            
  119112:	40                   	inc    %eax                           
  119113:	75 33                	jne    119148 <rtems_timer_initiate_server+0x50>
      return RTEMS_INVALID_PRIORITY;                                  
    _priority = 0;                                                    
  119115:	31 f6                	xor    %esi,%esi                      
  119117:	8b 15 f0 2a 14 00    	mov    0x142af0,%edx                  
  11911d:	42                   	inc    %edx                           
  11911e:	89 15 f0 2a 14 00    	mov    %edx,0x142af0                  
                                                                      
  /*                                                                  
   *  Just to make sure this is only called once.                     
   */                                                                 
  _Thread_Disable_dispatch();                                         
    tmpInitialized  = initialized;                                    
  119124:	8a 1d 20 e4 13 00    	mov    0x13e420,%bl                   
    initialized = true;                                               
  11912a:	c6 05 20 e4 13 00 01 	movb   $0x1,0x13e420                  
  _Thread_Enable_dispatch();                                          
  119131:	e8 8a 2d 00 00       	call   11bec0 <_Thread_Enable_dispatch>
                                                                      
  if ( tmpInitialized )                                               
  119136:	84 db                	test   %bl,%bl                        
  119138:	74 1e                	je     119158 <rtems_timer_initiate_server+0x60>
    return RTEMS_INCORRECT_STATE;                                     
  11913a:	b8 0e 00 00 00       	mov    $0xe,%eax                      
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  11913f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  119142:	5b                   	pop    %ebx                           
  119143:	5e                   	pop    %esi                           
  119144:	c9                   	leave                                 
  119145:	c3                   	ret                                   
  119146:	66 90                	xchg   %ax,%ax                        
   *  a specific invalid value as the default.                        
   */                                                                 
  _priority = priority;                                               
  if ( !_RTEMS_tasks_Priority_is_valid( priority ) ) {                
    if ( priority != RTEMS_TIMER_SERVER_DEFAULT_PRIORITY )            
      return RTEMS_INVALID_PRIORITY;                                  
  119148:	b8 13 00 00 00       	mov    $0x13,%eax                     
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  11914d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  119150:	5b                   	pop    %ebx                           
  119151:	5e                   	pop    %esi                           
  119152:	c9                   	leave                                 
  119153:	c3                   	ret                                   
  119154:	89 c6                	mov    %eax,%esi                      
  119156:	eb bf                	jmp    119117 <rtems_timer_initiate_server+0x1f>
   *  other library rules.  For example, if using a TSR written in Ada the
   *  Server should run at the same priority as the priority Ada task.
   *  Otherwise, the priority ceiling for the mutex used to protect the
   *  GNAT run-time is violated.                                      
   */                                                                 
  status = rtems_task_create(                                         
  119158:	83 ec 08             	sub    $0x8,%esp                      
  11915b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11915e:	50                   	push   %eax                           
  11915f:	8b 45 10             	mov    0x10(%ebp),%eax                
  119162:	80 cc 80             	or     $0x80,%ah                      
  119165:	50                   	push   %eax                           
  119166:	68 00 01 00 00       	push   $0x100                         
  11916b:	ff 75 0c             	pushl  0xc(%ebp)                      
  11916e:	56                   	push   %esi                           
  11916f:	68 45 4d 49 54       	push   $0x54494d45                    
  119174:	e8 c7 ec ff ff       	call   117e40 <rtems_task_create>     
                          /* user may want floating point but we need */
                          /*   system task specified for 0 priority */
    attribute_set | RTEMS_SYSTEM_TASK,                                
    &id                   /* get the id back */                       
  );                                                                  
  if (status) {                                                       
  119179:	83 c4 20             	add    $0x20,%esp                     
  11917c:	85 c0                	test   %eax,%eax                      
  11917e:	74 10                	je     119190 <rtems_timer_initiate_server+0x98>
    initialized = false;                                              
  119180:	c6 05 20 e4 13 00 00 	movb   $0x0,0x13e420                  
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  119187:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11918a:	5b                   	pop    %ebx                           
  11918b:	5e                   	pop    %esi                           
  11918c:	c9                   	leave                                 
  11918d:	c3                   	ret                                   
  11918e:	66 90                	xchg   %ax,%ax                        
   *  We work with the TCB pointer, not the ID, so we need to convert 
   *  to a TCB pointer from here out.                                 
   */                                                                 
  ts->thread = (Thread_Control *)_Objects_Get_local_object(           
    &_RTEMS_tasks_Information,                                        
    _Objects_Get_index(id)                                            
  119190:	8b 45 f4             	mov    -0xc(%ebp),%eax                
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return NULL;                                                    
  #endif                                                              
  return information->local_table[ index ];                           
  119193:	0f b7 c8             	movzwl %ax,%ecx                       
  119196:	8b 15 9c 2a 14 00    	mov    0x142a9c,%edx                  
                                                                      
  /*                                                                  
   *  We work with the TCB pointer, not the ID, so we need to convert 
   *  to a TCB pointer from here out.                                 
   */                                                                 
  ts->thread = (Thread_Control *)_Objects_Get_local_object(           
  11919c:	8b 14 8a             	mov    (%edx,%ecx,4),%edx             
  11919f:	89 15 a0 e3 13 00    	mov    %edx,0x13e3a0                  
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  1191a5:	c7 05 d0 e3 13 00 d4 	movl   $0x13e3d4,0x13e3d0             
  1191ac:	e3 13 00                                                    
  head->previous = NULL;                                              
  1191af:	c7 05 d4 e3 13 00 00 	movl   $0x0,0x13e3d4                  
  1191b6:	00 00 00                                                    
  tail->previous = head;                                              
  1191b9:	c7 05 d8 e3 13 00 d0 	movl   $0x13e3d0,0x13e3d8             
  1191c0:	e3 13 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  1191c3:	c7 05 08 e4 13 00 0c 	movl   $0x13e40c,0x13e408             
  1191ca:	e4 13 00                                                    
  head->previous = NULL;                                              
  1191cd:	c7 05 0c e4 13 00 00 	movl   $0x0,0x13e40c                  
  1191d4:	00 00 00                                                    
  tail->previous = head;                                              
  1191d7:	c7 05 10 e4 13 00 08 	movl   $0x13e408,0x13e410             
  1191de:	e4 13 00                                                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  1191e1:	c7 05 b0 e3 13 00 00 	movl   $0x0,0x13e3b0                  
  1191e8:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  1191eb:	c7 05 c4 e3 13 00 0c 	movl   $0x11bd0c,0x13e3c4             
  1191f2:	bd 11 00                                                    
  the_watchdog->id        = id;                                       
  1191f5:	a3 c8 e3 13 00       	mov    %eax,0x13e3c8                  
  the_watchdog->user_data = user_data;                                
  1191fa:	c7 05 cc e3 13 00 00 	movl   $0x0,0x13e3cc                  
  119201:	00 00 00                                                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  119204:	c7 05 e8 e3 13 00 00 	movl   $0x0,0x13e3e8                  
  11920b:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  11920e:	c7 05 fc e3 13 00 0c 	movl   $0x11bd0c,0x13e3fc             
  119215:	bd 11 00                                                    
  the_watchdog->id        = id;                                       
  119218:	a3 00 e4 13 00       	mov    %eax,0x13e400                  
  the_watchdog->user_data = user_data;                                
  11921d:	c7 05 04 e4 13 00 00 	movl   $0x0,0x13e404                  
  119224:	00 00 00                                                    
                                                                      
  /*                                                                  
   *  Initialize the pointer to the timer schedule method so applications that
   *  do not use the Timer Server do not have to pull it in.          
   */                                                                 
  ts->schedule_operation = _Timer_server_Schedule_operation_method;   
  119227:	c7 05 a4 e3 13 00 c8 	movl   $0x118fc8,0x13e3a4             
  11922e:	8f 11 00                                                    
                                                                      
  ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot;  
  119231:	8b 15 24 2c 14 00    	mov    0x142c24,%edx                  
  119237:	89 15 dc e3 13 00    	mov    %edx,0x13e3dc                  
  ts->TOD_watchdogs.last_snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
  11923d:	8b 15 88 2b 14 00    	mov    0x142b88,%edx                  
  119243:	89 15 14 e4 13 00    	mov    %edx,0x13e414                  
                                                                      
  ts->insert_chain = NULL;                                            
  119249:	c7 05 18 e4 13 00 00 	movl   $0x0,0x13e418                  
  119250:	00 00 00                                                    
  ts->active = false;                                                 
  119253:	c6 05 1c e4 13 00 00 	movb   $0x0,0x13e41c                  
                                                                      
  /*                                                                  
   * The default timer server is now available.                       
   */                                                                 
  _Timer_server = ts;                                                 
  11925a:	c7 05 60 35 14 00 a0 	movl   $0x13e3a0,0x143560             
  119261:	e3 13 00                                                    
                                                                      
  /*                                                                  
   *  Start the timer server                                          
   */                                                                 
  status = rtems_task_start(                                          
  119264:	53                   	push   %ebx                           
  119265:	68 a0 e3 13 00       	push   $0x13e3a0                      
  11926a:	68 00 8e 11 00       	push   $0x118e00                      
  11926f:	50                   	push   %eax                           
  119270:	e8 8b f2 ff ff       	call   118500 <rtems_task_start>      
    if (status) {                                                     
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
  119275:	83 c4 10             	add    $0x10,%esp                     
  119278:	e9 d0 fe ff ff       	jmp    11914d <rtems_timer_initiate_server+0x55>
                                                                      

00118ad8 <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( rtems_id id ) {
  118ad8:	55                   	push   %ebp                           
  118ad9:	89 e5                	mov    %esp,%ebp                      
  118adb:	56                   	push   %esi                           
  118adc:	53                   	push   %ebx                           
  118add:	83 ec 24             	sub    $0x24,%esp                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  118ae0:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  118ae3:	50                   	push   %eax                           
  118ae4:	ff 75 08             	pushl  0x8(%ebp)                      
  118ae7:	68 20 35 14 00       	push   $0x143520                      
  118aec:	e8 47 28 00 00       	call   11b338 <_Objects_Get>          
  118af1:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  118af3:	83 c4 10             	add    $0x10,%esp                     
  118af6:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  118af9:	85 c0                	test   %eax,%eax                      
  118afb:	74 0f                	je     118b0c <rtems_timer_reset+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118afd:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  118b02:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  118b05:	5b                   	pop    %ebx                           
  118b06:	5e                   	pop    %esi                           
  118b07:	c9                   	leave                                 
  118b08:	c3                   	ret                                   
  118b09:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
  118b0c:	8b 43 38             	mov    0x38(%ebx),%eax                
  118b0f:	85 c0                	test   %eax,%eax                      
  118b11:	74 1d                	je     118b30 <rtems_timer_reset+0x58>
        _Watchdog_Remove( &the_timer->Ticker );                       
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
  118b13:	48                   	dec    %eax                           
  118b14:	74 3a                	je     118b50 <rtems_timer_reset+0x78>
        /*                                                            
         *  Must be dormant or time of day timer (e.g. TIMER_DORMANT, 
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
  118b16:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  118b1b:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  118b1e:	e8 9d 33 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return status;                                                  
  118b23:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118b26:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  118b29:	5b                   	pop    %ebx                           
  118b2a:	5e                   	pop    %esi                           
  118b2b:	c9                   	leave                                 
  118b2c:	c3                   	ret                                   
  118b2d:	8d 76 00             	lea    0x0(%esi),%esi                 
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
        _Watchdog_Remove( &the_timer->Ticker );                       
  118b30:	83 c3 10             	add    $0x10,%ebx                     
  118b33:	83 ec 0c             	sub    $0xc,%esp                      
  118b36:	53                   	push   %ebx                           
  118b37:	e8 c4 44 00 00       	call   11d000 <_Watchdog_Remove>      
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
  118b3c:	59                   	pop    %ecx                           
  118b3d:	5e                   	pop    %esi                           
  118b3e:	53                   	push   %ebx                           
  118b3f:	68 c0 2b 14 00       	push   $0x142bc0                      
  118b44:	e8 77 43 00 00       	call   11cec0 <_Watchdog_Insert>      
  118b49:	83 c4 10             	add    $0x10,%esp                     
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
  118b4c:	31 c0                	xor    %eax,%eax                      
  118b4e:	eb cb                	jmp    118b1b <rtems_timer_reset+0x43>
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
        _Watchdog_Remove( &the_timer->Ticker );                       
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
        Timer_server_Control *timer_server = _Timer_server;           
  118b50:	8b 35 60 35 14 00    	mov    0x143560,%esi                  
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
  118b56:	83 ec 0c             	sub    $0xc,%esp                      
  118b59:	8d 43 10             	lea    0x10(%ebx),%eax                
  118b5c:	50                   	push   %eax                           
  118b5d:	e8 9e 44 00 00       	call   11d000 <_Watchdog_Remove>      
        (*timer_server->schedule_operation)( timer_server, the_timer );
  118b62:	58                   	pop    %eax                           
  118b63:	5a                   	pop    %edx                           
  118b64:	53                   	push   %ebx                           
  118b65:	56                   	push   %esi                           
  118b66:	ff 56 04             	call   *0x4(%esi)                     
  118b69:	83 c4 10             	add    $0x10,%esp                     
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
  118b6c:	31 c0                	xor    %eax,%eax                      
  118b6e:	eb ab                	jmp    118b1b <rtems_timer_reset+0x43>
                                                                      

00118b70 <rtems_timer_server_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
  118b70:	55                   	push   %ebp                           
  118b71:	89 e5                	mov    %esp,%ebp                      
  118b73:	57                   	push   %edi                           
  118b74:	56                   	push   %esi                           
  118b75:	53                   	push   %ebx                           
  118b76:	83 ec 2c             	sub    $0x2c,%esp                     
  118b79:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  118b7c:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
  118b7f:	8b 1d 60 35 14 00    	mov    0x143560,%ebx                  
                                                                      
  if ( !timer_server )                                                
  118b85:	85 db                	test   %ebx,%ebx                      
  118b87:	0f 84 9f 00 00 00    	je     118c2c <rtems_timer_server_fire_after+0xbc>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
  118b8d:	85 f6                	test   %esi,%esi                      
  118b8f:	0f 84 a3 00 00 00    	je     118c38 <rtems_timer_server_fire_after+0xc8>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
  118b95:	85 ff                	test   %edi,%edi                      
  118b97:	75 0f                	jne    118ba8 <rtems_timer_server_fire_after+0x38>
    return RTEMS_INVALID_NUMBER;                                      
  118b99:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118b9e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118ba1:	5b                   	pop    %ebx                           
  118ba2:	5e                   	pop    %esi                           
  118ba3:	5f                   	pop    %edi                           
  118ba4:	c9                   	leave                                 
  118ba5:	c3                   	ret                                   
  118ba6:	66 90                	xchg   %ax,%ax                        
  118ba8:	52                   	push   %edx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  118ba9:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  118bac:	50                   	push   %eax                           
  118bad:	ff 75 08             	pushl  0x8(%ebp)                      
  118bb0:	68 20 35 14 00       	push   $0x143520                      
  118bb5:	e8 7e 27 00 00       	call   11b338 <_Objects_Get>          
  118bba:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  118bbc:	83 c4 10             	add    $0x10,%esp                     
  118bbf:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  118bc2:	85 c0                	test   %eax,%eax                      
  118bc4:	75 56                	jne    118c1c <rtems_timer_server_fire_after+0xac>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  118bc6:	83 ec 0c             	sub    $0xc,%esp                      
  118bc9:	8d 42 10             	lea    0x10(%edx),%eax                
  118bcc:	50                   	push   %eax                           
  118bcd:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  118bd0:	e8 2b 44 00 00       	call   11d000 <_Watchdog_Remove>      
                                                                      
      _ISR_Disable( level );                                          
  118bd5:	9c                   	pushf                                 
  118bd6:	fa                   	cli                                   
  118bd7:	58                   	pop    %eax                           
        /*                                                            
         *  Check to see if the watchdog has just been inserted by a  
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
  118bd8:	83 c4 10             	add    $0x10,%esp                     
  118bdb:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  118bde:	8b 4a 18             	mov    0x18(%edx),%ecx                
  118be1:	85 c9                	test   %ecx,%ecx                      
  118be3:	75 5f                	jne    118c44 <rtems_timer_server_fire_after+0xd4>
        /*                                                            
         *  OK.  Now we now the timer was not rescheduled by an interrupt
         *  so we can atomically initialize it as in use.             
         */                                                           
                                                                      
        the_timer->the_class = TIMER_INTERVAL_ON_TASK;                
  118be5:	c7 42 38 01 00 00 00 	movl   $0x1,0x38(%edx)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  118bec:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  118bf3:	89 72 2c             	mov    %esi,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  118bf6:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  118bf9:	89 4a 30             	mov    %ecx,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  118bfc:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  118bff:	89 4a 34             	mov    %ecx,0x34(%edx)                
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
        the_timer->Ticker.initial = ticks;                            
  118c02:	89 7a 1c             	mov    %edi,0x1c(%edx)                
      _ISR_Enable( level );                                           
  118c05:	50                   	push   %eax                           
  118c06:	9d                   	popf                                  
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
  118c07:	83 ec 08             	sub    $0x8,%esp                      
  118c0a:	52                   	push   %edx                           
  118c0b:	53                   	push   %ebx                           
  118c0c:	ff 53 04             	call   *0x4(%ebx)                     
                                                                      
      _Thread_Enable_dispatch();                                      
  118c0f:	e8 ac 32 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  118c14:	83 c4 10             	add    $0x10,%esp                     
  118c17:	31 c0                	xor    %eax,%eax                      
  118c19:	eb 83                	jmp    118b9e <rtems_timer_server_fire_after+0x2e>
  118c1b:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118c1c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  118c21:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118c24:	5b                   	pop    %ebx                           
  118c25:	5e                   	pop    %esi                           
  118c26:	5f                   	pop    %edi                           
  118c27:	c9                   	leave                                 
  118c28:	c3                   	ret                                   
  118c29:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
  118c2c:	b8 0e 00 00 00       	mov    $0xe,%eax                      
  118c31:	e9 68 ff ff ff       	jmp    118b9e <rtems_timer_server_fire_after+0x2e>
  118c36:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118c38:	b8 09 00 00 00       	mov    $0x9,%eax                      
  118c3d:	e9 5c ff ff ff       	jmp    118b9e <rtems_timer_server_fire_after+0x2e>
  118c42:	66 90                	xchg   %ax,%ax                        
         *  Check to see if the watchdog has just been inserted by a  
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
          _ISR_Enable( level );                                       
  118c44:	50                   	push   %eax                           
  118c45:	9d                   	popf                                  
          _Thread_Enable_dispatch();                                  
  118c46:	e8 75 32 00 00       	call   11bec0 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  118c4b:	31 c0                	xor    %eax,%eax                      
  118c4d:	e9 4c ff ff ff       	jmp    118b9e <rtems_timer_server_fire_after+0x2e>
                                                                      

00118c54 <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
  118c54:	55                   	push   %ebp                           
  118c55:	89 e5                	mov    %esp,%ebp                      
  118c57:	57                   	push   %edi                           
  118c58:	56                   	push   %esi                           
  118c59:	53                   	push   %ebx                           
  118c5a:	83 ec 2c             	sub    $0x2c,%esp                     
  118c5d:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  118c60:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
  118c63:	8b 1d 60 35 14 00    	mov    0x143560,%ebx                  
                                                                      
  if ( !timer_server )                                                
  118c69:	85 db                	test   %ebx,%ebx                      
  118c6b:	0f 84 d7 00 00 00    	je     118d48 <rtems_timer_server_fire_when+0xf4>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
  118c71:	80 3d 04 2b 14 00 00 	cmpb   $0x0,0x142b04                  
  118c78:	0f 84 aa 00 00 00    	je     118d28 <rtems_timer_server_fire_when+0xd4><== NEVER TAKEN
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
  118c7e:	85 f6                	test   %esi,%esi                      
  118c80:	0f 84 b2 00 00 00    	je     118d38 <rtems_timer_server_fire_when+0xe4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
  118c86:	83 ec 0c             	sub    $0xc,%esp                      
  118c89:	57                   	push   %edi                           
  118c8a:	e8 95 d1 ff ff       	call   115e24 <_TOD_Validate>         
  118c8f:	83 c4 10             	add    $0x10,%esp                     
  118c92:	84 c0                	test   %al,%al                        
  118c94:	75 0e                	jne    118ca4 <rtems_timer_server_fire_when+0x50>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
  118c96:	b8 14 00 00 00       	mov    $0x14,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118c9b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118c9e:	5b                   	pop    %ebx                           
  118c9f:	5e                   	pop    %esi                           
  118ca0:	5f                   	pop    %edi                           
  118ca1:	c9                   	leave                                 
  118ca2:	c3                   	ret                                   
  118ca3:	90                   	nop                                   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  118ca4:	83 ec 0c             	sub    $0xc,%esp                      
  118ca7:	57                   	push   %edi                           
  118ca8:	e8 eb d0 ff ff       	call   115d98 <_TOD_To_seconds>       
  118cad:	89 c7                	mov    %eax,%edi                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  118caf:	83 c4 10             	add    $0x10,%esp                     
  118cb2:	3b 05 88 2b 14 00    	cmp    0x142b88,%eax                  
  118cb8:	76 dc                	jbe    118c96 <rtems_timer_server_fire_when+0x42>
  118cba:	52                   	push   %edx                           
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  118cbb:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  118cbe:	50                   	push   %eax                           
  118cbf:	ff 75 08             	pushl  0x8(%ebp)                      
  118cc2:	68 20 35 14 00       	push   $0x143520                      
  118cc7:	e8 6c 26 00 00       	call   11b338 <_Objects_Get>          
  118ccc:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  118cce:	83 c4 10             	add    $0x10,%esp                     
  118cd1:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  118cd4:	85 c0                	test   %eax,%eax                      
  118cd6:	75 7c                	jne    118d54 <rtems_timer_server_fire_when+0x100>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  118cd8:	83 ec 0c             	sub    $0xc,%esp                      
  118cdb:	8d 42 10             	lea    0x10(%edx),%eax                
  118cde:	50                   	push   %eax                           
  118cdf:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  118ce2:	e8 19 43 00 00       	call   11d000 <_Watchdog_Remove>      
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
  118ce7:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  118cea:	c7 42 38 03 00 00 00 	movl   $0x3,0x38(%edx)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  118cf1:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  118cf8:	89 72 2c             	mov    %esi,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  118cfb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  118cfe:	89 42 30             	mov    %eax,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  118d01:	8b 45 14             	mov    0x14(%ebp),%eax                
  118d04:	89 42 34             	mov    %eax,0x34(%edx)                
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
  118d07:	2b 3d 88 2b 14 00    	sub    0x142b88,%edi                  
  118d0d:	89 7a 1c             	mov    %edi,0x1c(%edx)                
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
  118d10:	58                   	pop    %eax                           
  118d11:	59                   	pop    %ecx                           
  118d12:	52                   	push   %edx                           
  118d13:	53                   	push   %ebx                           
  118d14:	ff 53 04             	call   *0x4(%ebx)                     
                                                                      
      _Thread_Enable_dispatch();                                      
  118d17:	e8 a4 31 00 00       	call   11bec0 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  118d1c:	83 c4 10             	add    $0x10,%esp                     
  118d1f:	31 c0                	xor    %eax,%eax                      
  118d21:	e9 75 ff ff ff       	jmp    118c9b <rtems_timer_server_fire_when+0x47>
  118d26:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
  118d28:	b8 0b 00 00 00       	mov    $0xb,%eax                      <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118d2d:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  118d30:	5b                   	pop    %ebx                           <== NOT EXECUTED
  118d31:	5e                   	pop    %esi                           <== NOT EXECUTED
  118d32:	5f                   	pop    %edi                           <== NOT EXECUTED
  118d33:	c9                   	leave                                 <== NOT EXECUTED
  118d34:	c3                   	ret                                   <== NOT EXECUTED
  118d35:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118d38:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118d3d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118d40:	5b                   	pop    %ebx                           
  118d41:	5e                   	pop    %esi                           
  118d42:	5f                   	pop    %edi                           
  118d43:	c9                   	leave                                 
  118d44:	c3                   	ret                                   
  118d45:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
  118d48:	b8 0e 00 00 00       	mov    $0xe,%eax                      
  118d4d:	e9 49 ff ff ff       	jmp    118c9b <rtems_timer_server_fire_when+0x47>
  118d52:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118d54:	b8 04 00 00 00       	mov    $0x4,%eax                      
  118d59:	e9 3d ff ff ff       	jmp    118c9b <rtems_timer_server_fire_when+0x47>
                                                                      

0010be7c <sched_get_priority_max>: #include <rtems/posix/priority.h> int sched_get_priority_max( int policy ) {
  10be7c:	55                   	push   %ebp                           
  10be7d:	89 e5                	mov    %esp,%ebp                      
  10be7f:	83 ec 08             	sub    $0x8,%esp                      
  10be82:	8b 45 08             	mov    0x8(%ebp),%eax                 
  switch ( policy ) {                                                 
  10be85:	85 c0                	test   %eax,%eax                      
  10be87:	78 0a                	js     10be93 <sched_get_priority_max+0x17>
  10be89:	83 f8 02             	cmp    $0x2,%eax                      
  10be8c:	7e 1a                	jle    10bea8 <sched_get_priority_max+0x2c>
  10be8e:	83 f8 04             	cmp    $0x4,%eax                      
  10be91:	74 15                	je     10bea8 <sched_get_priority_max+0x2c><== ALWAYS TAKEN
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  10be93:	e8 3c 81 00 00       	call   113fd4 <__errno>               
  10be98:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10be9e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
}                                                                     
  10bea3:	c9                   	leave                                 
  10bea4:	c3                   	ret                                   
  10bea5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
  10bea8:	0f b6 05 3c 4e 12 00 	movzbl 0x124e3c,%eax                  
  10beaf:	48                   	dec    %eax                           
}                                                                     
  10beb0:	c9                   	leave                                 
  10beb1:	c3                   	ret                                   
                                                                      

0010beb4 <sched_get_priority_min>: #include <rtems/posix/priority.h> int sched_get_priority_min( int policy ) {
  10beb4:	55                   	push   %ebp                           
  10beb5:	89 e5                	mov    %esp,%ebp                      
  10beb7:	83 ec 08             	sub    $0x8,%esp                      
  10beba:	8b 45 08             	mov    0x8(%ebp),%eax                 
  switch ( policy ) {                                                 
  10bebd:	85 c0                	test   %eax,%eax                      
  10bebf:	78 0a                	js     10becb <sched_get_priority_min+0x17>
  10bec1:	83 f8 02             	cmp    $0x2,%eax                      
  10bec4:	7e 1a                	jle    10bee0 <sched_get_priority_min+0x2c><== ALWAYS TAKEN
  10bec6:	83 f8 04             	cmp    $0x4,%eax                      <== NOT EXECUTED
  10bec9:	74 15                	je     10bee0 <sched_get_priority_min+0x2c><== NOT EXECUTED
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  10becb:	e8 04 81 00 00       	call   113fd4 <__errno>               
  10bed0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10bed6:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
}                                                                     
  10bedb:	c9                   	leave                                 
  10bedc:	c3                   	ret                                   
  10bedd:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
  10bee0:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  10bee5:	c9                   	leave                                 
  10bee6:	c3                   	ret                                   
                                                                      

0010bee8 <sched_rr_get_interval>: int sched_rr_get_interval( pid_t pid, struct timespec *interval ) {
  10bee8:	55                   	push   %ebp                           
  10bee9:	89 e5                	mov    %esp,%ebp                      
  10beeb:	56                   	push   %esi                           
  10beec:	53                   	push   %ebx                           
  10beed:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10bef0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
  10bef3:	85 f6                	test   %esi,%esi                      
  10bef5:	75 21                	jne    10bf18 <sched_rr_get_interval+0x30><== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  if ( !interval )                                                    
  10bef7:	85 db                	test   %ebx,%ebx                      
  10bef9:	74 38                	je     10bf33 <sched_rr_get_interval+0x4b>
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval );      
  10befb:	83 ec 08             	sub    $0x8,%esp                      
  10befe:	53                   	push   %ebx                           
  10beff:	ff 35 00 91 12 00    	pushl  0x129100                       
  10bf05:	e8 c6 35 00 00       	call   10f4d0 <_Timespec_From_ticks>  
  return 0;                                                           
  10bf0a:	83 c4 10             	add    $0x10,%esp                     
  10bf0d:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10bf0f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bf12:	5b                   	pop    %ebx                           
  10bf13:	5e                   	pop    %esi                           
  10bf14:	c9                   	leave                                 
  10bf15:	c3                   	ret                                   
  10bf16:	66 90                	xchg   %ax,%ax                        
{                                                                     
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
  10bf18:	e8 d3 c8 ff ff       	call   1087f0 <getpid>                
  10bf1d:	39 f0                	cmp    %esi,%eax                      
  10bf1f:	74 d6                	je     10bef7 <sched_rr_get_interval+0xf>
    rtems_set_errno_and_return_minus_one( ESRCH );                    
  10bf21:	e8 ae 80 00 00       	call   113fd4 <__errno>               
  10bf26:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    
  10bf2c:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10bf31:	eb dc                	jmp    10bf0f <sched_rr_get_interval+0x27>
                                                                      
  if ( !interval )                                                    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10bf33:	e8 9c 80 00 00       	call   113fd4 <__errno>               
  10bf38:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10bf3e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10bf43:	eb ca                	jmp    10bf0f <sched_rr_get_interval+0x27>
                                                                      

0010e64c <sem_close>: */ int sem_close( sem_t *sem ) {
  10e64c:	55                   	push   %ebp                           
  10e64d:	89 e5                	mov    %esp,%ebp                      
  10e64f:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10e652:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  sem_t             *id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Get( &_POSIX_Semaphore_Information, (Objects_Id)*id, location );
  10e655:	50                   	push   %eax                           
  10e656:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e659:	ff 30                	pushl  (%eax)                         
  10e65b:	68 e0 de 12 00       	push   $0x12dee0                      
  10e660:	e8 bf 21 00 00       	call   110824 <_Objects_Get>          
  switch ( location ) {                                               
  10e665:	83 c4 10             	add    $0x10,%esp                     
  10e668:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e66b:	85 d2                	test   %edx,%edx                      
  10e66d:	74 15                	je     10e684 <sem_close+0x38>        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10e66f:	e8 a8 8f 00 00       	call   11761c <__errno>               
  10e674:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10e67a:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10e67f:	c9                   	leave                                 
  10e680:	c3                   	ret                                   
  10e681:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_semaphore->open_count -= 1;                                 
  10e684:	ff 48 18             	decl   0x18(%eax)                     
      _POSIX_Semaphore_Delete( the_semaphore );                       
  10e687:	83 ec 0c             	sub    $0xc,%esp                      
  10e68a:	50                   	push   %eax                           
  10e68b:	e8 54 64 00 00       	call   114ae4 <_POSIX_Semaphore_Delete>
      _Thread_Enable_dispatch();                                      
  10e690:	e8 97 2d 00 00       	call   11142c <_Thread_Enable_dispatch>
      return 0;                                                       
  10e695:	83 c4 10             	add    $0x10,%esp                     
  10e698:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10e69a:	c9                   	leave                                 
  10e69b:	c3                   	ret                                   
                                                                      

0010e69c <sem_destroy>: */ int sem_destroy( sem_t *sem ) {
  10e69c:	55                   	push   %ebp                           
  10e69d:	89 e5                	mov    %esp,%ebp                      
  10e69f:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10e6a2:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e6a5:	50                   	push   %eax                           
  10e6a6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e6a9:	ff 30                	pushl  (%eax)                         
  10e6ab:	68 e0 de 12 00       	push   $0x12dee0                      
  10e6b0:	e8 6f 21 00 00       	call   110824 <_Objects_Get>          
  switch ( location ) {                                               
  10e6b5:	83 c4 10             	add    $0x10,%esp                     
  10e6b8:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e6bb:	85 d2                	test   %edx,%edx                      
  10e6bd:	74 15                	je     10e6d4 <sem_destroy+0x38>      
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10e6bf:	e8 58 8f 00 00       	call   11761c <__errno>               
  10e6c4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10e6ca:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10e6cf:	c9                   	leave                                 
  10e6d0:	c3                   	ret                                   
  10e6d1:	8d 76 00             	lea    0x0(%esi),%esi                 
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
  10e6d4:	80 78 14 00          	cmpb   $0x0,0x14(%eax)                
  10e6d8:	75 16                	jne    10e6f0 <sem_destroy+0x54>      
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EINVAL );               
      }                                                               
                                                                      
      _POSIX_Semaphore_Delete( the_semaphore );                       
  10e6da:	83 ec 0c             	sub    $0xc,%esp                      
  10e6dd:	50                   	push   %eax                           
  10e6de:	e8 01 64 00 00       	call   114ae4 <_POSIX_Semaphore_Delete>
      _Thread_Enable_dispatch();                                      
  10e6e3:	e8 44 2d 00 00       	call   11142c <_Thread_Enable_dispatch>
      return 0;                                                       
  10e6e8:	83 c4 10             	add    $0x10,%esp                     
  10e6eb:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10e6ed:	c9                   	leave                                 
  10e6ee:	c3                   	ret                                   
  10e6ef:	90                   	nop                                   
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
        _Thread_Enable_dispatch();                                    
  10e6f0:	e8 37 2d 00 00       	call   11142c <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EINVAL );               
  10e6f5:	e8 22 8f 00 00       	call   11761c <__errno>               
  10e6fa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10e700:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10e705:	c9                   	leave                                 
  10e706:	c3                   	ret                                   
                                                                      

0010e708 <sem_getvalue>: int sem_getvalue( sem_t *sem, int *sval ) {
  10e708:	55                   	push   %ebp                           
  10e709:	89 e5                	mov    %esp,%ebp                      
  10e70b:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10e70e:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e711:	50                   	push   %eax                           
  10e712:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e715:	ff 30                	pushl  (%eax)                         
  10e717:	68 e0 de 12 00       	push   $0x12dee0                      
  10e71c:	e8 03 21 00 00       	call   110824 <_Objects_Get>          
  switch ( location ) {                                               
  10e721:	83 c4 10             	add    $0x10,%esp                     
  10e724:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e727:	85 d2                	test   %edx,%edx                      
  10e729:	74 15                	je     10e740 <sem_getvalue+0x38>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10e72b:	e8 ec 8e 00 00       	call   11761c <__errno>               
  10e730:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10e736:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10e73b:	c9                   	leave                                 
  10e73c:	c3                   	ret                                   
  10e73d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); 
  10e740:	8b 50 64             	mov    0x64(%eax),%edx                
  10e743:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10e746:	89 10                	mov    %edx,(%eax)                    
      _Thread_Enable_dispatch();                                      
  10e748:	e8 df 2c 00 00       	call   11142c <_Thread_Enable_dispatch>
      return 0;                                                       
  10e74d:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10e74f:	c9                   	leave                                 
  10e750:	c3                   	ret                                   
                                                                      

0010e79c <sem_open>: int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) {
  10e79c:	55                   	push   %ebp                           
  10e79d:	89 e5                	mov    %esp,%ebp                      
  10e79f:	57                   	push   %edi                           
  10e7a0:	56                   	push   %esi                           
  10e7a1:	53                   	push   %ebx                           
  10e7a2:	83 ec 2c             	sub    $0x2c,%esp                     
  10e7a5:	8b 75 08             	mov    0x8(%ebp),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10e7a8:	a1 d0 db 12 00       	mov    0x12dbd0,%eax                  
  10e7ad:	40                   	inc    %eax                           
  10e7ae:	a3 d0 db 12 00       	mov    %eax,0x12dbd0                  
  POSIX_Semaphore_Control   *the_semaphore;                           
  Objects_Locations          location;                                
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
  10e7b3:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10e7b6:	81 e7 00 02 00 00    	and    $0x200,%edi                    
  10e7bc:	0f 85 86 00 00 00    	jne    10e848 <sem_open+0xac>         
  /* unsigned int value */                                            
)                                                                     
{                                                                     
  va_list                    arg;                                     
  mode_t                     mode;                                    
  unsigned int               value = 0;                               
  10e7c2:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)               
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
    va_end(arg);                                                      
  }                                                                   
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
  10e7c9:	83 ec 08             	sub    $0x8,%esp                      
  10e7cc:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10e7cf:	50                   	push   %eax                           
  10e7d0:	56                   	push   %esi                           
  10e7d1:	e8 5e 63 00 00       	call   114b34 <_POSIX_Semaphore_Name_to_id>
  10e7d6:	89 c3                	mov    %eax,%ebx                      
   *  and we can just return a pointer to the id.  Otherwise we may   
   *  need to check to see if this is a "semaphore does not exist"    
   *  or some other miscellaneous error on the name.                  
   */                                                                 
                                                                      
  if ( status ) {                                                     
  10e7d8:	83 c4 10             	add    $0x10,%esp                     
  10e7db:	85 c0                	test   %eax,%eax                      
  10e7dd:	74 25                	je     10e804 <sem_open+0x68>         
    /*                                                                
     * Unless provided a valid name that did not already exist        
     * and we are willing to create then it is an error.              
     */                                                               
                                                                      
    if ( !( status == ENOENT && (oflag & O_CREAT) ) ) {               
  10e7df:	83 f8 02             	cmp    $0x2,%eax                      
  10e7e2:	75 04                	jne    10e7e8 <sem_open+0x4c>         <== NEVER TAKEN
  10e7e4:	85 ff                	test   %edi,%edi                      
  10e7e6:	75 6c                	jne    10e854 <sem_open+0xb8>         
      _Thread_Enable_dispatch();                                      
  10e7e8:	e8 3f 2c 00 00       	call   11142c <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( status, sem_t * );   
  10e7ed:	e8 2a 8e 00 00       	call   11761c <__errno>               
  10e7f2:	89 18                	mov    %ebx,(%eax)                    
  10e7f4:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
    id = &the_semaphore->Semaphore_id;                                
  #else                                                               
    id = (sem_t *)&the_semaphore->Object.id;                          
  #endif                                                              
  return id;                                                          
}                                                                     
  10e7f9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e7fc:	5b                   	pop    %ebx                           
  10e7fd:	5e                   	pop    %esi                           
  10e7fe:	5f                   	pop    %edi                           
  10e7ff:	c9                   	leave                                 
  10e800:	c3                   	ret                                   
  10e801:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
  10e804:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10e807:	25 00 0a 00 00       	and    $0xa00,%eax                    
  10e80c:	3d 00 0a 00 00       	cmp    $0xa00,%eax                    
  10e811:	74 65                	je     10e878 <sem_open+0xdc>         
  10e813:	50                   	push   %eax                           
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
    }                                                                 
                                                                      
    the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location );
  10e814:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10e817:	50                   	push   %eax                           
  10e818:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10e81b:	68 e0 de 12 00       	push   $0x12dee0                      
  10e820:	e8 ff 1f 00 00       	call   110824 <_Objects_Get>          
  10e825:	89 45 e0             	mov    %eax,-0x20(%ebp)               
    the_semaphore->open_count += 1;                                   
  10e828:	ff 40 18             	incl   0x18(%eax)                     
    _Thread_Enable_dispatch();                                        
  10e82b:	e8 fc 2b 00 00       	call   11142c <_Thread_Enable_dispatch>
    _Thread_Enable_dispatch();                                        
  10e830:	e8 f7 2b 00 00       	call   11142c <_Thread_Enable_dispatch>
    goto return_id;                                                   
  10e835:	83 c4 10             	add    $0x10,%esp                     
return_id:                                                            
  #if defined(RTEMS_USE_16_BIT_OBJECT)                                
    the_semaphore->Semaphore_id = the_semaphore->Object.id;           
    id = &the_semaphore->Semaphore_id;                                
  #else                                                               
    id = (sem_t *)&the_semaphore->Object.id;                          
  10e838:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10e83b:	83 c0 08             	add    $0x8,%eax                      
  #endif                                                              
  return id;                                                          
}                                                                     
  10e83e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10e841:	5b                   	pop    %ebx                           
  10e842:	5e                   	pop    %esi                           
  10e843:	5f                   	pop    %edi                           
  10e844:	c9                   	leave                                 
  10e845:	c3                   	ret                                   
  10e846:	66 90                	xchg   %ax,%ax                        
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
    va_start(arg, oflag);                                             
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
  10e848:	8b 45 14             	mov    0x14(%ebp),%eax                
  10e84b:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10e84e:	e9 76 ff ff ff       	jmp    10e7c9 <sem_open+0x2d>         
  10e853:	90                   	nop                                   
  /*                                                                  
   *  At this point, the semaphore does not exist and everything has been
   *  checked. We should go ahead and create a semaphore.             
   */                                                                 
                                                                      
  status =_POSIX_Semaphore_Create_support(                            
  10e854:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10e857:	50                   	push   %eax                           
  10e858:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10e85b:	6a 00                	push   $0x0                           
  10e85d:	56                   	push   %esi                           
  10e85e:	e8 75 61 00 00       	call   1149d8 <_POSIX_Semaphore_Create_support>
  10e863:	89 c3                	mov    %eax,%ebx                      
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
  10e865:	e8 c2 2b 00 00       	call   11142c <_Thread_Enable_dispatch>
                                                                      
  if ( status == -1 )                                                 
  10e86a:	83 c4 10             	add    $0x10,%esp                     
  10e86d:	43                   	inc    %ebx                           
  10e86e:	75 c8                	jne    10e838 <sem_open+0x9c>         
    return SEM_FAILED;                                                
  10e870:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10e875:	eb c7                	jmp    10e83e <sem_open+0xa2>         
  10e877:	90                   	nop                                   
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _Thread_Enable_dispatch();                                      
  10e878:	e8 af 2b 00 00       	call   11142c <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
  10e87d:	e8 9a 8d 00 00       	call   11761c <__errno>               
  10e882:	c7 00 11 00 00 00    	movl   $0x11,(%eax)                   
  10e888:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10e88d:	eb af                	jmp    10e83e <sem_open+0xa2>         
                                                                      

0010e890 <sem_post>: */ int sem_post( sem_t *sem ) {
  10e890:	55                   	push   %ebp                           
  10e891:	89 e5                	mov    %esp,%ebp                      
  10e893:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10e896:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e899:	50                   	push   %eax                           
  10e89a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10e89d:	ff 30                	pushl  (%eax)                         
  10e89f:	68 e0 de 12 00       	push   $0x12dee0                      
  10e8a4:	e8 7b 1f 00 00       	call   110824 <_Objects_Get>          
  switch ( location ) {                                               
  10e8a9:	83 c4 10             	add    $0x10,%esp                     
  10e8ac:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10e8af:	85 c9                	test   %ecx,%ecx                      
  10e8b1:	74 15                	je     10e8c8 <sem_post+0x38>         
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10e8b3:	e8 64 8d 00 00       	call   11761c <__errno>               
  10e8b8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10e8be:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10e8c3:	c9                   	leave                                 
  10e8c4:	c3                   	ret                                   
  10e8c5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Surrender(                                      
  10e8c8:	52                   	push   %edx                           
  10e8c9:	6a 00                	push   $0x0                           
  10e8cb:	ff 70 08             	pushl  0x8(%eax)                      
  10e8ce:	83 c0 1c             	add    $0x1c,%eax                     
  10e8d1:	50                   	push   %eax                           
  10e8d2:	e8 61 15 00 00       	call   10fe38 <_CORE_semaphore_Surrender>
        NULL         /* XXX need to define a routine to handle this case */
#else                                                                 
        NULL                                                          
#endif                                                                
      );                                                              
      _Thread_Enable_dispatch();                                      
  10e8d7:	e8 50 2b 00 00       	call   11142c <_Thread_Enable_dispatch>
      return 0;                                                       
  10e8dc:	83 c4 10             	add    $0x10,%esp                     
  10e8df:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10e8e1:	c9                   	leave                                 
  10e8e2:	c3                   	ret                                   
                                                                      

0010e8e4 <sem_timedwait>: int sem_timedwait( sem_t *sem, const struct timespec *abstime ) {
  10e8e4:	55                   	push   %ebp                           
  10e8e5:	89 e5                	mov    %esp,%ebp                      
  10e8e7:	53                   	push   %ebx                           
  10e8e8:	83 ec 1c             	sub    $0x1c,%esp                     
  10e8eb:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  10e8ee:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e8f1:	50                   	push   %eax                           
  10e8f2:	ff 75 0c             	pushl  0xc(%ebp)                      
  10e8f5:	e8 6e 55 00 00       	call   113e68 <_POSIX_Absolute_timeout_to_ticks>
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
  10e8fa:	83 c4 10             	add    $0x10,%esp                     
  10e8fd:	83 f8 03             	cmp    $0x3,%eax                      
  10e900:	74 16                	je     10e918 <sem_timedwait+0x34>    <== ALWAYS TAKEN
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 
  10e902:	50                   	push   %eax                           <== NOT EXECUTED
  10e903:	ff 75 f4             	pushl  -0xc(%ebp)                     <== NOT EXECUTED
  10e906:	6a 00                	push   $0x0                           <== NOT EXECUTED
  10e908:	53                   	push   %ebx                           <== NOT EXECUTED
  10e909:	e8 92 62 00 00       	call   114ba0 <_POSIX_Semaphore_Wait_support><== NOT EXECUTED
  10e90e:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
         lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )               
      rtems_set_errno_and_return_minus_one( ETIMEDOUT );              
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10e911:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10e914:	c9                   	leave                                 <== NOT EXECUTED
  10e915:	c3                   	ret                                   <== NOT EXECUTED
  10e916:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 
  10e918:	52                   	push   %edx                           
  10e919:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10e91c:	6a 01                	push   $0x1                           
  10e91e:	53                   	push   %ebx                           
  10e91f:	e8 7c 62 00 00       	call   114ba0 <_POSIX_Semaphore_Wait_support>
  10e924:	83 c4 10             	add    $0x10,%esp                     
         lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )               
      rtems_set_errno_and_return_minus_one( ETIMEDOUT );              
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10e927:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e92a:	c9                   	leave                                 
  10e92b:	c3                   	ret                                   
                                                                      

0010b33c <setitimer>: int setitimer( int which, const struct itimerval *value, struct itimerval *ovalue ) {
  10b33c:	55                   	push   %ebp                           
  10b33d:	89 e5                	mov    %esp,%ebp                      
  10b33f:	83 ec 08             	sub    $0x8,%esp                      
  if ( !value )                                                       
  10b342:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10b345:	85 d2                	test   %edx,%edx                      
  10b347:	74 33                	je     10b37c <setitimer+0x40>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  if ( !ovalue )                                                      
  10b349:	8b 45 10             	mov    0x10(%ebp),%eax                
  10b34c:	85 c0                	test   %eax,%eax                      
  10b34e:	74 2c                	je     10b37c <setitimer+0x40>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
  10b350:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)                 
  10b354:	76 12                	jbe    10b368 <setitimer+0x2c>        
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10b356:	e8 99 86 00 00       	call   1139f4 <__errno>               
  10b35b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
}                                                                     
  10b361:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b366:	c9                   	leave                                 
  10b367:	c3                   	ret                                   
                                                                      
  switch ( which ) {                                                  
    case ITIMER_REAL:                                                 
    case ITIMER_VIRTUAL:                                              
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
  10b368:	e8 87 86 00 00       	call   1139f4 <__errno>               
  10b36d:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b373:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b378:	c9                   	leave                                 
  10b379:	c3                   	ret                                   
  10b37a:	66 90                	xchg   %ax,%ax                        
{                                                                     
  if ( !value )                                                       
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  if ( !ovalue )                                                      
    rtems_set_errno_and_return_minus_one( EFAULT );                   
  10b37c:	e8 73 86 00 00       	call   1139f4 <__errno>               
  10b381:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)                    
  10b387:	eb d8                	jmp    10b361 <setitimer+0x25>        
                                                                      

0010bd8c <sigaction>: int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) {
  10bd8c:	55                   	push   %ebp                           
  10bd8d:	89 e5                	mov    %esp,%ebp                      
  10bd8f:	57                   	push   %edi                           
  10bd90:	56                   	push   %esi                           
  10bd91:	53                   	push   %ebx                           
  10bd92:	83 ec 1c             	sub    $0x1c,%esp                     
  10bd95:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10bd98:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10bd9b:	8b 55 10             	mov    0x10(%ebp),%edx                
  ISR_Level     level;                                                
                                                                      
  if ( oact )                                                         
  10bd9e:	85 d2                	test   %edx,%edx                      
  10bda0:	74 13                	je     10bdb5 <sigaction+0x29>        
    *oact = _POSIX_signals_Vectors[ sig ];                            
  10bda2:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx             
  10bda5:	8d 34 8d 60 a4 12 00 	lea    0x12a460(,%ecx,4),%esi         
  10bdac:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10bdb1:	89 d7                	mov    %edx,%edi                      
  10bdb3:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  if ( !sig )                                                         
  10bdb5:	85 db                	test   %ebx,%ebx                      
  10bdb7:	74 77                	je     10be30 <sigaction+0xa4>        
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  10bdb9:	8d 53 ff             	lea    -0x1(%ebx),%edx                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  10bdbc:	83 fa 1f             	cmp    $0x1f,%edx                     
  10bdbf:	77 6f                	ja     10be30 <sigaction+0xa4>        
   *                                                                  
   *  NOTE: Solaris documentation claims to "silently enforce" this which
   *        contradicts the POSIX specification.                      
   */                                                                 
                                                                      
  if ( sig == SIGKILL )                                               
  10bdc1:	83 fb 09             	cmp    $0x9,%ebx                      
  10bdc4:	74 6a                	je     10be30 <sigaction+0xa4>        
  /*                                                                  
   *  Evaluate the new action structure and set the global signal vector
   *  appropriately.                                                  
   */                                                                 
                                                                      
  if ( act ) {                                                        
  10bdc6:	85 c0                	test   %eax,%eax                      
  10bdc8:	74 62                	je     10be2c <sigaction+0xa0>        <== NEVER TAKEN
    /*                                                                
     *  Unless the user is installing the default signal actions, then
     *  we can just copy the provided sigaction structure into the vectors.
     */                                                               
                                                                      
    _ISR_Disable( level );                                            
  10bdca:	9c                   	pushf                                 
  10bdcb:	fa                   	cli                                   
  10bdcc:	8f 45 e4             	popl   -0x1c(%ebp)                    
      if ( act->sa_handler == SIG_DFL ) {                             
  10bdcf:	8b 50 08             	mov    0x8(%eax),%edx                 
  10bdd2:	85 d2                	test   %edx,%edx                      
  10bdd4:	74 36                	je     10be0c <sigaction+0x80>        
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
      } else {                                                        
         _POSIX_signals_Clear_process_signals( sig );                 
  10bdd6:	83 ec 0c             	sub    $0xc,%esp                      
  10bdd9:	53                   	push   %ebx                           
  10bdda:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10bddd:	e8 da 57 00 00       	call   1115bc <_POSIX_signals_Clear_process_signals>
         _POSIX_signals_Vectors[ sig ] = *act;                        
  10bde2:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx             
  10bde5:	8d 14 95 60 a4 12 00 	lea    0x12a460(,%edx,4),%edx         
  10bdec:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10bdf1:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10bdf4:	89 d7                	mov    %edx,%edi                      
  10bdf6:	89 c6                	mov    %eax,%esi                      
  10bdf8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  10bdfa:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
    _ISR_Enable( level );                                             
  10bdfd:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10be00:	9d                   	popf                                  
   *      now (signals not posted when SIG_IGN).                      
   *    + If we are now ignoring a signal that was previously pending,
   *      we clear the pending signal indicator.                      
   */                                                                 
                                                                      
  return 0;                                                           
  10be01:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10be03:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10be06:	5b                   	pop    %ebx                           
  10be07:	5e                   	pop    %esi                           
  10be08:	5f                   	pop    %edi                           
  10be09:	c9                   	leave                                 
  10be0a:	c3                   	ret                                   
  10be0b:	90                   	nop                                   
     *  we can just copy the provided sigaction structure into the vectors.
     */                                                               
                                                                      
    _ISR_Disable( level );                                            
      if ( act->sa_handler == SIG_DFL ) {                             
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
  10be0c:	8d 34 5b             	lea    (%ebx,%ebx,2),%esi             
  10be0f:	c1 e6 02             	shl    $0x2,%esi                      
  10be12:	8d 86 60 a4 12 00    	lea    0x12a460(%esi),%eax            
  10be18:	81 c6 e0 38 12 00    	add    $0x1238e0,%esi                 
  10be1e:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10be23:	89 c7                	mov    %eax,%edi                      
  10be25:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  10be27:	eb d4                	jmp    10bdfd <sigaction+0x71>        
  10be29:	8d 76 00             	lea    0x0(%esi),%esi                 
   *      now (signals not posted when SIG_IGN).                      
   *    + If we are now ignoring a signal that was previously pending,
   *      we clear the pending signal indicator.                      
   */                                                                 
                                                                      
  return 0;                                                           
  10be2c:	31 c0                	xor    %eax,%eax                      
  10be2e:	eb d3                	jmp    10be03 <sigaction+0x77>        <== NOT EXECUTED
   *  NOTE: Solaris documentation claims to "silently enforce" this which
   *        contradicts the POSIX specification.                      
   */                                                                 
                                                                      
  if ( sig == SIGKILL )                                               
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10be30:	e8 ab 84 00 00       	call   1142e0 <__errno>               
  10be35:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10be3b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10be40:	eb c1                	jmp    10be03 <sigaction+0x77>        
                                                                      

0010c164 <sigtimedwait>: int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) {
  10c164:	55                   	push   %ebp                           
  10c165:	89 e5                	mov    %esp,%ebp                      
  10c167:	57                   	push   %edi                           
  10c168:	56                   	push   %esi                           
  10c169:	53                   	push   %ebx                           
  10c16a:	83 ec 2c             	sub    $0x2c,%esp                     
  10c16d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c170:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10c173:	8b 75 10             	mov    0x10(%ebp),%esi                
  ISR_Level          level;                                           
                                                                      
  /*                                                                  
   *  Error check parameters before disabling interrupts.             
   */                                                                 
  if ( !set )                                                         
  10c176:	85 db                	test   %ebx,%ebx                      
  10c178:	0f 84 9e 01 00 00    	je     10c31c <sigtimedwait+0x1b8>    
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  if ( timeout ) {                                                    
  10c17e:	85 f6                	test   %esi,%esi                      
  10c180:	0f 84 3e 01 00 00    	je     10c2c4 <sigtimedwait+0x160>    
                                                                      
    if ( !_Timespec_Is_valid( timeout ) )                             
  10c186:	83 ec 0c             	sub    $0xc,%esp                      
  10c189:	56                   	push   %esi                           
  10c18a:	e8 55 36 00 00       	call   10f7e4 <_Timespec_Is_valid>    
  10c18f:	83 c4 10             	add    $0x10,%esp                     
  10c192:	84 c0                	test   %al,%al                        
  10c194:	0f 84 82 01 00 00    	je     10c31c <sigtimedwait+0x1b8>    
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
  10c19a:	83 ec 0c             	sub    $0xc,%esp                      
  10c19d:	56                   	push   %esi                           
  10c19e:	e8 a9 36 00 00       	call   10f84c <_Timespec_To_ticks>    
                                                                      
    if ( !interval )                                                  
  10c1a3:	83 c4 10             	add    $0x10,%esp                     
  10c1a6:	85 c0                	test   %eax,%eax                      
  10c1a8:	0f 84 6e 01 00 00    	je     10c31c <sigtimedwait+0x1b8>    <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
  10c1ae:	85 ff                	test   %edi,%edi                      
  10c1b0:	0f 84 18 01 00 00    	je     10c2ce <sigtimedwait+0x16a>    <== NEVER TAKEN
                                                                      
  the_thread = _Thread_Executing;                                     
  10c1b6:	8b 0d 98 9b 12 00    	mov    0x129b98,%ecx                  
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  10c1bc:	8b 91 ec 00 00 00    	mov    0xec(%ecx),%edx                
   *  What if they are already pending?                               
   */                                                                 
                                                                      
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
  10c1c2:	9c                   	pushf                                 
  10c1c3:	fa                   	cli                                   
  10c1c4:	8f 45 d0             	popl   -0x30(%ebp)                    
  if ( *set & api->signals_pending ) {                                
  10c1c7:	8b 33                	mov    (%ebx),%esi                    
  10c1c9:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
  10c1cc:	8b b2 d4 00 00 00    	mov    0xd4(%edx),%esi                
  10c1d2:	85 75 d4             	test   %esi,-0x2c(%ebp)               
  10c1d5:	0f 85 fd 00 00 00    	jne    10c2d8 <sigtimedwait+0x174>    
    return the_info->si_signo;                                        
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
  10c1db:	8b 35 08 9e 12 00    	mov    0x129e08,%esi                  
  10c1e1:	85 75 d4             	test   %esi,-0x2c(%ebp)               
  10c1e4:	0f 85 96 00 00 00    	jne    10c280 <sigtimedwait+0x11c>    
    the_info->si_code = SI_USER;                                      
    the_info->si_value.sival_int = 0;                                 
    return signo;                                                     
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
  10c1ea:	c7 07 ff ff ff ff    	movl   $0xffffffff,(%edi)             
  10c1f0:	8b 35 f0 95 12 00    	mov    0x1295f0,%esi                  
  10c1f6:	46                   	inc    %esi                           
  10c1f7:	89 35 f0 95 12 00    	mov    %esi,0x1295f0                  
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
  10c1fd:	c7 41 44 a0 9d 12 00 	movl   $0x129da0,0x44(%ecx)           
    the_thread->Wait.return_code     = EINTR;                         
  10c204:	c7 41 34 04 00 00 00 	movl   $0x4,0x34(%ecx)                
    the_thread->Wait.option          = *set;                          
  10c20b:	8b 33                	mov    (%ebx),%esi                    
  10c20d:	89 71 30             	mov    %esi,0x30(%ecx)                
    the_thread->Wait.return_argument = the_info;                      
  10c210:	89 79 28             	mov    %edi,0x28(%ecx)                
                                                                      
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;
  10c213:	c7 05 d0 9d 12 00 01 	movl   $0x1,0x129dd0                  
  10c21a:	00 00 00                                                    
    _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue );
    _ISR_Enable( level );                                             
  10c21d:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10c220:	9d                   	popf                                  
    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval );    
  10c221:	51                   	push   %ecx                           
  10c222:	68 24 f5 10 00       	push   $0x10f524                      
  10c227:	50                   	push   %eax                           
  10c228:	68 a0 9d 12 00       	push   $0x129da0                      
  10c22d:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10c230:	e8 c3 2f 00 00       	call   10f1f8 <_Thread_queue_Enqueue_with_handler>
  _Thread_Enable_dispatch();                                          
  10c235:	e8 16 2b 00 00       	call   10ed50 <_Thread_Enable_dispatch>
  /*                                                                  
   * When the thread is set free by a signal, it is need to eliminate 
   * the signal.                                                      
   */                                                                 
                                                                      
  _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false );
  10c23a:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10c241:	6a 00                	push   $0x0                           
  10c243:	57                   	push   %edi                           
  10c244:	ff 37                	pushl  (%edi)                         
  10c246:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10c249:	52                   	push   %edx                           
  10c24a:	e8 59 5a 00 00       	call   111ca8 <_POSIX_signals_Clear_signals>
  /* Set errno only if return code is not EINTR or                    
   * if EINTR was caused by a signal being caught, which              
   * was not in our set.                                              
   */                                                                 
                                                                      
  if ( (_Thread_Executing->Wait.return_code != EINTR)                 
  10c24f:	83 c4 20             	add    $0x20,%esp                     
  10c252:	a1 98 9b 12 00       	mov    0x129b98,%eax                  
  10c257:	83 78 34 04          	cmpl   $0x4,0x34(%eax)                
  10c25b:	0f 85 d3 00 00 00    	jne    10c334 <sigtimedwait+0x1d0>    
       || !(*set & signo_to_mask( the_info->si_signo )) ) {           
  10c261:	8b 37                	mov    (%edi),%esi                    
  10c263:	8d 4e ff             	lea    -0x1(%esi),%ecx                
  10c266:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10c26b:	d3 e0                	shl    %cl,%eax                       
  10c26d:	85 03                	test   %eax,(%ebx)                    
  10c26f:	0f 84 bf 00 00 00    	je     10c334 <sigtimedwait+0x1d0>    
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10c275:	89 f0                	mov    %esi,%eax                      
  10c277:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c27a:	5b                   	pop    %ebx                           
  10c27b:	5e                   	pop    %esi                           
  10c27c:	5f                   	pop    %edi                           
  10c27d:	c9                   	leave                                 
  10c27e:	c3                   	ret                                   
  10c27f:	90                   	nop                                   
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
  10c280:	83 ec 0c             	sub    $0xc,%esp                      
  10c283:	56                   	push   %esi                           
  10c284:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10c287:	e8 94 fe ff ff       	call   10c120 <_POSIX_signals_Get_lowest>
  10c28c:	89 c6                	mov    %eax,%esi                      
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
  10c28e:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10c295:	6a 01                	push   $0x1                           
  10c297:	57                   	push   %edi                           
  10c298:	50                   	push   %eax                           
  10c299:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10c29c:	52                   	push   %edx                           
  10c29d:	e8 06 5a 00 00       	call   111ca8 <_POSIX_signals_Clear_signals>
    _ISR_Enable( level );                                             
  10c2a2:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10c2a5:	9d                   	popf                                  
                                                                      
    the_info->si_signo = signo;                                       
  10c2a6:	89 37                	mov    %esi,(%edi)                    
    the_info->si_code = SI_USER;                                      
  10c2a8:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)                 
    the_info->si_value.sival_int = 0;                                 
  10c2af:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)                 
    return signo;                                                     
  10c2b6:	83 c4 20             	add    $0x20,%esp                     
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10c2b9:	89 f0                	mov    %esi,%eax                      
  10c2bb:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c2be:	5b                   	pop    %ebx                           
  10c2bf:	5e                   	pop    %esi                           
  10c2c0:	5f                   	pop    %edi                           
  10c2c1:	c9                   	leave                                 
  10c2c2:	c3                   	ret                                   
  10c2c3:	90                   	nop                                   
                                                                      
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  10c2c4:	31 c0                	xor    %eax,%eax                      
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
  10c2c6:	85 ff                	test   %edi,%edi                      
  10c2c8:	0f 85 e8 fe ff ff    	jne    10c1b6 <sigtimedwait+0x52>     
  10c2ce:	8d 7d dc             	lea    -0x24(%ebp),%edi               
  10c2d1:	e9 e0 fe ff ff       	jmp    10c1b6 <sigtimedwait+0x52>     
  10c2d6:	66 90                	xchg   %ax,%ax                        
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
  if ( *set & api->signals_pending ) {                                
    /* XXX real info later */                                         
    the_info->si_signo = _POSIX_signals_Get_lowest( api->signals_pending );
  10c2d8:	83 ec 0c             	sub    $0xc,%esp                      
  10c2db:	56                   	push   %esi                           
  10c2dc:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10c2df:	e8 3c fe ff ff       	call   10c120 <_POSIX_signals_Get_lowest>
  10c2e4:	89 07                	mov    %eax,(%edi)                    
    _POSIX_signals_Clear_signals(                                     
  10c2e6:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10c2ed:	6a 00                	push   $0x0                           
  10c2ef:	57                   	push   %edi                           
  10c2f0:	50                   	push   %eax                           
  10c2f1:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10c2f4:	52                   	push   %edx                           
  10c2f5:	e8 ae 59 00 00       	call   111ca8 <_POSIX_signals_Clear_signals>
      the_info->si_signo,                                             
      the_info,                                                       
      false,                                                          
      false                                                           
    );                                                                
    _ISR_Enable( level );                                             
  10c2fa:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10c2fd:	9d                   	popf                                  
                                                                      
    the_info->si_code = SI_USER;                                      
  10c2fe:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)                 
    the_info->si_value.sival_int = 0;                                 
  10c305:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)                 
    return the_info->si_signo;                                        
  10c30c:	8b 37                	mov    (%edi),%esi                    
  10c30e:	83 c4 20             	add    $0x20,%esp                     
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10c311:	89 f0                	mov    %esi,%eax                      
  10c313:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c316:	5b                   	pop    %ebx                           
  10c317:	5e                   	pop    %esi                           
  10c318:	5f                   	pop    %edi                           
  10c319:	c9                   	leave                                 
  10c31a:	c3                   	ret                                   
  10c31b:	90                   	nop                                   
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
                                                                      
    if ( !interval )                                                  
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  10c31c:	e8 03 86 00 00       	call   114924 <__errno>               
  10c321:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10c327:	be ff ff ff ff       	mov    $0xffffffff,%esi               
  10c32c:	e9 44 ff ff ff       	jmp    10c275 <sigtimedwait+0x111>    
  10c331:	8d 76 00             	lea    0x0(%esi),%esi                 
   * was not in our set.                                              
   */                                                                 
                                                                      
  if ( (_Thread_Executing->Wait.return_code != EINTR)                 
       || !(*set & signo_to_mask( the_info->si_signo )) ) {           
    errno = _Thread_Executing->Wait.return_code;                      
  10c334:	e8 eb 85 00 00       	call   114924 <__errno>               
  10c339:	8b 15 98 9b 12 00    	mov    0x129b98,%edx                  
  10c33f:	8b 52 34             	mov    0x34(%edx),%edx                
  10c342:	89 10                	mov    %edx,(%eax)                    
    return -1;                                                        
  10c344:	be ff ff ff ff       	mov    $0xffffffff,%esi               
  10c349:	e9 27 ff ff ff       	jmp    10c275 <sigtimedwait+0x111>    
                                                                      

0010dfec <sigwait>: int sigwait( const sigset_t *set, int *sig ) {
  10dfec:	55                   	push   %ebp                           
  10dfed:	89 e5                	mov    %esp,%ebp                      
  10dfef:	53                   	push   %ebx                           
  10dff0:	83 ec 08             	sub    $0x8,%esp                      
  10dff3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  int status;                                                         
                                                                      
  status = sigtimedwait( set, NULL, NULL );                           
  10dff6:	6a 00                	push   $0x0                           
  10dff8:	6a 00                	push   $0x0                           
  10dffa:	ff 75 08             	pushl  0x8(%ebp)                      
  10dffd:	e8 e6 fd ff ff       	call   10dde8 <sigtimedwait>          
                                                                      
  if ( status != -1 ) {                                               
  10e002:	83 c4 10             	add    $0x10,%esp                     
  10e005:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10e008:	74 0e                	je     10e018 <sigwait+0x2c>          
    if ( sig )                                                        
  10e00a:	85 db                	test   %ebx,%ebx                      
  10e00c:	74 16                	je     10e024 <sigwait+0x38>          <== NEVER TAKEN
      *sig = status;                                                  
  10e00e:	89 03                	mov    %eax,(%ebx)                    
    return 0;                                                         
  10e010:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
  10e012:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e015:	c9                   	leave                                 
  10e016:	c3                   	ret                                   
  10e017:	90                   	nop                                   
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
  }                                                                   
                                                                      
  return errno;                                                       
  10e018:	e8 d7 80 00 00       	call   1160f4 <__errno>               
  10e01d:	8b 00                	mov    (%eax),%eax                    
}                                                                     
  10e01f:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10e022:	c9                   	leave                                 
  10e023:	c3                   	ret                                   
  status = sigtimedwait( set, NULL, NULL );                           
                                                                      
  if ( status != -1 ) {                                               
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
  10e024:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
  10e026:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10e029:	c9                   	leave                                 <== NOT EXECUTED
  10e02a:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010b548 <timer_create>: int timer_create( clockid_t clock_id, struct sigevent *evp, timer_t *timerid ) {
  10b548:	55                   	push   %ebp                           
  10b549:	89 e5                	mov    %esp,%ebp                      
  10b54b:	56                   	push   %esi                           
  10b54c:	53                   	push   %ebx                           
  10b54d:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b550:	8b 75 10             	mov    0x10(%ebp),%esi                
  POSIX_Timer_Control *ptimer;                                        
                                                                      
  if ( clock_id != CLOCK_REALTIME )                                   
  10b553:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)                 
  10b557:	0f 85 db 00 00 00    	jne    10b638 <timer_create+0xf0>     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !timerid )                                                     
  10b55d:	85 f6                	test   %esi,%esi                      
  10b55f:	0f 84 d3 00 00 00    	je     10b638 <timer_create+0xf0>     
 /*                                                                   
  *  The data of the structure evp are checked in order to verify if they
  *  are coherent.                                                    
  */                                                                  
                                                                      
  if (evp != NULL) {                                                  
  10b565:	85 db                	test   %ebx,%ebx                      
  10b567:	74 21                	je     10b58a <timer_create+0x42>     
    /* The structure has data */                                      
    if ( ( evp->sigev_notify != SIGEV_NONE ) &&                       
  10b569:	8b 03                	mov    (%ebx),%eax                    
  10b56b:	48                   	dec    %eax                           
  10b56c:	83 f8 01             	cmp    $0x1,%eax                      
  10b56f:	0f 87 c3 00 00 00    	ja     10b638 <timer_create+0xf0>     <== NEVER TAKEN
         ( evp->sigev_notify != SIGEV_SIGNAL ) ) {                    
       /* The value of the field sigev_notify is not valid */         
       rtems_set_errno_and_return_minus_one( EINVAL );                
     }                                                                
                                                                      
     if ( !evp->sigev_signo )                                         
  10b575:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10b578:	85 c0                	test   %eax,%eax                      
  10b57a:	0f 84 b8 00 00 00    	je     10b638 <timer_create+0xf0>     <== NEVER TAKEN
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  10b580:	48                   	dec    %eax                           
       rtems_set_errno_and_return_minus_one( EINVAL );                
                                                                      
     if ( !is_valid_signo(evp->sigev_signo) )                         
  10b581:	83 f8 1f             	cmp    $0x1f,%eax                     
  10b584:	0f 87 ae 00 00 00    	ja     10b638 <timer_create+0xf0>     <== NEVER TAKEN
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b58a:	a1 90 a1 12 00       	mov    0x12a190,%eax                  
  10b58f:	40                   	inc    %eax                           
  10b590:	a3 90 a1 12 00       	mov    %eax,0x12a190                  
 *  the inactive chain of free timer control blocks.                  
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Allocate( void )
{                                                                     
  return (POSIX_Timer_Control *) _Objects_Allocate( &_POSIX_Timer_Information );
  10b595:	83 ec 0c             	sub    $0xc,%esp                      
  10b598:	68 e0 a4 12 00       	push   $0x12a4e0                      
  10b59d:	e8 9a 1e 00 00       	call   10d43c <_Objects_Allocate>     
                                                                      
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
  10b5a2:	83 c4 10             	add    $0x10,%esp                     
  10b5a5:	85 c0                	test   %eax,%eax                      
  10b5a7:	0f 84 a2 00 00 00    	je     10b64f <timer_create+0x107>    
    rtems_set_errno_and_return_minus_one( EAGAIN );                   
  }                                                                   
                                                                      
  /* The data of the created timer are stored to use them later */    
                                                                      
  ptimer->state     = POSIX_TIMER_STATE_CREATE_NEW;                   
  10b5ad:	c6 40 3c 02          	movb   $0x2,0x3c(%eax)                
  ptimer->thread_id = _Thread_Executing->Object.id;                   
  10b5b1:	8b 15 38 a7 12 00    	mov    0x12a738,%edx                  
  10b5b7:	8b 52 08             	mov    0x8(%edx),%edx                 
  10b5ba:	89 50 38             	mov    %edx,0x38(%eax)                
                                                                      
  if ( evp != NULL ) {                                                
  10b5bd:	85 db                	test   %ebx,%ebx                      
  10b5bf:	74 11                	je     10b5d2 <timer_create+0x8a>     
    ptimer->inf.sigev_notify = evp->sigev_notify;                     
  10b5c1:	8b 13                	mov    (%ebx),%edx                    
  10b5c3:	89 50 40             	mov    %edx,0x40(%eax)                
    ptimer->inf.sigev_signo  = evp->sigev_signo;                      
  10b5c6:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b5c9:	89 50 44             	mov    %edx,0x44(%eax)                
    ptimer->inf.sigev_value  = evp->sigev_value;                      
  10b5cc:	8b 53 08             	mov    0x8(%ebx),%edx                 
  10b5cf:	89 50 48             	mov    %edx,0x48(%eax)                
  }                                                                   
                                                                      
  ptimer->overrun  = 0;                                               
  10b5d2:	c7 40 68 00 00 00 00 	movl   $0x0,0x68(%eax)                
  ptimer->timer_data.it_value.tv_sec     = 0;                         
  10b5d9:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)                
  ptimer->timer_data.it_value.tv_nsec    = 0;                         
  10b5e0:	c7 40 60 00 00 00 00 	movl   $0x0,0x60(%eax)                
  ptimer->timer_data.it_interval.tv_sec  = 0;                         
  10b5e7:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
  ptimer->timer_data.it_interval.tv_nsec = 0;                         
  10b5ee:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10b5f5:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10b5fc:	c7 40 2c 00 00 00 00 	movl   $0x0,0x2c(%eax)                
  the_watchdog->id        = id;                                       
  10b603:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10b60a:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10b611:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b614:	0f b7 da             	movzwl %dx,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b617:	8b 0d fc a4 12 00    	mov    0x12a4fc,%ecx                  
  10b61d:	89 04 99             	mov    %eax,(%ecx,%ebx,4)             
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
  10b620:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
                                                                      
  _Watchdog_Initialize( &ptimer->Timer, NULL, 0, NULL );              
  _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0);   
                                                                      
  *timerid  = ptimer->Object.id;                                      
  10b627:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10b629:	e8 4a 2e 00 00       	call   10e478 <_Thread_Enable_dispatch>
  return 0;                                                           
  10b62e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b630:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b633:	5b                   	pop    %ebx                           
  10b634:	5e                   	pop    %esi                           
  10b635:	c9                   	leave                                 
  10b636:	c3                   	ret                                   
  10b637:	90                   	nop                                   
                                                                      
     if ( !evp->sigev_signo )                                         
       rtems_set_errno_and_return_minus_one( EINVAL );                
                                                                      
     if ( !is_valid_signo(evp->sigev_signo) )                         
       rtems_set_errno_and_return_minus_one( EINVAL );                
  10b638:	e8 57 8a 00 00       	call   114094 <__errno>               
  10b63d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b643:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0);   
                                                                      
  *timerid  = ptimer->Object.id;                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10b648:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b64b:	5b                   	pop    %ebx                           
  10b64c:	5e                   	pop    %esi                           
  10b64d:	c9                   	leave                                 
  10b64e:	c3                   	ret                                   
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
    _Thread_Enable_dispatch();                                        
  10b64f:	e8 24 2e 00 00       	call   10e478 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( EAGAIN );                   
  10b654:	e8 3b 8a 00 00       	call   114094 <__errno>               
  10b659:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    
  10b65f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b664:	eb ca                	jmp    10b630 <timer_create+0xe8>     
                                                                      

0010ba8c <timer_delete>: int timer_delete( timer_t timerid ) {
  10ba8c:	55                   	push   %ebp                           
  10ba8d:	89 e5                	mov    %esp,%ebp                      
  10ba8f:	53                   	push   %ebx                           
  10ba90:	83 ec 18             	sub    $0x18,%esp                     
  *       because rtems_timer_delete stops the timer before deleting it.
  */                                                                  
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10ba93:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
  10ba96:	50                   	push   %eax                           
  10ba97:	ff 75 08             	pushl  0x8(%ebp)                      
  10ba9a:	68 a0 a3 12 00       	push   $0x12a3a0                      
  10ba9f:	e8 9c 21 00 00       	call   10dc40 <_Objects_Get>          
  10baa4:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10baa6:	83 c4 10             	add    $0x10,%esp                     
  10baa9:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10baac:	85 c9                	test   %ecx,%ecx                      
  10baae:	74 18                	je     10bac8 <timer_delete+0x3c>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10bab0:	e8 df 8c 00 00       	call   114794 <__errno>               
  10bab5:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10babb:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10bac0:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bac3:	c9                   	leave                                 
  10bac4:	c3                   	ret                                   
  10bac5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object );   
  10bac8:	83 ec 08             	sub    $0x8,%esp                      
  10bacb:	50                   	push   %eax                           
  10bacc:	68 a0 a3 12 00       	push   $0x12a3a0                      
  10bad1:	e8 32 1d 00 00       	call   10d808 <_Objects_Close>        
      ptimer->state = POSIX_TIMER_STATE_FREE;                         
  10bad6:	c6 43 3c 01          	movb   $0x1,0x3c(%ebx)                
      (void) _Watchdog_Remove( &ptimer->Timer );                      
  10bada:	8d 43 10             	lea    0x10(%ebx),%eax                
  10badd:	89 04 24             	mov    %eax,(%esp)                    
  10bae0:	e8 7f 3c 00 00       	call   10f764 <_Watchdog_Remove>      
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Timer_Free (                         
  POSIX_Timer_Control *the_timer                                      
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Timer_Information, &the_timer->Object );     
  10bae5:	58                   	pop    %eax                           
  10bae6:	5a                   	pop    %edx                           
  10bae7:	53                   	push   %ebx                           
  10bae8:	68 a0 a3 12 00       	push   $0x12a3a0                      
  10baed:	e8 0e 20 00 00       	call   10db00 <_Objects_Free>         
      _POSIX_Timer_Free( ptimer );                                    
      _Thread_Enable_dispatch();                                      
  10baf2:	e8 d1 2c 00 00       	call   10e7c8 <_Thread_Enable_dispatch>
      return 0;                                                       
  10baf7:	83 c4 10             	add    $0x10,%esp                     
  10bafa:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10bafc:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10baff:	c9                   	leave                                 
  10bb00:	c3                   	ret                                   
                                                                      

0010c948 <timer_getoverrun>: * its execution, _POSIX_Timer_TSR will have to set this counter to 0. */ int timer_getoverrun( timer_t timerid ) {
  10c948:	55                   	push   %ebp                           
  10c949:	89 e5                	mov    %esp,%ebp                      
  10c94b:	53                   	push   %ebx                           
  10c94c:	83 ec 18             	sub    $0x18,%esp                     
  int                  overrun;                                       
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10c94f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
  10c952:	50                   	push   %eax                           
  10c953:	ff 75 08             	pushl  0x8(%ebp)                      
  10c956:	68 80 ba 12 00       	push   $0x12ba80                      
  10c95b:	e8 24 21 00 00       	call   10ea84 <_Objects_Get>          
  switch ( location ) {                                               
  10c960:	83 c4 10             	add    $0x10,%esp                     
  10c963:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c966:	85 d2                	test   %edx,%edx                      
  10c968:	74 1a                	je     10c984 <timer_getoverrun+0x3c> 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10c96a:	e8 a5 88 00 00       	call   115214 <__errno>               
  10c96f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10c975:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
}                                                                     
  10c97a:	89 d8                	mov    %ebx,%eax                      
  10c97c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c97f:	c9                   	leave                                 
  10c980:	c3                   	ret                                   
  10c981:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      overrun = ptimer->overrun;                                      
  10c984:	8b 58 68             	mov    0x68(%eax),%ebx                
      ptimer->overrun = 0;                                            
  10c987:	c7 40 68 00 00 00 00 	movl   $0x0,0x68(%eax)                
      _Thread_Enable_dispatch();                                      
  10c98e:	e8 79 2c 00 00       	call   10f60c <_Thread_Enable_dispatch>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10c993:	89 d8                	mov    %ebx,%eax                      
  10c995:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c998:	c9                   	leave                                 
  10c999:	c3                   	ret                                   
                                                                      

0010c99c <timer_gettime>: int timer_gettime( timer_t timerid, struct itimerspec *value ) {
  10c99c:	55                   	push   %ebp                           
  10c99d:	89 e5                	mov    %esp,%ebp                      
  10c99f:	56                   	push   %esi                           
  10c9a0:	53                   	push   %ebx                           
  10c9a1:	83 ec 10             	sub    $0x10,%esp                     
  10c9a4:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
  struct timespec      current_time;                                  
  Watchdog_Interval    left;                                          
                                                                      
  if ( !value )                                                       
  10c9a7:	85 db                	test   %ebx,%ebx                      
  10c9a9:	74 65                	je     10ca10 <timer_gettime+0x74>    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /* Reads the current time */                                        
  _TOD_Get( ¤t_time );                                          
  10c9ab:	83 ec 0c             	sub    $0xc,%esp                      
  10c9ae:	8d 45 ec             	lea    -0x14(%ebp),%eax               
  10c9b1:	50                   	push   %eax                           
  10c9b2:	e8 fd 16 00 00       	call   10e0b4 <_TOD_Get>              
  10c9b7:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10c9ba:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c9bd:	50                   	push   %eax                           
  10c9be:	ff 75 08             	pushl  0x8(%ebp)                      
  10c9c1:	68 80 ba 12 00       	push   $0x12ba80                      
  10c9c6:	e8 b9 20 00 00       	call   10ea84 <_Objects_Get>          
  10c9cb:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  10c9cd:	83 c4 10             	add    $0x10,%esp                     
  10c9d0:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10c9d3:	85 c0                	test   %eax,%eax                      
  10c9d5:	75 39                	jne    10ca10 <timer_gettime+0x74>    
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
  10c9d7:	a1 64 b8 12 00       	mov    0x12b864,%eax                  
        _Watchdog_Ticks_since_boot;                          /* now */
                                                                      
      _Timespec_From_ticks( left, &value->it_value );                 
  10c9dc:	83 ec 08             	sub    $0x8,%esp                      
  10c9df:	8d 53 08             	lea    0x8(%ebx),%edx                 
  10c9e2:	52                   	push   %edx                           
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
  10c9e3:	8b 56 1c             	mov    0x1c(%esi),%edx                
  10c9e6:	03 56 24             	add    0x24(%esi),%edx                
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
  10c9e9:	29 c2                	sub    %eax,%edx                      
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
        _Watchdog_Ticks_since_boot;                          /* now */
                                                                      
      _Timespec_From_ticks( left, &value->it_value );                 
  10c9eb:	52                   	push   %edx                           
  10c9ec:	e8 af 36 00 00       	call   1100a0 <_Timespec_From_ticks>  
                                                                      
      value->it_interval  = ptimer->timer_data.it_interval;           
  10c9f1:	8b 46 54             	mov    0x54(%esi),%eax                
  10c9f4:	8b 56 58             	mov    0x58(%esi),%edx                
  10c9f7:	89 03                	mov    %eax,(%ebx)                    
  10c9f9:	89 53 04             	mov    %edx,0x4(%ebx)                 
                                                                      
      _Thread_Enable_dispatch();                                      
  10c9fc:	e8 0b 2c 00 00       	call   10f60c <_Thread_Enable_dispatch>
      return 0;                                                       
  10ca01:	83 c4 10             	add    $0x10,%esp                     
  10ca04:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10ca06:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ca09:	5b                   	pop    %ebx                           
  10ca0a:	5e                   	pop    %esi                           
  10ca0b:	c9                   	leave                                 
  10ca0c:	c3                   	ret                                   
  10ca0d:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10ca10:	e8 ff 87 00 00       	call   115214 <__errno>               
  10ca15:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10ca1b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ca20:	eb e4                	jmp    10ca06 <timer_gettime+0x6a>    
                                                                      

0010b668 <timer_settime>: timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue ) {
  10b668:	55                   	push   %ebp                           
  10b669:	89 e5                	mov    %esp,%ebp                      
  10b66b:	57                   	push   %edi                           
  10b66c:	56                   	push   %esi                           
  10b66d:	53                   	push   %ebx                           
  10b66e:	83 ec 3c             	sub    $0x3c,%esp                     
  10b671:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Locations    location;                                      
  bool                 activated;                                     
  uint32_t             initial_period;                                
  struct itimerspec    normalize;                                     
                                                                      
  if ( !value )                                                       
  10b674:	85 db                	test   %ebx,%ebx                      
  10b676:	0f 84 50 01 00 00    	je     10b7cc <timer_settime+0x164>   <== NEVER TAKEN
                                                                      
  /*                                                                  
   * First, it verifies if the structure "value" is correct           
   * if the number of nanoseconds is not correct return EINVAL        
   */                                                                 
  if ( !_Timespec_Is_valid( &(value->it_value) ) ) {                  
  10b67c:	83 ec 0c             	sub    $0xc,%esp                      
  10b67f:	8d 43 08             	lea    0x8(%ebx),%eax                 
  10b682:	50                   	push   %eax                           
  10b683:	e8 a8 38 00 00       	call   10ef30 <_Timespec_Is_valid>    
  10b688:	83 c4 10             	add    $0x10,%esp                     
  10b68b:	84 c0                	test   %al,%al                        
  10b68d:	0f 84 39 01 00 00    	je     10b7cc <timer_settime+0x164>   
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
  if ( !_Timespec_Is_valid( &(value->it_interval) ) ) {               
  10b693:	83 ec 0c             	sub    $0xc,%esp                      
  10b696:	53                   	push   %ebx                           
  10b697:	e8 94 38 00 00       	call   10ef30 <_Timespec_Is_valid>    
  10b69c:	83 c4 10             	add    $0x10,%esp                     
  10b69f:	84 c0                	test   %al,%al                        
  10b6a1:	0f 84 25 01 00 00    	je     10b7cc <timer_settime+0x164>   <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
  10b6a7:	83 7d 0c 04          	cmpl   $0x4,0xc(%ebp)                 
  10b6ab:	0f 84 db 00 00 00    	je     10b78c <timer_settime+0x124>   
  10b6b1:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10b6b4:	85 c0                	test   %eax,%eax                      
  10b6b6:	0f 85 10 01 00 00    	jne    10b7cc <timer_settime+0x164>   
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
  10b6bc:	8d 45 cc             	lea    -0x34(%ebp),%eax               
  10b6bf:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
  10b6c2:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b6c7:	89 c7                	mov    %eax,%edi                      
  10b6c9:	89 de                	mov    %ebx,%esi                      
  10b6cb:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
  10b6cd:	50                   	push   %eax                           
  /* If the function reaches this point, then it will be necessary to do
   * something with the structure of times of the timer: to stop, start
   * or start it again                                                
   */                                                                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10b6ce:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10b6d1:	50                   	push   %eax                           
  10b6d2:	ff 75 08             	pushl  0x8(%ebp)                      
  10b6d5:	68 e0 a4 12 00       	push   $0x12a4e0                      
  10b6da:	e8 11 22 00 00       	call   10d8f0 <_Objects_Get>          
  10b6df:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10b6e1:	83 c4 10             	add    $0x10,%esp                     
  10b6e4:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  10b6e7:	85 ff                	test   %edi,%edi                      
  10b6e9:	0f 85 dd 00 00 00    	jne    10b7cc <timer_settime+0x164>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /* First, it verifies if the timer must be stopped */           
      if ( normalize.it_value.tv_sec == 0 && normalize.it_value.tv_nsec == 0 ) {
  10b6ef:	8b 75 d4             	mov    -0x2c(%ebp),%esi               
  10b6f2:	85 f6                	test   %esi,%esi                      
  10b6f4:	75 0b                	jne    10b701 <timer_settime+0x99>    
  10b6f6:	8b 4d d8             	mov    -0x28(%ebp),%ecx               
  10b6f9:	85 c9                	test   %ecx,%ecx                      
  10b6fb:	0f 84 df 00 00 00    	je     10b7e0 <timer_settime+0x178>   
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
       }                                                              
                                                                      
       /* Convert from seconds and nanoseconds to ticks */            
       ptimer->ticks  = _Timespec_To_ticks( &value->it_interval );    
  10b701:	83 ec 0c             	sub    $0xc,%esp                      
  10b704:	53                   	push   %ebx                           
  10b705:	89 55 c0             	mov    %edx,-0x40(%ebp)               
  10b708:	e8 8b 38 00 00       	call   10ef98 <_Timespec_To_ticks>    
  10b70d:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10b710:	89 42 64             	mov    %eax,0x64(%edx)                
       initial_period = _Timespec_To_ticks( &normalize.it_value );    
  10b713:	8d 45 d4             	lea    -0x2c(%ebp),%eax               
  10b716:	89 04 24             	mov    %eax,(%esp)                    
  10b719:	e8 7a 38 00 00       	call   10ef98 <_Timespec_To_ticks>    
                                                                      
                                                                      
       activated = _POSIX_Timer_Insert_helper(                        
  10b71e:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10b721:	89 14 24             	mov    %edx,(%esp)                    
  10b724:	68 4c b8 10 00       	push   $0x10b84c                      
  10b729:	ff 72 08             	pushl  0x8(%edx)                      
  10b72c:	50                   	push   %eax                           
  10b72d:	8d 42 10             	lea    0x10(%edx),%eax                
  10b730:	50                   	push   %eax                           
  10b731:	e8 82 61 00 00       	call   1118b8 <_POSIX_Timer_Insert_helper>
         initial_period,                                              
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
  10b736:	83 c4 20             	add    $0x20,%esp                     
  10b739:	84 c0                	test   %al,%al                        
  10b73b:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10b73e:	0f 84 e8 00 00 00    	je     10b82c <timer_settime+0x1c4>   
                                                                      
       /*                                                             
        * The timer has been started and is running.  So we return the
        * old ones in "ovalue"                                        
        */                                                            
       if ( ovalue )                                                  
  10b744:	8b 45 14             	mov    0x14(%ebp),%eax                
  10b747:	85 c0                	test   %eax,%eax                      
  10b749:	0f 84 ed 00 00 00    	je     10b83c <timer_settime+0x1d4>   
         *ovalue = ptimer->timer_data;                                
  10b74f:	8d 42 54             	lea    0x54(%edx),%eax                
  10b752:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b757:	8b 7d 14             	mov    0x14(%ebp),%edi                
  10b75a:	89 c6                	mov    %eax,%esi                      
  10b75c:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
       ptimer->timer_data = normalize;                                
  10b75e:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b763:	89 c7                	mov    %eax,%edi                      
  10b765:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  10b768:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
       /* Indicate that the time is running */                        
       ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                  
  10b76a:	c6 42 3c 03          	movb   $0x3,0x3c(%edx)                
       _TOD_Get( &ptimer->time );                                     
  10b76e:	83 ec 0c             	sub    $0xc,%esp                      
  10b771:	83 c2 6c             	add    $0x6c,%edx                     
  10b774:	52                   	push   %edx                           
  10b775:	e8 ca 17 00 00       	call   10cf44 <_TOD_Get>              
       _Thread_Enable_dispatch();                                     
  10b77a:	e8 f9 2c 00 00       	call   10e478 <_Thread_Enable_dispatch>
       return 0;                                                      
  10b77f:	83 c4 10             	add    $0x10,%esp                     
  10b782:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b784:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b787:	5b                   	pop    %ebx                           
  10b788:	5e                   	pop    %esi                           
  10b789:	5f                   	pop    %edi                           
  10b78a:	c9                   	leave                                 
  10b78b:	c3                   	ret                                   
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
  10b78c:	8d 45 cc             	lea    -0x34(%ebp),%eax               
  10b78f:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
  10b792:	89 c7                	mov    %eax,%edi                      
  10b794:	89 de                	mov    %ebx,%esi                      
  10b796:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10b799:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
    struct timespec now;                                              
    _TOD_Get( &now );                                                 
  10b79b:	83 ec 0c             	sub    $0xc,%esp                      
  10b79e:	8d 75 dc             	lea    -0x24(%ebp),%esi               
  10b7a1:	56                   	push   %esi                           
  10b7a2:	e8 9d 17 00 00       	call   10cf44 <_TOD_Get>              
    /* Check for seconds in the past */                               
    if ( _Timespec_Greater_than( &now, &normalize.it_value ) )        
  10b7a7:	59                   	pop    %ecx                           
  10b7a8:	5f                   	pop    %edi                           
  10b7a9:	8d 7d d4             	lea    -0x2c(%ebp),%edi               
  10b7ac:	57                   	push   %edi                           
  10b7ad:	56                   	push   %esi                           
  10b7ae:	e8 59 37 00 00       	call   10ef0c <_Timespec_Greater_than>
  10b7b3:	83 c4 10             	add    $0x10,%esp                     
  10b7b6:	84 c0                	test   %al,%al                        
  10b7b8:	75 12                	jne    10b7cc <timer_settime+0x164>   
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    _Timespec_Subtract( &now, &normalize.it_value, &normalize.it_value );
  10b7ba:	52                   	push   %edx                           
  10b7bb:	57                   	push   %edi                           
  10b7bc:	57                   	push   %edi                           
  10b7bd:	56                   	push   %esi                           
  10b7be:	e8 95 37 00 00       	call   10ef58 <_Timespec_Subtract>    
  10b7c3:	83 c4 10             	add    $0x10,%esp                     
  10b7c6:	e9 02 ff ff ff       	jmp    10b6cd <timer_settime+0x65>    
  10b7cb:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10b7cc:	e8 c3 88 00 00       	call   114094 <__errno>               
  10b7d1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b7d7:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b7dc:	eb a6                	jmp    10b784 <timer_settime+0x11c>   
  10b7de:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_LOCAL:                                               
      /* First, it verifies if the timer must be stopped */           
      if ( normalize.it_value.tv_sec == 0 && normalize.it_value.tv_nsec == 0 ) {
         /* Stop the timer */                                         
         (void) _Watchdog_Remove( &ptimer->Timer );                   
  10b7e0:	83 ec 0c             	sub    $0xc,%esp                      
  10b7e3:	8d 40 10             	lea    0x10(%eax),%eax                
  10b7e6:	50                   	push   %eax                           
  10b7e7:	89 55 c0             	mov    %edx,-0x40(%ebp)               
  10b7ea:	e8 dd 3b 00 00       	call   10f3cc <_Watchdog_Remove>      
         /* The old data of the timer are returned */                 
         if ( ovalue )                                                
  10b7ef:	83 c4 10             	add    $0x10,%esp                     
  10b7f2:	8b 55 14             	mov    0x14(%ebp),%edx                
  10b7f5:	85 d2                	test   %edx,%edx                      
  10b7f7:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10b7fa:	74 48                	je     10b844 <timer_settime+0x1dc>   
           *ovalue = ptimer->timer_data;                              
  10b7fc:	8d 42 54             	lea    0x54(%edx),%eax                
  10b7ff:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b804:	8b 7d 14             	mov    0x14(%ebp),%edi                
  10b807:	89 c6                	mov    %eax,%esi                      
  10b809:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
         /* The new data are set */                                   
         ptimer->timer_data = normalize;                              
  10b80b:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b810:	89 c7                	mov    %eax,%edi                      
  10b812:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  10b815:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
         /* Indicates that the timer is created and stopped */        
         ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;               
  10b817:	c6 42 3c 04          	movb   $0x4,0x3c(%edx)                
         /* Returns with success */                                   
        _Thread_Enable_dispatch();                                    
  10b81b:	e8 58 2c 00 00       	call   10e478 <_Thread_Enable_dispatch>
        return 0;                                                     
  10b820:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b822:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b825:	5b                   	pop    %ebx                           
  10b826:	5e                   	pop    %esi                           
  10b827:	5f                   	pop    %edi                           
  10b828:	c9                   	leave                                 
  10b829:	c3                   	ret                                   
  10b82a:	66 90                	xchg   %ax,%ax                        
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
         _Thread_Enable_dispatch();                                   
  10b82c:	e8 47 2c 00 00       	call   10e478 <_Thread_Enable_dispatch>
         return 0;                                                    
  10b831:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b833:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b836:	5b                   	pop    %ebx                           
  10b837:	5e                   	pop    %esi                           
  10b838:	5f                   	pop    %edi                           
  10b839:	c9                   	leave                                 
  10b83a:	c3                   	ret                                   
  10b83b:	90                   	nop                                   
  10b83c:	8d 42 54             	lea    0x54(%edx),%eax                
  10b83f:	e9 1a ff ff ff       	jmp    10b75e <timer_settime+0xf6>    
  10b844:	8d 42 54             	lea    0x54(%edx),%eax                
  10b847:	eb c2                	jmp    10b80b <timer_settime+0x1a3>   
                                                                      

0010b458 <ualarm>: useconds_t ualarm( useconds_t useconds, useconds_t interval ) {
  10b458:	55                   	push   %ebp                           
  10b459:	89 e5                	mov    %esp,%ebp                      
  10b45b:	56                   	push   %esi                           
  10b45c:	53                   	push   %ebx                           
  10b45d:	83 ec 10             	sub    $0x10,%esp                     
  10b460:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
  10b463:	8b 0d fc a6 12 00    	mov    0x12a6fc,%ecx                  
  10b469:	85 c9                	test   %ecx,%ecx                      
  10b46b:	0f 84 8f 00 00 00    	je     10b500 <ualarm+0xa8>           
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
  10b471:	83 ec 0c             	sub    $0xc,%esp                      
  10b474:	68 e0 a6 12 00       	push   $0x12a6e0                      
  10b479:	e8 ae 3a 00 00       	call   10ef2c <_Watchdog_Remove>      
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
  10b47e:	83 e8 02             	sub    $0x2,%eax                      
  10b481:	83 c4 10             	add    $0x10,%esp                     
  10b484:	83 f8 01             	cmp    $0x1,%eax                      
  10b487:	0f 86 a3 00 00 00    	jbe    10b530 <ualarm+0xd8>           <== ALWAYS TAKEN
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
  10b48d:	31 f6                	xor    %esi,%esi                      
  /*                                                                  
   *  If useconds is non-zero, then the caller wants to schedule      
   *  the alarm repeatedly at that interval.  If the interval is      
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
  10b48f:	85 db                	test   %ebx,%ebx                      
  10b491:	74 62                	je     10b4f5 <ualarm+0x9d>           
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
  10b493:	ba 83 de 1b 43       	mov    $0x431bde83,%edx               
  10b498:	89 d8                	mov    %ebx,%eax                      
  10b49a:	f7 e2                	mul    %edx                           
  10b49c:	c1 ea 12             	shr    $0x12,%edx                     
  10b49f:	89 55 f0             	mov    %edx,-0x10(%ebp)               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
  10b4a2:	8d 04 92             	lea    (%edx,%edx,4),%eax             
  10b4a5:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4a8:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4ab:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4ae:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4b1:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4b4:	c1 e0 06             	shl    $0x6,%eax                      
  10b4b7:	29 c3                	sub    %eax,%ebx                      
  10b4b9:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax             
  10b4bc:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4bf:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b4c2:	c1 e0 03             	shl    $0x3,%eax                      
  10b4c5:	89 45 f4             	mov    %eax,-0xc(%ebp)                
    ticks = _Timespec_To_ticks( &tp );                                
  10b4c8:	83 ec 0c             	sub    $0xc,%esp                      
  10b4cb:	8d 5d f0             	lea    -0x10(%ebp),%ebx               
  10b4ce:	53                   	push   %ebx                           
  10b4cf:	e8 ac 35 00 00       	call   10ea80 <_Timespec_To_ticks>    
    if ( ticks == 0 )                                                 
      ticks = 1;                                                      
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
  10b4d4:	89 1c 24             	mov    %ebx,(%esp)                    
  10b4d7:	e8 a4 35 00 00       	call   10ea80 <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10b4dc:	a3 ec a6 12 00       	mov    %eax,0x12a6ec                  
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10b4e1:	58                   	pop    %eax                           
  10b4e2:	5a                   	pop    %edx                           
  10b4e3:	68 e0 a6 12 00       	push   $0x12a6e0                      
  10b4e8:	68 00 9e 12 00       	push   $0x129e00                      
  10b4ed:	e8 fa 38 00 00       	call   10edec <_Watchdog_Insert>      
  10b4f2:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  return remaining;                                                   
}                                                                     
  10b4f5:	89 f0                	mov    %esi,%eax                      
  10b4f7:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b4fa:	5b                   	pop    %ebx                           
  10b4fb:	5e                   	pop    %esi                           
  10b4fc:	c9                   	leave                                 
  10b4fd:	c3                   	ret                                   
  10b4fe:	66 90                	xchg   %ax,%ax                        
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10b500:	c7 05 e8 a6 12 00 00 	movl   $0x0,0x12a6e8                  
  10b507:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  10b50a:	c7 05 fc a6 12 00 1c 	movl   $0x10b41c,0x12a6fc             
  10b511:	b4 10 00                                                    
  the_watchdog->id        = id;                                       
  10b514:	c7 05 00 a7 12 00 00 	movl   $0x0,0x12a700                  
  10b51b:	00 00 00                                                    
  the_watchdog->user_data = user_data;                                
  10b51e:	c7 05 04 a7 12 00 00 	movl   $0x0,0x12a704                  
  10b525:	00 00 00                                                    
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
  10b528:	31 f6                	xor    %esi,%esi                      
  10b52a:	e9 60 ff ff ff       	jmp    10b48f <ualarm+0x37>           
  10b52f:	90                   	nop                                   
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
  10b530:	a1 f4 a6 12 00       	mov    0x12a6f4,%eax                  
  10b535:	03 05 ec a6 12 00    	add    0x12a6ec,%eax                  
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
  10b53b:	83 ec 08             	sub    $0x8,%esp                      
  10b53e:	8d 55 f0             	lea    -0x10(%ebp),%edx               
  10b541:	52                   	push   %edx                           
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
  10b542:	2b 05 f8 a6 12 00    	sub    0x12a6f8,%eax                  
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
  10b548:	50                   	push   %eax                           
  10b549:	e8 aa 34 00 00       	call   10e9f8 <_Timespec_From_ticks>  
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
  10b54e:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  10b551:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b554:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b557:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b55a:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b55d:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b560:	8d 0c 80             	lea    (%eax,%eax,4),%ecx             
  10b563:	c1 e1 06             	shl    $0x6,%ecx                      
      remaining += tp.tv_nsec / 1000;                                 
  10b566:	8b 75 f4             	mov    -0xc(%ebp),%esi                
  10b569:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax               
  10b56e:	f7 ee                	imul   %esi                           
  10b570:	89 d0                	mov    %edx,%eax                      
  10b572:	c1 f8 06             	sar    $0x6,%eax                      
  10b575:	c1 fe 1f             	sar    $0x1f,%esi                     
  10b578:	29 f0                	sub    %esi,%eax                      
  10b57a:	8d 34 08             	lea    (%eax,%ecx,1),%esi             
  10b57d:	83 c4 10             	add    $0x10,%esp                     
  10b580:	e9 0a ff ff ff       	jmp    10b48f <ualarm+0x37>