RTEMS 4.11
Annotated Report
Sat Mar 19 20:23:00 2011

0010b394 <_API_extensions_Run_postdriver>:                            
 *                                                                    
 *  _API_extensions_Run_postdriver                                    
 */                                                                   
                                                                      
void _API_extensions_Run_postdriver( void )                           
{                                                                     
  10b394:	55                   	push   %ebp                           
  10b395:	89 e5                	mov    %esp,%ebp                      
  10b397:	53                   	push   %ebx                           
  10b398:	83 ec 04             	sub    $0x4,%esp                      
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10b39b:	8b 1d 18 7a 12 00    	mov    0x127a18,%ebx                  
void _API_extensions_Run_postdriver( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10b3a1:	81 fb 1c 7a 12 00    	cmp    $0x127a1c,%ebx                 
  10b3a7:	74 10                	je     10b3b9 <_API_extensions_Run_postdriver+0x25><== NEVER TAKEN
  10b3a9:	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)();                            
  10b3ac:	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 ) {                                 
  10b3af:	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 );             
  10b3b1:	81 fb 1c 7a 12 00    	cmp    $0x127a1c,%ebx                 
  10b3b7:	75 f3                	jne    10b3ac <_API_extensions_Run_postdriver+0x18>
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)              
    if ( the_extension->postdriver_hook )                             
#endif                                                                
      (*the_extension->postdriver_hook)();                            
  }                                                                   
}                                                                     
  10b3b9:	58                   	pop    %eax                           
  10b3ba:	5b                   	pop    %ebx                           
  10b3bb:	c9                   	leave                                 
  10b3bc:	c3                   	ret                                   
                                                                      

0010b3c0 <_API_extensions_Run_postswitch>: * * _API_extensions_Run_postswitch */ void _API_extensions_Run_postswitch( void ) {
  10b3c0:	55                   	push   %ebp                           
  10b3c1:	89 e5                	mov    %esp,%ebp                      
  10b3c3:	53                   	push   %ebx                           
  10b3c4:	83 ec 04             	sub    $0x4,%esp                      
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10b3c7:	8b 1d 18 7a 12 00    	mov    0x127a18,%ebx                  
void _API_extensions_Run_postswitch( void )                           
{                                                                     
  Chain_Node             *the_node;                                   
  API_extensions_Control *the_extension;                              
                                                                      
  for ( the_node = _Chain_First( &_API_extensions_List );             
  10b3cd:	81 fb 1c 7a 12 00    	cmp    $0x127a1c,%ebx                 
  10b3d3:	74 1c                	je     10b3f1 <_API_extensions_Run_postswitch+0x31><== NEVER TAKEN
  10b3d5:	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 );           
  10b3d8:	83 ec 0c             	sub    $0xc,%esp                      
  10b3db:	ff 35 98 7d 12 00    	pushl  0x127d98                       
  10b3e1:	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 ) {                                 
  10b3e4:	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 );             
  10b3e6:	83 c4 10             	add    $0x10,%esp                     
  10b3e9:	81 fb 1c 7a 12 00    	cmp    $0x127a1c,%ebx                 
  10b3ef:	75 e7                	jne    10b3d8 <_API_extensions_Run_postswitch+0x18>
                                                                      
    the_extension = (API_extensions_Control *) the_node;              
                                                                      
    (*the_extension->postswitch_hook)( _Thread_Executing );           
  }                                                                   
}                                                                     
  10b3f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b3f4:	c9                   	leave                                 
  10b3f5:	c3                   	ret                                   
                                                                      

0010d7a0 <_CORE_RWLock_Obtain_for_reading>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) {
  10d7a0:	55                   	push   %ebp                           
  10d7a1:	89 e5                	mov    %esp,%ebp                      
  10d7a3:	57                   	push   %edi                           
  10d7a4:	56                   	push   %esi                           
  10d7a5:	53                   	push   %ebx                           
  10d7a6:	83 ec 1c             	sub    $0x1c,%esp                     
  10d7a9:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d7ac:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10d7af:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10d7b2:	8a 55 10             	mov    0x10(%ebp),%dl                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10d7b5:	8b 35 98 b6 12 00    	mov    0x12b698,%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 );                                              
  10d7bb:	9c                   	pushf                                 
  10d7bc:	fa                   	cli                                   
  10d7bd:	8f 45 e4             	popl   -0x1c(%ebp)                    
    switch ( the_rwlock->current_state ) {                            
  10d7c0:	8b 43 44             	mov    0x44(%ebx),%eax                
  10d7c3:	85 c0                	test   %eax,%eax                      
  10d7c5:	75 1d                	jne    10d7e4 <_CORE_RWLock_Obtain_for_reading+0x44>
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
  10d7c7:	c7 43 44 01 00 00 00 	movl   $0x1,0x44(%ebx)                
	the_rwlock->number_of_readers += 1;                                  
  10d7ce:	ff 43 48             	incl   0x48(%ebx)                     
	_ISR_Enable( level );                                                
  10d7d1:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d7d4:	9d                   	popf                                  
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
  10d7d5:	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 */         
}                                                                     
  10d7dc:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d7df:	5b                   	pop    %ebx                           
  10d7e0:	5e                   	pop    %esi                           
  10d7e1:	5f                   	pop    %edi                           
  10d7e2:	c9                   	leave                                 
  10d7e3:	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 ) {                            
  10d7e4:	48                   	dec    %eax                           
  10d7e5:	74 51                	je     10d838 <_CORE_RWLock_Obtain_for_reading+0x98>
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
  10d7e7:	84 d2                	test   %dl,%dl                        
  10d7e9:	75 15                	jne    10d800 <_CORE_RWLock_Obtain_for_reading+0x60>
      _ISR_Enable( level );                                           
  10d7eb:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d7ee:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10d7ef:	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 */         
}                                                                     
  10d7f6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d7f9:	5b                   	pop    %ebx                           
  10d7fa:	5e                   	pop    %esi                           
  10d7fb:	5f                   	pop    %edi                           
  10d7fc:	c9                   	leave                                 
  10d7fd:	c3                   	ret                                   
  10d7fe:	66 90                	xchg   %ax,%ax                        
  10d800:	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;            
  10d807:	89 5e 44             	mov    %ebx,0x44(%esi)                
    executing->Wait.id          = id;                                 
  10d80a:	89 7e 20             	mov    %edi,0x20(%esi)                
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
  10d80d:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)                
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10d814:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)                
    _ISR_Enable( level );                                             
  10d81b:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d81e:	9d                   	popf                                  
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10d81f:	c7 45 10 a4 d9 10 00 	movl   $0x10d9a4,0x10(%ebp)           
  10d826:	89 4d 0c             	mov    %ecx,0xc(%ebp)                 
  10d829:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10d82c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d82f:	5b                   	pop    %ebx                           
  10d830:	5e                   	pop    %esi                           
  10d831:	5f                   	pop    %edi                           
  10d832:	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(                               
  10d833:	e9 b8 1b 00 00       	jmp    10f3f0 <_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 );      
  10d838:	83 ec 0c             	sub    $0xc,%esp                      
  10d83b:	53                   	push   %ebx                           
  10d83c:	88 55 e0             	mov    %dl,-0x20(%ebp)                
  10d83f:	89 4d dc             	mov    %ecx,-0x24(%ebp)               
  10d842:	e8 d1 1e 00 00       	call   10f718 <_Thread_queue_First>   
        if ( !waiter ) {                                              
  10d847:	83 c4 10             	add    $0x10,%esp                     
  10d84a:	85 c0                	test   %eax,%eax                      
  10d84c:	8a 55 e0             	mov    -0x20(%ebp),%dl                
  10d84f:	8b 4d dc             	mov    -0x24(%ebp),%ecx               
  10d852:	75 93                	jne    10d7e7 <_CORE_RWLock_Obtain_for_reading+0x47>
	  the_rwlock->number_of_readers += 1;                                
  10d854:	ff 43 48             	incl   0x48(%ebx)                     
	  _ISR_Enable( level );                                              
  10d857:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d85a:	9d                   	popf                                  
	  executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;              
  10d85b:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)                
          return;                                                     
  10d862:	e9 75 ff ff ff       	jmp    10d7dc <_CORE_RWLock_Obtain_for_reading+0x3c>
                                                                      

0010d868 <_CORE_RWLock_Obtain_for_writing>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) {
  10d868:	55                   	push   %ebp                           
  10d869:	89 e5                	mov    %esp,%ebp                      
  10d86b:	57                   	push   %edi                           
  10d86c:	56                   	push   %esi                           
  10d86d:	53                   	push   %ebx                           
  10d86e:	83 ec 0c             	sub    $0xc,%esp                      
  10d871:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d874:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10d877:	8b 75 14             	mov    0x14(%ebp),%esi                
  10d87a:	8a 5d 10             	mov    0x10(%ebp),%bl                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10d87d:	8b 15 98 b6 12 00    	mov    0x12b698,%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 );                                              
  10d883:	9c                   	pushf                                 
  10d884:	fa                   	cli                                   
  10d885:	59                   	pop    %ecx                           
    switch ( the_rwlock->current_state ) {                            
  10d886:	83 78 44 00          	cmpl   $0x0,0x44(%eax)                
  10d88a:	75 18                	jne    10d8a4 <_CORE_RWLock_Obtain_for_writing+0x3c>
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;          
  10d88c:	c7 40 44 02 00 00 00 	movl   $0x2,0x44(%eax)                
	_ISR_Enable( level );                                                
  10d893:	51                   	push   %ecx                           
  10d894:	9d                   	popf                                  
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
  10d895:	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 */         
}                                                                     
  10d89c:	83 c4 0c             	add    $0xc,%esp                      
  10d89f:	5b                   	pop    %ebx                           
  10d8a0:	5e                   	pop    %esi                           
  10d8a1:	5f                   	pop    %edi                           
  10d8a2:	c9                   	leave                                 
  10d8a3:	c3                   	ret                                   
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
  10d8a4:	84 db                	test   %bl,%bl                        
  10d8a6:	75 14                	jne    10d8bc <_CORE_RWLock_Obtain_for_writing+0x54>
      _ISR_Enable( level );                                           
  10d8a8:	51                   	push   %ecx                           
  10d8a9:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10d8aa:	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 */         
}                                                                     
  10d8b1:	83 c4 0c             	add    $0xc,%esp                      
  10d8b4:	5b                   	pop    %ebx                           
  10d8b5:	5e                   	pop    %esi                           
  10d8b6:	5f                   	pop    %edi                           
  10d8b7:	c9                   	leave                                 
  10d8b8:	c3                   	ret                                   
  10d8b9:	8d 76 00             	lea    0x0(%esi),%esi                 
  10d8bc:	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;            
  10d8c3:	89 42 44             	mov    %eax,0x44(%edx)                
    executing->Wait.id          = id;                                 
  10d8c6:	89 7a 20             	mov    %edi,0x20(%edx)                
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE;
  10d8c9:	c7 42 30 01 00 00 00 	movl   $0x1,0x30(%edx)                
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10d8d0:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
    _ISR_Enable( level );                                             
  10d8d7:	51                   	push   %ecx                           
  10d8d8:	9d                   	popf                                  
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
  10d8d9:	c7 45 10 a4 d9 10 00 	movl   $0x10d9a4,0x10(%ebp)           
  10d8e0:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10d8e3:	89 45 08             	mov    %eax,0x8(%ebp)                 
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
  10d8e6:	83 c4 0c             	add    $0xc,%esp                      
  10d8e9:	5b                   	pop    %ebx                           
  10d8ea:	5e                   	pop    %esi                           
  10d8eb:	5f                   	pop    %edi                           
  10d8ec:	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(                               
  10d8ed:	e9 fe 1a 00 00       	jmp    10f3f0 <_Thread_queue_Enqueue_with_handler>
                                                                      

0010d8f4 <_CORE_RWLock_Release>: */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) {
  10d8f4:	55                   	push   %ebp                           
  10d8f5:	89 e5                	mov    %esp,%ebp                      
  10d8f7:	53                   	push   %ebx                           
  10d8f8:	83 ec 04             	sub    $0x4,%esp                      
  10d8fb:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
  10d8fe:	8b 0d 98 b6 12 00    	mov    0x12b698,%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 );                                              
  10d904:	9c                   	pushf                                 
  10d905:	fa                   	cli                                   
  10d906:	5a                   	pop    %edx                           
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
  10d907:	8b 43 44             	mov    0x44(%ebx),%eax                
  10d90a:	85 c0                	test   %eax,%eax                      
  10d90c:	74 7a                	je     10d988 <_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 ) {
  10d90e:	48                   	dec    %eax                           
  10d90f:	74 63                	je     10d974 <_CORE_RWLock_Release+0x80>
          return CORE_RWLOCK_SUCCESSFUL;                              
        }                                                             
    }                                                                 
                                                                      
    /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */      
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
  10d911:	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;                 
  10d918:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
  _ISR_Enable( level );                                               
  10d91f:	52                   	push   %edx                           
  10d920:	9d                   	popf                                  
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
  10d921:	83 ec 0c             	sub    $0xc,%esp                      
  10d924:	53                   	push   %ebx                           
  10d925:	e8 9e 19 00 00       	call   10f2c8 <_Thread_queue_Dequeue> 
                                                                      
  if ( next ) {                                                       
  10d92a:	83 c4 10             	add    $0x10,%esp                     
  10d92d:	85 c0                	test   %eax,%eax                      
  10d92f:	74 39                	je     10d96a <_CORE_RWLock_Release+0x76>
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
  10d931:	83 78 30 01          	cmpl   $0x1,0x30(%eax)                
  10d935:	74 61                	je     10d998 <_CORE_RWLock_Release+0xa4>
    }                                                                 
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
  10d937:	ff 43 48             	incl   0x48(%ebx)                     
    the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;       
  10d93a:	c7 43 44 01 00 00 00 	movl   $0x1,0x44(%ebx)                
  10d941:	eb 17                	jmp    10d95a <_CORE_RWLock_Release+0x66>
  10d943:	90                   	nop                                   
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
      if ( !next ||                                                   
  10d944:	83 78 30 01          	cmpl   $0x1,0x30(%eax)                
  10d948:	74 20                	je     10d96a <_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;                             
  10d94a:	ff 43 48             	incl   0x48(%ebx)                     
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
  10d94d:	83 ec 08             	sub    $0x8,%esp                      
  10d950:	50                   	push   %eax                           
  10d951:	53                   	push   %ebx                           
  10d952:	e8 a9 1c 00 00       	call   10f600 <_Thread_queue_Extract> 
    }                                                                 
  10d957:	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 );          
  10d95a:	83 ec 0c             	sub    $0xc,%esp                      
  10d95d:	53                   	push   %ebx                           
  10d95e:	e8 b5 1d 00 00       	call   10f718 <_Thread_queue_First>   
      if ( !next ||                                                   
  10d963:	83 c4 10             	add    $0x10,%esp                     
  10d966:	85 c0                	test   %eax,%eax                      
  10d968:	75 da                	jne    10d944 <_CORE_RWLock_Release+0x50>
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10d96a:	31 c0                	xor    %eax,%eax                      
  10d96c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d96f:	c9                   	leave                                 
  10d970:	c3                   	ret                                   
  10d971:	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;                                  
  10d974:	8b 43 48             	mov    0x48(%ebx),%eax                
  10d977:	48                   	dec    %eax                           
  10d978:	89 43 48             	mov    %eax,0x48(%ebx)                
	if ( the_rwlock->number_of_readers != 0 ) {                          
  10d97b:	85 c0                	test   %eax,%eax                      
  10d97d:	74 92                	je     10d911 <_CORE_RWLock_Release+0x1d>
          /* must be unlocked again */                                
	  _ISR_Enable( level );                                              
  10d97f:	52                   	push   %edx                           
  10d980:	9d                   	popf                                  
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10d981:	31 c0                	xor    %eax,%eax                      
  10d983:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d986:	c9                   	leave                                 
  10d987:	c3                   	ret                                   
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
      _ISR_Enable( level );                                           
  10d988:	52                   	push   %edx                           
  10d989:	9d                   	popf                                  
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
  10d98a:	c7 41 34 02 00 00 00 	movl   $0x2,0x34(%ecx)                
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
  10d991:	31 c0                	xor    %eax,%eax                      
  10d993:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d996:	c9                   	leave                                 
  10d997:	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;     
  10d998:	c7 43 44 02 00 00 00 	movl   $0x2,0x44(%ebx)                
      return CORE_RWLOCK_SUCCESSFUL;                                  
  10d99f:	eb c9                	jmp    10d96a <_CORE_RWLock_Release+0x76>
                                                                      

0010d9a4 <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) {
  10d9a4:	55                   	push   %ebp                           
  10d9a5:	89 e5                	mov    %esp,%ebp                      
  10d9a7:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10d9aa:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d9ad:	50                   	push   %eax                           
  10d9ae:	ff 75 08             	pushl  0x8(%ebp)                      
  10d9b1:	e8 b6 15 00 00       	call   10ef6c <_Thread_Get>           
  switch ( location ) {                                               
  10d9b6:	83 c4 10             	add    $0x10,%esp                     
  10d9b9:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d9bc:	85 d2                	test   %edx,%edx                      
  10d9be:	75 17                	jne    10d9d7 <_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 );                    
  10d9c0:	83 ec 0c             	sub    $0xc,%esp                      
  10d9c3:	50                   	push   %eax                           
  10d9c4:	e8 2f 1e 00 00       	call   10f7f8 <_Thread_queue_Process_timeout>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10d9c9:	a1 ec b0 12 00       	mov    0x12b0ec,%eax                  
  10d9ce:	48                   	dec    %eax                           
  10d9cf:	a3 ec b0 12 00       	mov    %eax,0x12b0ec                  
  10d9d4:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10d9d7:	c9                   	leave                                 
  10d9d8:	c3                   	ret                                   
                                                                      

001109c8 <_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 ) {
  1109c8:	55                   	push   %ebp                           
  1109c9:	89 e5                	mov    %esp,%ebp                      
  1109cb:	57                   	push   %edi                           
  1109cc:	56                   	push   %esi                           
  1109cd:	53                   	push   %ebx                           
  1109ce:	83 ec 0c             	sub    $0xc,%esp                      
  1109d1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  1109d4:	8b 75 10             	mov    0x10(%ebp),%esi                
  1109d7:	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;
  1109da:	89 73 44             	mov    %esi,0x44(%ebx)                
  the_message_queue->number_of_pending_messages = 0;                  
  1109dd:	c7 43 48 00 00 00 00 	movl   $0x0,0x48(%ebx)                
  the_message_queue->maximum_message_size       = maximum_message_size;
  1109e4:	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;                 
  1109e7:	c7 43 60 00 00 00 00 	movl   $0x0,0x60(%ebx)                
    the_message_queue->notify_argument = the_argument;                
  1109ee:	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)) {              
  1109f5:	a8 03                	test   $0x3,%al                       
  1109f7:	74 17                	je     110a10 <_CORE_message_queue_Initialize+0x48>
    allocated_message_size += sizeof(uint32_t);                       
  1109f9:	8d 50 04             	lea    0x4(%eax),%edx                 
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
  1109fc:	83 e2 fc             	and    $0xfffffffc,%edx               
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
  1109ff:	39 d0                	cmp    %edx,%eax                      
  110a01:	76 0f                	jbe    110a12 <_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;                                                     
  110a03:	31 c0                	xor    %eax,%eax                      
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
  110a05:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110a08:	5b                   	pop    %ebx                           
  110a09:	5e                   	pop    %esi                           
  110a0a:	5f                   	pop    %edi                           
  110a0b:	c9                   	leave                                 
  110a0c:	c3                   	ret                                   
  110a0d:	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)) {              
  110a10:	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));
  110a12:	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 *    
  110a15:	89 f8                	mov    %edi,%eax                      
  110a17:	0f af c6             	imul   %esi,%eax                      
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
  110a1a:	39 d0                	cmp    %edx,%eax                      
  110a1c:	72 e5                	jb     110a03 <_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 );               
  110a1e:	83 ec 0c             	sub    $0xc,%esp                      
  110a21:	50                   	push   %eax                           
  110a22:	e8 35 d3 ff ff       	call   10dd5c <_Workspace_Allocate>   
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
  110a27:	89 43 5c             	mov    %eax,0x5c(%ebx)                
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
  110a2a:	83 c4 10             	add    $0x10,%esp                     
  110a2d:	85 c0                	test   %eax,%eax                      
  110a2f:	74 d2                	je     110a03 <_CORE_message_queue_Initialize+0x3b>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
  110a31:	57                   	push   %edi                           
  110a32:	56                   	push   %esi                           
  110a33:	50                   	push   %eax                           
  110a34:	8d 43 68             	lea    0x68(%ebx),%eax                
  110a37:	50                   	push   %eax                           
  110a38:	e8 ab fe ff ff       	call   1108e8 <_Chain_Initialize>     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  110a3d:	8d 43 54             	lea    0x54(%ebx),%eax                
  110a40:	89 43 50             	mov    %eax,0x50(%ebx)                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  110a43:	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 );                        
  110a4a:	8d 43 50             	lea    0x50(%ebx),%eax                
  110a4d:	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(                                           
  110a50:	6a 06                	push   $0x6                           
  110a52:	68 80 00 00 00       	push   $0x80                          
  110a57:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  110a5a:	83 38 01             	cmpl   $0x1,(%eax)                    
  110a5d:	0f 94 c0             	sete   %al                            
  110a60:	0f b6 c0             	movzbl %al,%eax                       
  110a63:	50                   	push   %eax                           
  110a64:	53                   	push   %ebx                           
  110a65:	e8 26 ca ff ff       	call   10d490 <_Thread_queue_Initialize>
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
  110a6a:	83 c4 20             	add    $0x20,%esp                     
  110a6d:	b0 01                	mov    $0x1,%al                       
}                                                                     
  110a6f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110a72:	5b                   	pop    %ebx                           
  110a73:	5e                   	pop    %esi                           
  110a74:	5f                   	pop    %edi                           
  110a75:	c9                   	leave                                 
  110a76:	c3                   	ret                                   
                                                                      

00112ba0 <_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 ) {
  112ba0:	55                   	push   %ebp                           
  112ba1:	89 e5                	mov    %esp,%ebp                      
  112ba3:	56                   	push   %esi                           
  112ba4:	53                   	push   %ebx                           
  112ba5:	83 ec 10             	sub    $0x10,%esp                     
  112ba8:	8b 45 08             	mov    0x8(%ebp),%eax                 
  112bab:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  112bae:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  112bb1:	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 ) {           
  112bb4:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx               
  112bba:	74 70                	je     112c2c <_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 ) {  
  112bbc:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx               
  112bc2:	0f 84 88 00 00 00    	je     112c50 <_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                                                              
}                                                                     
  112bc8:	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));                        
  112bcb:	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 ) ) {             
  112bce:	39 de                	cmp    %ebx,%esi                      
  112bd0:	74 05                	je     112bd7 <_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 ) {                        
  112bd2:	3b 4b 08             	cmp    0x8(%ebx),%ecx                 
  112bd5:	7d 45                	jge    112c1c <_CORE_message_queue_Insert_message+0x7c>
          the_node = the_node->next;                                  
          continue;                                                   
        }                                                             
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
  112bd7:	9c                   	pushf                                 
  112bd8:	fa                   	cli                                   
  112bd9:	5e                   	pop    %esi                           
        SET_NOTIFY();                                                 
  112bda:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  112bdd:	85 c9                	test   %ecx,%ecx                      
  112bdf:	0f 94 45 f7          	sete   -0x9(%ebp)                     
        }                                                             
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
  112be3:	41                   	inc    %ecx                           
  112be4:	89 48 48             	mov    %ecx,0x48(%eax)                
        _Chain_Insert_unprotected( the_node->previous, &the_message->Node );
  112be7:	8b 4b 04             	mov    0x4(%ebx),%ecx                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  112bea:	89 4a 04             	mov    %ecx,0x4(%edx)                 
  before_node           = after_node->next;                           
  112bed:	8b 19                	mov    (%ecx),%ebx                    
  after_node->next      = the_node;                                   
  112bef:	89 11                	mov    %edx,(%ecx)                    
  the_node->next        = before_node;                                
  112bf1:	89 1a                	mov    %ebx,(%edx)                    
  before_node->previous = the_node;                                   
  112bf3:	89 53 04             	mov    %edx,0x4(%ebx)                 
      _ISR_Enable( level );                                           
  112bf6:	56                   	push   %esi                           
  112bf7:	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 )                
  112bf8:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)                
  112bfc:	74 16                	je     112c14 <_CORE_message_queue_Insert_message+0x74>
  112bfe:	8b 50 60             	mov    0x60(%eax),%edx                
  112c01:	85 d2                	test   %edx,%edx                      
  112c03:	74 0f                	je     112c14 <_CORE_message_queue_Insert_message+0x74>
      (*the_message_queue->notify_handler)(the_message_queue->notify_argument);
  112c05:	8b 40 64             	mov    0x64(%eax),%eax                
  112c08:	89 45 08             	mov    %eax,0x8(%ebp)                 
  #endif                                                              
}                                                                     
  112c0b:	83 c4 10             	add    $0x10,%esp                     
  112c0e:	5b                   	pop    %ebx                           
  112c0f:	5e                   	pop    %esi                           
  112c10:	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);
  112c11:	ff e2                	jmp    *%edx                          
  112c13:	90                   	nop                                   
  #endif                                                              
}                                                                     
  112c14:	83 c4 10             	add    $0x10,%esp                     
  112c17:	5b                   	pop    %ebx                           
  112c18:	5e                   	pop    %esi                           
  112c19:	c9                   	leave                                 
  112c1a:	c3                   	ret                                   
  112c1b:	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;                                  
  112c1c:	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 ) ) {             
  112c1e:	39 de                	cmp    %ebx,%esi                      
  112c20:	74 b5                	je     112bd7 <_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 ) {                        
  112c22:	3b 4b 08             	cmp    0x8(%ebx),%ecx                 
  112c25:	7c b0                	jl     112bd7 <_CORE_message_queue_Insert_message+0x37>
  112c27:	eb f3                	jmp    112c1c <_CORE_message_queue_Insert_message+0x7c>
  112c29:	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 );                                          
  112c2c:	9c                   	pushf                                 
  112c2d:	fa                   	cli                                   
  112c2e:	5b                   	pop    %ebx                           
        SET_NOTIFY();                                                 
  112c2f:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  112c32:	85 c9                	test   %ecx,%ecx                      
  112c34:	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++;              
  112c38:	41                   	inc    %ecx                           
  112c39:	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;                              
  112c3c:	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 );                        
  112c3f:	8d 70 54             	lea    0x54(%eax),%esi                
  112c42:	89 32                	mov    %esi,(%edx)                    
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
  112c44:	89 50 58             	mov    %edx,0x58(%eax)                
  old_last->next = the_node;                                          
  112c47:	89 11                	mov    %edx,(%ecx)                    
  the_node->previous = old_last;                                      
  112c49:	89 4a 04             	mov    %ecx,0x4(%edx)                 
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
  112c4c:	53                   	push   %ebx                           
  112c4d:	9d                   	popf                                  
  112c4e:	eb a8                	jmp    112bf8 <_CORE_message_queue_Insert_message+0x58>
    } else if ( submit_type == CORE_MESSAGE_QUEUE_URGENT_REQUEST ) {  
      _ISR_Disable( level );                                          
  112c50:	9c                   	pushf                                 
  112c51:	fa                   	cli                                   
  112c52:	5b                   	pop    %ebx                           
        SET_NOTIFY();                                                 
  112c53:	8b 48 48             	mov    0x48(%eax),%ecx                
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
  112c56:	85 c9                	test   %ecx,%ecx                      
  112c58:	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++;              
  112c5c:	41                   	inc    %ecx                           
  112c5d:	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);        
  112c60:	8d 48 50             	lea    0x50(%eax),%ecx                
  112c63:	89 4a 04             	mov    %ecx,0x4(%edx)                 
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  112c66:	8b 48 50             	mov    0x50(%eax),%ecx                
  after_node->next      = the_node;                                   
  112c69:	89 50 50             	mov    %edx,0x50(%eax)                
  the_node->next        = before_node;                                
  112c6c:	89 0a                	mov    %ecx,(%edx)                    
  before_node->previous = the_node;                                   
  112c6e:	89 51 04             	mov    %edx,0x4(%ecx)                 
        _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
  112c71:	53                   	push   %ebx                           
  112c72:	9d                   	popf                                  
  112c73:	eb 83                	jmp    112bf8 <_CORE_message_queue_Insert_message+0x58>
                                                                      

00110a78 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) {
  110a78:	55                   	push   %ebp                           
  110a79:	89 e5                	mov    %esp,%ebp                      
  110a7b:	57                   	push   %edi                           
  110a7c:	56                   	push   %esi                           
  110a7d:	53                   	push   %ebx                           
  110a7e:	83 ec 2c             	sub    $0x2c,%esp                     
  110a81:	8b 55 08             	mov    0x8(%ebp),%edx                 
  110a84:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  110a87:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  110a8a:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110a8d:	89 4d e0             	mov    %ecx,-0x20(%ebp)               
  110a90:	8b 45 14             	mov    0x14(%ebp),%eax                
  110a93:	8b 5d 1c             	mov    0x1c(%ebp),%ebx                
  110a96:	89 5d d8             	mov    %ebx,-0x28(%ebp)               
  110a99:	0f b6 7d 18          	movzbl 0x18(%ebp),%edi                
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  110a9d:	8b 0d 98 7d 12 00    	mov    0x127d98,%ecx                  
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  110aa3:	c7 41 34 00 00 00 00 	movl   $0x0,0x34(%ecx)                
  _ISR_Disable( level );                                              
  110aaa:	9c                   	pushf                                 
  110aab:	fa                   	cli                                   
  110aac:	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 );   
}                                                                     
  110aaf:	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 );                            
  110ab2:	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))                                   
  110ab5:	39 f3                	cmp    %esi,%ebx                      
  110ab7:	74 7b                	je     110b34 <_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;                            
  110ab9:	8b 0b                	mov    (%ebx),%ecx                    
                                                                      
  head->next = new_first;                                             
  110abb:	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 );                        
  110abe:	8d 72 50             	lea    0x50(%edx),%esi                
  110ac1:	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;               
  110ac4:	ff 4a 48             	decl   0x48(%edx)                     
    _ISR_Enable( level );                                             
  110ac7:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  110aca:	9d                   	popf                                  
                                                                      
    *size_p = the_message->Contents.size;                             
  110acb:	8b 4b 0c             	mov    0xc(%ebx),%ecx                 
  110ace:	89 08                	mov    %ecx,(%eax)                    
    _Thread_Executing->Wait.count =                                   
  110ad0:	8b 73 08             	mov    0x8(%ebx),%esi                 
  110ad3:	8b 0d 98 7d 12 00    	mov    0x127d98,%ecx                  
  110ad9:	89 71 24             	mov    %esi,0x24(%ecx)                
      _CORE_message_queue_Get_message_priority( the_message );        
    _CORE_message_queue_Copy_buffer(                                  
      the_message->Contents.buffer,                                   
  110adc:	8d 4b 10             	lea    0x10(%ebx),%ecx                
  110adf:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  110ae2:	8b 08                	mov    (%eax),%ecx                    
  110ae4:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  110ae7:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  110aea:	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 );
  110aec:	83 ec 0c             	sub    $0xc,%esp                      
  110aef:	52                   	push   %edx                           
  110af0:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  110af3:	e8 08 c6 ff ff       	call   10d100 <_Thread_queue_Dequeue> 
      if ( !the_thread ) {                                            
  110af8:	83 c4 10             	add    $0x10,%esp                     
  110afb:	85 c0                	test   %eax,%eax                      
  110afd:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  110b00:	0f 84 86 00 00 00    	je     110b8c <_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;                                 
  110b06:	8b 48 24             	mov    0x24(%eax),%ecx                
  110b09:	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;  
  110b0c:	8b 48 30             	mov    0x30(%eax),%ecx                
  110b0f:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  110b12:	8b 70 2c             	mov    0x2c(%eax),%esi                
  110b15:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  110b18:	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(                             
  110b1a:	8b 43 08             	mov    0x8(%ebx),%eax                 
  110b1d:	89 45 10             	mov    %eax,0x10(%ebp)                
  110b20:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  110b23:	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 );   
}                                                                     
  110b26:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110b29:	5b                   	pop    %ebx                           
  110b2a:	5e                   	pop    %esi                           
  110b2b:	5f                   	pop    %edi                           
  110b2c:	c9                   	leave                                 
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
  110b2d:	e9 6e 20 00 00       	jmp    112ba0 <_CORE_message_queue_Insert_message>
  110b32:	66 90                	xchg   %ax,%ax                        
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
  110b34:	89 fb                	mov    %edi,%ebx                      
  110b36:	84 db                	test   %bl,%bl                        
  110b38:	75 16                	jne    110b50 <_CORE_message_queue_Seize+0xd8>
    _ISR_Enable( level );                                             
  110b3a:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  110b3d:	9d                   	popf                                  
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
  110b3e:	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 );   
}                                                                     
  110b45:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110b48:	5b                   	pop    %ebx                           
  110b49:	5e                   	pop    %esi                           
  110b4a:	5f                   	pop    %edi                           
  110b4b:	c9                   	leave                                 
  110b4c:	c3                   	ret                                   
  110b4d:	8d 76 00             	lea    0x0(%esi),%esi                 
  110b50:	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;             
  110b57:	89 51 44             	mov    %edx,0x44(%ecx)                
  executing->Wait.id = id;                                            
  110b5a:	8b 5d dc             	mov    -0x24(%ebp),%ebx               
  110b5d:	89 59 20             	mov    %ebx,0x20(%ecx)                
  executing->Wait.return_argument_second.mutable_object = buffer;     
  110b60:	8b 5d e0             	mov    -0x20(%ebp),%ebx               
  110b63:	89 59 2c             	mov    %ebx,0x2c(%ecx)                
  executing->Wait.return_argument = size_p;                           
  110b66:	89 41 28             	mov    %eax,0x28(%ecx)                
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
  110b69:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  110b6c:	9d                   	popf                                  
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
  110b6d:	c7 45 10 54 d5 10 00 	movl   $0x10d554,0x10(%ebp)           
  110b74:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  110b77:	89 45 0c             	mov    %eax,0xc(%ebp)                 
  110b7a:	89 55 08             	mov    %edx,0x8(%ebp)                 
}                                                                     
  110b7d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110b80:	5b                   	pop    %ebx                           
  110b81:	5e                   	pop    %esi                           
  110b82:	5f                   	pop    %edi                           
  110b83:	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 );   
  110b84:	e9 9f c6 ff ff       	jmp    10d228 <_Thread_queue_Enqueue_with_handler>
  110b89:	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 );
  110b8c:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  110b8f:	83 c2 68             	add    $0x68,%edx                     
  110b92:	89 55 08             	mov    %edx,0x8(%ebp)                 
}                                                                     
  110b95:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110b98:	5b                   	pop    %ebx                           
  110b99:	5e                   	pop    %esi                           
  110b9a:	5f                   	pop    %edi                           
  110b9b:	c9                   	leave                                 
  110b9c:	e9 2f a9 ff ff       	jmp    10b4d0 <_Chain_Append>         
                                                                      

00110ba4 <_CORE_message_queue_Submit>: #endif CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout ) {
  110ba4:	55                   	push   %ebp                           
  110ba5:	89 e5                	mov    %esp,%ebp                      
  110ba7:	57                   	push   %edi                           
  110ba8:	56                   	push   %esi                           
  110ba9:	53                   	push   %ebx                           
  110baa:	83 ec 1c             	sub    $0x1c,%esp                     
  110bad:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  110bb0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  110bb3:	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 ) {             
  110bb6:	8b 45 10             	mov    0x10(%ebp),%eax                
  110bb9:	39 43 4c             	cmp    %eax,0x4c(%ebx)                
  110bbc:	72 32                	jb     110bf0 <_CORE_message_queue_Submit+0x4c>
  }                                                                   
                                                                      
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
  110bbe:	8b 43 48             	mov    0x48(%ebx),%eax                
  110bc1:	85 c0                	test   %eax,%eax                      
  110bc3:	74 3b                	je     110c00 <_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 <                
  110bc5:	39 43 44             	cmp    %eax,0x44(%ebx)                
  110bc8:	0f 87 ba 00 00 00    	ja     110c88 <_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 ) {                                                    
  110bce:	84 c9                	test   %cl,%cl                        
  110bd0:	0f 84 ee 00 00 00    	je     110cc4 <_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() ) {                                    
  110bd6:	8b 15 94 7d 12 00    	mov    0x127d94,%edx                  
  110bdc:	85 d2                	test   %edx,%edx                      
  110bde:	74 60                	je     110c40 <_CORE_message_queue_Submit+0x9c>
      return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;                   
  110be0:	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                                                              
}                                                                     
  110be5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110be8:	5b                   	pop    %ebx                           
  110be9:	5e                   	pop    %esi                           
  110bea:	5f                   	pop    %edi                           
  110beb:	c9                   	leave                                 
  110bec:	c3                   	ret                                   
  110bed:	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;                    
  110bf0:	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                                                              
}                                                                     
  110bf5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110bf8:	5b                   	pop    %ebx                           
  110bf9:	5e                   	pop    %esi                           
  110bfa:	5f                   	pop    %edi                           
  110bfb:	c9                   	leave                                 
  110bfc:	c3                   	ret                                   
  110bfd:	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 );
  110c00:	83 ec 0c             	sub    $0xc,%esp                      
  110c03:	53                   	push   %ebx                           
  110c04:	88 4d e4             	mov    %cl,-0x1c(%ebp)                
  110c07:	e8 f4 c4 ff ff       	call   10d100 <_Thread_queue_Dequeue> 
  110c0c:	89 c2                	mov    %eax,%edx                      
    if ( the_thread ) {                                               
  110c0e:	83 c4 10             	add    $0x10,%esp                     
  110c11:	85 c0                	test   %eax,%eax                      
  110c13:	8a 4d e4             	mov    -0x1c(%ebp),%cl                
  110c16:	0f 84 b8 00 00 00    	je     110cd4 <_CORE_message_queue_Submit+0x130>
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  110c1c:	8b 40 2c             	mov    0x2c(%eax),%eax                
  110c1f:	89 c7                	mov    %eax,%edi                      
  110c21:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110c24:	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;            
  110c26:	8b 42 28             	mov    0x28(%edx),%eax                
  110c29:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110c2c:	89 08                	mov    %ecx,(%eax)                    
      the_thread->Wait.count = (uint32_t) submit_type;                
  110c2e:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  110c31:	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;                    
  110c34:	31 c0                	xor    %eax,%eax                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
  110c36:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110c39:	5b                   	pop    %ebx                           
  110c3a:	5e                   	pop    %esi                           
  110c3b:	5f                   	pop    %edi                           
  110c3c:	c9                   	leave                                 
  110c3d:	c3                   	ret                                   
  110c3e:	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;                 
  110c40:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
      ISR_Level        level;                                         
                                                                      
      _ISR_Disable( level );                                          
  110c45:	9c                   	pushf                                 
  110c46:	fa                   	cli                                   
  110c47:	59                   	pop    %ecx                           
  110c48:	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;         
  110c4f:	89 58 44             	mov    %ebx,0x44(%eax)                
      executing->Wait.id = id;                                        
  110c52:	8b 55 14             	mov    0x14(%ebp),%edx                
  110c55:	89 50 20             	mov    %edx,0x20(%eax)                
      executing->Wait.return_argument_second.immutable_object = buffer;
  110c58:	89 70 2c             	mov    %esi,0x2c(%eax)                
      executing->Wait.option = (uint32_t) size;                       
  110c5b:	8b 55 10             	mov    0x10(%ebp),%edx                
  110c5e:	89 50 30             	mov    %edx,0x30(%eax)                
      executing->Wait.count = submit_type;                            
  110c61:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  110c64:	89 50 24             	mov    %edx,0x24(%eax)                
      _ISR_Enable( level );                                           
  110c67:	51                   	push   %ecx                           
  110c68:	9d                   	popf                                  
                                                                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
  110c69:	50                   	push   %eax                           
  110c6a:	68 54 d5 10 00       	push   $0x10d554                      
  110c6f:	ff 75 24             	pushl  0x24(%ebp)                     
  110c72:	53                   	push   %ebx                           
  110c73:	e8 b0 c5 ff ff       	call   10d228 <_Thread_queue_Enqueue_with_handler>
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  110c78:	83 c4 10             	add    $0x10,%esp                     
  110c7b:	b8 07 00 00 00       	mov    $0x7,%eax                      
  #endif                                                              
}                                                                     
  110c80:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110c83:	5b                   	pop    %ebx                           
  110c84:	5e                   	pop    %esi                           
  110c85:	5f                   	pop    %edi                           
  110c86:	c9                   	leave                                 
  110c87:	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 );             
  110c88:	83 ec 0c             	sub    $0xc,%esp                      
  110c8b:	8d 43 68             	lea    0x68(%ebx),%eax                
  110c8e:	50                   	push   %eax                           
  110c8f:	e8 78 a8 ff ff       	call   10b50c <_Chain_Get>            
  110c94:	89 c2                	mov    %eax,%edx                      
        return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;                 
     #endif                                                           
                                                                      
    _CORE_message_queue_Copy_buffer(                                  
      buffer,                                                         
      the_message->Contents.buffer,                                   
  110c96:	8d 40 10             	lea    0x10(%eax),%eax                
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
  110c99:	89 c7                	mov    %eax,%edi                      
  110c9b:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110c9e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
  110ca0:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110ca3:	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;                                 
  110ca6:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  110ca9:	89 42 08             	mov    %eax,0x8(%edx)                 
    _CORE_message_queue_Set_message_priority( the_message, submit_type );
                                                                      
    _CORE_message_queue_Insert_message(                               
  110cac:	83 c4 0c             	add    $0xc,%esp                      
  110caf:	50                   	push   %eax                           
  110cb0:	52                   	push   %edx                           
  110cb1:	53                   	push   %ebx                           
  110cb2:	e8 e9 1e 00 00       	call   112ba0 <_CORE_message_queue_Insert_message>
       the_message_queue,                                             
       the_message,                                                   
       submit_type                                                    
    );                                                                
    return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                      
  110cb7:	83 c4 10             	add    $0x10,%esp                     
  110cba:	31 c0                	xor    %eax,%eax                      
  110cbc:	e9 34 ff ff ff       	jmp    110bf5 <_CORE_message_queue_Submit+0x51>
  110cc1:	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;                      
  110cc4:	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                                                              
}                                                                     
  110cc9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110ccc:	5b                   	pop    %ebx                           
  110ccd:	5e                   	pop    %esi                           
  110cce:	5f                   	pop    %edi                           
  110ccf:	c9                   	leave                                 
  110cd0:	c3                   	ret                                   
  110cd1:	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 ) {                                               
  110cd4:	8b 43 48             	mov    0x48(%ebx),%eax                
  110cd7:	e9 e9 fe ff ff       	jmp    110bc5 <_CORE_message_queue_Submit+0x21>
                                                                      

0010b53c <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) {
  10b53c:	55                   	push   %ebp                           
  10b53d:	89 e5                	mov    %esp,%ebp                      
  10b53f:	57                   	push   %edi                           
  10b540:	56                   	push   %esi                           
  10b541:	53                   	push   %ebx                           
  10b542:	83 ec 0c             	sub    $0xc,%esp                      
  10b545:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b548:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b54b:	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;                   
  10b54e:	8d 78 40             	lea    0x40(%eax),%edi                
  10b551:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10b556:	89 de                	mov    %ebx,%esi                      
  10b558:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  the_mutex->lock          = initial_lock;                            
  10b55a:	89 50 50             	mov    %edx,0x50(%eax)                
  the_mutex->blocked_count = 0;                                       
  10b55d:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)                
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
  10b564:	85 d2                	test   %edx,%edx                      
  10b566:	75 30                	jne    10b598 <_CORE_mutex_Initialize+0x5c>
    the_mutex->nest_count = 1;                                        
  10b568:	c7 40 54 01 00 00 00 	movl   $0x1,0x54(%eax)                
    the_mutex->holder     = _Thread_Executing;                        
  10b56f:	8b 15 98 7d 12 00    	mov    0x127d98,%edx                  
  10b575:	89 50 5c             	mov    %edx,0x5c(%eax)                
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
  10b578:	8b 4a 08             	mov    0x8(%edx),%ecx                 
  10b57b:	89 48 60             	mov    %ecx,0x60(%eax)                
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10b57e:	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 ) || 
  10b581:	83 f9 02             	cmp    $0x2,%ecx                      
  10b584:	74 05                	je     10b58b <_CORE_mutex_Initialize+0x4f>
  10b586:	83 f9 03             	cmp    $0x3,%ecx                      
  10b589:	75 22                	jne    10b5ad <_CORE_mutex_Initialize+0x71>
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
  10b58b:	8b 48 4c             	mov    0x4c(%eax),%ecx                
  10b58e:	39 4a 14             	cmp    %ecx,0x14(%edx)                
  10b591:	72 41                	jb     10b5d4 <_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++;                            
  10b593:	ff 42 1c             	incl   0x1c(%edx)                     
  10b596:	eb 15                	jmp    10b5ad <_CORE_mutex_Initialize+0x71>
    }                                                                 
  } else {                                                            
    the_mutex->nest_count = 0;                                        
  10b598:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
    the_mutex->holder     = NULL;                                     
  10b59f:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)                
    the_mutex->holder_id  = 0;                                        
  10b5a6:	c7 40 60 00 00 00 00 	movl   $0x0,0x60(%eax)                
  }                                                                   
                                                                      
  _Thread_queue_Initialize(                                           
  10b5ad:	6a 05                	push   $0x5                           
  10b5af:	68 00 04 00 00       	push   $0x400                         
  10b5b4:	31 d2                	xor    %edx,%edx                      
  10b5b6:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)                 
  10b5ba:	0f 95 c2             	setne  %dl                            
  10b5bd:	52                   	push   %edx                           
  10b5be:	50                   	push   %eax                           
  10b5bf:	e8 cc 1e 00 00       	call   10d490 <_Thread_queue_Initialize>
      THREAD_QUEUE_DISCIPLINE_FIFO : THREAD_QUEUE_DISCIPLINE_PRIORITY,
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10b5c4:	83 c4 10             	add    $0x10,%esp                     
  10b5c7:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b5c9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b5cc:	5b                   	pop    %ebx                           
  10b5cd:	5e                   	pop    %esi                           
  10b5ce:	5f                   	pop    %edi                           
  10b5cf:	c9                   	leave                                 
  10b5d0:	c3                   	ret                                   
  10b5d1:	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;                     
  10b5d4:	b8 06 00 00 00       	mov    $0x6,%eax                      
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10b5d9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b5dc:	5b                   	pop    %ebx                           
  10b5dd:	5e                   	pop    %esi                           
  10b5de:	5f                   	pop    %edi                           
  10b5df:	c9                   	leave                                 
  10b5e0:	c3                   	ret                                   
                                                                      

0010b634 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
  10b634:	55                   	push   %ebp                           
  10b635:	89 e5                	mov    %esp,%ebp                      
  10b637:	53                   	push   %ebx                           
  10b638:	83 ec 14             	sub    $0x14,%esp                     
  10b63b:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b63e:	8a 55 10             	mov    0x10(%ebp),%dl                 
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
  10b641:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10b646:	85 c0                	test   %eax,%eax                      
  10b648:	74 04                	je     10b64e <_CORE_mutex_Seize+0x1a>
  10b64a:	84 d2                	test   %dl,%dl                        
  10b64c:	75 36                	jne    10b684 <_CORE_mutex_Seize+0x50><== ALWAYS TAKEN
  10b64e:	83 ec 08             	sub    $0x8,%esp                      
  10b651:	8d 45 18             	lea    0x18(%ebp),%eax                
  10b654:	50                   	push   %eax                           
  10b655:	53                   	push   %ebx                           
  10b656:	88 55 f4             	mov    %dl,-0xc(%ebp)                 
  10b659:	e8 7e 56 00 00       	call   110cdc <_CORE_mutex_Seize_interrupt_trylock>
  10b65e:	83 c4 10             	add    $0x10,%esp                     
  10b661:	85 c0                	test   %eax,%eax                      
  10b663:	8a 55 f4             	mov    -0xc(%ebp),%dl                 
  10b666:	74 14                	je     10b67c <_CORE_mutex_Seize+0x48>
  10b668:	84 d2                	test   %dl,%dl                        
  10b66a:	75 30                	jne    10b69c <_CORE_mutex_Seize+0x68>
  10b66c:	ff 75 18             	pushl  0x18(%ebp)                     
  10b66f:	9d                   	popf                                  
  10b670:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
  10b675:	c7 40 34 01 00 00 00 	movl   $0x1,0x34(%eax)                
}                                                                     
  10b67c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b67f:	c9                   	leave                                 
  10b680:	c3                   	ret                                   
  10b681:	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 ); 
  10b684:	83 3d 80 79 12 00 01 	cmpl   $0x1,0x127980                  
  10b68b:	76 c1                	jbe    10b64e <_CORE_mutex_Seize+0x1a>
  10b68d:	53                   	push   %ebx                           
  10b68e:	6a 12                	push   $0x12                          
  10b690:	6a 00                	push   $0x0                           
  10b692:	6a 00                	push   $0x0                           
  10b694:	e8 1b 06 00 00       	call   10bcb4 <_Internal_error_Occurred>
  10b699:	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;
  10b69c:	c7 43 30 01 00 00 00 	movl   $0x1,0x30(%ebx)                
  10b6a3:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
  10b6a8:	89 58 44             	mov    %ebx,0x44(%eax)                
  10b6ab:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10b6ae:	89 50 20             	mov    %edx,0x20(%eax)                
  10b6b1:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10b6b6:	40                   	inc    %eax                           
  10b6b7:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
  10b6bc:	ff 75 18             	pushl  0x18(%ebp)                     
  10b6bf:	9d                   	popf                                  
  10b6c0:	83 ec 08             	sub    $0x8,%esp                      
  10b6c3:	ff 75 14             	pushl  0x14(%ebp)                     
  10b6c6:	53                   	push   %ebx                           
  10b6c7:	e8 18 ff ff ff       	call   10b5e4 <_CORE_mutex_Seize_interrupt_blocking>
  10b6cc:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10b6cf:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6d2:	c9                   	leave                                 
  10b6d3:	c3                   	ret                                   
                                                                      

00110cdc <_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 ) {
  110cdc:	55                   	push   %ebp                           
  110cdd:	89 e5                	mov    %esp,%ebp                      
  110cdf:	56                   	push   %esi                           
  110ce0:	53                   	push   %ebx                           
  110ce1:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110ce4:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
{                                                                     
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  110ce7:	8b 15 98 7d 12 00    	mov    0x127d98,%edx                  
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  110ced:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
  110cf4:	8b 58 50             	mov    0x50(%eax),%ebx                
  110cf7:	85 db                	test   %ebx,%ebx                      
  110cf9:	74 31                	je     110d2c <_CORE_mutex_Seize_interrupt_trylock+0x50>
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
  110cfb:	c7 40 50 00 00 00 00 	movl   $0x0,0x50(%eax)                
    the_mutex->holder     = executing;                                
  110d02:	89 50 5c             	mov    %edx,0x5c(%eax)                
    the_mutex->holder_id  = executing->Object.id;                     
  110d05:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  110d08:	89 58 60             	mov    %ebx,0x60(%eax)                
    the_mutex->nest_count = 1;                                        
  110d0b:	c7 40 54 01 00 00 00 	movl   $0x1,0x54(%eax)                
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
  110d12:	8b 58 48             	mov    0x48(%eax),%ebx                
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
  110d15:	83 fb 02             	cmp    $0x2,%ebx                      
  110d18:	74 26                	je     110d40 <_CORE_mutex_Seize_interrupt_trylock+0x64>
  110d1a:	83 fb 03             	cmp    $0x3,%ebx                      
  110d1d:	74 3d                	je     110d5c <_CORE_mutex_Seize_interrupt_trylock+0x80>
                                                                      
      executing->resource_count++;                                    
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
      _ISR_Enable( *level_p );                                        
  110d1f:	ff 31                	pushl  (%ecx)                         
  110d21:	9d                   	popf                                  
      return 0;                                                       
  110d22:	31 c0                	xor    %eax,%eax                      
  110d24:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110d27:	5b                   	pop    %ebx                           
  110d28:	5e                   	pop    %esi                           
  110d29:	c9                   	leave                                 
  110d2a:	c3                   	ret                                   
  110d2b:	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 ) ) {                  
  110d2c:	3b 50 5c             	cmp    0x5c(%eax),%edx                
  110d2f:	74 17                	je     110d48 <_CORE_mutex_Seize_interrupt_trylock+0x6c>
                                                                      
  /*                                                                  
   *  The mutex is not available and the caller must deal with the possibility
   *  of blocking.                                                    
   */                                                                 
  return 1;                                                           
  110d31:	b8 01 00 00 00       	mov    $0x1,%eax                      
  110d36:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110d39:	5b                   	pop    %ebx                           
  110d3a:	5e                   	pop    %esi                           
  110d3b:	c9                   	leave                                 
  110d3c:	c3                   	ret                                   
  110d3d:	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++;                                    
  110d40:	ff 42 1c             	incl   0x1c(%edx)                     
  110d43:	eb da                	jmp    110d1f <_CORE_mutex_Seize_interrupt_trylock+0x43>
  110d45:	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 ) {          
  110d48:	8b 58 40             	mov    0x40(%eax),%ebx                
  110d4b:	85 db                	test   %ebx,%ebx                      
  110d4d:	75 45                	jne    110d94 <_CORE_mutex_Seize_interrupt_trylock+0xb8>
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
  110d4f:	ff 40 54             	incl   0x54(%eax)                     
        _ISR_Enable( *level_p );                                      
  110d52:	ff 31                	pushl  (%ecx)                         
  110d54:	9d                   	popf                                  
        return 0;                                                     
  110d55:	31 c0                	xor    %eax,%eax                      
  110d57:	eb dd                	jmp    110d36 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  110d59:	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++;                                    
  110d5c:	8b 5a 1c             	mov    0x1c(%edx),%ebx                
  110d5f:	8d 73 01             	lea    0x1(%ebx),%esi                 
  110d62:	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 ) {                                     
  110d65:	8b 72 14             	mov    0x14(%edx),%esi                
  110d68:	39 70 4c             	cmp    %esi,0x4c(%eax)                
  110d6b:	74 6b                	je     110dd8 <_CORE_mutex_Seize_interrupt_trylock+0xfc>
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
  110d6d:	72 39                	jb     110da8 <_CORE_mutex_Seize_interrupt_trylock+0xcc>
        );                                                            
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
  110d6f:	c7 42 34 06 00 00 00 	movl   $0x6,0x34(%edx)                
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
  110d76:	c7 40 50 01 00 00 00 	movl   $0x1,0x50(%eax)                
        the_mutex->nest_count = 0;     /* undo locking above */       
  110d7d:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
        executing->resource_count--;   /* undo locking above */       
  110d84:	89 5a 1c             	mov    %ebx,0x1c(%edx)                
        _ISR_Enable( *level_p );                                      
  110d87:	ff 31                	pushl  (%ecx)                         
  110d89:	9d                   	popf                                  
        return 0;                                                     
  110d8a:	31 c0                	xor    %eax,%eax                      
  110d8c:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110d8f:	5b                   	pop    %ebx                           
  110d90:	5e                   	pop    %esi                           
  110d91:	c9                   	leave                                 
  110d92:	c3                   	ret                                   
  110d93:	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 ) {          
  110d94:	4b                   	dec    %ebx                           
  110d95:	75 9a                	jne    110d31 <_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;
  110d97:	c7 42 34 02 00 00 00 	movl   $0x2,0x34(%edx)                
          _ISR_Enable( *level_p );                                    
  110d9e:	ff 31                	pushl  (%ecx)                         
  110da0:	9d                   	popf                                  
          return 0;                                                   
  110da1:	31 c0                	xor    %eax,%eax                      
  110da3:	eb 91                	jmp    110d36 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  110da5:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  110da8:	8b 15 ec 77 12 00    	mov    0x1277ec,%edx                  
  110dae:	42                   	inc    %edx                           
  110daf:	89 15 ec 77 12 00    	mov    %edx,0x1277ec                  
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( *level_p );                                      
  110db5:	ff 31                	pushl  (%ecx)                         
  110db7:	9d                   	popf                                  
        _Thread_Change_priority(                                      
  110db8:	52                   	push   %edx                           
  110db9:	6a 00                	push   $0x0                           
  110dbb:	ff 70 4c             	pushl  0x4c(%eax)                     
  110dbe:	ff 70 5c             	pushl  0x5c(%eax)                     
  110dc1:	e8 82 bb ff ff       	call   10c948 <_Thread_Change_priority>
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         false                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
  110dc6:	e8 b5 bf ff ff       	call   10cd80 <_Thread_Enable_dispatch>
  110dcb:	83 c4 10             	add    $0x10,%esp                     
        return 0;                                                     
  110dce:	31 c0                	xor    %eax,%eax                      
  110dd0:	e9 61 ff ff ff       	jmp    110d36 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
  110dd5:	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 );                                      
  110dd8:	ff 31                	pushl  (%ecx)                         
  110dda:	9d                   	popf                                  
        return 0;                                                     
  110ddb:	31 c0                	xor    %eax,%eax                      
  110ddd:	e9 54 ff ff ff       	jmp    110d36 <_CORE_mutex_Seize_interrupt_trylock+0x5a>
                                                                      

0010b6d4 <_CORE_mutex_Surrender>: #else Objects_Id id __attribute__((unused)), CORE_mutex_API_mp_support_callout api_mutex_mp_support __attribute__((unused)) #endif ) {
  10b6d4:	55                   	push   %ebp                           
  10b6d5:	89 e5                	mov    %esp,%ebp                      
  10b6d7:	53                   	push   %ebx                           
  10b6d8:	83 ec 04             	sub    $0x4,%esp                      
  10b6db:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Thread_Control *the_thread;                                         
  Thread_Control *holder;                                             
                                                                      
  holder = the_mutex->holder;                                         
  10b6de:	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 ) {                   
  10b6e1:	80 7b 44 00          	cmpb   $0x0,0x44(%ebx)                
  10b6e5:	74 15                	je     10b6fc <_CORE_mutex_Surrender+0x28>
    if ( !_Thread_Is_executing( holder ) )                            
  10b6e7:	3b 05 98 7d 12 00    	cmp    0x127d98,%eax                  
  10b6ed:	74 0d                	je     10b6fc <_CORE_mutex_Surrender+0x28>
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
  10b6ef:	b8 03 00 00 00       	mov    $0x3,%eax                      
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10b6f4:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6f7:	c9                   	leave                                 
  10b6f8:	c3                   	ret                                   
  10b6f9:	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 )                                       
  10b6fc:	8b 53 54             	mov    0x54(%ebx),%edx                
  10b6ff:	85 d2                	test   %edx,%edx                      
  10b701:	74 51                	je     10b754 <_CORE_mutex_Surrender+0x80>
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
  10b703:	4a                   	dec    %edx                           
  10b704:	89 53 54             	mov    %edx,0x54(%ebx)                
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
  10b707:	85 d2                	test   %edx,%edx                      
  10b709:	75 49                	jne    10b754 <_CORE_mutex_Surrender+0x80>
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
  10b70b:	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 ) ||   
  10b70e:	83 fa 02             	cmp    $0x2,%edx                      
  10b711:	74 69                	je     10b77c <_CORE_mutex_Surrender+0xa8>
  10b713:	83 fa 03             	cmp    $0x3,%edx                      
  10b716:	74 64                	je     10b77c <_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;                                        
  10b718:	c7 43 5c 00 00 00 00 	movl   $0x0,0x5c(%ebx)                
  the_mutex->holder_id = 0;                                           
  10b71f:	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 ) ) ) {
  10b726:	83 ec 0c             	sub    $0xc,%esp                      
  10b729:	53                   	push   %ebx                           
  10b72a:	e8 d1 19 00 00       	call   10d100 <_Thread_queue_Dequeue> 
  10b72f:	83 c4 10             	add    $0x10,%esp                     
  10b732:	85 c0                	test   %eax,%eax                      
  10b734:	74 7a                	je     10b7b0 <_CORE_mutex_Surrender+0xdc>
                                                                      
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
  10b736:	89 43 5c             	mov    %eax,0x5c(%ebx)                
      the_mutex->holder_id  = the_thread->Object.id;                  
  10b739:	8b 50 08             	mov    0x8(%eax),%edx                 
  10b73c:	89 53 60             	mov    %edx,0x60(%ebx)                
      the_mutex->nest_count = 1;                                      
  10b73f:	c7 43 54 01 00 00 00 	movl   $0x1,0x54(%ebx)                
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
  10b746:	8b 53 48             	mov    0x48(%ebx),%edx                
  10b749:	83 fa 02             	cmp    $0x2,%edx                      
  10b74c:	74 56                	je     10b7a4 <_CORE_mutex_Surrender+0xd0>
  10b74e:	83 fa 03             	cmp    $0x3,%edx                      
  10b751:	74 09                	je     10b75c <_CORE_mutex_Surrender+0x88>
  10b753:	90                   	nop                                   
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10b754:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b756:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b759:	c9                   	leave                                 
  10b75a:	c3                   	ret                                   
  10b75b:	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++;                               
  10b75c:	ff 40 1c             	incl   0x1c(%eax)                     
          if (the_mutex->Attributes.priority_ceiling <                
  10b75f:	8b 53 4c             	mov    0x4c(%ebx),%edx                
  10b762:	3b 50 14             	cmp    0x14(%eax),%edx                
  10b765:	73 ed                	jae    10b754 <_CORE_mutex_Surrender+0x80>
              the_thread->current_priority){                          
              _Thread_Change_priority(                                
  10b767:	51                   	push   %ecx                           
  10b768:	6a 00                	push   $0x0                           
  10b76a:	52                   	push   %edx                           
  10b76b:	50                   	push   %eax                           
  10b76c:	e8 d7 11 00 00       	call   10c948 <_Thread_Change_priority>
  10b771:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10b774:	31 c0                	xor    %eax,%eax                      
  10b776:	e9 79 ff ff ff       	jmp    10b6f4 <_CORE_mutex_Surrender+0x20>
  10b77b:	90                   	nop                                   
      _CORE_mutex_Pop_priority( the_mutex, holder );                  
                                                                      
    if ( pop_status != CORE_MUTEX_STATUS_SUCCESSFUL )                 
      return pop_status;                                              
                                                                      
    holder->resource_count--;                                         
  10b77c:	8b 50 1c             	mov    0x1c(%eax),%edx                
  10b77f:	4a                   	dec    %edx                           
  10b780:	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 &&                               
  10b783:	85 d2                	test   %edx,%edx                      
  10b785:	75 91                	jne    10b718 <_CORE_mutex_Surrender+0x44>
         holder->real_priority != holder->current_priority ) {        
  10b787:	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 &&                               
  10b78a:	3b 50 14             	cmp    0x14(%eax),%edx                
  10b78d:	74 89                	je     10b718 <_CORE_mutex_Surrender+0x44>
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, true ); 
  10b78f:	51                   	push   %ecx                           
  10b790:	6a 01                	push   $0x1                           
  10b792:	52                   	push   %edx                           
  10b793:	50                   	push   %eax                           
  10b794:	e8 af 11 00 00       	call   10c948 <_Thread_Change_priority>
  10b799:	83 c4 10             	add    $0x10,%esp                     
  10b79c:	e9 77 ff ff ff       	jmp    10b718 <_CORE_mutex_Surrender+0x44>
  10b7a1:	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++;                               
  10b7a4:	ff 40 1c             	incl   0x1c(%eax)                     
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10b7a7:	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;                                                      
  10b7a9:	e9 46 ff ff ff       	jmp    10b6f4 <_CORE_mutex_Surrender+0x20>
  10b7ae:	66 90                	xchg   %ax,%ax                        
          }                                                           
          break;                                                      
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
  10b7b0:	c7 43 50 01 00 00 00 	movl   $0x1,0x50(%ebx)                
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
  10b7b7:	31 c0                	xor    %eax,%eax                      
  10b7b9:	e9 36 ff ff ff       	jmp    10b6f4 <_CORE_mutex_Surrender+0x20>
                                                                      

00114d5c <_CORE_semaphore_Seize>: CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) {
  114d5c:	55                   	push   %ebp                           
  114d5d:	89 e5                	mov    %esp,%ebp                      
  114d5f:	57                   	push   %edi                           
  114d60:	56                   	push   %esi                           
  114d61:	53                   	push   %ebx                           
  114d62:	83 ec 1c             	sub    $0x1c,%esp                     
  114d65:	8b 45 08             	mov    0x8(%ebp),%eax                 
  114d68:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  114d6b:	8b 75 14             	mov    0x14(%ebp),%esi                
  114d6e:	8a 5d 10             	mov    0x10(%ebp),%bl                 
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  114d71:	8b 15 98 cc 12 00    	mov    0x12cc98,%edx                  
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  114d77:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  _ISR_Disable( level );                                              
  114d7e:	9c                   	pushf                                 
  114d7f:	fa                   	cli                                   
  114d80:	8f 45 e4             	popl   -0x1c(%ebp)                    
  if ( the_semaphore->count != 0 ) {                                  
  114d83:	8b 48 48             	mov    0x48(%eax),%ecx                
  114d86:	85 c9                	test   %ecx,%ecx                      
  114d88:	75 46                	jne    114dd0 <_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 ) {                                                      
  114d8a:	84 db                	test   %bl,%bl                        
  114d8c:	75 16                	jne    114da4 <_CORE_semaphore_Seize+0x48>
    _ISR_Enable( level );                                             
  114d8e:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114d91:	9d                   	popf                                  
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
  114d92:	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 );       
}                                                                     
  114d99:	83 c4 1c             	add    $0x1c,%esp                     
  114d9c:	5b                   	pop    %ebx                           
  114d9d:	5e                   	pop    %esi                           
  114d9e:	5f                   	pop    %edi                           
  114d9f:	c9                   	leave                                 
  114da0:	c3                   	ret                                   
  114da1:	8d 76 00             	lea    0x0(%esi),%esi                 
  114da4:	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;                 
  114dab:	89 42 44             	mov    %eax,0x44(%edx)                
  executing->Wait.id    = id;                                         
  114dae:	89 7a 20             	mov    %edi,0x20(%edx)                
  _ISR_Enable( level );                                               
  114db1:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114db4:	9d                   	popf                                  
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
  114db5:	c7 45 10 f0 0e 11 00 	movl   $0x110ef0,0x10(%ebp)           
  114dbc:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  114dbf:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  114dc2:	83 c4 1c             	add    $0x1c,%esp                     
  114dc5:	5b                   	pop    %ebx                           
  114dc6:	5e                   	pop    %esi                           
  114dc7:	5f                   	pop    %edi                           
  114dc8:	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 );       
  114dc9:	e9 f6 bd ff ff       	jmp    110bc4 <_Thread_queue_Enqueue_with_handler>
  114dce:	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;                                        
  114dd0:	49                   	dec    %ecx                           
  114dd1:	89 48 48             	mov    %ecx,0x48(%eax)                
    _ISR_Enable( level );                                             
  114dd4:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  114dd7:	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 );       
}                                                                     
  114dd8:	83 c4 1c             	add    $0x1c,%esp                     
  114ddb:	5b                   	pop    %ebx                           
  114ddc:	5e                   	pop    %esi                           
  114ddd:	5f                   	pop    %edi                           
  114dde:	c9                   	leave                                 
  114ddf:	c3                   	ret                                   
                                                                      

0010b80c <_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 ) {
  10b80c:	55                   	push   %ebp                           
  10b80d:	89 e5                	mov    %esp,%ebp                      
  10b80f:	53                   	push   %ebx                           
  10b810:	83 ec 10             	sub    $0x10,%esp                     
  10b813:	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)) ) {
  10b816:	53                   	push   %ebx                           
  10b817:	e8 e4 18 00 00       	call   10d100 <_Thread_queue_Dequeue> 
  10b81c:	83 c4 10             	add    $0x10,%esp                     
  10b81f:	85 c0                	test   %eax,%eax                      
  10b821:	74 09                	je     10b82c <_CORE_semaphore_Surrender+0x20>
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
  10b823:	31 c0                	xor    %eax,%eax                      
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
  10b825:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b828:	c9                   	leave                                 
  10b829:	c3                   	ret                                   
  10b82a:	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 );                                            
  10b82c:	9c                   	pushf                                 
  10b82d:	fa                   	cli                                   
  10b82e:	5a                   	pop    %edx                           
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
  10b82f:	8b 43 48             	mov    0x48(%ebx),%eax                
  10b832:	3b 43 40             	cmp    0x40(%ebx),%eax                
  10b835:	72 0d                	jb     10b844 <_CORE_semaphore_Surrender+0x38><== ALWAYS TAKEN
        the_semaphore->count += 1;                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
  10b837:	b8 04 00 00 00       	mov    $0x4,%eax                      <== NOT EXECUTED
    _ISR_Enable( level );                                             
  10b83c:	52                   	push   %edx                           
  10b83d:	9d                   	popf                                  
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
  10b83e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b841:	c9                   	leave                                 
  10b842:	c3                   	ret                                   
  10b843:	90                   	nop                                   
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
        the_semaphore->count += 1;                                    
  10b844:	40                   	inc    %eax                           
  10b845:	89 43 48             	mov    %eax,0x48(%ebx)                
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
  10b848:	31 c0                	xor    %eax,%eax                      
  10b84a:	eb f0                	jmp    10b83c <_CORE_semaphore_Surrender+0x30>
                                                                      

0010bc74 <_Chain_Get_with_empty_check>: bool _Chain_Get_with_empty_check( Chain_Control *chain, Chain_Node **node ) {
  10bc74:	55                   	push   %ebp                           
  10bc75:	89 e5                	mov    %esp,%ebp                      
  10bc77:	57                   	push   %edi                           
  10bc78:	56                   	push   %esi                           
  10bc79:	53                   	push   %ebx                           
  10bc7a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10bc7d:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  ISR_Level level;                                                    
  bool is_empty_now;                                                  
                                                                      
  _ISR_Disable( level );                                              
  10bc80:	9c                   	pushf                                 
  10bc81:	fa                   	cli                                   
  10bc82:	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 );                        
  10bc83:	8d 58 04             	lea    0x4(%eax),%ebx                 
  Chain_Node *old_first = head->next;                                 
  10bc86:	8b 10                	mov    (%eax),%edx                    
                                                                      
  if ( old_first != tail ) {                                          
  10bc88:	39 d3                	cmp    %edx,%ebx                      
  10bc8a:	74 18                	je     10bca4 <_Chain_Get_with_empty_check+0x30>
    Chain_Node *new_first = old_first->next;                          
  10bc8c:	8b 0a                	mov    (%edx),%ecx                    
                                                                      
    head->next = new_first;                                           
  10bc8e:	89 08                	mov    %ecx,(%eax)                    
    new_first->previous = head;                                       
  10bc90:	89 41 04             	mov    %eax,0x4(%ecx)                 
                                                                      
    *the_node = old_first;                                            
  10bc93:	89 17                	mov    %edx,(%edi)                    
                                                                      
    is_empty_now = new_first == tail;                                 
  10bc95:	39 cb                	cmp    %ecx,%ebx                      
  10bc97:	0f 94 c0             	sete   %al                            
  is_empty_now = _Chain_Get_with_empty_check_unprotected( chain, node );
  _ISR_Enable( level );                                               
  10bc9a:	56                   	push   %esi                           
  10bc9b:	9d                   	popf                                  
                                                                      
  return is_empty_now;                                                
}                                                                     
  10bc9c:	5b                   	pop    %ebx                           
  10bc9d:	5e                   	pop    %esi                           
  10bc9e:	5f                   	pop    %edi                           
  10bc9f:	c9                   	leave                                 
  10bca0:	c3                   	ret                                   
  10bca1:	8d 76 00             	lea    0x0(%esi),%esi                 
  } else                                                              
    *the_node = NULL;                                                 
  10bca4:	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;                                           
  10bcaa:	b0 01                	mov    $0x1,%al                       
  10bcac:	eb ec                	jmp    10bc9a <_Chain_Get_with_empty_check+0x26>
                                                                      

001108e8 <_Chain_Initialize>: Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) {
  1108e8:	55                   	push   %ebp                           
  1108e9:	89 e5                	mov    %esp,%ebp                      
  1108eb:	57                   	push   %edi                           
  1108ec:	56                   	push   %esi                           
  1108ed:	53                   	push   %ebx                           
  1108ee:	83 ec 08             	sub    $0x8,%esp                      
  1108f1:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  1108f4:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  1108f7:	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 );                        
  1108fa:	8d 47 04             	lea    0x4(%edi),%eax                 
  1108fd:	89 45 f0             	mov    %eax,-0x10(%ebp)               
  Chain_Node *current = head;                                         
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
  110900:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)                 
                                                                      
  while ( count-- ) {                                                 
  110907:	85 c9                	test   %ecx,%ecx                      
  110909:	74 35                	je     110940 <_Chain_Initialize+0x58><== NEVER TAKEN
  11090b:	49                   	dec    %ecx                           
  11090c:	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;                                
  11090f:	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;                                         
  110912:	89 fa                	mov    %edi,%edx                      
  110914:	eb 07                	jmp    11091d <_Chain_Initialize+0x35>
  110916:	66 90                	xchg   %ax,%ax                        
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
  110918:	89 c2                	mov    %eax,%edx                      
    current->next  = next;                                            
    next->previous = current;                                         
    current        = next;                                            
    next           = (Chain_Node *)                                   
  11091a:	89 d8                	mov    %ebx,%eax                      
  11091c:	49                   	dec    %ecx                           
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
    current->next  = next;                                            
  11091d:	89 02                	mov    %eax,(%edx)                    
    next->previous = current;                                         
  11091f:	89 50 04             	mov    %edx,0x4(%eax)                 
 *    node_size        - size of node in bytes                        
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Chain_Initialize(                                               
  110922:	8d 1c 30             	lea    (%eax,%esi,1),%ebx             
  Chain_Node *current = head;                                         
  Chain_Node *next = starting_address;                                
                                                                      
  head->previous = NULL;                                              
                                                                      
  while ( count-- ) {                                                 
  110925:	85 c9                	test   %ecx,%ecx                      
  110927:	75 ef                	jne    110918 <_Chain_Initialize+0x30>
 *    node_size        - size of node in bytes                        
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Chain_Initialize(                                               
  110929:	0f af 75 ec          	imul   -0x14(%ebp),%esi               
  11092d:	03 75 0c             	add    0xc(%ebp),%esi                 
    current        = next;                                            
    next           = (Chain_Node *)                                   
                        _Addresses_Add_offset( (void *) next, node_size );
  }                                                                   
                                                                      
  current->next = tail;                                               
  110930:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  110933:	89 06                	mov    %eax,(%esi)                    
  tail->previous = current;                                           
  110935:	89 77 08             	mov    %esi,0x8(%edi)                 
}                                                                     
  110938:	83 c4 08             	add    $0x8,%esp                      
  11093b:	5b                   	pop    %ebx                           
  11093c:	5e                   	pop    %esi                           
  11093d:	5f                   	pop    %edi                           
  11093e:	c9                   	leave                                 
  11093f:	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;                                         
  110940:	89 fe                	mov    %edi,%esi                      <== NOT EXECUTED
  110942:	eb ec                	jmp    110930 <_Chain_Initialize+0x48><== NOT EXECUTED
                                                                      

0010a618 <_Event_Seize>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) {
  10a618:	55                   	push   %ebp                           
  10a619:	89 e5                	mov    %esp,%ebp                      
  10a61b:	57                   	push   %edi                           
  10a61c:	56                   	push   %esi                           
  10a61d:	53                   	push   %ebx                           
  10a61e:	83 ec 2c             	sub    $0x2c,%esp                     
  10a621:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10a624:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10a627:	8b 55 10             	mov    0x10(%ebp),%edx                
  10a62a:	89 55 dc             	mov    %edx,-0x24(%ebp)               
  10a62d:	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;                                      
  10a630:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
  10a636:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)                
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  10a63d:	8b b3 e8 00 00 00    	mov    0xe8(%ebx),%esi                
                                                                      
  _ISR_Disable( level );                                              
  10a643:	9c                   	pushf                                 
  10a644:	fa                   	cli                                   
  10a645:	8f 45 e0             	popl   -0x20(%ebp)                    
  pending_events = api->pending_events;                               
  10a648:	8b 16                	mov    (%esi),%edx                    
  10a64a:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
  10a64d:	21 c2                	and    %eax,%edx                      
  10a64f:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10a652:	74 0d                	je     10a661 <_Event_Seize+0x49>     
  10a654:	39 d0                	cmp    %edx,%eax                      
  10a656:	0f 84 84 00 00 00    	je     10a6e0 <_Event_Seize+0xc8>     
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
  10a65c:	f6 c1 02             	test   $0x2,%cl                       
  10a65f:	75 7f                	jne    10a6e0 <_Event_Seize+0xc8>     
    _ISR_Enable( level );                                             
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
  10a661:	f6 c1 01             	test   $0x1,%cl                       
  10a664:	75 62                	jne    10a6c8 <_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;          
  10a666:	89 4b 30             	mov    %ecx,0x30(%ebx)                
  executing->Wait.count             = (uint32_t) event_in;            
  10a669:	89 43 24             	mov    %eax,0x24(%ebx)                
  executing->Wait.return_argument   = event_out;                      
  10a66c:	89 7b 28             	mov    %edi,0x28(%ebx)                
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
  10a66f:	c7 05 c8 81 12 00 01 	movl   $0x1,0x1281c8                  
  10a676:	00 00 00                                                    
                                                                      
  _ISR_Enable( level );                                               
  10a679:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10a67c:	9d                   	popf                                  
                                                                      
  if ( ticks ) {                                                      
  10a67d:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10a680:	85 c0                	test   %eax,%eax                      
  10a682:	0f 85 80 00 00 00    	jne    10a708 <_Event_Seize+0xf0>     
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  }                                                                   
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
  10a688:	83 ec 08             	sub    $0x8,%esp                      
  10a68b:	68 00 01 00 00       	push   $0x100                         
  10a690:	53                   	push   %ebx                           
  10a691:	e8 0e 2f 00 00       	call   10d5a4 <_Thread_Set_state>     
                                                                      
  _ISR_Disable( level );                                              
  10a696:	9c                   	pushf                                 
  10a697:	fa                   	cli                                   
  10a698:	5a                   	pop    %edx                           
                                                                      
  sync_state = _Event_Sync_state;                                     
  10a699:	a1 c8 81 12 00       	mov    0x1281c8,%eax                  
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
  10a69e:	c7 05 c8 81 12 00 00 	movl   $0x0,0x1281c8                  
  10a6a5:	00 00 00                                                    
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
  10a6a8:	83 c4 10             	add    $0x10,%esp                     
  10a6ab:	83 f8 01             	cmp    $0x1,%eax                      
  10a6ae:	74 4c                	je     10a6fc <_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 );  
  10a6b0:	89 55 10             	mov    %edx,0x10(%ebp)                
  10a6b3:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  10a6b6:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10a6b9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a6bc:	5b                   	pop    %ebx                           
  10a6bd:	5e                   	pop    %esi                           
  10a6be:	5f                   	pop    %edi                           
  10a6bf:	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 );  
  10a6c0:	e9 37 22 00 00       	jmp    10c8fc <_Thread_blocking_operation_Cancel>
  10a6c5:	8d 76 00             	lea    0x0(%esi),%esi                 
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
    _ISR_Enable( level );                                             
  10a6c8:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10a6cb:	9d                   	popf                                  
    executing->Wait.return_code = RTEMS_UNSATISFIED;                  
  10a6cc:	c7 43 34 0d 00 00 00 	movl   $0xd,0x34(%ebx)                
    *event_out = seized_events;                                       
  10a6d3:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10a6d6:	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 );  
}                                                                     
  10a6d8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a6db:	5b                   	pop    %ebx                           
  10a6dc:	5e                   	pop    %esi                           
  10a6dd:	5f                   	pop    %edi                           
  10a6de:	c9                   	leave                                 
  10a6df:	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) );                            
  10a6e0:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10a6e3:	f7 d0                	not    %eax                           
  10a6e5:	23 45 d4             	and    -0x2c(%ebp),%eax               
  10a6e8:	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 );                                             
  10a6ea:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10a6ed:	9d                   	popf                                  
    *event_out = seized_events;                                       
  10a6ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10a6f1:	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 );  
}                                                                     
  10a6f3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a6f6:	5b                   	pop    %ebx                           
  10a6f7:	5e                   	pop    %esi                           
  10a6f8:	5f                   	pop    %edi                           
  10a6f9:	c9                   	leave                                 
  10a6fa:	c3                   	ret                                   
  10a6fb:	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 );                                             
  10a6fc:	52                   	push   %edx                           
  10a6fd:	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 );  
}                                                                     
  10a6fe:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a701:	5b                   	pop    %ebx                           
  10a702:	5e                   	pop    %esi                           
  10a703:	5f                   	pop    %edi                           
  10a704:	c9                   	leave                                 
  10a705:	c3                   	ret                                   
  10a706:	66 90                	xchg   %ax,%ax                        
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  if ( ticks ) {                                                      
    _Watchdog_Initialize(                                             
  10a708:	8b 43 08             	mov    0x8(%ebx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10a70b:	c7 43 50 00 00 00 00 	movl   $0x0,0x50(%ebx)                
  the_watchdog->routine   = routine;                                  
  10a712:	c7 43 64 bc a8 10 00 	movl   $0x10a8bc,0x64(%ebx)           
  the_watchdog->id        = id;                                       
  10a719:	89 43 68             	mov    %eax,0x68(%ebx)                
  the_watchdog->user_data = user_data;                                
  10a71c:	c7 43 6c 00 00 00 00 	movl   $0x0,0x6c(%ebx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10a723:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10a726:	89 43 54             	mov    %eax,0x54(%ebx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10a729:	83 ec 08             	sub    $0x8,%esp                      
      &executing->Timer,                                              
      _Event_Timeout,                                                 
      executing->Object.id,                                           
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  10a72c:	8d 43 48             	lea    0x48(%ebx),%eax                
  10a72f:	50                   	push   %eax                           
  10a730:	68 c0 78 12 00       	push   $0x1278c0                      
  10a735:	e8 ba 33 00 00       	call   10daf4 <_Watchdog_Insert>      
  10a73a:	83 c4 10             	add    $0x10,%esp                     
  10a73d:	e9 46 ff ff ff       	jmp    10a688 <_Event_Seize+0x70>     
                                                                      

0010a798 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) {
  10a798:	55                   	push   %ebp                           
  10a799:	89 e5                	mov    %esp,%ebp                      
  10a79b:	57                   	push   %edi                           
  10a79c:	56                   	push   %esi                           
  10a79d:	53                   	push   %ebx                           
  10a79e:	83 ec 2c             	sub    $0x2c,%esp                     
  10a7a1:	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 ];               
  10a7a4:	8b 8b e8 00 00 00    	mov    0xe8(%ebx),%ecx                
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
  10a7aa:	8b 7b 30             	mov    0x30(%ebx),%edi                
                                                                      
  _ISR_Disable( level );                                              
  10a7ad:	9c                   	pushf                                 
  10a7ae:	fa                   	cli                                   
  10a7af:	8f 45 d4             	popl   -0x2c(%ebp)                    
  pending_events  = api->pending_events;                              
  10a7b2:	8b 11                	mov    (%ecx),%edx                    
  event_condition = (rtems_event_set) the_thread->Wait.count;         
  10a7b4:	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 ) ) {                      
  10a7b7:	89 c6                	mov    %eax,%esi                      
  10a7b9:	21 d6                	and    %edx,%esi                      
  10a7bb:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
  10a7be:	74 74                	je     10a834 <_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() &&                                       
  10a7c0:	8b 35 94 7d 12 00    	mov    0x127d94,%esi                  
  10a7c6:	85 f6                	test   %esi,%esi                      
  10a7c8:	74 0c                	je     10a7d6 <_Event_Surrender+0x3e> 
  10a7ca:	3b 1d 98 7d 12 00    	cmp    0x127d98,%ebx                  
  10a7d0:	0f 84 96 00 00 00    	je     10a86c <_Event_Surrender+0xd4> 
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
  10a7d6:	f6 43 11 01          	testb  $0x1,0x11(%ebx)                
  10a7da:	74 4c                	je     10a828 <_Event_Surrender+0x90> 
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
  10a7dc:	3b 45 e4             	cmp    -0x1c(%ebp),%eax               
  10a7df:	74 05                	je     10a7e6 <_Event_Surrender+0x4e> 
  10a7e1:	83 e7 02             	and    $0x2,%edi                      
  10a7e4:	74 42                	je     10a828 <_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) );                            
  10a7e6:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10a7e9:	f7 d0                	not    %eax                           
  10a7eb:	21 d0                	and    %edx,%eax                      
  10a7ed:	89 01                	mov    %eax,(%ecx)                    
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
  10a7ef:	c7 43 24 00 00 00 00 	movl   $0x0,0x24(%ebx)                
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
  10a7f6:	8b 43 28             	mov    0x28(%ebx),%eax                
  10a7f9:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  10a7fc:	89 30                	mov    %esi,(%eax)                    
                                                                      
      _ISR_Flash( level );                                            
  10a7fe:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a801:	9d                   	popf                                  
  10a802:	fa                   	cli                                   
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
  10a803:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  10a807:	74 37                	je     10a840 <_Event_Surrender+0xa8> 
        _ISR_Enable( level );                                         
  10a809:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a80c:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10a80d:	83 ec 08             	sub    $0x8,%esp                      
  10a810:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10a815:	53                   	push   %ebx                           
  10a816:	e8 01 22 00 00       	call   10ca1c <_Thread_Clear_state>   
  10a81b:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
  10a81e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a821:	5b                   	pop    %ebx                           
  10a822:	5e                   	pop    %esi                           
  10a823:	5f                   	pop    %edi                           
  10a824:	c9                   	leave                                 
  10a825:	c3                   	ret                                   
  10a826:	66 90                	xchg   %ax,%ax                        
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
  10a828:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a82b:	9d                   	popf                                  
}                                                                     
  10a82c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a82f:	5b                   	pop    %ebx                           
  10a830:	5e                   	pop    %esi                           
  10a831:	5f                   	pop    %edi                           
  10a832:	c9                   	leave                                 
  10a833:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
    _ISR_Enable( level );                                             
  10a834:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a837:	9d                   	popf                                  
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
  10a838:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a83b:	5b                   	pop    %ebx                           
  10a83c:	5e                   	pop    %esi                           
  10a83d:	5f                   	pop    %edi                           
  10a83e:	c9                   	leave                                 
  10a83f:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
  10a840:	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 );                                         
  10a847:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a84a:	9d                   	popf                                  
        (void) _Watchdog_Remove( &the_thread->Timer );                
  10a84b:	83 ec 0c             	sub    $0xc,%esp                      
  10a84e:	8d 43 48             	lea    0x48(%ebx),%eax                
  10a851:	50                   	push   %eax                           
  10a852:	e8 dd 33 00 00       	call   10dc34 <_Watchdog_Remove>      
  10a857:	58                   	pop    %eax                           
  10a858:	5a                   	pop    %edx                           
  10a859:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10a85e:	53                   	push   %ebx                           
  10a85f:	e8 b8 21 00 00       	call   10ca1c <_Thread_Clear_state>   
  10a864:	83 c4 10             	add    $0x10,%esp                     
  10a867:	eb c3                	jmp    10a82c <_Event_Surrender+0x94> 
  10a869:	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) ||   
  10a86c:	8b 35 c8 81 12 00    	mov    0x1281c8,%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 ) &&                          
  10a872:	83 fe 02             	cmp    $0x2,%esi                      
  10a875:	74 0d                	je     10a884 <_Event_Surrender+0xec> <== NEVER TAKEN
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
  10a877:	8b 35 c8 81 12 00    	mov    0x1281c8,%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) ||   
  10a87d:	4e                   	dec    %esi                           
  10a87e:	0f 85 52 ff ff ff    	jne    10a7d6 <_Event_Surrender+0x3e> 
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
  10a884:	3b 45 e4             	cmp    -0x1c(%ebp),%eax               
  10a887:	74 05                	je     10a88e <_Event_Surrender+0xf6> 
  10a889:	83 e7 02             	and    $0x2,%edi                      
  10a88c:	74 22                	je     10a8b0 <_Event_Surrender+0x118><== NEVER TAKEN
  10a88e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10a891:	f7 d0                	not    %eax                           
  10a893:	21 d0                	and    %edx,%eax                      
  10a895:	89 01                	mov    %eax,(%ecx)                    
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
  10a897:	c7 43 24 00 00 00 00 	movl   $0x0,0x24(%ebx)                
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
  10a89e:	8b 43 28             	mov    0x28(%ebx),%eax                
  10a8a1:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10a8a4:	89 10                	mov    %edx,(%eax)                    
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
  10a8a6:	c7 05 c8 81 12 00 03 	movl   $0x3,0x1281c8                  
  10a8ad:	00 00 00                                                    
    }                                                                 
    _ISR_Enable( level );                                             
  10a8b0:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10a8b3:	9d                   	popf                                  
    return;                                                           
  10a8b4:	e9 73 ff ff ff       	jmp    10a82c <_Event_Surrender+0x94> 
                                                                      

0010a8bc <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
  10a8bc:	55                   	push   %ebp                           
  10a8bd:	89 e5                	mov    %esp,%ebp                      
  10a8bf:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10a8c2:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10a8c5:	50                   	push   %eax                           
  10a8c6:	ff 75 08             	pushl  0x8(%ebp)                      
  10a8c9:	e8 d6 24 00 00       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  10a8ce:	83 c4 10             	add    $0x10,%esp                     
  10a8d1:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10a8d4:	85 d2                	test   %edx,%edx                      
  10a8d6:	75 37                	jne    10a90f <_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 );                                          
  10a8d8:	9c                   	pushf                                 
  10a8d9:	fa                   	cli                                   
  10a8da:	5a                   	pop    %edx                           
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
  10a8db:	c7 40 24 00 00 00 00 	movl   $0x0,0x24(%eax)                
        if ( _Thread_Is_executing( the_thread ) ) {                   
  10a8e2:	3b 05 98 7d 12 00    	cmp    0x127d98,%eax                  
  10a8e8:	74 2a                	je     10a914 <_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;                 
  10a8ea:	c7 40 34 06 00 00 00 	movl   $0x6,0x34(%eax)                
      _ISR_Enable( level );                                           
  10a8f1:	52                   	push   %edx                           
  10a8f2:	9d                   	popf                                  
  10a8f3:	83 ec 08             	sub    $0x8,%esp                      
  10a8f6:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10a8fb:	50                   	push   %eax                           
  10a8fc:	e8 1b 21 00 00       	call   10ca1c <_Thread_Clear_state>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10a901:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10a906:	48                   	dec    %eax                           
  10a907:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
      _Thread_Unblock( the_thread );                                  
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  10a90c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
  10a90f:	c9                   	leave                                 
  10a910:	c3                   	ret                                   
  10a911:	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 )
  10a914:	8b 0d c8 81 12 00    	mov    0x1281c8,%ecx                  
  10a91a:	49                   	dec    %ecx                           
  10a91b:	75 cd                	jne    10a8ea <_Event_Timeout+0x2e>   
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
  10a91d:	c7 05 c8 81 12 00 02 	movl   $0x2,0x1281c8                  
  10a924:	00 00 00                                                    
  10a927:	eb c1                	jmp    10a8ea <_Event_Timeout+0x2e>   
                                                                      

00110e38 <_Heap_Allocate_aligned_with_boundary>: Heap_Control *heap, uintptr_t alloc_size, uintptr_t alignment, uintptr_t boundary ) {
  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 2c             	sub    $0x2c,%esp                     
  110e41:	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
  110e44:	8d 47 04             	lea    0x4(%edi),%eax                 
  110e47:	89 45 dc             	mov    %eax,-0x24(%ebp)               
    - HEAP_ALLOC_BONUS;                                               
  uintptr_t const page_size = heap->page_size;                        
  110e4a:	8b 55 08             	mov    0x8(%ebp),%edx                 
  110e4d:	8b 52 10             	mov    0x10(%edx),%edx                
  110e50:	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 ) {                              
  110e53:	39 c7                	cmp    %eax,%edi                      
  110e55:	0f 87 69 01 00 00    	ja     110fc4 <_Heap_Allocate_aligned_with_boundary+0x18c>
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
  110e5b:	8b 5d 14             	mov    0x14(%ebp),%ebx                
  110e5e:	85 db                	test   %ebx,%ebx                      
  110e60:	0f 85 56 01 00 00    	jne    110fbc <_Heap_Allocate_aligned_with_boundary+0x184>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  110e66:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110e69:	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 ) {                               
  110e6c:	39 c8                	cmp    %ecx,%eax                      
  110e6e:	0f 84 50 01 00 00    	je     110fc4 <_Heap_Allocate_aligned_with_boundary+0x18c>
  110e74:	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    
  110e7b:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  110e7e:	83 c2 07             	add    $0x7,%edx                      
  110e81:	89 55 c8             	mov    %edx,-0x38(%ebp)               
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
  110e84:	c7 45 d0 04 00 00 00 	movl   $0x4,-0x30(%ebp)               
  110e8b:	29 7d d0             	sub    %edi,-0x30(%ebp)               
  110e8e:	eb 1e                	jmp    110eae <_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;                  
  110e90:	8d 59 08             	lea    0x8(%ecx),%ebx                 
      }                                                               
                                                                      
      /* Statistics */                                                
      ++search_count;                                                 
                                                                      
      if ( alloc_begin != 0 ) {                                       
  110e93:	85 db                	test   %ebx,%ebx                      
  110e95:	0f 85 f1 00 00 00    	jne    110f8c <_Heap_Allocate_aligned_with_boundary+0x154><== ALWAYS TAKEN
        break;                                                        
      }                                                               
                                                                      
      block = block->next;                                            
  110e9b:	8b 49 08             	mov    0x8(%ecx),%ecx                 
  110e9e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  110ea1:	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 ) {                               
  110ea2:	39 4d 08             	cmp    %ecx,0x8(%ebp)                 
  110ea5:	0f 84 25 01 00 00    	je     110fd0 <_Heap_Allocate_aligned_with_boundary+0x198>
  110eab:	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 ) {                
  110eae:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  110eb1:	39 5d dc             	cmp    %ebx,-0x24(%ebp)               
  110eb4:	73 e5                	jae    110e9b <_Heap_Allocate_aligned_with_boundary+0x63>
        if ( alignment == 0 ) {                                       
  110eb6:	8b 55 10             	mov    0x10(%ebp),%edx                
  110eb9:	85 d2                	test   %edx,%edx                      
  110ebb:	74 d3                	je     110e90 <_Heap_Allocate_aligned_with_boundary+0x58>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  110ebd:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110ec0:	8b 40 14             	mov    0x14(%eax),%eax                
  110ec3:	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;                
  110ec6:	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;               
  110ec9:	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;                  
  110ecc:	8d 51 08             	lea    0x8(%ecx),%edx                 
  110ecf:	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;                         
  110ed2:	8b 75 c8             	mov    -0x38(%ebp),%esi               
  110ed5:	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    
  110ed7:	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;                     
  110ed9:	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);                                 
  110edc:	89 d8                	mov    %ebx,%eax                      
  110ede:	31 d2                	xor    %edx,%edx                      
  110ee0:	f7 75 10             	divl   0x10(%ebp)                     
  110ee3:	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 ) {                          
  110ee5:	39 de                	cmp    %ebx,%esi                      
  110ee7:	73 0b                	jae    110ef4 <_Heap_Allocate_aligned_with_boundary+0xbc>
  110ee9:	89 f0                	mov    %esi,%eax                      
  110eeb:	31 d2                	xor    %edx,%edx                      
  110eed:	f7 75 10             	divl   0x10(%ebp)                     
  110ef0:	89 f3                	mov    %esi,%ebx                      
  110ef2:	29 d3                	sub    %edx,%ebx                      
  }                                                                   
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
  110ef4:	8b 45 14             	mov    0x14(%ebp),%eax                
  110ef7:	85 c0                	test   %eax,%eax                      
  110ef9:	74 5b                	je     110f56 <_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;                               
  110efb:	8d 34 3b             	lea    (%ebx,%edi,1),%esi             
  110efe:	89 f0                	mov    %esi,%eax                      
  110f00:	31 d2                	xor    %edx,%edx                      
  110f02:	f7 75 14             	divl   0x14(%ebp)                     
  110f05:	89 f0                	mov    %esi,%eax                      
  110f07:	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 ) {
  110f09:	39 c3                	cmp    %eax,%ebx                      
  110f0b:	73 49                	jae    110f56 <_Heap_Allocate_aligned_with_boundary+0x11e>
  110f0d:	39 c6                	cmp    %eax,%esi                      
  110f0f:	76 45                	jbe    110f56 <_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;  
  110f11:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  110f14:	01 fa                	add    %edi,%edx                      
  110f16:	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 ) {                         
  110f19:	39 c2                	cmp    %eax,%edx                      
  110f1b:	0f 87 7a ff ff ff    	ja     110e9b <_Heap_Allocate_aligned_with_boundary+0x63>
  110f21:	89 ce                	mov    %ecx,%esi                      
  110f23:	eb 10                	jmp    110f35 <_Heap_Allocate_aligned_with_boundary+0xfd>
  110f25:	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 ) {
  110f28:	39 c1                	cmp    %eax,%ecx                      
  110f2a:	76 28                	jbe    110f54 <_Heap_Allocate_aligned_with_boundary+0x11c>
      if ( boundary_line < boundary_floor ) {                         
  110f2c:	39 45 e0             	cmp    %eax,-0x20(%ebp)               
  110f2f:	0f 87 9f 00 00 00    	ja     110fd4 <_Heap_Allocate_aligned_with_boundary+0x19c><== NEVER TAKEN
        return 0;                                                     
      }                                                               
      alloc_begin = boundary_line - alloc_size;                       
  110f35:	89 c3                	mov    %eax,%ebx                      
  110f37:	29 fb                	sub    %edi,%ebx                      
  110f39:	89 d8                	mov    %ebx,%eax                      
  110f3b:	31 d2                	xor    %edx,%edx                      
  110f3d:	f7 75 10             	divl   0x10(%ebp)                     
  110f40:	29 d3                	sub    %edx,%ebx                      
      alloc_begin = _Heap_Align_down( alloc_begin, alignment );       
      alloc_end = alloc_begin + alloc_size;                           
  110f42:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx             
  110f45:	89 c8                	mov    %ecx,%eax                      
  110f47:	31 d2                	xor    %edx,%edx                      
  110f49:	f7 75 14             	divl   0x14(%ebp)                     
  110f4c:	89 c8                	mov    %ecx,%eax                      
  110f4e:	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 ) {
  110f50:	39 c3                	cmp    %eax,%ebx                      
  110f52:	72 d4                	jb     110f28 <_Heap_Allocate_aligned_with_boundary+0xf0>
  110f54:	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 ) {                           
  110f56:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)               
  110f59:	0f 87 3c ff ff ff    	ja     110e9b <_Heap_Allocate_aligned_with_boundary+0x63>
  110f5f:	be f8 ff ff ff       	mov    $0xfffffff8,%esi               
  110f64:	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);                                        
  110f66:	01 de                	add    %ebx,%esi                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  110f68:	89 d8                	mov    %ebx,%eax                      
  110f6a:	31 d2                	xor    %edx,%edx                      
  110f6c:	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;      
  110f6f:	29 d6                	sub    %edx,%esi                      
                                                                      
    if ( free_size >= min_block_size || free_size == 0 ) {            
  110f71:	39 75 d8             	cmp    %esi,-0x28(%ebp)               
  110f74:	0f 86 19 ff ff ff    	jbe    110e93 <_Heap_Allocate_aligned_with_boundary+0x5b>
  110f7a:	85 f6                	test   %esi,%esi                      
  110f7c:	0f 85 19 ff ff ff    	jne    110e9b <_Heap_Allocate_aligned_with_boundary+0x63>
      }                                                               
                                                                      
      /* Statistics */                                                
      ++search_count;                                                 
                                                                      
      if ( alloc_begin != 0 ) {                                       
  110f82:	85 db                	test   %ebx,%ebx                      
  110f84:	0f 84 11 ff ff ff    	je     110e9b <_Heap_Allocate_aligned_with_boundary+0x63><== NEVER TAKEN
  110f8a:	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;                                                  
  110f8c:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110f8f:	ff 40 48             	incl   0x48(%eax)                     
    stats->searches += search_count;                                  
  110f92:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  110f95:	01 50 4c             	add    %edx,0x4c(%eax)                
                                                                      
    block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );
  110f98:	57                   	push   %edi                           
  110f99:	53                   	push   %ebx                           
  110f9a:	51                   	push   %ecx                           
  110f9b:	50                   	push   %eax                           
  110f9c:	e8 1f ac ff ff       	call   10bbc0 <_Heap_Block_allocate>  
  110fa1:	89 d8                	mov    %ebx,%eax                      
  110fa3:	83 c4 10             	add    $0x10,%esp                     
      boundary                                                        
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->max_search < search_count ) {                           
  110fa6:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  110fa9:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  110fac:	39 51 44             	cmp    %edx,0x44(%ecx)                
  110faf:	73 15                	jae    110fc6 <_Heap_Allocate_aligned_with_boundary+0x18e>
    stats->max_search = search_count;                                 
  110fb1:	89 51 44             	mov    %edx,0x44(%ecx)                
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  110fb4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110fb7:	5b                   	pop    %ebx                           
  110fb8:	5e                   	pop    %esi                           
  110fb9:	5f                   	pop    %edi                           
  110fba:	c9                   	leave                                 
  110fbb:	c3                   	ret                                   
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
  110fbc:	3b 7d 14             	cmp    0x14(%ebp),%edi                
  110fbf:	76 1a                	jbe    110fdb <_Heap_Allocate_aligned_with_boundary+0x1a3>
  110fc1:	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 ) {                               
  110fc4:	31 c0                	xor    %eax,%eax                      
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
  110fc6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110fc9:	5b                   	pop    %ebx                           
  110fca:	5e                   	pop    %esi                           
  110fcb:	5f                   	pop    %edi                           
  110fcc:	c9                   	leave                                 
  110fcd:	c3                   	ret                                   
  110fce:	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 ) {                               
  110fd0:	31 c0                	xor    %eax,%eax                      
  110fd2:	eb d2                	jmp    110fa6 <_Heap_Allocate_aligned_with_boundary+0x16e>
  110fd4:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
  110fd6:	e9 c0 fe ff ff       	jmp    110e9b <_Heap_Allocate_aligned_with_boundary+0x63><== NOT EXECUTED
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
      return NULL;                                                    
    }                                                                 
                                                                      
    if ( alignment == 0 ) {                                           
  110fdb:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  110fde:	85 c9                	test   %ecx,%ecx                      
  110fe0:	0f 85 80 fe ff ff    	jne    110e66 <_Heap_Allocate_aligned_with_boundary+0x2e>
      alignment = page_size;                                          
  110fe6:	89 55 10             	mov    %edx,0x10(%ebp)                
  110fe9:	e9 78 fe ff ff       	jmp    110e66 <_Heap_Allocate_aligned_with_boundary+0x2e>
                                                                      

0011134c <_Heap_Extend>: Heap_Control *heap, void *extend_area_begin_ptr, uintptr_t extend_area_size, uintptr_t *extended_size_ptr ) {
  11134c:	55                   	push   %ebp                           
  11134d:	89 e5                	mov    %esp,%ebp                      
  11134f:	57                   	push   %edi                           
  111350:	56                   	push   %esi                           
  111351:	53                   	push   %ebx                           
  111352:	83 ec 4c             	sub    $0x4c,%esp                     
  111355:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  111358:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const first_block = heap->first_block;                  
  11135b:	8b 43 20             	mov    0x20(%ebx),%eax                
  11135e:	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;                              
  111361:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  Heap_Block *extend_last_block = NULL;                               
  111368:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  uintptr_t const page_size = heap->page_size;                        
  11136f:	8b 53 10             	mov    0x10(%ebx),%edx                
  111372:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  uintptr_t const min_block_size = heap->min_block_size;              
  111375:	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;                       
  111378:	8b 73 30             	mov    0x30(%ebx),%esi                
  11137b:	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 ) {                        
  11137e:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  111381:	01 ca                	add    %ecx,%edx                      
  111383:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  111386:	73 0c                	jae    111394 <_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;                                                   
  111388:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
  11138a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11138d:	5b                   	pop    %ebx                           
  11138e:	5e                   	pop    %esi                           
  11138f:	5f                   	pop    %edi                           
  111390:	c9                   	leave                                 
  111391:	c3                   	ret                                   
  111392:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
    return false;                                                     
  }                                                                   
                                                                      
  extend_area_ok = _Heap_Get_first_and_last_block(                    
  111394:	83 ec 08             	sub    $0x8,%esp                      
  111397:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  11139a:	52                   	push   %edx                           
  11139b:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
  11139e:	52                   	push   %edx                           
  11139f:	50                   	push   %eax                           
  1113a0:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  1113a3:	51                   	push   %ecx                           
  1113a4:	ff 75 0c             	pushl  0xc(%ebp)                      
  1113a7:	e8 20 aa ff ff       	call   10bdcc <_Heap_Get_first_and_last_block>
    page_size,                                                        
    min_block_size,                                                   
    &extend_first_block,                                              
    &extend_last_block                                                
  );                                                                  
  if (!extend_area_ok ) {                                             
  1113ac:	83 c4 20             	add    $0x20,%esp                     
  1113af:	84 c0                	test   %al,%al                        
  1113b1:	74 d5                	je     111388 <_Heap_Extend+0x3c>     
  1113b3:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  1113b6:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)               
  1113bd:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)               
  1113c4:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)               
  1113cb:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)               
  1113d2:	8b 75 cc             	mov    -0x34(%ebp),%esi               
  1113d5:	89 5d b4             	mov    %ebx,-0x4c(%ebp)               
  1113d8:	eb 30                	jmp    11140a <_Heap_Extend+0xbe>     
  1113da:	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 ) {                    
  1113dc:	39 ce                	cmp    %ecx,%esi                      
  1113de:	73 03                	jae    1113e3 <_Heap_Extend+0x97>     
  1113e0:	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);                                 
  1113e3:	8d 59 f8             	lea    -0x8(%ecx),%ebx                
  1113e6:	89 c8                	mov    %ecx,%eax                      
  1113e8:	31 d2                	xor    %edx,%edx                      
  1113ea:	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);                                        
  1113ed:	29 d3                	sub    %edx,%ebx                      
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
  1113ef:	3b 4d 0c             	cmp    0xc(%ebp),%ecx                 
  1113f2:	74 3c                	je     111430 <_Heap_Extend+0xe4>     
      start_block->prev_size = extend_area_end;                       
                                                                      
      merge_above_block = end_block;                                  
    } else if ( sub_area_end < extend_area_begin ) {                  
  1113f4:	39 4d 0c             	cmp    %ecx,0xc(%ebp)                 
  1113f7:	76 03                	jbe    1113fc <_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 )   
  1113f9:	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;                
  1113fc:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  1113ff:	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);                 
  111402:	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 );                             
  111405:	39 7d d0             	cmp    %edi,-0x30(%ebp)               
  111408:	74 39                	je     111443 <_Heap_Extend+0xf7>     
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
  11140a:	3b 7d d0             	cmp    -0x30(%ebp),%edi               
  11140d:	0f 84 39 01 00 00    	je     11154c <_Heap_Extend+0x200>    
  111413:	89 f8                	mov    %edi,%eax                      
    uintptr_t const sub_area_end = start_block->prev_size;            
  111415:	8b 0f                	mov    (%edi),%ecx                    
    Heap_Block *const end_block =                                     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
  111417:	39 4d 0c             	cmp    %ecx,0xc(%ebp)                 
  11141a:	73 08                	jae    111424 <_Heap_Extend+0xd8>     
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
  11141c:	39 f0                	cmp    %esi,%eax                      
  11141e:	0f 82 64 ff ff ff    	jb     111388 <_Heap_Extend+0x3c>     
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
  111424:	39 f0                	cmp    %esi,%eax                      
  111426:	75 b4                	jne    1113dc <_Heap_Extend+0x90>     
  111428:	89 7d c4             	mov    %edi,-0x3c(%ebp)               
  11142b:	eb b6                	jmp    1113e3 <_Heap_Extend+0x97>     
  11142d:	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;                       
  111430:	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 )   
  111432:	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;                
  111435:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  111438:	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);                 
  11143b:	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 );                             
  11143e:	39 7d d0             	cmp    %edi,-0x30(%ebp)               
  111441:	75 c7                	jne    11140a <_Heap_Extend+0xbe>     <== NEVER TAKEN
  111443:	8b 5d b4             	mov    -0x4c(%ebp),%ebx               
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
  111446:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  111449:	3b 73 18             	cmp    0x18(%ebx),%esi                
  11144c:	0f 82 06 01 00 00    	jb     111558 <_Heap_Extend+0x20c>    
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
  111452:	8b 45 cc             	mov    -0x34(%ebp),%eax               
  111455:	3b 43 1c             	cmp    0x1c(%ebx),%eax                
  111458:	76 03                	jbe    11145d <_Heap_Extend+0x111>    
    heap->area_end = extend_area_end;                                 
  11145a:	89 43 1c             	mov    %eax,0x1c(%ebx)                
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
  11145d:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  111460:	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 =                                           
  111463:	89 d1                	mov    %edx,%ecx                      
  111465:	29 c1                	sub    %eax,%ecx                      
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  111467:	8b 75 cc             	mov    -0x34(%ebp),%esi               
  11146a:	89 30                	mov    %esi,(%eax)                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
  11146c:	89 ce                	mov    %ecx,%esi                      
  11146e:	83 ce 01             	or     $0x1,%esi                      
  111471:	89 70 04             	mov    %esi,0x4(%eax)                 
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  111474:	89 0a                	mov    %ecx,(%edx)                    
  extend_last_block->size_and_flag = 0;                               
  111476:	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 ) {
  11147d:	39 43 20             	cmp    %eax,0x20(%ebx)                
  111480:	0f 86 da 00 00 00    	jbe    111560 <_Heap_Extend+0x214>    
    heap->first_block = extend_first_block;                           
  111486:	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 ) {                                  
  111489:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  11148c:	85 f6                	test   %esi,%esi                      
  11148e:	0f 84 10 01 00 00    	je     1115a4 <_Heap_Extend+0x258>    
  Heap_Control *heap,                                                 
  uintptr_t extend_area_begin,                                        
  Heap_Block *first_block                                             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  111494:	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 );
  111497:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  11149a:	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;                            
  11149d:	89 c8                	mov    %ecx,%eax                      
  11149f:	31 d2                	xor    %edx,%edx                      
  1114a1:	f7 f6                	div    %esi                           
                                                                      
  if ( remainder != 0 ) {                                             
  1114a3:	85 d2                	test   %edx,%edx                      
  1114a5:	0f 84 c9 00 00 00    	je     111574 <_Heap_Extend+0x228>    
    return value - remainder + alignment;                             
  1114ab:	8d 04 31             	lea    (%ecx,%esi,1),%eax             
  1114ae:	29 d0                	sub    %edx,%eax                      
  uintptr_t const new_first_block_begin =                             
  1114b0:	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;                
  1114b3:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  1114b6:	8b 0e                	mov    (%esi),%ecx                    
  1114b8:	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 =                              
  1114bb:	89 f0                	mov    %esi,%eax                      
  1114bd:	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;
  1114bf:	83 c8 01             	or     $0x1,%eax                      
  1114c2:	89 42 04             	mov    %eax,0x4(%edx)                 
                                                                      
  _Heap_Free_block( heap, new_first_block );                          
  1114c5:	89 d8                	mov    %ebx,%eax                      
  1114c7:	e8 64 fe ff ff       	call   111330 <_Heap_Free_block>      
      link_below_block,                                               
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
  1114cc:	8b 45 c8             	mov    -0x38(%ebp),%eax               
  1114cf:	85 c0                	test   %eax,%eax                      
  1114d1:	0f 84 a5 00 00 00    	je     11157c <_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,      
  1114d7:	8b 4d cc             	mov    -0x34(%ebp),%ecx               
  1114da:	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(             
  1114dd:	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);                                 
  1114e0:	89 c8                	mov    %ecx,%eax                      
  1114e2:	31 d2                	xor    %edx,%edx                      
  1114e4:	f7 73 10             	divl   0x10(%ebx)                     
  1114e7:	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)                 
  1114e9:	8b 55 c8             	mov    -0x38(%ebp),%edx               
  1114ec:	8b 42 04             	mov    0x4(%edx),%eax                 
  1114ef:	29 c8                	sub    %ecx,%eax                      
      | HEAP_PREV_BLOCK_USED;                                         
  1114f1:	83 c8 01             	or     $0x1,%eax                      
  1114f4:	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;       
  1114f8:	8b 42 04             	mov    0x4(%edx),%eax                 
  1114fb:	83 e0 01             	and    $0x1,%eax                      
                                                                      
  block->size_and_flag = size | flag;                                 
  1114fe:	09 c8                	or     %ecx,%eax                      
  111500:	89 42 04             	mov    %eax,0x4(%edx)                 
                                                                      
  _Heap_Block_set_size( last_block, last_block_new_size );            
                                                                      
  _Heap_Free_block( heap, last_block );                               
  111503:	89 d8                	mov    %ebx,%eax                      
  111505:	e8 26 fe ff ff       	call   111330 <_Heap_Free_block>      
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
  11150a:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  11150d:	85 f6                	test   %esi,%esi                      
  11150f:	0f 84 ab 00 00 00    	je     1115c0 <_Heap_Extend+0x274>    
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
  111515:	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(                                               
  111518:	8b 43 20             	mov    0x20(%ebx),%eax                
  11151b:	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;       
  11151d:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  111520:	83 e1 01             	and    $0x1,%ecx                      
                                                                      
  block->size_and_flag = size | flag;                                 
  111523:	09 c8                	or     %ecx,%eax                      
  111525:	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;                       
  111528:	8b 43 30             	mov    0x30(%ebx),%eax                
  11152b:	2b 45 c0             	sub    -0x40(%ebp),%eax               
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
  11152e:	01 43 2c             	add    %eax,0x2c(%ebx)                
                                                                      
  if ( extended_size_ptr != NULL )                                    
  111531:	8b 55 14             	mov    0x14(%ebp),%edx                
  111534:	85 d2                	test   %edx,%edx                      
  111536:	0f 84 a0 00 00 00    	je     1115dc <_Heap_Extend+0x290>    <== NEVER TAKEN
    *extended_size_ptr = extended_size;                               
  11153c:	8b 55 14             	mov    0x14(%ebp),%edx                
  11153f:	89 02                	mov    %eax,(%edx)                    
                                                                      
  return true;                                                        
  111541:	b0 01                	mov    $0x1,%al                       
}                                                                     
  111543:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  111546:	5b                   	pop    %ebx                           
  111547:	5e                   	pop    %esi                           
  111548:	5f                   	pop    %edi                           
  111549:	c9                   	leave                                 
  11154a:	c3                   	ret                                   
  11154b:	90                   	nop                                   
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
  11154c:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  11154f:	8b 42 18             	mov    0x18(%edx),%eax                
  111552:	e9 be fe ff ff       	jmp    111415 <_Heap_Extend+0xc9>     
  111557:	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;                             
  111558:	89 73 18             	mov    %esi,0x18(%ebx)                
  11155b:	e9 fd fe ff ff       	jmp    11145d <_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 ) {
  111560:	39 53 24             	cmp    %edx,0x24(%ebx)                
  111563:	0f 83 20 ff ff ff    	jae    111489 <_Heap_Extend+0x13d>    
    heap->last_block = extend_last_block;                             
  111569:	89 53 24             	mov    %edx,0x24(%ebx)                
  11156c:	e9 18 ff ff ff       	jmp    111489 <_Heap_Extend+0x13d>    
  111571:	8d 76 00             	lea    0x0(%esi),%esi                 
  uintptr_t remainder = value % alignment;                            
                                                                      
  if ( remainder != 0 ) {                                             
    return value - remainder + alignment;                             
  } else {                                                            
    return value;                                                     
  111574:	89 c8                	mov    %ecx,%eax                      
  111576:	e9 35 ff ff ff       	jmp    1114b0 <_Heap_Extend+0x164>    
  11157b:	90                   	nop                                   
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
  11157c:	8b 7d bc             	mov    -0x44(%ebp),%edi               
  11157f:	85 ff                	test   %edi,%edi                      
  111581:	74 87                	je     11150a <_Heap_Extend+0x1be>    
    _Heap_Link_above(                                                 
  111583:	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 );       
  111586:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  111589:	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;       
  11158c:	8b 75 bc             	mov    -0x44(%ebp),%esi               
  11158f:	8b 56 04             	mov    0x4(%esi),%edx                 
  111592:	83 e2 01             	and    $0x1,%edx                      
                                                                      
  block->size_and_flag = size | flag;                                 
  111595:	09 d0                	or     %edx,%eax                      
  111597:	89 46 04             	mov    %eax,0x4(%esi)                 
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
  11159a:	83 49 04 01          	orl    $0x1,0x4(%ecx)                 
  11159e:	e9 67 ff ff ff       	jmp    11150a <_Heap_Extend+0x1be>    
  1115a3:	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 ) {                            
  1115a4:	8b 4d b8             	mov    -0x48(%ebp),%ecx               
  1115a7:	85 c9                	test   %ecx,%ecx                      
  1115a9:	0f 84 1d ff ff ff    	je     1114cc <_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;           
  1115af:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  1115b2:	29 d0                	sub    %edx,%eax                      
  1115b4:	83 c8 01             	or     $0x1,%eax                      
  1115b7:	89 42 04             	mov    %eax,0x4(%edx)                 
  1115ba:	e9 0d ff ff ff       	jmp    1114cc <_Heap_Extend+0x180>    
  1115bf:	90                   	nop                                   
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
  1115c0:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  1115c3:	85 c9                	test   %ecx,%ecx                      
  1115c5:	0f 85 4a ff ff ff    	jne    111515 <_Heap_Extend+0x1c9>    
    _Heap_Free_block( heap, extend_first_block );                     
  1115cb:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  1115ce:	89 d8                	mov    %ebx,%eax                      
  1115d0:	e8 5b fd ff ff       	call   111330 <_Heap_Free_block>      
  1115d5:	e9 3b ff ff ff       	jmp    111515 <_Heap_Extend+0x1c9>    
  1115da:	66 90                	xchg   %ax,%ax                        
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
  1115dc:	b0 01                	mov    $0x1,%al                       <== NOT EXECUTED
  1115de:	e9 a7 fd ff ff       	jmp    11138a <_Heap_Extend+0x3e>     <== NOT EXECUTED
                                                                      

00110ff0 <_Heap_Free>: return do_free; } #endif bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr ) {
  110ff0:	55                   	push   %ebp                           
  110ff1:	89 e5                	mov    %esp,%ebp                      
  110ff3:	57                   	push   %edi                           
  110ff4:	56                   	push   %esi                           
  110ff5:	53                   	push   %ebx                           
  110ff6:	83 ec 10             	sub    $0x10,%esp                     
  110ff9:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  110ffc:	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 ) {                                    
  110fff:	85 c0                	test   %eax,%eax                      
  111001:	0f 84 e9 00 00 00    	je     1110f0 <_Heap_Free+0x100>      
  111007:	8d 58 f8             	lea    -0x8(%eax),%ebx                
  11100a:	31 d2                	xor    %edx,%edx                      
  11100c:	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);                                        
  11100f:	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           
  111011:	8b 41 20             	mov    0x20(%ecx),%eax                
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
  111014:	39 c3                	cmp    %eax,%ebx                      
  111016:	72 1c                	jb     111034 <_Heap_Free+0x44>       
  111018:	8b 71 24             	mov    0x24(%ecx),%esi                
  11101b:	39 f3                	cmp    %esi,%ebx                      
  11101d:	77 15                	ja     111034 <_Heap_Free+0x44>       
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  11101f:	8b 53 04             	mov    0x4(%ebx),%edx                 
  111022:	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;                
  111025:	83 e2 fe             	and    $0xfffffffe,%edx               
  111028:	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);                 
  11102b:	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;             
  11102e:	39 d0                	cmp    %edx,%eax                      
  111030:	76 0e                	jbe    111040 <_Heap_Free+0x50>       <== ALWAYS TAKEN
  111032:	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 );                                                
  111034:	31 c0                	xor    %eax,%eax                      
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  111036:	83 c4 10             	add    $0x10,%esp                     
  111039:	5b                   	pop    %ebx                           
  11103a:	5e                   	pop    %esi                           
  11103b:	5f                   	pop    %edi                           
  11103c:	c9                   	leave                                 
  11103d:	c3                   	ret                                   
  11103e:	66 90                	xchg   %ax,%ax                        
  111040:	39 d6                	cmp    %edx,%esi                      
  111042:	72 f0                	jb     111034 <_Heap_Free+0x44>       <== NEVER TAKEN
  111044:	8b 7a 04             	mov    0x4(%edx),%edi                 
    return false;                                                     
  }                                                                   
                                                                      
  _Heap_Protection_block_check( heap, next_block );                   
                                                                      
  if ( !_Heap_Is_prev_used( next_block ) ) {                          
  111047:	f7 c7 01 00 00 00    	test   $0x1,%edi                      
  11104d:	74 e5                	je     111034 <_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;                
  11104f:	83 e7 fe             	and    $0xfffffffe,%edi               
  111052:	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 ));
  111055:	39 d6                	cmp    %edx,%esi                      
  111057:	0f 84 d3 00 00 00    	je     111130 <_Heap_Free+0x140>      
                                                                      
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
  11105d:	f6 44 3a 04 01       	testb  $0x1,0x4(%edx,%edi,1)          
  111062:	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 ) ) {                               
  111066:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)               
  11106a:	75 44                	jne    1110b0 <_Heap_Free+0xc0>       
    uintptr_t const prev_size = block->prev_size;                     
  11106c:	8b 3b                	mov    (%ebx),%edi                    
  11106e:	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);                 
  111071:	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;             
  111073:	39 d8                	cmp    %ebx,%eax                      
  111075:	77 bd                	ja     111034 <_Heap_Free+0x44>       <== NEVER TAKEN
  111077:	39 de                	cmp    %ebx,%esi                      
  111079:	72 b9                	jb     111034 <_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) ) {                        
  11107b:	f6 43 04 01          	testb  $0x1,0x4(%ebx)                 
  11107f:	74 b3                	je     111034 <_Heap_Free+0x44>       <== NEVER TAKEN
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
  111081:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)               
  111085:	0f 84 b1 00 00 00    	je     11113c <_Heap_Free+0x14c>      
      uintptr_t const size = block_size + prev_size + next_block_size;
  11108b:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  11108e:	03 7d ec             	add    -0x14(%ebp),%edi               
  111091:	03 7d f0             	add    -0x10(%ebp),%edi               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  111094:	8b 42 08             	mov    0x8(%edx),%eax                 
  111097:	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;                                                  
  11109a:	89 42 08             	mov    %eax,0x8(%edx)                 
  next->prev = prev;                                                  
  11109d:	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;                                        
  1110a0:	ff 49 38             	decl   0x38(%ecx)                     
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
  1110a3:	89 f8                	mov    %edi,%eax                      
  1110a5:	83 c8 01             	or     $0x1,%eax                      
  1110a8:	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;                                   
  1110ab:	89 3c 3b             	mov    %edi,(%ebx,%edi,1)             
  1110ae:	eb 29                	jmp    1110d9 <_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 */                 
  1110b0:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)               
  1110b4:	74 46                	je     1110fc <_Heap_Free+0x10c>      
    uintptr_t const size = block_size + next_block_size;              
  1110b6:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  1110b9:	03 7d ec             	add    -0x14(%ebp),%edi               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  1110bc:	8b 42 08             	mov    0x8(%edx),%eax                 
  1110bf:	8b 52 0c             	mov    0xc(%edx),%edx                 
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
  1110c2:	89 43 08             	mov    %eax,0x8(%ebx)                 
  new_block->prev = prev;                                             
  1110c5:	89 53 0c             	mov    %edx,0xc(%ebx)                 
                                                                      
  next->prev = new_block;                                             
  1110c8:	89 58 0c             	mov    %ebx,0xc(%eax)                 
  prev->next = new_block;                                             
  1110cb:	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;               
  1110ce:	89 f8                	mov    %edi,%eax                      
  1110d0:	83 c8 01             	or     $0x1,%eax                      
  1110d3:	89 43 04             	mov    %eax,0x4(%ebx)                 
    next_block  = _Heap_Block_at( block, size );                      
    next_block->prev_size = size;                                     
  1110d6:	89 3c 3b             	mov    %edi,(%ebx,%edi,1)             
      stats->max_free_blocks = stats->free_blocks;                    
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
  1110d9:	ff 49 40             	decl   0x40(%ecx)                     
  ++stats->frees;                                                     
  1110dc:	ff 41 50             	incl   0x50(%ecx)                     
  stats->free_size += block_size;                                     
  1110df:	8b 55 ec             	mov    -0x14(%ebp),%edx               
  1110e2:	01 51 30             	add    %edx,0x30(%ecx)                
                                                                      
  return( true );                                                     
  1110e5:	b0 01                	mov    $0x1,%al                       
}                                                                     
  1110e7:	83 c4 10             	add    $0x10,%esp                     
  1110ea:	5b                   	pop    %ebx                           
  1110eb:	5e                   	pop    %esi                           
  1110ec:	5f                   	pop    %edi                           
  1110ed:	c9                   	leave                                 
  1110ee:	c3                   	ret                                   
  1110ef:	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;                                                      
  1110f0:	b0 01                	mov    $0x1,%al                       
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
  1110f2:	83 c4 10             	add    $0x10,%esp                     
  1110f5:	5b                   	pop    %ebx                           
  1110f6:	5e                   	pop    %esi                           
  1110f7:	5f                   	pop    %edi                           
  1110f8:	c9                   	leave                                 
  1110f9:	c3                   	ret                                   
  1110fa:	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;                              
  1110fc:	8b 41 08             	mov    0x8(%ecx),%eax                 
                                                                      
  new_block->next = next;                                             
  1110ff:	89 43 08             	mov    %eax,0x8(%ebx)                 
  new_block->prev = block_before;                                     
  111102:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
  block_before->next = new_block;                                     
  111105:	89 59 08             	mov    %ebx,0x8(%ecx)                 
  next->prev = new_block;                                             
  111108:	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;         
  11110b:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  11110e:	83 c8 01             	or     $0x1,%eax                      
  111111:	89 43 04             	mov    %eax,0x4(%ebx)                 
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
  111114:	83 62 04 fe          	andl   $0xfffffffe,0x4(%edx)          
    next_block->prev_size = block_size;                               
  111118:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  11111b:	89 02                	mov    %eax,(%edx)                    
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
  11111d:	8b 41 38             	mov    0x38(%ecx),%eax                
  111120:	40                   	inc    %eax                           
  111121:	89 41 38             	mov    %eax,0x38(%ecx)                
    if ( stats->max_free_blocks < stats->free_blocks ) {              
  111124:	3b 41 3c             	cmp    0x3c(%ecx),%eax                
  111127:	76 b0                	jbe    1110d9 <_Heap_Free+0xe9>       
      stats->max_free_blocks = stats->free_blocks;                    
  111129:	89 41 3c             	mov    %eax,0x3c(%ecx)                
  11112c:	eb ab                	jmp    1110d9 <_Heap_Free+0xe9>       
  11112e:	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 ));
  111130:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)               
  111134:	e9 2d ff ff ff       	jmp    111066 <_Heap_Free+0x76>       
  111139:	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;                  
  11113c:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  11113f:	03 45 f0             	add    -0x10(%ebp),%eax               
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
  111142:	89 c6                	mov    %eax,%esi                      
  111144:	83 ce 01             	or     $0x1,%esi                      
  111147:	89 73 04             	mov    %esi,0x4(%ebx)                 
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
  11114a:	83 62 04 fe          	andl   $0xfffffffe,0x4(%edx)          
      next_block->prev_size = size;                                   
  11114e:	89 02                	mov    %eax,(%edx)                    
  111150:	eb 87                	jmp    1110d9 <_Heap_Free+0xe9>       
                                                                      

0010ba50 <_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 ) {
  10ba50:	55                   	push   %ebp                           
  10ba51:	89 e5                	mov    %esp,%ebp                      
  10ba53:	57                   	push   %edi                           
  10ba54:	56                   	push   %esi                           
  10ba55:	53                   	push   %ebx                           
  10ba56:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10ba59:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  uintptr_t const heap_area_end = heap_area_begin + heap_area_size;   
  10ba5c:	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 );
  10ba5f:	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;                            
  10ba62:	89 d8                	mov    %ebx,%eax                      
  10ba64:	31 d2                	xor    %edx,%edx                      
  10ba66:	f7 75 10             	divl   0x10(%ebp)                     
                                                                      
  if ( remainder != 0 ) {                                             
  10ba69:	85 d2                	test   %edx,%edx                      
  10ba6b:	74 05                	je     10ba72 <_Heap_Get_first_and_last_block+0x22>
    return value - remainder + alignment;                             
  10ba6d:	03 5d 10             	add    0x10(%ebp),%ebx                
  10ba70:	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 (                                                                
  10ba72:	39 f1                	cmp    %esi,%ecx                      
  10ba74:	77 2e                	ja     10baa4 <_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);   
  10ba76:	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 =                                          
  10ba79:	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                                   
  10ba7b:	39 df                	cmp    %ebx,%edi                      
  10ba7d:	76 25                	jbe    10baa4 <_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 );         
  10ba7f:	29 df                	sub    %ebx,%edi                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
  10ba81:	89 f8                	mov    %edi,%eax                      
  10ba83:	31 d2                	xor    %edx,%edx                      
  10ba85:	f7 75 10             	divl   0x10(%ebp)                     
  10ba88:	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                            
  10ba8a:	39 7d 14             	cmp    %edi,0x14(%ebp)                
  10ba8d:	77 15                	ja     10baa4 <_Heap_Get_first_and_last_block+0x54>
  ) {                                                                 
    /* Invalid area or area too small */                              
    return false;                                                     
  }                                                                   
                                                                      
  *first_block_ptr = first_block;                                     
  10ba8f:	8b 45 18             	mov    0x18(%ebp),%eax                
  10ba92:	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);                 
  10ba94:	01 f7                	add    %esi,%edi                      
  10ba96:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  10ba99:	89 38                	mov    %edi,(%eax)                    
  *last_block_ptr = last_block;                                       
                                                                      
  return true;                                                        
  10ba9b:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10ba9d:	5b                   	pop    %ebx                           
  10ba9e:	5e                   	pop    %esi                           
  10ba9f:	5f                   	pop    %edi                           
  10baa0:	c9                   	leave                                 
  10baa1:	c3                   	ret                                   
  10baa2:	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;                                                     
  10baa4:	31 c0                	xor    %eax,%eax                      
                                                                      
  *first_block_ptr = first_block;                                     
  *last_block_ptr = last_block;                                       
                                                                      
  return true;                                                        
}                                                                     
  10baa6:	5b                   	pop    %ebx                           
  10baa7:	5e                   	pop    %esi                           
  10baa8:	5f                   	pop    %edi                           
  10baa9:	c9                   	leave                                 
  10baaa:	c3                   	ret                                   
                                                                      

00114d74 <_Heap_Get_free_information>: void _Heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) {
  114d74:	55                   	push   %ebp                           
  114d75:	89 e5                	mov    %esp,%ebp                      
  114d77:	57                   	push   %edi                           
  114d78:	56                   	push   %esi                           
  114d79:	53                   	push   %ebx                           
  114d7a:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Heap_Block *the_block;                                              
  Heap_Block *const tail = _Heap_Free_list_tail(the_heap);            
                                                                      
  info->number = 0;                                                   
  114d7d:	c7 07 00 00 00 00    	movl   $0x0,(%edi)                    
  info->largest = 0;                                                  
  114d83:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)                 
  info->total = 0;                                                    
  114d8a:	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;                                     
  }                                                                   
}                                                                     
  114d91:	8b 45 08             	mov    0x8(%ebp),%eax                 
  114d94:	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);                    
  114d97:	39 d0                	cmp    %edx,%eax                      
  114d99:	74 31                	je     114dcc <_Heap_Get_free_information+0x58>
  114d9b:	b9 01 00 00 00       	mov    $0x1,%ecx                      
  114da0:	31 f6                	xor    %esi,%esi                      
  114da2:	31 db                	xor    %ebx,%ebx                      
  114da4:	eb 07                	jmp    114dad <_Heap_Get_free_information+0x39>
  114da6:	66 90                	xchg   %ax,%ax                        
  114da8:	8b 77 04             	mov    0x4(%edi),%esi                 
  114dab:	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;                
  114dad:	8b 42 04             	mov    0x4(%edx),%eax                 
  114db0:	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;                                          
  114db3:	01 c3                	add    %eax,%ebx                      
    if ( info->largest < the_size )                                   
  114db5:	39 f0                	cmp    %esi,%eax                      
  114db7:	76 03                	jbe    114dbc <_Heap_Get_free_information+0x48>
        info->largest = the_size;                                     
  114db9:	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)                                    
  114dbc:	8b 52 08             	mov    0x8(%edx),%edx                 
  114dbf:	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);                    
  114dc2:	39 55 08             	cmp    %edx,0x8(%ebp)                 
  114dc5:	75 e1                	jne    114da8 <_Heap_Get_free_information+0x34>
  114dc7:	89 0f                	mov    %ecx,(%edi)                    
  114dc9:	89 5f 08             	mov    %ebx,0x8(%edi)                 
    info->number++;                                                   
    info->total += the_size;                                          
    if ( info->largest < the_size )                                   
        info->largest = the_size;                                     
  }                                                                   
}                                                                     
  114dcc:	5b                   	pop    %ebx                           
  114dcd:	5e                   	pop    %esi                           
  114dce:	5f                   	pop    %edi                           
  114dcf:	c9                   	leave                                 
  114dd0:	c3                   	ret                                   
                                                                      

00111b0c <_Heap_Get_information>: void _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
  111b0c:	55                   	push   %ebp                           
  111b0d:	89 e5                	mov    %esp,%ebp                      
  111b0f:	57                   	push   %edi                           
  111b10:	56                   	push   %esi                           
  111b11:	53                   	push   %ebx                           
  111b12:	83 ec 04             	sub    $0x4,%esp                      
  111b15:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111b18:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Heap_Block *the_block = the_heap->first_block;                      
  111b1b:	8b 50 20             	mov    0x20(%eax),%edx                
  Heap_Block *const end = the_heap->last_block;                       
  111b1e:	8b 40 24             	mov    0x24(%eax),%eax                
  111b21:	89 45 f0             	mov    %eax,-0x10(%ebp)               
                                                                      
  memset(the_info, 0, sizeof(*the_info));                             
  111b24:	b9 18 00 00 00       	mov    $0x18,%ecx                     
  111b29:	31 c0                	xor    %eax,%eax                      
  111b2b:	89 df                	mov    %ebx,%edi                      
  111b2d:	f3 aa                	rep stos %al,%es:(%edi)               
                                                                      
  while ( the_block != end ) {                                        
  111b2f:	3b 55 f0             	cmp    -0x10(%ebp),%edx               
  111b32:	74 38                	je     111b6c <_Heap_Get_information+0x60><== NEVER TAKEN
  111b34:	8b 7a 04             	mov    0x4(%edx),%edi                 
  111b37:	eb 18                	jmp    111b51 <_Heap_Get_information+0x45>
  111b39:	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;                                         
  111b3c:	8d 43 0c             	lea    0xc(%ebx),%eax                 
    else                                                              
      info = &the_info->Free;                                         
                                                                      
    info->number++;                                                   
  111b3f:	ff 00                	incl   (%eax)                         
    info->total += the_size;                                          
  111b41:	01 48 08             	add    %ecx,0x8(%eax)                 
    if ( info->largest < the_size )                                   
  111b44:	39 48 04             	cmp    %ecx,0x4(%eax)                 
  111b47:	73 03                	jae    111b4c <_Heap_Get_information+0x40>
      info->largest = the_size;                                       
  111b49:	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 ) {                                        
  111b4c:	39 75 f0             	cmp    %esi,-0x10(%ebp)               
  111b4f:	74 1b                	je     111b6c <_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;                
  111b51:	89 f9                	mov    %edi,%ecx                      
  111b53:	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);                 
  111b56:	8d 34 0a             	lea    (%edx,%ecx,1),%esi             
  111b59:	89 f2                	mov    %esi,%edx                      
    if ( info->largest < the_size )                                   
      info->largest = the_size;                                       
                                                                      
    the_block = next_block;                                           
  }                                                                   
}                                                                     
  111b5b:	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) )                             
  111b5e:	f7 c7 01 00 00 00    	test   $0x1,%edi                      
  111b64:	75 d6                	jne    111b3c <_Heap_Get_information+0x30>
      info = &the_info->Used;                                         
    else                                                              
      info = &the_info->Free;                                         
  111b66:	89 d8                	mov    %ebx,%eax                      
  111b68:	eb d5                	jmp    111b3f <_Heap_Get_information+0x33>
  111b6a:	66 90                	xchg   %ax,%ax                        
    if ( info->largest < the_size )                                   
      info->largest = the_size;                                       
                                                                      
    the_block = next_block;                                           
  }                                                                   
}                                                                     
  111b6c:	58                   	pop    %eax                           
  111b6d:	5b                   	pop    %ebx                           
  111b6e:	5e                   	pop    %esi                           
  111b6f:	5f                   	pop    %edi                           
  111b70:	c9                   	leave                                 
  111b71:	c3                   	ret                                   
                                                                      

0011f118 <_Heap_Resize_block>: void *alloc_begin_ptr, uintptr_t new_alloc_size, uintptr_t *old_size, uintptr_t *new_size ) {
  11f118:	55                   	push   %ebp                           
  11f119:	89 e5                	mov    %esp,%ebp                      
  11f11b:	57                   	push   %edi                           
  11f11c:	56                   	push   %esi                           
  11f11d:	53                   	push   %ebx                           
  11f11e:	83 ec 2c             	sub    $0x2c,%esp                     
  11f121:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  11f124:	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);                                 
  11f127:	8d 4e f8             	lea    -0x8(%esi),%ecx                
  11f12a:	89 f0                	mov    %esi,%eax                      
  11f12c:	31 d2                	xor    %edx,%edx                      
  11f12e:	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);                                        
  11f131:	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;                                                      
  11f133:	8b 45 14             	mov    0x14(%ebp),%eax                
  11f136:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  *new_size = 0;                                                      
  11f13c:	8b 55 18             	mov    0x18(%ebp),%edx                
  11f13f:	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;             
  11f145:	39 4b 20             	cmp    %ecx,0x20(%ebx)                
  11f148:	77 05                	ja     11f14f <_Heap_Resize_block+0x37>
  11f14a:	39 4b 24             	cmp    %ecx,0x24(%ebx)                
  11f14d:	73 0d                	jae    11f15c <_Heap_Resize_block+0x44>
      new_alloc_size,                                                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
  11f14f:	b8 02 00 00 00       	mov    $0x2,%eax                      
}                                                                     
  11f154:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f157:	5b                   	pop    %ebx                           
  11f158:	5e                   	pop    %esi                           
  11f159:	5f                   	pop    %edi                           
  11f15a:	c9                   	leave                                 
  11f15b:	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;                
  11f15c:	8b 41 04             	mov    0x4(%ecx),%eax                 
  11f15f:	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;                     
  11f162:	8d 3c 01             	lea    (%ecx,%eax,1),%edi             
  11f165:	89 7d d4             	mov    %edi,-0x2c(%ebp)               
                                                                      
  uintptr_t alloc_size = block_end - alloc_begin + HEAP_ALLOC_BONUS;  
  11f168:	89 fa                	mov    %edi,%edx                      
  11f16a:	29 f2                	sub    %esi,%edx                      
  11f16c:	83 c2 04             	add    $0x4,%edx                      
  11f16f:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  11f172:	8b 57 04             	mov    0x4(%edi),%edx                 
  11f175:	83 e2 fe             	and    $0xfffffffe,%edx               
  11f178:	89 55 d0             	mov    %edx,-0x30(%ebp)               
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_free(                              
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return !_Heap_Is_used( block );                                     
  11f17b:	f6 44 17 04 01       	testb  $0x1,0x4(%edi,%edx,1)          
  11f180:	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;                                             
  11f184:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f187:	8b 7d 14             	mov    0x14(%ebp),%edi                
  11f18a:	89 17                	mov    %edx,(%edi)                    
                                                                      
  if ( next_block_is_free ) {                                         
  11f18c:	80 7d df 00          	cmpb   $0x0,-0x21(%ebp)               
  11f190:	75 6e                	jne    11f200 <_Heap_Resize_block+0xe8>
    block_size += next_block_size;                                    
    alloc_size += next_block_size;                                    
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
  11f192:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f195:	39 55 10             	cmp    %edx,0x10(%ebp)                
  11f198:	77 79                	ja     11f213 <_Heap_Resize_block+0xfb>
    return HEAP_RESIZE_UNSATISFIED;                                   
  }                                                                   
                                                                      
  if ( next_block_is_free ) {                                         
  11f19a:	80 7d df 00          	cmpb   $0x0,-0x21(%ebp)               
  11f19e:	74 31                	je     11f1d1 <_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;       
  11f1a0:	8b 79 04             	mov    0x4(%ecx),%edi                 
  11f1a3:	83 e7 01             	and    $0x1,%edi                      
                                                                      
  block->size_and_flag = size | flag;                                 
  11f1a6:	09 c7                	or     %eax,%edi                      
  11f1a8:	89 79 04             	mov    %edi,0x4(%ecx)                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f1ab:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  11f1ae:	8b 7f 08             	mov    0x8(%edi),%edi                 
  11f1b1:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
  11f1b4:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  11f1b7:	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;                                                  
  11f1ba:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  11f1bd:	89 57 08             	mov    %edx,0x8(%edi)                 
  next->prev = prev;                                                  
  11f1c0:	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;                
  11f1c3:	83 4c 01 04 01       	orl    $0x1,0x4(%ecx,%eax,1)          
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
  11f1c8:	ff 4b 38             	decl   0x38(%ebx)                     
    stats->free_size -= next_block_size;                              
  11f1cb:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  11f1ce:	29 7b 30             	sub    %edi,0x30(%ebx)                
  }                                                                   
                                                                      
  block = _Heap_Block_allocate( heap, block, alloc_begin, new_alloc_size );
  11f1d1:	ff 75 10             	pushl  0x10(%ebp)                     
  11f1d4:	56                   	push   %esi                           
  11f1d5:	51                   	push   %ecx                           
  11f1d6:	53                   	push   %ebx                           
  11f1d7:	e8 e4 c9 fe ff       	call   10bbc0 <_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;                
  11f1dc:	8b 50 04             	mov    0x4(%eax),%edx                 
  11f1df:	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;
  11f1e2:	29 f0                	sub    %esi,%eax                      
  11f1e4:	8d 44 10 04          	lea    0x4(%eax,%edx,1),%eax          
  11f1e8:	8b 55 18             	mov    0x18(%ebp),%edx                
  11f1eb:	89 02                	mov    %eax,(%edx)                    
                                                                      
  /* Statistics */                                                    
  ++stats->resizes;                                                   
  11f1ed:	ff 43 54             	incl   0x54(%ebx)                     
  11f1f0:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  return HEAP_RESIZE_SUCCESSFUL;                                      
  11f1f3:	31 c0                	xor    %eax,%eax                      
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f1f5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f1f8:	5b                   	pop    %ebx                           
  11f1f9:	5e                   	pop    %esi                           
  11f1fa:	5f                   	pop    %edi                           
  11f1fb:	c9                   	leave                                 
  11f1fc:	c3                   	ret                                   
  11f1fd:	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;                                    
  11f200:	03 45 d0             	add    -0x30(%ebp),%eax               
    alloc_size += next_block_size;                                    
  11f203:	8b 7d d0             	mov    -0x30(%ebp),%edi               
  11f206:	01 fa                	add    %edi,%edx                      
  11f208:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
  11f20b:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  11f20e:	39 55 10             	cmp    %edx,0x10(%ebp)                
  11f211:	76 87                	jbe    11f19a <_Heap_Resize_block+0x82>
    return HEAP_RESIZE_UNSATISFIED;                                   
  11f213:	b8 01 00 00 00       	mov    $0x1,%eax                      
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
  11f218:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11f21b:	5b                   	pop    %ebx                           
  11f21c:	5e                   	pop    %esi                           
  11f21d:	5f                   	pop    %edi                           
  11f21e:	c9                   	leave                                 
  11f21f:	c3                   	ret                                   
                                                                      

0011f220 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
  11f220:	55                   	push   %ebp                           
  11f221:	89 e5                	mov    %esp,%ebp                      
  11f223:	56                   	push   %esi                           
  11f224:	53                   	push   %ebx                           
  11f225:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  11f228:	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);                                 
  11f22b:	8d 4e f8             	lea    -0x8(%esi),%ecx                
  11f22e:	89 f0                	mov    %esi,%eax                      
  11f230:	31 d2                	xor    %edx,%edx                      
  11f232:	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);                                        
  11f235:	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           
  11f237:	8b 43 20             	mov    0x20(%ebx),%eax                
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
  11f23a:	39 c1                	cmp    %eax,%ecx                      
  11f23c:	72 07                	jb     11f245 <_Heap_Size_of_alloc_area+0x25>
  11f23e:	8b 53 24             	mov    0x24(%ebx),%edx                
  11f241:	39 d1                	cmp    %edx,%ecx                      
  11f243:	76 07                	jbe    11f24c <_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;                                                     
  11f245:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
                                                                      
  return true;                                                        
}                                                                     
  11f247:	5b                   	pop    %ebx                           
  11f248:	5e                   	pop    %esi                           
  11f249:	c9                   	leave                                 
  11f24a:	c3                   	ret                                   
  11f24b:	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;                
  11f24c:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  11f24f:	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);                 
  11f252:	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;             
  11f254:	39 c8                	cmp    %ecx,%eax                      
  11f256:	77 ed                	ja     11f245 <_Heap_Size_of_alloc_area+0x25><== NEVER TAKEN
  11f258:	39 ca                	cmp    %ecx,%edx                      
  11f25a:	72 e9                	jb     11f245 <_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 )                            
  11f25c:	f6 41 04 01          	testb  $0x1,0x4(%ecx)                 
  11f260:	74 e3                	je     11f245 <_Heap_Size_of_alloc_area+0x25><== NEVER TAKEN
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
  11f262:	29 f1                	sub    %esi,%ecx                      
  11f264:	8d 51 04             	lea    0x4(%ecx),%edx                 
  11f267:	8b 45 10             	mov    0x10(%ebp),%eax                
  11f26a:	89 10                	mov    %edx,(%eax)                    
                                                                      
  return true;                                                        
  11f26c:	b0 01                	mov    $0x1,%al                       
}                                                                     
  11f26e:	5b                   	pop    %ebx                           
  11f26f:	5e                   	pop    %esi                           
  11f270:	c9                   	leave                                 
  11f271:	c3                   	ret                                   
                                                                      

0010c728 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
  10c728:	55                   	push   %ebp                           
  10c729:	89 e5                	mov    %esp,%ebp                      
  10c72b:	57                   	push   %edi                           
  10c72c:	56                   	push   %esi                           
  10c72d:	53                   	push   %ebx                           
  10c72e:	83 ec 4c             	sub    $0x4c,%esp                     
  10c731:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  uintptr_t const page_size = heap->page_size;                        
  10c734:	8b 43 10             	mov    0x10(%ebx),%eax                
  10c737:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  uintptr_t const min_block_size = heap->min_block_size;              
  10c73a:	8b 53 14             	mov    0x14(%ebx),%edx                
  10c73d:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  Heap_Block *const first_block = heap->first_block;                  
  10c740:	8b 43 20             	mov    0x20(%ebx),%eax                
  10c743:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  Heap_Block *const last_block = heap->last_block;                    
  10c746:	8b 53 24             	mov    0x24(%ebx),%edx                
  10c749:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
  10c74c:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)                
  10c750:	74 1a                	je     10c76c <_Heap_Walk+0x44>       
  10c752:	c7 45 d8 e0 c6 10 00 	movl   $0x10c6e0,-0x28(%ebp)          
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
  10c759:	83 3d 40 9e 12 00 03 	cmpl   $0x3,0x129e40                  
  10c760:	74 1a                	je     10c77c <_Heap_Walk+0x54>       <== ALWAYS TAKEN
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
  10c762:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10c764:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c767:	5b                   	pop    %ebx                           
  10c768:	5e                   	pop    %esi                           
  10c769:	5f                   	pop    %edi                           
  10c76a:	c9                   	leave                                 
  10c76b:	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;                      
  10c76c:	c7 45 d8 d8 c6 10 00 	movl   $0x10c6d8,-0x28(%ebp)          
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
  10c773:	83 3d 40 9e 12 00 03 	cmpl   $0x3,0x129e40                  
  10c77a:	75 e6                	jne    10c762 <_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)(                                                         
  10c77c:	52                   	push   %edx                           
  10c77d:	ff 73 0c             	pushl  0xc(%ebx)                      
  10c780:	ff 73 08             	pushl  0x8(%ebx)                      
  10c783:	ff 75 cc             	pushl  -0x34(%ebp)                    
  10c786:	ff 75 dc             	pushl  -0x24(%ebp)                    
  10c789:	ff 73 1c             	pushl  0x1c(%ebx)                     
  10c78c:	ff 73 18             	pushl  0x18(%ebx)                     
  10c78f:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10c792:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10c795:	68 44 20 12 00       	push   $0x122044                      
  10c79a:	6a 00                	push   $0x0                           
  10c79c:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c79f:	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 ) {                                             
  10c7a2:	83 c4 30             	add    $0x30,%esp                     
  10c7a5:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10c7a8:	85 c0                	test   %eax,%eax                      
  10c7aa:	74 70                	je     10c81c <_Heap_Walk+0xf4>       
    (*printer)( source, true, "page size is zero\n" );                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
  10c7ac:	f6 45 e0 03          	testb  $0x3,-0x20(%ebp)               
  10c7b0:	75 72                	jne    10c824 <_Heap_Walk+0xfc>       
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10c7b2:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10c7b5:	31 d2                	xor    %edx,%edx                      
  10c7b7:	f7 75 e0             	divl   -0x20(%ebp)                    
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
  10c7ba:	85 d2                	test   %edx,%edx                      
  10c7bc:	75 72                	jne    10c830 <_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;                  
  10c7be:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10c7c1:	83 c0 08             	add    $0x8,%eax                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10c7c4:	31 d2                	xor    %edx,%edx                      
  10c7c6:	f7 75 e0             	divl   -0x20(%ebp)                    
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
  10c7c9:	85 d2                	test   %edx,%edx                      
  10c7cb:	75 6f                	jne    10c83c <_Heap_Walk+0x114>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c7cd:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10c7d0:	8b 40 04             	mov    0x4(%eax),%eax                 
  10c7d3:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
  10c7d6:	a8 01                	test   $0x1,%al                       
  10c7d8:	0f 84 ce 02 00 00    	je     10caac <_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;                
  10c7de:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10c7e1:	8b 42 04             	mov    0x4(%edx),%eax                 
  10c7e4:	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);                 
  10c7e7:	01 d0                	add    %edx,%eax                      
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
  10c7e9:	f6 40 04 01          	testb  $0x1,0x4(%eax)                 
  10c7ed:	74 25                	je     10c814 <_Heap_Walk+0xec>       
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
  10c7ef:	39 45 dc             	cmp    %eax,-0x24(%ebp)               
  10c7f2:	74 54                	je     10c848 <_Heap_Walk+0x120>      
    _Heap_Block_at( last_block, _Heap_Block_size( last_block ) ) != first_block
  ) {                                                                 
    (*printer)(                                                       
  10c7f4:	51                   	push   %ecx                           
  10c7f5:	68 60 21 12 00       	push   $0x122160                      
  10c7fa:	66 90                	xchg   %ax,%ax                        
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
  10c7fc:	6a 01                	push   $0x1                           
  10c7fe:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c801:	ff 55 d8             	call   *-0x28(%ebp)                   
  10c804:	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;                                                 
  10c807:	31 c0                	xor    %eax,%eax                      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c809:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c80c:	5b                   	pop    %ebx                           
  10c80d:	5e                   	pop    %esi                           
  10c80e:	5f                   	pop    %edi                           
  10c80f:	c9                   	leave                                 
  10c810:	c3                   	ret                                   
  10c811:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
    (*printer)(                                                       
  10c814:	53                   	push   %ebx                           
  10c815:	68 fa 1f 12 00       	push   $0x121ffa                      
  10c81a:	eb e0                	jmp    10c7fc <_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" );                
  10c81c:	57                   	push   %edi                           
  10c81d:	68 c9 1f 12 00       	push   $0x121fc9                      
  10c822:	eb d8                	jmp    10c7fc <_Heap_Walk+0xd4>       
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
    (*printer)(                                                       
  10c824:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10c827:	68 dc 1f 12 00       	push   $0x121fdc                      
  10c82c:	eb ce                	jmp    10c7fc <_Heap_Walk+0xd4>       
  10c82e:	66 90                	xchg   %ax,%ax                        
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
    (*printer)(                                                       
  10c830:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10c833:	68 d8 20 12 00       	push   $0x1220d8                      
  10c838:	eb c2                	jmp    10c7fc <_Heap_Walk+0xd4>       
  10c83a:	66 90                	xchg   %ax,%ax                        
  }                                                                   
                                                                      
  if (                                                                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
  10c83c:	ff 75 dc             	pushl  -0x24(%ebp)                    
  10c83f:	68 fc 20 12 00       	push   $0x1220fc                      
  10c844:	eb b6                	jmp    10c7fc <_Heap_Walk+0xd4>       
  10c846:	66 90                	xchg   %ax,%ax                        
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  10c848:	8b 43 10             	mov    0x10(%ebx),%eax                
  10c84b:	89 45 c8             	mov    %eax,-0x38(%ebp)               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c84e:	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 ) {                            
  10c851:	39 f3                	cmp    %esi,%ebx                      
  10c853:	74 65                	je     10c8ba <_Heap_Walk+0x192>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c855:	8b 43 20             	mov    0x20(%ebx),%eax                
  10c858:	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;             
  10c85b:	39 f0                	cmp    %esi,%eax                      
  10c85d:	0f 87 55 02 00 00    	ja     10cab8 <_Heap_Walk+0x390>      <== NEVER TAKEN
  10c863:	8b 7b 24             	mov    0x24(%ebx),%edi                
  10c866:	39 f7                	cmp    %esi,%edi                      
  10c868:	0f 82 4a 02 00 00    	jb     10cab8 <_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;                  
  10c86e:	8d 46 08             	lea    0x8(%esi),%eax                 
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10c871:	31 d2                	xor    %edx,%edx                      
  10c873:	f7 75 c8             	divl   -0x38(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10c876:	85 d2                	test   %edx,%edx                      
  10c878:	0f 85 71 02 00 00    	jne    10caef <_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;                
  10c87e:	8b 46 04             	mov    0x4(%esi),%eax                 
  10c881:	83 e0 fe             	and    $0xfffffffe,%eax               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10c884:	f6 44 06 04 01       	testb  $0x1,0x4(%esi,%eax,1)          
  10c889:	0f 85 6d 02 00 00    	jne    10cafc <_Heap_Walk+0x3d4>      <== NEVER TAKEN
  10c88f:	89 da                	mov    %ebx,%edx                      
  10c891:	8d 76 00             	lea    0x0(%esi),%esi                 
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
  10c894:	8b 46 0c             	mov    0xc(%esi),%eax                 
  10c897:	39 d0                	cmp    %edx,%eax                      
  10c899:	0f 85 6a 02 00 00    	jne    10cb09 <_Heap_Walk+0x3e1>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
  10c89f:	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 ) {                            
  10c8a2:	39 cb                	cmp    %ecx,%ebx                      
  10c8a4:	74 1a                	je     10c8c0 <_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;             
  10c8a6:	39 4d d4             	cmp    %ecx,-0x2c(%ebp)               
  10c8a9:	0f 86 7d 01 00 00    	jbe    10ca2c <_Heap_Walk+0x304>      
    if ( !_Heap_Is_block_in_heap( heap, free_block ) ) {              
      (*printer)(                                                     
  10c8af:	51                   	push   %ecx                           
  10c8b0:	68 90 21 12 00       	push   $0x122190                      
  10c8b5:	e9 42 ff ff ff       	jmp    10c7fc <_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 ) {                            
  10c8ba:	8b 53 20             	mov    0x20(%ebx),%edx                
  10c8bd:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10c8c0:	8b 7d dc             	mov    -0x24(%ebp),%edi               
  10c8c3:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10c8c6:	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;                
  10c8c8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10c8cb:	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);                 
  10c8ce:	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;             
  10c8d1:	39 f0                	cmp    %esi,%eax                      
  10c8d3:	76 23                	jbe    10c8f8 <_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)(                                                     
  10c8d5:	83 ec 0c             	sub    $0xc,%esp                      
  10c8d8:	56                   	push   %esi                           
  10c8d9:	57                   	push   %edi                           
  10c8da:	68 14 22 12 00       	push   $0x122214                      
  10c8df:	90                   	nop                                   
  10c8e0:	6a 01                	push   $0x1                           
  10c8e2:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c8e5:	ff 55 d8             	call   *-0x28(%ebp)                   
        "block 0x%08x: next block 0x%08x not in heap\n",              
        block,                                                        
        next_block                                                    
      );                                                              
                                                                      
      return false;                                                   
  10c8e8:	83 c4 20             	add    $0x20,%esp                     
  10c8eb:	31 c0                	xor    %eax,%eax                      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c8ed:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c8f0:	5b                   	pop    %ebx                           
  10c8f1:	5e                   	pop    %esi                           
  10c8f2:	5f                   	pop    %edi                           
  10c8f3:	c9                   	leave                                 
  10c8f4:	c3                   	ret                                   
  10c8f5:	8d 76 00             	lea    0x0(%esi),%esi                 
  10c8f8:	39 73 24             	cmp    %esi,0x24(%ebx)                
  10c8fb:	72 d8                	jb     10c8d5 <_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;               
  10c8fd:	3b 7d cc             	cmp    -0x34(%ebp),%edi               
  10c900:	0f 95 45 d4          	setne  -0x2c(%ebp)                    
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10c904:	89 c8                	mov    %ecx,%eax                      
  10c906:	31 d2                	xor    %edx,%edx                      
  10c908:	f7 75 e0             	divl   -0x20(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
  10c90b:	85 d2                	test   %edx,%edx                      
  10c90d:	74 0a                	je     10c919 <_Heap_Walk+0x1f1>      
  10c90f:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10c913:	0f 85 a6 01 00 00    	jne    10cabf <_Heap_Walk+0x397>      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
  10c919:	39 4d d0             	cmp    %ecx,-0x30(%ebp)               
  10c91c:	76 0a                	jbe    10c928 <_Heap_Walk+0x200>      
  10c91e:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10c922:	0f 85 a6 01 00 00    	jne    10cace <_Heap_Walk+0x3a6>      <== ALWAYS TAKEN
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
  10c928:	39 f7                	cmp    %esi,%edi                      
  10c92a:	72 0a                	jb     10c936 <_Heap_Walk+0x20e>      
  10c92c:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)               
  10c930:	0f 85 aa 01 00 00    	jne    10cae0 <_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;                 
  10c936:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10c939:	83 e2 01             	and    $0x1,%edx                      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
  10c93c:	f6 46 04 01          	testb  $0x1,0x4(%esi)                 
  10c940:	74 4e                	je     10c990 <_Heap_Walk+0x268>      
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
      }                                                               
    } else if (prev_used) {                                           
  10c942:	85 d2                	test   %edx,%edx                      
  10c944:	74 2e                	je     10c974 <_Heap_Walk+0x24c>      
      (*printer)(                                                     
  10c946:	83 ec 0c             	sub    $0xc,%esp                      
  10c949:	51                   	push   %ecx                           
  10c94a:	57                   	push   %edi                           
  10c94b:	68 2b 20 12 00       	push   $0x12202b                      
  10c950:	6a 00                	push   $0x0                           
  10c952:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c955:	ff 55 d8             	call   *-0x28(%ebp)                   
  10c958:	83 c4 20             	add    $0x20,%esp                     
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
  10c95b:	39 75 dc             	cmp    %esi,-0x24(%ebp)               
  10c95e:	0f 84 fe fd ff ff    	je     10c762 <_Heap_Walk+0x3a>       
  10c964:	8b 56 04             	mov    0x4(%esi),%edx                 
  10c967:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10c96a:	8b 43 20             	mov    0x20(%ebx),%eax                
  10c96d:	89 f7                	mov    %esi,%edi                      
  10c96f:	e9 54 ff ff ff       	jmp    10c8c8 <_Heap_Walk+0x1a0>      
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
  10c974:	83 ec 08             	sub    $0x8,%esp                      
  10c977:	ff 37                	pushl  (%edi)                         
  10c979:	51                   	push   %ecx                           
  10c97a:	57                   	push   %edi                           
  10c97b:	68 78 23 12 00       	push   $0x122378                      
  10c980:	6a 00                	push   $0x0                           
  10c982:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c985:	ff 55 d8             	call   *-0x28(%ebp)                   
  10c988:	83 c4 20             	add    $0x20,%esp                     
  10c98b:	eb ce                	jmp    10c95b <_Heap_Walk+0x233>      
  10c98d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10c990:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10c993:	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 ?                                  
  10c996:	8b 47 08             	mov    0x8(%edi),%eax                 
  10c999:	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)(                                                         
  10c99c:	39 43 0c             	cmp    %eax,0xc(%ebx)                 
  10c99f:	0f 84 cb 00 00 00    	je     10ca70 <_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)" : "")          
  10c9a5:	39 c3                	cmp    %eax,%ebx                      
  10c9a7:	0f 84 db 00 00 00    	je     10ca88 <_Heap_Walk+0x360>      
  10c9ad:	c7 45 c8 c9 1e 12 00 	movl   $0x121ec9,-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 ?                                 
  10c9b4:	8b 47 0c             	mov    0xc(%edi),%eax                 
  10c9b7:	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)(                                                         
  10c9ba:	39 45 b4             	cmp    %eax,-0x4c(%ebp)               
  10c9bd:	0f 84 b9 00 00 00    	je     10ca7c <_Heap_Walk+0x354>      
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
  10c9c3:	39 c3                	cmp    %eax,%ebx                      
  10c9c5:	0f 84 c9 00 00 00    	je     10ca94 <_Heap_Walk+0x36c>      
  10c9cb:	b8 c9 1e 12 00       	mov    $0x121ec9,%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)(                                                         
  10c9d0:	83 ec 0c             	sub    $0xc,%esp                      
  10c9d3:	ff 75 c8             	pushl  -0x38(%ebp)                    
  10c9d6:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10c9d9:	50                   	push   %eax                           
  10c9da:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10c9dd:	51                   	push   %ecx                           
  10c9de:	57                   	push   %edi                           
  10c9df:	68 d4 22 12 00       	push   $0x1222d4                      
  10c9e4:	6a 00                	push   $0x0                           
  10c9e6:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c9e9:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10c9ec:	89 4d c0             	mov    %ecx,-0x40(%ebp)               
  10c9ef:	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 ) {                        
  10c9f2:	8b 06                	mov    (%esi),%eax                    
  10c9f4:	83 c4 30             	add    $0x30,%esp                     
  10c9f7:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10c9fa:	39 c1                	cmp    %eax,%ecx                      
  10c9fc:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10c9ff:	75 5f                	jne    10ca60 <_Heap_Walk+0x338>      
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
  10ca01:	85 d2                	test   %edx,%edx                      
  10ca03:	0f 84 97 00 00 00    	je     10caa0 <_Heap_Walk+0x378>      
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
  10ca09:	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 ) {                            
  10ca0c:	39 c3                	cmp    %eax,%ebx                      
  10ca0e:	74 0f                	je     10ca1f <_Heap_Walk+0x2f7>      <== NEVER TAKEN
    if ( free_block == block ) {                                      
  10ca10:	39 c7                	cmp    %eax,%edi                      
  10ca12:	0f 84 43 ff ff ff    	je     10c95b <_Heap_Walk+0x233>      
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
  10ca18:	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 ) {                            
  10ca1b:	39 c3                	cmp    %eax,%ebx                      
  10ca1d:	75 f1                	jne    10ca10 <_Heap_Walk+0x2e8>      
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
  10ca1f:	57                   	push   %edi                           
  10ca20:	68 a0 23 12 00       	push   $0x1223a0                      
  10ca25:	e9 d2 fd ff ff       	jmp    10c7fc <_Heap_Walk+0xd4>       
  10ca2a:	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;             
  10ca2c:	39 f9                	cmp    %edi,%ecx                      
  10ca2e:	0f 87 7b fe ff ff    	ja     10c8af <_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;                  
  10ca34:	8d 41 08             	lea    0x8(%ecx),%eax                 
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
  10ca37:	31 d2                	xor    %edx,%edx                      
  10ca39:	f7 75 c8             	divl   -0x38(%ebp)                    
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10ca3c:	85 d2                	test   %edx,%edx                      
  10ca3e:	0f 85 ad 00 00 00    	jne    10caf1 <_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;                
  10ca44:	8b 41 04             	mov    0x4(%ecx),%eax                 
  10ca47:	83 e0 fe             	and    $0xfffffffe,%eax               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10ca4a:	f6 44 01 04 01       	testb  $0x1,0x4(%ecx,%eax,1)          
  10ca4f:	0f 85 a9 00 00 00    	jne    10cafe <_Heap_Walk+0x3d6>      
  10ca55:	89 f2                	mov    %esi,%edx                      
  10ca57:	89 ce                	mov    %ecx,%esi                      
  10ca59:	e9 36 fe ff ff       	jmp    10c894 <_Heap_Walk+0x16c>      
  10ca5e:	66 90                	xchg   %ax,%ax                        
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
    (*printer)(                                                       
  10ca60:	52                   	push   %edx                           
  10ca61:	56                   	push   %esi                           
  10ca62:	50                   	push   %eax                           
  10ca63:	51                   	push   %ecx                           
  10ca64:	57                   	push   %edi                           
  10ca65:	68 0c 23 12 00       	push   $0x12230c                      
  10ca6a:	e9 71 fe ff ff       	jmp    10c8e0 <_Heap_Walk+0x1b8>      
  10ca6f:	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)(                                                         
  10ca70:	c7 45 c8 96 1f 12 00 	movl   $0x121f96,-0x38(%ebp)          
  10ca77:	e9 38 ff ff ff       	jmp    10c9b4 <_Heap_Walk+0x28c>      
  10ca7c:	b8 af 1f 12 00       	mov    $0x121faf,%eax                 
  10ca81:	e9 4a ff ff ff       	jmp    10c9d0 <_Heap_Walk+0x2a8>      
  10ca86:	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)" : "")          
  10ca88:	c7 45 c8 a5 1f 12 00 	movl   $0x121fa5,-0x38(%ebp)          
  10ca8f:	e9 20 ff ff ff       	jmp    10c9b4 <_Heap_Walk+0x28c>      
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
  10ca94:	b8 bf 1f 12 00       	mov    $0x121fbf,%eax                 
  10ca99:	e9 32 ff ff ff       	jmp    10c9d0 <_Heap_Walk+0x2a8>      
  10ca9e:	66 90                	xchg   %ax,%ax                        
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
    (*printer)(                                                       
  10caa0:	57                   	push   %edi                           
  10caa1:	68 48 23 12 00       	push   $0x122348                      
  10caa6:	e9 51 fd ff ff       	jmp    10c7fc <_Heap_Walk+0xd4>       
  10caab:	90                   	nop                                   
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
    (*printer)(                                                       
  10caac:	56                   	push   %esi                           
  10caad:	68 30 21 12 00       	push   $0x122130                      
  10cab2:	e9 45 fd ff ff       	jmp    10c7fc <_Heap_Walk+0xd4>       
  10cab7:	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;             
  10cab8:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
  10caba:	e9 f0 fd ff ff       	jmp    10c8af <_Heap_Walk+0x187>      <== NOT EXECUTED
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
      (*printer)(                                                     
  10cabf:	83 ec 0c             	sub    $0xc,%esp                      
  10cac2:	51                   	push   %ecx                           
  10cac3:	57                   	push   %edi                           
  10cac4:	68 44 22 12 00       	push   $0x122244                      
  10cac9:	e9 12 fe ff ff       	jmp    10c8e0 <_Heap_Walk+0x1b8>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
      (*printer)(                                                     
  10cace:	83 ec 08             	sub    $0x8,%esp                      
  10cad1:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10cad4:	51                   	push   %ecx                           
  10cad5:	57                   	push   %edi                           
  10cad6:	68 74 22 12 00       	push   $0x122274                      
  10cadb:	e9 00 fe ff ff       	jmp    10c8e0 <_Heap_Walk+0x1b8>      
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
      (*printer)(                                                     
  10cae0:	83 ec 0c             	sub    $0xc,%esp                      
  10cae3:	56                   	push   %esi                           
  10cae4:	57                   	push   %edi                           
  10cae5:	68 a0 22 12 00       	push   $0x1222a0                      
  10caea:	e9 f1 fd ff ff       	jmp    10c8e0 <_Heap_Walk+0x1b8>      
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
  10caef:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
  10caf1:	51                   	push   %ecx                           
  10caf2:	68 b0 21 12 00       	push   $0x1221b0                      
  10caf7:	e9 00 fd ff ff       	jmp    10c7fc <_Heap_Walk+0xd4>       
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
  10cafc:	89 f1                	mov    %esi,%ecx                      <== NOT EXECUTED
      (*printer)(                                                     
  10cafe:	51                   	push   %ecx                           
  10caff:	68 0f 20 12 00       	push   $0x12200f                      
  10cb04:	e9 f3 fc ff ff       	jmp    10c7fc <_Heap_Walk+0xd4>       
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
      (*printer)(                                                     
  10cb09:	83 ec 0c             	sub    $0xc,%esp                      
  10cb0c:	50                   	push   %eax                           
  10cb0d:	56                   	push   %esi                           
  10cb0e:	68 e0 21 12 00       	push   $0x1221e0                      
  10cb13:	e9 c8 fd ff ff       	jmp    10c8e0 <_Heap_Walk+0x1b8>      
                                                                      

0010b298 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) {
  10b298:	55                   	push   %ebp                           
  10b299:	89 e5                	mov    %esp,%ebp                      
  10b29b:	53                   	push   %ebx                           
  10b29c:	83 ec 04             	sub    $0x4,%esp                      
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
  10b29f:	8b 0d 20 82 12 00    	mov    0x128220,%ecx                  
  10b2a5:	85 c9                	test   %ecx,%ecx                      
  10b2a7:	74 1a                	je     10b2c3 <_IO_Initialize_all_drivers+0x2b><== NEVER TAKEN
  10b2a9:	31 db                	xor    %ebx,%ebx                      
  10b2ab:	90                   	nop                                   
     (void) rtems_io_initialize( major, 0, NULL );                    
  10b2ac:	52                   	push   %edx                           
  10b2ad:	6a 00                	push   $0x0                           
  10b2af:	6a 00                	push   $0x0                           
  10b2b1:	53                   	push   %ebx                           
  10b2b2:	e8 f1 55 00 00       	call   1108a8 <rtems_io_initialize>   
                                                                      
void _IO_Initialize_all_drivers( void )                               
{                                                                     
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
  10b2b7:	43                   	inc    %ebx                           
  10b2b8:	83 c4 10             	add    $0x10,%esp                     
  10b2bb:	39 1d 20 82 12 00    	cmp    %ebx,0x128220                  
  10b2c1:	77 e9                	ja     10b2ac <_IO_Initialize_all_drivers+0x14>
     (void) rtems_io_initialize( major, 0, NULL );                    
}                                                                     
  10b2c3:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b2c6:	c9                   	leave                                 
  10b2c7:	c3                   	ret                                   
                                                                      

0010b200 <_IO_Manager_initialization>: * workspace. * */ void _IO_Manager_initialization(void) {
  10b200:	55                   	push   %ebp                           
  10b201:	89 e5                	mov    %esp,%ebp                      
  10b203:	57                   	push   %edi                           
  10b204:	56                   	push   %esi                           
  10b205:	53                   	push   %ebx                           
  10b206:	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;              
  10b209:	8b 1d 94 35 12 00    	mov    0x123594,%ebx                  
  drivers_in_table  = Configuration.number_of_device_drivers;         
  10b20f:	a1 90 35 12 00       	mov    0x123590,%eax                  
  10b214:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  number_of_drivers = Configuration.maximum_drivers;                  
  10b217:	8b 35 8c 35 12 00    	mov    0x12358c,%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 )                        
  10b21d:	39 f0                	cmp    %esi,%eax                      
  10b21f:	73 5f                	jae    10b280 <_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(                             
  10b221:	8d 0c 76             	lea    (%esi,%esi,2),%ecx             
  10b224:	c1 e1 03             	shl    $0x3,%ecx                      
  10b227:	83 ec 0c             	sub    $0xc,%esp                      
  10b22a:	51                   	push   %ecx                           
  10b22b:	89 4d dc             	mov    %ecx,-0x24(%ebp)               
  10b22e:	e8 5d 2b 00 00       	call   10dd90 <_Workspace_Allocate_or_fatal_error>
  10b233:	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 *)           
  10b235:	a3 24 82 12 00       	mov    %eax,0x128224                  
      _Workspace_Allocate_or_fatal_error(                             
        sizeof( rtems_driver_address_table ) * ( number_of_drivers )  
      );                                                              
  _IO_Number_of_drivers = number_of_drivers;                          
  10b23a:	89 35 20 82 12 00    	mov    %esi,0x128220                  
                                                                      
  memset(                                                             
  10b240:	31 c0                	xor    %eax,%eax                      
  10b242:	8b 4d dc             	mov    -0x24(%ebp),%ecx               
  10b245:	89 d7                	mov    %edx,%edi                      
  10b247:	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++ )              
  10b249:	83 c4 10             	add    $0x10,%esp                     
  10b24c:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b24f:	85 c0                	test   %eax,%eax                      
  10b251:	74 25                	je     10b278 <_IO_Manager_initialization+0x78><== NEVER TAKEN
  10b253:	a1 24 82 12 00       	mov    0x128224,%eax                  
  10b258:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10b25b:	31 c0                	xor    %eax,%eax                      
  10b25d:	31 d2                	xor    %edx,%edx                      
  10b25f:	90                   	nop                                   
    _IO_Driver_address_table[index] = driver_table[index];            
  10b260:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  10b263:	01 c7                	add    %eax,%edi                      
  10b265:	8d 34 03             	lea    (%ebx,%eax,1),%esi             
  10b268:	b9 06 00 00 00       	mov    $0x6,%ecx                      
  10b26d:	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++ )              
  10b26f:	42                   	inc    %edx                           
  10b270:	83 c0 18             	add    $0x18,%eax                     
  10b273:	39 55 e4             	cmp    %edx,-0x1c(%ebp)               
  10b276:	77 e8                	ja     10b260 <_IO_Manager_initialization+0x60>
    _IO_Driver_address_table[index] = driver_table[index];            
}                                                                     
  10b278:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b27b:	5b                   	pop    %ebx                           
  10b27c:	5e                   	pop    %esi                           
  10b27d:	5f                   	pop    %edi                           
  10b27e:	c9                   	leave                                 
  10b27f:	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;                          
  10b280:	89 1d 24 82 12 00    	mov    %ebx,0x128224                  
    _IO_Number_of_drivers = number_of_drivers;                        
  10b286:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b289:	a3 20 82 12 00       	mov    %eax,0x128220                  
    sizeof( rtems_driver_address_table ) * ( number_of_drivers )      
  );                                                                  
                                                                      
  for ( index = 0 ; index < drivers_in_table ; index++ )              
    _IO_Driver_address_table[index] = driver_table[index];            
}                                                                     
  10b28e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b291:	5b                   	pop    %ebx                           
  10b292:	5e                   	pop    %esi                           
  10b293:	5f                   	pop    %edi                           
  10b294:	c9                   	leave                                 
  10b295:	c3                   	ret                                   
                                                                      

0010bcb4 <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
  10bcb4:	55                   	push   %ebp                           
  10bcb5:	89 e5                	mov    %esp,%ebp                      
  10bcb7:	53                   	push   %ebx                           
  10bcb8:	83 ec 08             	sub    $0x8,%esp                      
  10bcbb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10bcbe:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10bcc1:	8b 5d 10             	mov    0x10(%ebp),%ebx                
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  10bcc4:	a3 94 78 12 00       	mov    %eax,0x127894                  
  _Internal_errors_What_happened.is_internal = is_internal;           
  10bcc9:	88 15 98 78 12 00    	mov    %dl,0x127898                   
  _Internal_errors_What_happened.the_error   = the_error;             
  10bccf:	89 1d 9c 78 12 00    	mov    %ebx,0x12789c                  
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
  10bcd5:	53                   	push   %ebx                           
  10bcd6:	0f b6 d2             	movzbl %dl,%edx                       
  10bcd9:	52                   	push   %edx                           
  10bcda:	50                   	push   %eax                           
  10bcdb:	e8 b0 1c 00 00       	call   10d990 <_User_extensions_Fatal>
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
  10bce0:	c7 05 80 79 12 00 05 	movl   $0x5,0x127980                  <== NOT EXECUTED
  10bce7:	00 00 00                                                    
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
  10bcea:	fa                   	cli                                   <== NOT EXECUTED
  10bceb:	89 d8                	mov    %ebx,%eax                      <== NOT EXECUTED
  10bced:	f4                   	hlt                                   <== NOT EXECUTED
  10bcee:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10bcf1:	eb fe                	jmp    10bcf1 <_Internal_error_Occurred+0x3d><== NOT EXECUTED
                                                                      

00111154 <_Objects_API_maximum_class>: #include <rtems/score/object.h> unsigned int _Objects_API_maximum_class( uint32_t api ) {
  111154:	55                   	push   %ebp                           
  111155:	89 e5                	mov    %esp,%ebp                      
  111157:	8b 45 08             	mov    0x8(%ebp),%eax                 
  11115a:	48                   	dec    %eax                           
  11115b:	83 f8 02             	cmp    $0x2,%eax                      
  11115e:	77 0c                	ja     11116c <_Objects_API_maximum_class+0x18>
  111160:	8b 04 85 80 16 12 00 	mov    0x121680(,%eax,4),%eax         
    case OBJECTS_NO_API:                                              
    default:                                                          
      break;                                                          
  }                                                                   
  return 0;                                                           
}                                                                     
  111167:	c9                   	leave                                 
  111168:	c3                   	ret                                   
  111169:	8d 76 00             	lea    0x0(%esi),%esi                 
#include <rtems/score/object.h>                                       
                                                                      
unsigned int _Objects_API_maximum_class(                              
  uint32_t api                                                        
)                                                                     
{                                                                     
  11116c:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_NO_API:                                              
    default:                                                          
      break;                                                          
  }                                                                   
  return 0;                                                           
}                                                                     
  11116e:	c9                   	leave                                 
  11116f:	c3                   	ret                                   
                                                                      

0010bd44 <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) {
  10bd44:	55                   	push   %ebp                           
  10bd45:	89 e5                	mov    %esp,%ebp                      
  10bd47:	56                   	push   %esi                           
  10bd48:	53                   	push   %ebx                           
  10bd49:	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 )                                       
  10bd4c:	8b 43 18             	mov    0x18(%ebx),%eax                
  10bd4f:	85 c0                	test   %eax,%eax                      
  10bd51:	75 0d                	jne    10bd60 <_Objects_Allocate+0x1c><== ALWAYS TAKEN
    return NULL;                                                      
  10bd53:	31 c9                	xor    %ecx,%ecx                      <== NOT EXECUTED
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
  10bd55:	89 c8                	mov    %ecx,%eax                      
  10bd57:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd5a:	5b                   	pop    %ebx                           
  10bd5b:	5e                   	pop    %esi                           
  10bd5c:	c9                   	leave                                 
  10bd5d:	c3                   	ret                                   
  10bd5e:	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 );
  10bd60:	8d 73 20             	lea    0x20(%ebx),%esi                
  10bd63:	83 ec 0c             	sub    $0xc,%esp                      
  10bd66:	56                   	push   %esi                           
  10bd67:	e8 a0 f7 ff ff       	call   10b50c <_Chain_Get>            
  10bd6c:	89 c1                	mov    %eax,%ecx                      
                                                                      
  if ( information->auto_extend ) {                                   
  10bd6e:	83 c4 10             	add    $0x10,%esp                     
  10bd71:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)                
  10bd75:	74 de                	je     10bd55 <_Objects_Allocate+0x11>
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
  10bd77:	85 c0                	test   %eax,%eax                      
  10bd79:	74 29                	je     10bda4 <_Objects_Allocate+0x60>
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
  10bd7b:	0f b7 41 08          	movzwl 0x8(%ecx),%eax                 
  10bd7f:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  10bd83:	29 d0                	sub    %edx,%eax                      
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
  10bd85:	0f b7 73 14          	movzwl 0x14(%ebx),%esi                
  10bd89:	31 d2                	xor    %edx,%edx                      
  10bd8b:	f7 f6                	div    %esi                           
                                                                      
      information->inactive_per_block[ block ]--;                     
  10bd8d:	c1 e0 02             	shl    $0x2,%eax                      
  10bd90:	03 43 30             	add    0x30(%ebx),%eax                
  10bd93:	ff 08                	decl   (%eax)                         
      information->inactive--;                                        
  10bd95:	66 ff 4b 2c          	decw   0x2c(%ebx)                     
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
  10bd99:	89 c8                	mov    %ecx,%eax                      
  10bd9b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd9e:	5b                   	pop    %ebx                           
  10bd9f:	5e                   	pop    %esi                           
  10bda0:	c9                   	leave                                 
  10bda1:	c3                   	ret                                   
  10bda2:	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 );                     
  10bda4:	83 ec 0c             	sub    $0xc,%esp                      
  10bda7:	53                   	push   %ebx                           
  10bda8:	e8 3b 00 00 00       	call   10bde8 <_Objects_Extend_information>
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
  10bdad:	89 34 24             	mov    %esi,(%esp)                    
  10bdb0:	e8 57 f7 ff ff       	call   10b50c <_Chain_Get>            
  10bdb5:	89 c1                	mov    %eax,%ecx                      
    }                                                                 
                                                                      
    if ( the_object ) {                                               
  10bdb7:	83 c4 10             	add    $0x10,%esp                     
  10bdba:	85 c0                	test   %eax,%eax                      
  10bdbc:	74 97                	je     10bd55 <_Objects_Allocate+0x11>
  10bdbe:	eb bb                	jmp    10bd7b <_Objects_Allocate+0x37>
                                                                      

0010bde8 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) {
  10bde8:	55                   	push   %ebp                           
  10bde9:	89 e5                	mov    %esp,%ebp                      
  10bdeb:	57                   	push   %edi                           
  10bdec:	56                   	push   %esi                           
  10bded:	53                   	push   %ebx                           
  10bdee:	83 ec 4c             	sub    $0x4c,%esp                     
  10bdf1:	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 );      
  10bdf4:	0f b7 43 08          	movzwl 0x8(%ebx),%eax                 
  10bdf8:	89 45 cc             	mov    %eax,-0x34(%ebp)               
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
  10bdfb:	8b 4b 34             	mov    0x34(%ebx),%ecx                
  10bdfe:	85 c9                	test   %ecx,%ecx                      
  10be00:	0f 84 62 02 00 00    	je     10c068 <_Objects_Extend_information+0x280>
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
  10be06:	8b 73 10             	mov    0x10(%ebx),%esi                
  10be09:	66 89 75 d0          	mov    %si,-0x30(%ebp)                
  10be0d:	8b 7b 14             	mov    0x14(%ebx),%edi                
  10be10:	89 f0                	mov    %esi,%eax                      
  10be12:	31 d2                	xor    %edx,%edx                      
  10be14:	66 f7 f7             	div    %di                            
  10be17:	0f b7 f0             	movzwl %ax,%esi                       
                                                                      
    for ( ; block < block_count; block++ ) {                          
  10be1a:	85 f6                	test   %esi,%esi                      
  10be1c:	0f 84 5f 02 00 00    	je     10c081 <_Objects_Extend_information+0x299><== NEVER TAKEN
      if ( information->object_blocks[ block ] == NULL ) {            
  10be22:	8b 01                	mov    (%ecx),%eax                    
  10be24:	85 c0                	test   %eax,%eax                      
  10be26:	0f 84 67 02 00 00    	je     10c093 <_Objects_Extend_information+0x2ab><== NEVER TAKEN
  10be2c:	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 );      
  10be2f:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10be32:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10be35:	31 d2                	xor    %edx,%edx                      
  10be37:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10be3a:	eb 0a                	jmp    10be46 <_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 ) {            
  10be3c:	83 3c 91 00          	cmpl   $0x0,(%ecx,%edx,4)             
  10be40:	0f 84 c2 01 00 00    	je     10c008 <_Objects_Extend_information+0x220>
        do_extend = false;                                            
        break;                                                        
      } else                                                          
        index_base += information->allocation_size;                   
  10be46:	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++ ) {                          
  10be48:	42                   	inc    %edx                           
  10be49:	39 d6                	cmp    %edx,%esi                      
  10be4b:	77 ef                	ja     10be3c <_Objects_Extend_information+0x54>
  10be4d:	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;                                               
  10be50:	b1 01                	mov    $0x1,%cl                       
      } else                                                          
        index_base += information->allocation_size;                   
    }                                                                 
  }                                                                   
                                                                      
  maximum = (uint32_t) information->maximum + information->allocation_size;
  10be52:	0f b7 45 d0          	movzwl -0x30(%ebp),%eax               
  10be56:	01 f8                	add    %edi,%eax                      
  10be58:	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 ) {                           
  10be5b:	3d ff ff 00 00       	cmp    $0xffff,%eax                   
  10be60:	0f 87 9a 01 00 00    	ja     10c000 <_Objects_Extend_information+0x218>
                                                                      
  /*                                                                  
   * 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;      
  10be66:	0f af 7b 18          	imul   0x18(%ebx),%edi                
  if ( information->auto_extend ) {                                   
  10be6a:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)                
  10be6e:	0f 84 a0 01 00 00    	je     10c014 <_Objects_Extend_information+0x22c>
    new_object_block = _Workspace_Allocate( block_size );             
  10be74:	83 ec 0c             	sub    $0xc,%esp                      
  10be77:	57                   	push   %edi                           
  10be78:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10be7b:	88 4d b4             	mov    %cl,-0x4c(%ebp)                
  10be7e:	e8 d9 1e 00 00       	call   10dd5c <_Workspace_Allocate>   
  10be83:	89 45 c8             	mov    %eax,-0x38(%ebp)               
    if ( !new_object_block )                                          
  10be86:	83 c4 10             	add    $0x10,%esp                     
  10be89:	85 c0                	test   %eax,%eax                      
  10be8b:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10be8e:	8a 4d b4             	mov    -0x4c(%ebp),%cl                
  10be91:	0f 84 69 01 00 00    	je     10c000 <_Objects_Extend_information+0x218>
  }                                                                   
                                                                      
  /*                                                                  
   *  Do we need to grow the tables?                                  
   */                                                                 
  if ( do_extend ) {                                                  
  10be97:	84 c9                	test   %cl,%cl                        
  10be99:	0f 84 e6 00 00 00    	je     10bf85 <_Objects_Extend_information+0x19d>
     */                                                               
                                                                      
    /*                                                                
     *  Up the block count and maximum                                
     */                                                               
    block_count++;                                                    
  10be9f:	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 );       
  10bea2:	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 *)) +
  10bea5:	8d 04 7f             	lea    (%edi,%edi,2),%eax             
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
  10bea8:	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 *)) +
  10beab:	03 45 cc             	add    -0x34(%ebp),%eax               
    block_count++;                                                    
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
  10beae:	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 );       
  10beb1:	50                   	push   %eax                           
  10beb2:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10beb5:	e8 a2 1e 00 00       	call   10dd5c <_Workspace_Allocate>   
  10beba:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
                                                                      
    if ( !object_blocks ) {                                           
  10bebd:	83 c4 10             	add    $0x10,%esp                     
  10bec0:	85 c0                	test   %eax,%eax                      
  10bec2:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10bec5:	0f 84 da 01 00 00    	je     10c0a5 <_Objects_Extend_information+0x2bd>
  10becb:	8b 45 c4             	mov    -0x3c(%ebp),%eax               
  10bece:	8d 04 b8             	lea    (%eax,%edi,4),%eax             
  10bed1:	89 45 bc             	mov    %eax,-0x44(%ebp)               
  10bed4:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10bed7:	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 ) {                     
  10beda:	0f b7 4b 10          	movzwl 0x10(%ebx),%ecx                
  10bede:	39 4d cc             	cmp    %ecx,-0x34(%ebp)               
  10bee1:	0f 82 4d 01 00 00    	jb     10c034 <_Objects_Extend_information+0x24c>
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
  10bee7:	8b 4d cc             	mov    -0x34(%ebp),%ecx               
  10beea:	85 c9                	test   %ecx,%ecx                      
  10beec:	74 12                	je     10bf00 <_Objects_Extend_information+0x118><== NEVER TAKEN
  10beee:	31 c9                	xor    %ecx,%ecx                      
  10bef0:	8b 7d cc             	mov    -0x34(%ebp),%edi               
  10bef3:	90                   	nop                                   
        local_table[ index ] = NULL;                                  
  10bef4:	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++ ) {             
  10befb:	41                   	inc    %ecx                           
  10befc:	39 cf                	cmp    %ecx,%edi                      
  10befe:	77 f4                	ja     10bef4 <_Objects_Extend_information+0x10c><== NEVER TAKEN
  10bf00:	c1 e6 02             	shl    $0x2,%esi                      
  10bf03:	89 75 c0             	mov    %esi,-0x40(%ebp)               
    }                                                                 
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
  10bf06:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10bf09:	8b 75 c0             	mov    -0x40(%ebp),%esi               
  10bf0c:	c7 04 31 00 00 00 00 	movl   $0x0,(%ecx,%esi,1)             
    inactive_per_block[block_count] = 0;                              
  10bf13:	8b 4d bc             	mov    -0x44(%ebp),%ecx               
  10bf16:	c7 04 31 00 00 00 00 	movl   $0x0,(%ecx,%esi,1)             
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
  10bf1d:	0f b7 73 14          	movzwl 0x14(%ebx),%esi                
  10bf21:	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 ;                                          
  10bf24:	39 75 d4             	cmp    %esi,-0x2c(%ebp)               
  10bf27:	73 0f                	jae    10bf38 <_Objects_Extend_information+0x150><== NEVER TAKEN
  10bf29:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
  10bf2c:	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++ ) {                                                 
  10bf33:	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 ;                                          
  10bf34:	39 f1                	cmp    %esi,%ecx                      
  10bf36:	72 f4                	jb     10bf2c <_Objects_Extend_information+0x144>
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
    }                                                                 
                                                                      
    _ISR_Disable( level );                                            
  10bf38:	9c                   	pushf                                 
  10bf39:	fa                   	cli                                   
  10bf3a:	5f                   	pop    %edi                           
                                                                      
    old_tables = information->object_blocks;                          
  10bf3b:	8b 73 34             	mov    0x34(%ebx),%esi                
                                                                      
    information->object_blocks = object_blocks;                       
  10bf3e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10bf41:	89 4b 34             	mov    %ecx,0x34(%ebx)                
    information->inactive_per_block = inactive_per_block;             
  10bf44:	8b 4d bc             	mov    -0x44(%ebp),%ecx               
  10bf47:	89 4b 30             	mov    %ecx,0x30(%ebx)                
    information->local_table = local_table;                           
  10bf4a:	89 43 1c             	mov    %eax,0x1c(%ebx)                
    information->maximum = (Objects_Maximum) maximum;                 
  10bf4d:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10bf50:	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)   |    
  10bf54:	8b 0b                	mov    (%ebx),%ecx                    
  10bf56:	c1 e1 18             	shl    $0x18,%ecx                     
  10bf59:	81 c9 00 00 01 00    	or     $0x10000,%ecx                  
    information->maximum_id = _Objects_Build_id(                      
  10bf5f:	0f b7 43 04          	movzwl 0x4(%ebx),%eax                 
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
  10bf63:	c1 e0 1b             	shl    $0x1b,%eax                     
  10bf66:	09 c1                	or     %eax,%ecx                      
  10bf68:	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)   |    
  10bf6c:	09 c1                	or     %eax,%ecx                      
  10bf6e:	89 4b 0c             	mov    %ecx,0xc(%ebx)                 
        information->the_class,                                       
        _Objects_Local_node,                                          
        information->maximum                                          
      );                                                              
                                                                      
    _ISR_Enable( level );                                             
  10bf71:	57                   	push   %edi                           
  10bf72:	9d                   	popf                                  
                                                                      
    _Workspace_Free( old_tables );                                    
  10bf73:	83 ec 0c             	sub    $0xc,%esp                      
  10bf76:	56                   	push   %esi                           
  10bf77:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10bf7a:	e8 f9 1d 00 00       	call   10dd78 <_Workspace_Free>       
  10bf7f:	83 c4 10             	add    $0x10,%esp                     
  10bf82:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  }                                                                   
                                                                      
  /*                                                                  
   *  Assign the new object block to the object block table.          
   */                                                                 
  information->object_blocks[ block ] = new_object_block;             
  10bf85:	c1 e2 02             	shl    $0x2,%edx                      
  10bf88:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10bf8b:	8b 43 34             	mov    0x34(%ebx),%eax                
  10bf8e:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  10bf91:	89 0c 10             	mov    %ecx,(%eax,%edx,1)             
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
  _Chain_Initialize(                                                  
  10bf94:	ff 73 18             	pushl  0x18(%ebx)                     
  10bf97:	0f b7 43 14          	movzwl 0x14(%ebx),%eax                
  10bf9b:	50                   	push   %eax                           
  10bf9c:	51                   	push   %ecx                           
  10bf9d:	8d 7d dc             	lea    -0x24(%ebp),%edi               
  10bfa0:	57                   	push   %edi                           
  10bfa1:	e8 42 49 00 00       	call   1108e8 <_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 ) {
  10bfa6:	83 c4 10             	add    $0x10,%esp                     
  10bfa9:	8b 75 d4             	mov    -0x2c(%ebp),%esi               
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
  10bfac:	8d 43 20             	lea    0x20(%ebx),%eax                
  10bfaf:	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 ) {
  10bfb2:	eb 29                	jmp    10bfdd <_Objects_Extend_information+0x1f5>
  10bfb4:	8b 13                	mov    (%ebx),%edx                    
  10bfb6:	c1 e2 18             	shl    $0x18,%edx                     
  10bfb9:	81 ca 00 00 01 00    	or     $0x10000,%edx                  
                                                                      
    the_object->id = _Objects_Build_id(                               
  10bfbf:	0f b7 4b 04          	movzwl 0x4(%ebx),%ecx                 
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
  10bfc3:	c1 e1 1b             	shl    $0x1b,%ecx                     
  10bfc6:	09 ca                	or     %ecx,%edx                      
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
  10bfc8:	09 f2                	or     %esi,%edx                      
  10bfca:	89 50 08             	mov    %edx,0x8(%eax)                 
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
  10bfcd:	83 ec 08             	sub    $0x8,%esp                      
  10bfd0:	50                   	push   %eax                           
  10bfd1:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10bfd4:	e8 f7 f4 ff ff       	call   10b4d0 <_Chain_Append>         
                                                                      
    index++;                                                          
  10bfd9:	46                   	inc    %esi                           
  10bfda:	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 ) {
  10bfdd:	83 ec 0c             	sub    $0xc,%esp                      
  10bfe0:	57                   	push   %edi                           
  10bfe1:	e8 26 f5 ff ff       	call   10b50c <_Chain_Get>            
  10bfe6:	83 c4 10             	add    $0x10,%esp                     
  10bfe9:	85 c0                	test   %eax,%eax                      
  10bfeb:	75 c7                	jne    10bfb4 <_Objects_Extend_information+0x1cc>
    _Chain_Append( &information->Inactive, &the_object->Node );       
                                                                      
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
  10bfed:	8b 43 14             	mov    0x14(%ebx),%eax                
  10bff0:	8b 53 30             	mov    0x30(%ebx),%edx                
  10bff3:	0f b7 c8             	movzwl %ax,%ecx                       
  10bff6:	8b 75 d0             	mov    -0x30(%ebp),%esi               
  10bff9:	89 0c 32             	mov    %ecx,(%edx,%esi,1)             
  information->inactive =                                             
    (Objects_Maximum)(information->inactive + information->allocation_size);
  10bffc:	66 01 43 2c          	add    %ax,0x2c(%ebx)                 
}                                                                     
  10c000:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c003:	5b                   	pop    %ebx                           
  10c004:	5e                   	pop    %esi                           
  10c005:	5f                   	pop    %edi                           
  10c006:	c9                   	leave                                 
  10c007:	c3                   	ret                                   
  10c008:	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;                                            
  10c00b:	31 c9                	xor    %ecx,%ecx                      
  10c00d:	e9 40 fe ff ff       	jmp    10be52 <_Objects_Extend_information+0x6a>
  10c012:	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 );
  10c014:	83 ec 0c             	sub    $0xc,%esp                      
  10c017:	57                   	push   %edi                           
  10c018:	89 55 b8             	mov    %edx,-0x48(%ebp)               
  10c01b:	88 4d b4             	mov    %cl,-0x4c(%ebp)                
  10c01e:	e8 6d 1d 00 00       	call   10dd90 <_Workspace_Allocate_or_fatal_error>
  10c023:	89 45 c8             	mov    %eax,-0x38(%ebp)               
  10c026:	83 c4 10             	add    $0x10,%esp                     
  10c029:	8a 4d b4             	mov    -0x4c(%ebp),%cl                
  10c02c:	8b 55 b8             	mov    -0x48(%ebp),%edx               
  10c02f:	e9 63 fe ff ff       	jmp    10be97 <_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,                                          
  10c034:	c1 e6 02             	shl    $0x2,%esi                      
  10c037:	89 75 c0             	mov    %esi,-0x40(%ebp)               
  10c03a:	8b 73 34             	mov    0x34(%ebx),%esi                
  10c03d:	8b 7d c4             	mov    -0x3c(%ebp),%edi               
  10c040:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10c043:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
  10c045:	8b 73 30             	mov    0x30(%ebx),%esi                
  10c048:	8b 7d bc             	mov    -0x44(%ebp),%edi               
  10c04b:	8b 4d c0             	mov    -0x40(%ebp),%ecx               
  10c04e:	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 *) );
  10c050:	0f b7 4b 10          	movzwl 0x10(%ebx),%ecx                
  10c054:	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,                                            
  10c057:	c1 e1 02             	shl    $0x2,%ecx                      
  10c05a:	8b 73 1c             	mov    0x1c(%ebx),%esi                
  10c05d:	89 c7                	mov    %eax,%edi                      
  10c05f:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)       
  10c061:	e9 a0 fe ff ff       	jmp    10bf06 <_Objects_Extend_information+0x11e>
  10c066:	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 )                           
  10c068:	8b 53 10             	mov    0x10(%ebx),%edx                
  10c06b:	66 89 55 d0          	mov    %dx,-0x30(%ebp)                
  10c06f:	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 );      
  10c073:	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;                                               
  10c076:	b1 01                	mov    $0x1,%cl                       
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10c078:	31 d2                	xor    %edx,%edx                      
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
  10c07a:	31 f6                	xor    %esi,%esi                      
  10c07c:	e9 d1 fd ff ff       	jmp    10be52 <_Objects_Extend_information+0x6a>
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
  10c081:	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 );      
  10c084:	8b 45 cc             	mov    -0x34(%ebp),%eax               <== NOT EXECUTED
  10c087:	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;                                               
  10c08a:	b1 01                	mov    $0x1,%cl                       <== NOT EXECUTED
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
  10c08c:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10c08e:	e9 bf fd ff ff       	jmp    10be52 <_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 ) {            
  10c093:	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 );      
  10c096:	8b 4d cc             	mov    -0x34(%ebp),%ecx               <== NOT EXECUTED
  10c099:	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;                                            
  10c09c:	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;                                                  
  10c09e:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10c0a0:	e9 ad fd ff ff       	jmp    10be52 <_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 );                            
  10c0a5:	83 ec 0c             	sub    $0xc,%esp                      
  10c0a8:	ff 75 c8             	pushl  -0x38(%ebp)                    
  10c0ab:	e8 c8 1c 00 00       	call   10dd78 <_Workspace_Free>       
      return;                                                         
  10c0b0:	83 c4 10             	add    $0x10,%esp                     
  10c0b3:	e9 48 ff ff ff       	jmp    10c000 <_Objects_Extend_information+0x218>
                                                                      

0010c148 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint16_t the_class ) {
  10c148:	55                   	push   %ebp                           
  10c149:	89 e5                	mov    %esp,%ebp                      
  10c14b:	56                   	push   %esi                           
  10c14c:	53                   	push   %ebx                           
  10c14d:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10c150:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
  10c153:	66 85 db             	test   %bx,%bx                        
  10c156:	75 0c                	jne    10c164 <_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;                                                      
  10c158:	31 c0                	xor    %eax,%eax                      
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
  10c15a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c15d:	5b                   	pop    %ebx                           
  10c15e:	5e                   	pop    %esi                           
  10c15f:	c9                   	leave                                 
  10c160:	c3                   	ret                                   
  10c161:	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 );      
  10c164:	83 ec 0c             	sub    $0xc,%esp                      
  10c167:	56                   	push   %esi                           
  10c168:	e8 e7 4f 00 00       	call   111154 <_Objects_API_maximum_class>
  if ( the_class_api_maximum == 0 )                                   
  10c16d:	83 c4 10             	add    $0x10,%esp                     
  10c170:	85 c0                	test   %eax,%eax                      
  10c172:	74 e4                	je     10c158 <_Objects_Get_information+0x10>
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
  10c174:	0f b7 db             	movzwl %bx,%ebx                       
  10c177:	39 d8                	cmp    %ebx,%eax                      
  10c179:	72 dd                	jb     10c158 <_Objects_Get_information+0x10>
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
  10c17b:	8b 14 b5 c4 77 12 00 	mov    0x1277c4(,%esi,4),%edx         
    return NULL;                                                      
  10c182:	31 c0                	xor    %eax,%eax                      
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
  10c184:	85 d2                	test   %edx,%edx                      
  10c186:	74 d2                	je     10c15a <_Objects_Get_information+0x12><== NEVER TAKEN
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
  10c188:	8b 04 9a             	mov    (%edx,%ebx,4),%eax             
  if ( !info )                                                        
  10c18b:	85 c0                	test   %eax,%eax                      
  10c18d:	74 cb                	je     10c15a <_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;                                                    
  10c18f:	31 d2                	xor    %edx,%edx                      
  10c191:	66 83 78 10 00       	cmpw   $0x0,0x10(%eax)                
  10c196:	0f 95 c2             	setne  %dl                            
  10c199:	f7 da                	neg    %edx                           
  10c19b:	21 d0                	and    %edx,%eax                      
  10c19d:	eb bb                	jmp    10c15a <_Objects_Get_information+0x12>
                                                                      

0010c1a0 <_Objects_Get_isr_disable>: Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) {
  10c1a0:	55                   	push   %ebp                           
  10c1a1:	89 e5                	mov    %esp,%ebp                      
  10c1a3:	56                   	push   %esi                           
  10c1a4:	53                   	push   %ebx                           
  10c1a5:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c1a8:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Control *the_object;                                        
  uint32_t         index;                                             
  ISR_Level        level;                                             
                                                                      
  index = id - information->minimum_id + 1;                           
  10c1ab:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10c1b0:	2b 42 08             	sub    0x8(%edx),%eax                 
  10c1b3:	03 45 0c             	add    0xc(%ebp),%eax                 
                                                                      
  _ISR_Disable( level );                                              
  10c1b6:	9c                   	pushf                                 
  10c1b7:	fa                   	cli                                   
  10c1b8:	5e                   	pop    %esi                           
  if ( information->maximum >= index ) {                              
  10c1b9:	0f b7 4a 10          	movzwl 0x10(%edx),%ecx                
  10c1bd:	39 c8                	cmp    %ecx,%eax                      
  10c1bf:	77 1b                	ja     10c1dc <_Objects_Get_isr_disable+0x3c>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
  10c1c1:	8b 52 1c             	mov    0x1c(%edx),%edx                
  10c1c4:	8b 04 82             	mov    (%edx,%eax,4),%eax             
  10c1c7:	85 c0                	test   %eax,%eax                      
  10c1c9:	74 21                	je     10c1ec <_Objects_Get_isr_disable+0x4c>
      *location = OBJECTS_LOCAL;                                      
  10c1cb:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
      *level_p = level;                                               
  10c1d1:	8b 55 14             	mov    0x14(%ebp),%edx                
  10c1d4:	89 32                	mov    %esi,(%edx)                    
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
#endif                                                                
}                                                                     
  10c1d6:	5b                   	pop    %ebx                           
  10c1d7:	5e                   	pop    %esi                           
  10c1d8:	c9                   	leave                                 
  10c1d9:	c3                   	ret                                   
  10c1da:	66 90                	xchg   %ax,%ax                        
    }                                                                 
    _ISR_Enable( level );                                             
    *location = OBJECTS_ERROR;                                        
    return NULL;                                                      
  }                                                                   
  _ISR_Enable( level );                                               
  10c1dc:	56                   	push   %esi                           
  10c1dd:	9d                   	popf                                  
  *location = OBJECTS_ERROR;                                          
  10c1de:	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;                                                        
  10c1e4:	31 c0                	xor    %eax,%eax                      
#endif                                                                
}                                                                     
  10c1e6:	5b                   	pop    %ebx                           
  10c1e7:	5e                   	pop    %esi                           
  10c1e8:	c9                   	leave                                 
  10c1e9:	c3                   	ret                                   
  10c1ea:	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 );                                             
  10c1ec:	56                   	push   %esi                           
  10c1ed:	9d                   	popf                                  
    *location = OBJECTS_ERROR;                                        
  10c1ee:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
    return NULL;                                                      
  10c1f4:	eb e0                	jmp    10c1d6 <_Objects_Get_isr_disable+0x36>
                                                                      

0010d8b4 <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) {
  10d8b4:	55                   	push   %ebp                           
  10d8b5:	89 e5                	mov    %esp,%ebp                      
  10d8b7:	57                   	push   %edi                           
  10d8b8:	56                   	push   %esi                           
  10d8b9:	53                   	push   %ebx                           
  10d8ba:	83 ec 2c             	sub    $0x2c,%esp                     
  10d8bd:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d8c0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10d8c3:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
  10d8c6:	85 f6                	test   %esi,%esi                      
  10d8c8:	75 0e                	jne    10d8d8 <_Objects_Get_name_as_string+0x24>
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:                                              
      /* not supported */                                             
#endif                                                                
    case OBJECTS_ERROR:                                               
      return NULL;                                                    
  10d8ca:	31 db                	xor    %ebx,%ebx                      
                                                                      
      _Thread_Enable_dispatch();                                      
      return name;                                                    
  }                                                                   
  return NULL;                  /* unreachable path */                
}                                                                     
  10d8cc:	89 d8                	mov    %ebx,%eax                      
  10d8ce:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d8d1:	5b                   	pop    %ebx                           
  10d8d2:	5e                   	pop    %esi                           
  10d8d3:	5f                   	pop    %edi                           
  10d8d4:	c9                   	leave                                 
  10d8d5:	c3                   	ret                                   
  10d8d6:	66 90                	xchg   %ax,%ax                        
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    return NULL;                                                      
                                                                      
  if ( name == NULL )                                                 
  10d8d8:	85 db                	test   %ebx,%ebx                      
  10d8da:	74 f0                	je     10d8cc <_Objects_Get_name_as_string+0x18>
    return NULL;                                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10d8dc:	85 d2                	test   %edx,%edx                      
  10d8de:	75 08                	jne    10d8e8 <_Objects_Get_name_as_string+0x34>
  10d8e0:	a1 58 b9 12 00       	mov    0x12b958,%eax                  
  10d8e5:	8b 50 08             	mov    0x8(%eax),%edx                 
                                                                      
  information = _Objects_Get_information_id( tmpId );                 
  10d8e8:	83 ec 0c             	sub    $0xc,%esp                      
  10d8eb:	52                   	push   %edx                           
  10d8ec:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10d8ef:	e8 f0 fe ff ff       	call   10d7e4 <_Objects_Get_information_id>
  10d8f4:	89 c7                	mov    %eax,%edi                      
  if ( !information )                                                 
  10d8f6:	83 c4 10             	add    $0x10,%esp                     
  10d8f9:	85 c0                	test   %eax,%eax                      
  10d8fb:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10d8fe:	74 ca                	je     10d8ca <_Objects_Get_name_as_string+0x16>
    return NULL;                                                      
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  10d900:	51                   	push   %ecx                           
  10d901:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10d904:	50                   	push   %eax                           
  10d905:	52                   	push   %edx                           
  10d906:	57                   	push   %edi                           
  10d907:	e8 90 00 00 00       	call   10d99c <_Objects_Get>          
  switch ( location ) {                                               
  10d90c:	83 c4 10             	add    $0x10,%esp                     
  10d90f:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10d912:	85 d2                	test   %edx,%edx                      
  10d914:	75 b4                	jne    10d8ca <_Objects_Get_name_as_string+0x16>
      return NULL;                                                    
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)             
        if ( information->is_string ) {                               
  10d916:	80 7f 38 00          	cmpb   $0x0,0x38(%edi)                
  10d91a:	74 54                	je     10d970 <_Objects_Get_name_as_string+0xbc>
          s = the_object->name.name_p;                                
  10d91c:	8b 78 0c             	mov    0xc(%eax),%edi                 
        lname[ 4 ] = '\0';                                            
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
  10d91f:	85 ff                	test   %edi,%edi                      
  10d921:	74 74                	je     10d997 <_Objects_Get_name_as_string+0xe3>
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10d923:	4e                   	dec    %esi                           
  10d924:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
  10d927:	74 6e                	je     10d997 <_Objects_Get_name_as_string+0xe3><== NEVER TAKEN
  10d929:	8a 17                	mov    (%edi),%dl                     
  10d92b:	84 d2                	test   %dl,%dl                        
  10d92d:	74 68                	je     10d997 <_Objects_Get_name_as_string+0xe3>
  10d92f:	89 d9                	mov    %ebx,%ecx                      
  10d931:	31 c0                	xor    %eax,%eax                      
  10d933:	89 5d d0             	mov    %ebx,-0x30(%ebp)               
  10d936:	eb 07                	jmp    10d93f <_Objects_Get_name_as_string+0x8b>
  10d938:	8a 14 07             	mov    (%edi,%eax,1),%dl              
  10d93b:	84 d2                	test   %dl,%dl                        
  10d93d:	74 21                	je     10d960 <_Objects_Get_name_as_string+0xac>
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
  10d93f:	0f b6 da             	movzbl %dl,%ebx                       
  10d942:	8b 35 88 8c 12 00    	mov    0x128c88,%esi                  
  10d948:	0f be 5c 1e 01       	movsbl 0x1(%esi,%ebx,1),%ebx          
  10d94d:	81 e3 97 00 00 00    	and    $0x97,%ebx                     
  10d953:	75 02                	jne    10d957 <_Objects_Get_name_as_string+0xa3>
  10d955:	b2 2a                	mov    $0x2a,%dl                      
  10d957:	88 11                	mov    %dl,(%ecx)                     
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10d959:	40                   	inc    %eax                           
  10d95a:	41                   	inc    %ecx                           
  10d95b:	3b 45 d4             	cmp    -0x2c(%ebp),%eax               
  10d95e:	72 d8                	jb     10d938 <_Objects_Get_name_as_string+0x84>
  10d960:	8b 5d d0             	mov    -0x30(%ebp),%ebx               
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
        }                                                             
      }                                                               
      *d = '\0';                                                      
  10d963:	c6 01 00             	movb   $0x0,(%ecx)                    
                                                                      
      _Thread_Enable_dispatch();                                      
  10d966:	e8 41 0b 00 00       	call   10e4ac <_Thread_Enable_dispatch>
      return name;                                                    
  10d96b:	e9 5c ff ff ff       	jmp    10d8cc <_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;    
  10d970:	8b 40 0c             	mov    0xc(%eax),%eax                 
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
  10d973:	89 c2                	mov    %eax,%edx                      
  10d975:	c1 ea 18             	shr    $0x18,%edx                     
  10d978:	88 55 df             	mov    %dl,-0x21(%ebp)                
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
  10d97b:	89 c2                	mov    %eax,%edx                      
  10d97d:	c1 ea 10             	shr    $0x10,%edx                     
  10d980:	88 55 e0             	mov    %dl,-0x20(%ebp)                
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
  10d983:	89 c2                	mov    %eax,%edx                      
  10d985:	c1 ea 08             	shr    $0x8,%edx                      
  10d988:	88 55 e1             	mov    %dl,-0x1f(%ebp)                
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
  10d98b:	88 45 e2             	mov    %al,-0x1e(%ebp)                
        lname[ 4 ] = '\0';                                            
  10d98e:	c6 45 e3 00          	movb   $0x0,-0x1d(%ebp)               
        s = lname;                                                    
  10d992:	8d 7d df             	lea    -0x21(%ebp),%edi               
  10d995:	eb 8c                	jmp    10d923 <_Objects_Get_name_as_string+0x6f>
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
  10d997:	89 d9                	mov    %ebx,%ecx                      
  10d999:	eb c8                	jmp    10d963 <_Objects_Get_name_as_string+0xaf>
                                                                      

0010c340 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) {
  10c340:	55                   	push   %ebp                           
  10c341:	89 e5                	mov    %esp,%ebp                      
  10c343:	57                   	push   %edi                           
  10c344:	56                   	push   %esi                           
  10c345:	53                   	push   %ebx                           
  10c346:	83 ec 0c             	sub    $0xc,%esp                      
  10c349:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c34c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10c34f:	8b 7d 10             	mov    0x10(%ebp),%edi                
    Objects_Control *object;                                          
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
  10c352:	85 db                	test   %ebx,%ebx                      
  10c354:	75 0a                	jne    10c360 <_Objects_Get_next+0x20>
                                                                      
    if ( !location_p )                                                
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
      return NULL;                                                    
  10c356:	31 c0                	xor    %eax,%eax                      
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
    return 0;                                                         
}                                                                     
  10c358:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c35b:	5b                   	pop    %ebx                           
  10c35c:	5e                   	pop    %esi                           
  10c35d:	5f                   	pop    %edi                           
  10c35e:	c9                   	leave                                 
  10c35f:	c3                   	ret                                   
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
      return NULL;                                                    
                                                                      
    if ( !location_p )                                                
  10c360:	85 ff                	test   %edi,%edi                      
  10c362:	74 f2                	je     10c356 <_Objects_Get_next+0x16>
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
  10c364:	8b 45 14             	mov    0x14(%ebp),%eax                
  10c367:	85 c0                	test   %eax,%eax                      
  10c369:	74 eb                	je     10c356 <_Objects_Get_next+0x16>
      return NULL;                                                    
                                                                      
    if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX)           
  10c36b:	66 85 f6             	test   %si,%si                        
  10c36e:	75 04                	jne    10c374 <_Objects_Get_next+0x34>
        next_id = information->minimum_id;                            
  10c370:	8b 73 08             	mov    0x8(%ebx),%esi                 
  10c373:	90                   	nop                                   
    else                                                              
        next_id = id;                                                 
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
  10c374:	66 39 73 10          	cmp    %si,0x10(%ebx)                 
  10c378:	72 22                	jb     10c39c <_Objects_Get_next+0x5c>
            *location_p = OBJECTS_ERROR;                              
            goto final;                                               
        }                                                             
                                                                      
        /* try to grab one */                                         
        object = _Objects_Get(information, next_id, location_p);      
  10c37a:	51                   	push   %ecx                           
  10c37b:	57                   	push   %edi                           
  10c37c:	56                   	push   %esi                           
  10c37d:	53                   	push   %ebx                           
  10c37e:	e8 2d 00 00 00       	call   10c3b0 <_Objects_Get>          
                                                                      
        next_id++;                                                    
  10c383:	46                   	inc    %esi                           
                                                                      
    } while (*location_p != OBJECTS_LOCAL);                           
  10c384:	83 c4 10             	add    $0x10,%esp                     
  10c387:	8b 17                	mov    (%edi),%edx                    
  10c389:	85 d2                	test   %edx,%edx                      
  10c38b:	75 e7                	jne    10c374 <_Objects_Get_next+0x34>
                                                                      
    *next_id_p = next_id;                                             
  10c38d:	8b 55 14             	mov    0x14(%ebp),%edx                
  10c390:	89 32                	mov    %esi,(%edx)                    
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
    return 0;                                                         
}                                                                     
  10c392:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c395:	5b                   	pop    %ebx                           
  10c396:	5e                   	pop    %esi                           
  10c397:	5f                   	pop    %edi                           
  10c398:	c9                   	leave                                 
  10c399:	c3                   	ret                                   
  10c39a:	66 90                	xchg   %ax,%ax                        
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
        {                                                             
            *location_p = OBJECTS_ERROR;                              
  10c39c:	c7 07 01 00 00 00    	movl   $0x1,(%edi)                    
                                                                      
    *next_id_p = next_id;                                             
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
  10c3a2:	8b 45 14             	mov    0x14(%ebp),%eax                
  10c3a5:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)             
    return 0;                                                         
  10c3ab:	31 c0                	xor    %eax,%eax                      
  10c3ad:	eb a9                	jmp    10c358 <_Objects_Get_next+0x18>
                                                                      

0011a8c0 <_Objects_Get_no_protection>: Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) {
  11a8c0:	55                   	push   %ebp                           
  11a8c1:	89 e5                	mov    %esp,%ebp                      
  11a8c3:	53                   	push   %ebx                           
  11a8c4:	8b 55 08             	mov    0x8(%ebp),%edx                 
  11a8c7:	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;                           
  11a8ca:	b8 01 00 00 00       	mov    $0x1,%eax                      
  11a8cf:	2b 42 08             	sub    0x8(%edx),%eax                 
  11a8d2:	03 45 0c             	add    0xc(%ebp),%eax                 
                                                                      
  if ( information->maximum >= index ) {                              
  11a8d5:	0f b7 4a 10          	movzwl 0x10(%edx),%ecx                
  11a8d9:	39 c8                	cmp    %ecx,%eax                      
  11a8db:	77 13                	ja     11a8f0 <_Objects_Get_no_protection+0x30>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
  11a8dd:	8b 52 1c             	mov    0x1c(%edx),%edx                
  11a8e0:	8b 04 82             	mov    (%edx,%eax,4),%eax             
  11a8e3:	85 c0                	test   %eax,%eax                      
  11a8e5:	74 09                	je     11a8f0 <_Objects_Get_no_protection+0x30><== NEVER TAKEN
      *location = OBJECTS_LOCAL;                                      
  11a8e7:	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;                                                        
}                                                                     
  11a8ed:	5b                   	pop    %ebx                           
  11a8ee:	c9                   	leave                                 
  11a8ef:	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;                                          
  11a8f0:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
  return NULL;                                                        
  11a8f6:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11a8f8:	5b                   	pop    %ebx                           
  11a8f9:	c9                   	leave                                 
  11a8fa:	c3                   	ret                                   
                                                                      

0010d4a4 <_Objects_Id_to_name>: */ Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
  10d4a4:	55                   	push   %ebp                           
  10d4a5:	89 e5                	mov    %esp,%ebp                      
  10d4a7:	83 ec 18             	sub    $0x18,%esp                     
  10d4aa:	8b 55 08             	mov    0x8(%ebp),%edx                 
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10d4ad:	85 d2                	test   %edx,%edx                      
  10d4af:	75 08                	jne    10d4b9 <_Objects_Id_to_name+0x15>
  10d4b1:	a1 18 9b 12 00       	mov    0x129b18,%eax                  
  10d4b6:	8b 50 08             	mov    0x8(%eax),%edx                 
  10d4b9:	89 d0                	mov    %edx,%eax                      
  10d4bb:	c1 e8 18             	shr    $0x18,%eax                     
  10d4be:	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 )                      
  10d4c1:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10d4c4:	83 f9 02             	cmp    $0x2,%ecx                      
  10d4c7:	77 1d                	ja     10d4e6 <_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 ] )                       
  10d4c9:	8b 04 85 44 95 12 00 	mov    0x129544(,%eax,4),%eax         
  10d4d0:	85 c0                	test   %eax,%eax                      
  10d4d2:	74 12                	je     10d4e6 <_Objects_Id_to_name+0x42>
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
  10d4d4:	89 d1                	mov    %edx,%ecx                      
  10d4d6:	c1 e9 1b             	shr    $0x1b,%ecx                     
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
  10d4d9:	8b 04 88             	mov    (%eax,%ecx,4),%eax             
  if ( !information )                                                 
  10d4dc:	85 c0                	test   %eax,%eax                      
  10d4de:	74 06                	je     10d4e6 <_Objects_Id_to_name+0x42><== NEVER TAKEN
    return OBJECTS_INVALID_ID;                                        
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
  10d4e0:	80 78 38 00          	cmpb   $0x0,0x38(%eax)                
  10d4e4:	74 0a                	je     10d4f0 <_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;                                        
  10d4e6:	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;                        
}                                                                     
  10d4eb:	c9                   	leave                                 
  10d4ec:	c3                   	ret                                   
  10d4ed:	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 ); 
  10d4f0:	51                   	push   %ecx                           
  10d4f1:	8d 4d f4             	lea    -0xc(%ebp),%ecx                
  10d4f4:	51                   	push   %ecx                           
  10d4f5:	52                   	push   %edx                           
  10d4f6:	50                   	push   %eax                           
  10d4f7:	e8 40 ff ff ff       	call   10d43c <_Objects_Get>          
  if ( !the_object )                                                  
  10d4fc:	83 c4 10             	add    $0x10,%esp                     
  10d4ff:	85 c0                	test   %eax,%eax                      
  10d501:	74 e3                	je     10d4e6 <_Objects_Id_to_name+0x42>
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  10d503:	8b 50 0c             	mov    0xc(%eax),%edx                 
  10d506:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d509:	89 10                	mov    %edx,(%eax)                    
  _Thread_Enable_dispatch();                                          
  10d50b:	e8 24 0b 00 00       	call   10e034 <_Thread_Enable_dispatch>
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
  10d510:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10d512:	c9                   	leave                                 
  10d513:	c3                   	ret                                   
                                                                      

001172cc <_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 ) {
  1172cc:	55                   	push   %ebp                           
  1172cd:	89 e5                	mov    %esp,%ebp                      
  1172cf:	57                   	push   %edi                           
  1172d0:	56                   	push   %esi                           
  1172d1:	53                   	push   %ebx                           
  1172d2:	83 ec 1c             	sub    $0x1c,%esp                     
  1172d5:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  Objects_Control           *the_object;                              
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
  1172d8:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  1172db:	85 db                	test   %ebx,%ebx                      
  1172dd:	74 75                	je     117354 <_Objects_Name_to_id_string+0x88>
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( !name )                                                        
  1172df:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  1172e2:	85 c9                	test   %ecx,%ecx                      
  1172e4:	74 4b                	je     117331 <_Objects_Name_to_id_string+0x65>
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
  1172e6:	8b 47 10             	mov    0x10(%edi),%eax                
  1172e9:	66 85 c0             	test   %ax,%ax                        
  1172ec:	74 43                	je     117331 <_Objects_Name_to_id_string+0x65>
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
  1172ee:	0f b7 c0             	movzwl %ax,%eax                       
  1172f1:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  1172f4:	8b 47 1c             	mov    0x1c(%edi),%eax                
  1172f7:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  1172fc:	89 7d e0             	mov    %edi,-0x20(%ebp)               
  1172ff:	89 c7                	mov    %eax,%edi                      
  117301:	8d 76 00             	lea    0x0(%esi),%esi                 
      the_object = information->local_table[ index ];                 
  117304:	8b 34 9f             	mov    (%edi,%ebx,4),%esi             
      if ( !the_object )                                              
  117307:	85 f6                	test   %esi,%esi                      
  117309:	74 20                	je     11732b <_Objects_Name_to_id_string+0x5f>
        continue;                                                     
                                                                      
      if ( !the_object->name.name_p )                                 
  11730b:	8b 46 0c             	mov    0xc(%esi),%eax                 
  11730e:	85 c0                	test   %eax,%eax                      
  117310:	74 19                	je     11732b <_Objects_Name_to_id_string+0x5f>
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
  117312:	52                   	push   %edx                           
  117313:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  117316:	0f b7 51 3a          	movzwl 0x3a(%ecx),%edx                
  11731a:	52                   	push   %edx                           
  11731b:	50                   	push   %eax                           
  11731c:	ff 75 0c             	pushl  0xc(%ebp)                      
  11731f:	e8 68 34 00 00       	call   11a78c <strncmp>               
  117324:	83 c4 10             	add    $0x10,%esp                     
  117327:	85 c0                	test   %eax,%eax                      
  117329:	74 15                	je     117340 <_Objects_Name_to_id_string+0x74>
  if ( !name )                                                        
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
  11732b:	43                   	inc    %ebx                           
  11732c:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx               
  11732f:	76 d3                	jbe    117304 <_Objects_Name_to_id_string+0x38>
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
  117331:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  117336:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117339:	5b                   	pop    %ebx                           
  11733a:	5e                   	pop    %esi                           
  11733b:	5f                   	pop    %edi                           
  11733c:	c9                   	leave                                 
  11733d:	c3                   	ret                                   
  11733e:	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;                                         
  117340:	8b 46 08             	mov    0x8(%esi),%eax                 
  117343:	8b 55 10             	mov    0x10(%ebp),%edx                
  117346:	89 02                	mov    %eax,(%edx)                    
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
  117348:	31 c0                	xor    %eax,%eax                      
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
}                                                                     
  11734a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11734d:	5b                   	pop    %ebx                           
  11734e:	5e                   	pop    %esi                           
  11734f:	5f                   	pop    %edi                           
  117350:	c9                   	leave                                 
  117351:	c3                   	ret                                   
  117352:	66 90                	xchg   %ax,%ax                        
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
  117354:	b8 02 00 00 00       	mov    $0x2,%eax                      
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
}                                                                     
  117359:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11735c:	5b                   	pop    %ebx                           
  11735d:	5e                   	pop    %esi                           
  11735e:	5f                   	pop    %edi                           
  11735f:	c9                   	leave                                 
  117360:	c3                   	ret                                   
                                                                      

0010c378 <_Objects_Name_to_id_u32>: Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id ) {
  10c378:	55                   	push   %ebp                           
  10c379:	89 e5                	mov    %esp,%ebp                      
  10c37b:	57                   	push   %edi                           
  10c37c:	56                   	push   %esi                           
  10c37d:	53                   	push   %ebx                           
  10c37e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c381:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10c384:	8b 55 10             	mov    0x10(%ebp),%edx                
  10c387:	8b 7d 14             	mov    0x14(%ebp),%edi                
  Objects_Name               name_for_mp;                             
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
  10c38a:	85 ff                	test   %edi,%edi                      
  10c38c:	74 56                	je     10c3e4 <_Objects_Name_to_id_u32+0x6c>
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( name == 0 )                                                    
  10c38e:	85 c9                	test   %ecx,%ecx                      
  10c390:	74 08                	je     10c39a <_Objects_Name_to_id_u32+0x22>
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
  10c392:	8b 70 10             	mov    0x10(%eax),%esi                
  10c395:	66 85 f6             	test   %si,%si                        
  10c398:	75 0a                	jne    10c3a4 <_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;                                        
  10c39a:	b8 01 00 00 00       	mov    $0x1,%eax                      
#endif                                                                
}                                                                     
  10c39f:	5b                   	pop    %ebx                           
  10c3a0:	5e                   	pop    %esi                           
  10c3a1:	5f                   	pop    %edi                           
  10c3a2:	c9                   	leave                                 
  10c3a3:	c3                   	ret                                   
  if ( name == 0 )                                                    
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
  10c3a4:	85 d2                	test   %edx,%edx                      
  10c3a6:	75 20                	jne    10c3c8 <_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++ ) {       
  10c3a8:	0f b7 f6             	movzwl %si,%esi                       
  10c3ab:	8b 58 1c             	mov    0x1c(%eax),%ebx                
  10c3ae:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10c3b3:	90                   	nop                                   
      the_object = information->local_table[ index ];                 
  10c3b4:	8b 14 83             	mov    (%ebx,%eax,4),%edx             
      if ( !the_object )                                              
  10c3b7:	85 d2                	test   %edx,%edx                      
  10c3b9:	74 05                	je     10c3c0 <_Objects_Name_to_id_u32+0x48>
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
  10c3bb:	39 4a 0c             	cmp    %ecx,0xc(%edx)                 
  10c3be:	74 18                	je     10c3d8 <_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++ ) {       
  10c3c0:	40                   	inc    %eax                           
  10c3c1:	39 c6                	cmp    %eax,%esi                      
  10c3c3:	73 ef                	jae    10c3b4 <_Objects_Name_to_id_u32+0x3c>
  10c3c5:	eb d3                	jmp    10c39a <_Objects_Name_to_id_u32+0x22>
  10c3c7:	90                   	nop                                   
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
      (node == OBJECTS_SEARCH_ALL_NODES ||                            
  10c3c8:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx               
  10c3ce:	74 d8                	je     10c3a8 <_Objects_Name_to_id_u32+0x30>
       node == OBJECTS_SEARCH_LOCAL_NODE ||                           
  10c3d0:	4a                   	dec    %edx                           
  10c3d1:	75 c7                	jne    10c39a <_Objects_Name_to_id_u32+0x22>
  10c3d3:	eb d3                	jmp    10c3a8 <_Objects_Name_to_id_u32+0x30>
  10c3d5:	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;                                         
  10c3d8:	8b 42 08             	mov    0x8(%edx),%eax                 
  10c3db:	89 07                	mov    %eax,(%edi)                    
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
  10c3dd:	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                                                                
}                                                                     
  10c3df:	5b                   	pop    %ebx                           
  10c3e0:	5e                   	pop    %esi                           
  10c3e1:	5f                   	pop    %edi                           
  10c3e2:	c9                   	leave                                 
  10c3e3:	c3                   	ret                                   
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
  10c3e4:	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                                                                
}                                                                     
  10c3e9:	5b                   	pop    %ebx                           
  10c3ea:	5e                   	pop    %esi                           
  10c3eb:	5f                   	pop    %edi                           
  10c3ec:	c9                   	leave                                 
  10c3ed:	c3                   	ret                                   
                                                                      

0010c9e8 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) {
  10c9e8:	55                   	push   %ebp                           
  10c9e9:	89 e5                	mov    %esp,%ebp                      
  10c9eb:	57                   	push   %edi                           
  10c9ec:	56                   	push   %esi                           
  10c9ed:	53                   	push   %ebx                           
  10c9ee:	83 ec 14             	sub    $0x14,%esp                     
  10c9f1:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10c9f4:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
  10c9f7:	0f b7 47 3a          	movzwl 0x3a(%edi),%eax                
  10c9fb:	50                   	push   %eax                           
  10c9fc:	53                   	push   %ebx                           
  10c9fd:	e8 96 81 00 00       	call   114b98 <strnlen>               
  10ca02:	89 c6                	mov    %eax,%esi                      
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
  10ca04:	83 c4 10             	add    $0x10,%esp                     
  10ca07:	80 7f 38 00          	cmpb   $0x0,0x38(%edi)                
  10ca0b:	75 57                	jne    10ca64 <_Objects_Set_name+0x7c>
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10ca0d:	0f be 13             	movsbl (%ebx),%edx                    
  10ca10:	c1 e2 18             	shl    $0x18,%edx                     
  10ca13:	83 f8 01             	cmp    $0x1,%eax                      
  10ca16:	76 38                	jbe    10ca50 <_Objects_Set_name+0x68>
  10ca18:	0f be 43 01          	movsbl 0x1(%ebx),%eax                 
  10ca1c:	c1 e0 10             	shl    $0x10,%eax                     
  10ca1f:	09 d0                	or     %edx,%eax                      
  10ca21:	83 fe 02             	cmp    $0x2,%esi                      
  10ca24:	74 31                	je     10ca57 <_Objects_Set_name+0x6f>
  10ca26:	0f be 53 02          	movsbl 0x2(%ebx),%edx                 
  10ca2a:	c1 e2 08             	shl    $0x8,%edx                      
  10ca2d:	09 c2                	or     %eax,%edx                      
  10ca2f:	83 fe 03             	cmp    $0x3,%esi                      
  10ca32:	0f 84 80 00 00 00    	je     10cab8 <_Objects_Set_name+0xd0>
  10ca38:	0f be 43 03          	movsbl 0x3(%ebx),%eax                 
  10ca3c:	09 c2                	or     %eax,%edx                      
  10ca3e:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ca41:	89 50 0c             	mov    %edx,0xc(%eax)                 
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
  10ca44:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10ca46:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ca49:	5b                   	pop    %ebx                           
  10ca4a:	5e                   	pop    %esi                           
  10ca4b:	5f                   	pop    %edi                           
  10ca4c:	c9                   	leave                                 
  10ca4d:	c3                   	ret                                   
  10ca4e:	66 90                	xchg   %ax,%ax                        
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10ca50:	89 d0                	mov    %edx,%eax                      
  10ca52:	0d 00 00 20 00       	or     $0x200000,%eax                 
  10ca57:	89 c2                	mov    %eax,%edx                      
  10ca59:	80 ce 20             	or     $0x20,%dh                      
  10ca5c:	b8 20 00 00 00       	mov    $0x20,%eax                     
  10ca61:	eb d9                	jmp    10ca3c <_Objects_Set_name+0x54>
  10ca63:	90                   	nop                                   
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
  10ca64:	83 ec 0c             	sub    $0xc,%esp                      
  10ca67:	8d 40 01             	lea    0x1(%eax),%eax                 
  10ca6a:	50                   	push   %eax                           
  10ca6b:	e8 c0 19 00 00       	call   10e430 <_Workspace_Allocate>   
  10ca70:	89 c7                	mov    %eax,%edi                      
    if ( !d )                                                         
  10ca72:	83 c4 10             	add    $0x10,%esp                     
  10ca75:	85 c0                	test   %eax,%eax                      
  10ca77:	74 3b                	je     10cab4 <_Objects_Set_name+0xcc>
      return false;                                                   
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
  10ca79:	83 ec 0c             	sub    $0xc,%esp                      
  10ca7c:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ca7f:	ff 70 0c             	pushl  0xc(%eax)                      
  10ca82:	e8 c5 19 00 00       	call   10e44c <_Workspace_Free>       
    the_object->name.name_p = NULL;                                   
  10ca87:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ca8a:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
                                                                      
    strncpy( d, name, length );                                       
  10ca91:	83 c4 0c             	add    $0xc,%esp                      
  10ca94:	56                   	push   %esi                           
  10ca95:	53                   	push   %ebx                           
  10ca96:	57                   	push   %edi                           
  10ca97:	e8 80 80 00 00       	call   114b1c <strncpy>               
    d[length] = '\0';                                                 
  10ca9c:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)             
    the_object->name.name_p = d;                                      
  10caa0:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10caa3:	89 78 0c             	mov    %edi,0xc(%eax)                 
  10caa6:	83 c4 10             	add    $0x10,%esp                     
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
  10caa9:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10caab:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10caae:	5b                   	pop    %ebx                           
  10caaf:	5e                   	pop    %esi                           
  10cab0:	5f                   	pop    %edi                           
  10cab1:	c9                   	leave                                 
  10cab2:	c3                   	ret                                   
  10cab3:	90                   	nop                                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
    if ( !d )                                                         
      return false;                                                   
  10cab4:	31 c0                	xor    %eax,%eax                      
  10cab6:	eb 8e                	jmp    10ca46 <_Objects_Set_name+0x5e>
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
  10cab8:	b8 20 00 00 00       	mov    $0x20,%eax                     
  10cabd:	e9 7a ff ff ff       	jmp    10ca3c <_Objects_Set_name+0x54>
                                                                      

0010c3f0 <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) {
  10c3f0:	55                   	push   %ebp                           
  10c3f1:	89 e5                	mov    %esp,%ebp                      
  10c3f3:	57                   	push   %edi                           
  10c3f4:	56                   	push   %esi                           
  10c3f5:	53                   	push   %ebx                           
  10c3f6:	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 );         
  10c3f9:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c3fc:	0f b7 58 08          	movzwl 0x8(%eax),%ebx                 
  block_count = (information->maximum - index_base) /                 
  10c400:	0f b7 48 14          	movzwl 0x14(%eax),%ecx                
  10c404:	0f b7 40 10          	movzwl 0x10(%eax),%eax                
  10c408:	29 d8                	sub    %ebx,%eax                      
  10c40a:	31 d2                	xor    %edx,%edx                      
  10c40c:	f7 f1                	div    %ecx                           
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
  10c40e:	85 c0                	test   %eax,%eax                      
  10c410:	74 21                	je     10c433 <_Objects_Shrink_information+0x43><== NEVER TAKEN
    if ( information->inactive_per_block[ block ] ==                  
  10c412:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c415:	8b 72 30             	mov    0x30(%edx),%esi                
  10c418:	3b 0e                	cmp    (%esi),%ecx                    
  10c41a:	74 1f                	je     10c43b <_Objects_Shrink_information+0x4b><== NEVER TAKEN
  10c41c:	31 d2                	xor    %edx,%edx                      
  10c41e:	eb 0e                	jmp    10c42e <_Objects_Shrink_information+0x3e>
      information->inactive -= information->allocation_size;          
                                                                      
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  10c420:	01 cb                	add    %ecx,%ebx                      
  10c422:	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 ] ==                  
  10c429:	3b 0c 96             	cmp    (%esi,%edx,4),%ecx             
  10c42c:	74 12                	je     10c440 <_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++ ) {                   
  10c42e:	42                   	inc    %edx                           
  10c42f:	39 d0                	cmp    %edx,%eax                      
  10c431:	77 ed                	ja     10c420 <_Objects_Shrink_information+0x30>
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  }                                                                   
}                                                                     
  10c433:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c436:	5b                   	pop    %ebx                           
  10c437:	5e                   	pop    %esi                           
  10c438:	5f                   	pop    %edi                           
  10c439:	c9                   	leave                                 
  10c43a:	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 ] ==                  
  10c43b:	31 ff                	xor    %edi,%edi                      <== NOT EXECUTED
  10c43d:	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 );
  10c440:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c443:	8b 42 20             	mov    0x20(%edx),%eax                
  10c446:	89 7d e4             	mov    %edi,-0x1c(%ebp)               
  10c449:	eb 07                	jmp    10c452 <_Objects_Shrink_information+0x62>
  10c44b:	90                   	nop                                   
         if ((index >= index_base) &&                                 
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
         }                                                            
       }                                                              
       while ( the_object );                                          
  10c44c:	85 f6                	test   %esi,%esi                      
  10c44e:	74 2c                	je     10c47c <_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;      
  10c450:	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 );                
  10c452:	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;      
  10c456:	8b 30                	mov    (%eax),%esi                    
         if ((index >= index_base) &&                                 
  10c458:	39 da                	cmp    %ebx,%edx                      
  10c45a:	72 f0                	jb     10c44c <_Objects_Shrink_information+0x5c>
             (index < (index_base + information->allocation_size))) { 
  10c45c:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10c45f:	0f b7 4f 14          	movzwl 0x14(%edi),%ecx                
  10c463:	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) &&                                 
  10c466:	39 ca                	cmp    %ecx,%edx                      
  10c468:	73 e2                	jae    10c44c <_Objects_Shrink_information+0x5c>
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
  10c46a:	83 ec 0c             	sub    $0xc,%esp                      
  10c46d:	50                   	push   %eax                           
  10c46e:	e8 81 f0 ff ff       	call   10b4f4 <_Chain_Extract>        
  10c473:	83 c4 10             	add    $0x10,%esp                     
         }                                                            
       }                                                              
       while ( the_object );                                          
  10c476:	85 f6                	test   %esi,%esi                      
  10c478:	75 d6                	jne    10c450 <_Objects_Shrink_information+0x60>
  10c47a:	66 90                	xchg   %ax,%ax                        
  10c47c:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
      /*                                                              
       *  Free the memory and reset the structures in the object' information
       */                                                             
                                                                      
      _Workspace_Free( information->object_blocks[ block ] );         
  10c47f:	83 ec 0c             	sub    $0xc,%esp                      
  10c482:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c485:	8b 42 34             	mov    0x34(%edx),%eax                
  10c488:	ff 34 38             	pushl  (%eax,%edi,1)                  
  10c48b:	e8 e8 18 00 00       	call   10dd78 <_Workspace_Free>       
      information->object_blocks[ block ] = NULL;                     
  10c490:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10c493:	8b 42 34             	mov    0x34(%edx),%eax                
  10c496:	c7 04 38 00 00 00 00 	movl   $0x0,(%eax,%edi,1)             
      information->inactive_per_block[ block ] = 0;                   
  10c49d:	8b 42 30             	mov    0x30(%edx),%eax                
  10c4a0:	c7 04 38 00 00 00 00 	movl   $0x0,(%eax,%edi,1)             
                                                                      
      information->inactive -= information->allocation_size;          
  10c4a7:	8b 42 14             	mov    0x14(%edx),%eax                
  10c4aa:	66 29 42 2c          	sub    %ax,0x2c(%edx)                 
                                                                      
      return;                                                         
  10c4ae:	83 c4 10             	add    $0x10,%esp                     
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
  }                                                                   
}                                                                     
  10c4b1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c4b4:	5b                   	pop    %ebx                           
  10c4b5:	5e                   	pop    %esi                           
  10c4b6:	5f                   	pop    %edi                           
  10c4b7:	c9                   	leave                                 
  10c4b8:	c3                   	ret                                   
                                                                      

0010cabc <_POSIX_Absolute_timeout_to_ticks>: */ POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks( const struct timespec *abstime, Watchdog_Interval *ticks_out ) {
  10cabc:	55                   	push   %ebp                           
  10cabd:	89 e5                	mov    %esp,%ebp                      
  10cabf:	57                   	push   %edi                           
  10cac0:	56                   	push   %esi                           
  10cac1:	53                   	push   %ebx                           
  10cac2:	83 ec 38             	sub    $0x38,%esp                     
  10cac5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10cac8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
                                                                      
  /*                                                                  
   *  Make sure there is always a value returned.                     
   */                                                                 
  *ticks_out = 0;                                                     
  10cacb:	c7 06 00 00 00 00    	movl   $0x0,(%esi)                    
                                                                      
  /*                                                                  
   *  Is the absolute time even valid?                                
   */                                                                 
  if ( !_Timespec_Is_valid(abstime) )                                 
  10cad1:	53                   	push   %ebx                           
  10cad2:	e8 6d 3b 00 00       	call   110644 <_Timespec_Is_valid>    
  10cad7:	83 c4 10             	add    $0x10,%esp                     
  10cada:	84 c0                	test   %al,%al                        
  10cadc:	75 0a                	jne    10cae8 <_POSIX_Absolute_timeout_to_ticks+0x2c>
    return POSIX_ABSOLUTE_TIMEOUT_INVALID;                            
  10cade:	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;                         
}                                                                     
  10cae0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cae3:	5b                   	pop    %ebx                           
  10cae4:	5e                   	pop    %esi                           
  10cae5:	5f                   	pop    %edi                           
  10cae6:	c9                   	leave                                 
  10cae7:	c3                   	ret                                   
    return POSIX_ABSOLUTE_TIMEOUT_INVALID;                            
                                                                      
  /*                                                                  
   *  Is the absolute time in the past?                               
   */                                                                 
  _TOD_Get( ¤t_time );                                          
  10cae8:	83 ec 0c             	sub    $0xc,%esp                      
  10caeb:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10caee:	57                   	push   %edi                           
  10caef:	e8 94 1b 00 00       	call   10e688 <_TOD_Get>              
                                                                      
  if ( _Timespec_Less_than( abstime, ¤t_time ) )                
  10caf4:	5a                   	pop    %edx                           
  10caf5:	59                   	pop    %ecx                           
  10caf6:	57                   	push   %edi                           
  10caf7:	53                   	push   %ebx                           
  10caf8:	e8 6f 3b 00 00       	call   11066c <_Timespec_Less_than>   
  10cafd:	83 c4 10             	add    $0x10,%esp                     
  10cb00:	84 c0                	test   %al,%al                        
  10cb02:	74 10                	je     10cb14 <_POSIX_Absolute_timeout_to_ticks+0x58>
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
  10cb04:	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;                         
}                                                                     
  10cb09:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cb0c:	5b                   	pop    %ebx                           
  10cb0d:	5e                   	pop    %esi                           
  10cb0e:	5f                   	pop    %edi                           
  10cb0f:	c9                   	leave                                 
  10cb10:	c3                   	ret                                   
  10cb11:	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 );          
  10cb14:	50                   	push   %eax                           
  10cb15:	8d 45 d8             	lea    -0x28(%ebp),%eax               
  10cb18:	50                   	push   %eax                           
  10cb19:	53                   	push   %ebx                           
  10cb1a:	57                   	push   %edi                           
  10cb1b:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10cb1e:	e8 6d 3b 00 00       	call   110690 <_Timespec_Subtract>    
                                                                      
  /*                                                                  
   *  Internally the SuperCore uses ticks, so convert to them.        
   */                                                                 
  *ticks_out = _Timespec_To_ticks( &difference );                     
  10cb23:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10cb26:	89 04 24             	mov    %eax,(%esp)                    
  10cb29:	e8 a2 3b 00 00       	call   1106d0 <_Timespec_To_ticks>    
  10cb2e:	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 )                                                  
  10cb30:	83 c4 10             	add    $0x10,%esp                     
    return POSIX_ABSOLUTE_TIMEOUT_IS_NOW;                             
  10cb33:	83 f8 01             	cmp    $0x1,%eax                      
  10cb36:	19 c0                	sbb    %eax,%eax                      
  10cb38:	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;                         
}                                                                     
  10cb3b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cb3e:	5b                   	pop    %ebx                           
  10cb3f:	5e                   	pop    %esi                           
  10cb40:	5f                   	pop    %edi                           
  10cb41:	c9                   	leave                                 
  10cb42:	c3                   	ret                                   
                                                                      

0010b674 <_POSIX_Condition_variables_Get>: POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get ( pthread_cond_t *cond, Objects_Locations *location ) {
  10b674:	55                   	push   %ebp                           
  10b675:	89 e5                	mov    %esp,%ebp                      
  10b677:	56                   	push   %esi                           
  10b678:	53                   	push   %ebx                           
  10b679:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b67c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  int status;                                                         
                                                                      
  if ( !cond ) {                                                      
  10b67f:	85 db                	test   %ebx,%ebx                      
  10b681:	74 39                	je     10b6bc <_POSIX_Condition_variables_Get+0x48>
    *location = OBJECTS_ERROR;                                        
    return (POSIX_Condition_variables_Control *) 0;                   
  }                                                                   
                                                                      
  if ( *cond == PTHREAD_COND_INITIALIZER ) {                          
  10b683:	8b 03                	mov    (%ebx),%eax                    
  10b685:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10b688:	74 1a                	je     10b6a4 <_POSIX_Condition_variables_Get+0x30>
  }                                                                   
                                                                      
  /*                                                                  
   *  Now call Objects_Get()                                          
   */                                                                 
  return (POSIX_Condition_variables_Control *)_Objects_Get(           
  10b68a:	52                   	push   %edx                           
  10b68b:	56                   	push   %esi                           
  10b68c:	50                   	push   %eax                           
  10b68d:	68 80 a3 12 00       	push   $0x12a380                      
  10b692:	e8 8d 29 00 00       	call   10e024 <_Objects_Get>          
  10b697:	83 c4 10             	add    $0x10,%esp                     
    &_POSIX_Condition_variables_Information,                          
    (Objects_Id) *cond,                                               
    location                                                          
  );                                                                  
}                                                                     
  10b69a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b69d:	5b                   	pop    %ebx                           
  10b69e:	5e                   	pop    %esi                           
  10b69f:	c9                   	leave                                 
  10b6a0:	c3                   	ret                                   
  10b6a1:	8d 76 00             	lea    0x0(%esi),%esi                 
  if ( *cond == PTHREAD_COND_INITIALIZER ) {                          
    /*                                                                
     *  Do an "auto-create" here.                                     
     */                                                               
                                                                      
    status = pthread_cond_init( cond, 0 );                            
  10b6a4:	83 ec 08             	sub    $0x8,%esp                      
  10b6a7:	6a 00                	push   $0x0                           
  10b6a9:	53                   	push   %ebx                           
  10b6aa:	e8 19 00 00 00       	call   10b6c8 <pthread_cond_init>     
    if ( status ) {                                                   
  10b6af:	83 c4 10             	add    $0x10,%esp                     
  10b6b2:	85 c0                	test   %eax,%eax                      
  10b6b4:	75 06                	jne    10b6bc <_POSIX_Condition_variables_Get+0x48>
  10b6b6:	8b 03                	mov    (%ebx),%eax                    
  10b6b8:	eb d0                	jmp    10b68a <_POSIX_Condition_variables_Get+0x16>
  10b6ba:	66 90                	xchg   %ax,%ax                        
      *location = OBJECTS_ERROR;                                      
  10b6bc:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
      return (POSIX_Condition_variables_Control *) 0;                 
  10b6c2:	31 c0                	xor    %eax,%eax                      
  10b6c4:	eb d4                	jmp    10b69a <_POSIX_Condition_variables_Get+0x26>
                                                                      

0010b790 <_POSIX_Condition_variables_Signal_support>: int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) {
  10b790:	55                   	push   %ebp                           
  10b791:	89 e5                	mov    %esp,%ebp                      
  10b793:	57                   	push   %edi                           
  10b794:	56                   	push   %esi                           
  10b795:	53                   	push   %ebx                           
  10b796:	83 ec 24             	sub    $0x24,%esp                     
  10b799:	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 );       
  10b79c:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10b79f:	50                   	push   %eax                           
  10b7a0:	ff 75 08             	pushl  0x8(%ebp)                      
  10b7a3:	e8 cc fe ff ff       	call   10b674 <_POSIX_Condition_variables_Get>
  10b7a8:	89 c7                	mov    %eax,%edi                      
  switch ( location ) {                                               
  10b7aa:	83 c4 10             	add    $0x10,%esp                     
  10b7ad:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b7b0:	85 c0                	test   %eax,%eax                      
  10b7b2:	74 10                	je     10b7c4 <_POSIX_Condition_variables_Signal_support+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b7b4:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10b7b9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7bc:	5b                   	pop    %ebx                           
  10b7bd:	5e                   	pop    %esi                           
  10b7be:	5f                   	pop    %edi                           
  10b7bf:	c9                   	leave                                 
  10b7c0:	c3                   	ret                                   
  10b7c1:	8d 76 00             	lea    0x0(%esi),%esi                 
  10b7c4:	8d 77 18             	lea    0x18(%edi),%esi                
  10b7c7:	eb 0b                	jmp    10b7d4 <_POSIX_Condition_variables_Signal_support+0x44>
  10b7c9:	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 );                         
  10b7cc:	84 db                	test   %bl,%bl                        
  10b7ce:	74 20                	je     10b7f0 <_POSIX_Condition_variables_Signal_support+0x60>
  10b7d0:	85 c0                	test   %eax,%eax                      
  10b7d2:	74 1c                	je     10b7f0 <_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 );  
  10b7d4:	83 ec 0c             	sub    $0xc,%esp                      
  10b7d7:	56                   	push   %esi                           
  10b7d8:	e8 d7 36 00 00       	call   10eeb4 <_Thread_queue_Dequeue> 
        if ( !the_thread )                                            
  10b7dd:	83 c4 10             	add    $0x10,%esp                     
  10b7e0:	85 c0                	test   %eax,%eax                      
  10b7e2:	75 e8                	jne    10b7cc <_POSIX_Condition_variables_Signal_support+0x3c>
          the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;       
  10b7e4:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)                
      } while ( is_broadcast && the_thread );                         
  10b7eb:	84 db                	test   %bl,%bl                        
  10b7ed:	75 e1                	jne    10b7d0 <_POSIX_Condition_variables_Signal_support+0x40>
  10b7ef:	90                   	nop                                   
                                                                      
      _Thread_Enable_dispatch();                                      
  10b7f0:	e8 3f 33 00 00       	call   10eb34 <_Thread_Enable_dispatch>
                                                                      
      return 0;                                                       
  10b7f5:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b7f7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7fa:	5b                   	pop    %ebx                           
  10b7fb:	5e                   	pop    %esi                           
  10b7fc:	5f                   	pop    %edi                           
  10b7fd:	c9                   	leave                                 
  10b7fe:	c3                   	ret                                   
                                                                      

0010b858 <_POSIX_Condition_variables_Wait_support>: pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) {
  10b858:	55                   	push   %ebp                           
  10b859:	89 e5                	mov    %esp,%ebp                      
  10b85b:	57                   	push   %edi                           
  10b85c:	56                   	push   %esi                           
  10b85d:	53                   	push   %ebx                           
  10b85e:	83 ec 34             	sub    $0x34,%esp                     
  10b861:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10b864:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b867:	8a 45 14             	mov    0x14(%ebp),%al                 
  10b86a:	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 ) ) {                      
  10b86d:	8d 75 e4             	lea    -0x1c(%ebp),%esi               
  10b870:	56                   	push   %esi                           
  10b871:	53                   	push   %ebx                           
  10b872:	e8 59 01 00 00       	call   10b9d0 <_POSIX_Mutex_Get>      
  10b877:	83 c4 10             	add    $0x10,%esp                     
  10b87a:	85 c0                	test   %eax,%eax                      
  10b87c:	74 21                	je     10b89f <_POSIX_Condition_variables_Wait_support+0x47>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10b87e:	a1 cc 9e 12 00       	mov    0x129ecc,%eax                  
  10b883:	48                   	dec    %eax                           
  10b884:	a3 cc 9e 12 00       	mov    %eax,0x129ecc                  
     return EINVAL;                                                   
  }                                                                   
                                                                      
  _Thread_Unnest_dispatch();                                          
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  10b889:	83 ec 08             	sub    $0x8,%esp                      
  10b88c:	56                   	push   %esi                           
  10b88d:	57                   	push   %edi                           
  10b88e:	e8 e1 fd ff ff       	call   10b674 <_POSIX_Condition_variables_Get>
  10b893:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  10b895:	83 c4 10             	add    $0x10,%esp                     
  10b898:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b89b:	85 d2                	test   %edx,%edx                      
  10b89d:	74 11                	je     10b8b0 <_POSIX_Condition_variables_Wait_support+0x58>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b89f:	be 16 00 00 00       	mov    $0x16,%esi                     
}                                                                     
  10b8a4:	89 f0                	mov    %esi,%eax                      
  10b8a6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b8a9:	5b                   	pop    %ebx                           
  10b8aa:	5e                   	pop    %esi                           
  10b8ab:	5f                   	pop    %edi                           
  10b8ac:	c9                   	leave                                 
  10b8ad:	c3                   	ret                                   
  10b8ae:	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 ) ) {       
  10b8b0:	8b 40 14             	mov    0x14(%eax),%eax                
  10b8b3:	85 c0                	test   %eax,%eax                      
  10b8b5:	74 19                	je     10b8d0 <_POSIX_Condition_variables_Wait_support+0x78>
  10b8b7:	3b 03                	cmp    (%ebx),%eax                    
  10b8b9:	74 15                	je     10b8d0 <_POSIX_Condition_variables_Wait_support+0x78>
        _Thread_Enable_dispatch();                                    
  10b8bb:	e8 74 32 00 00       	call   10eb34 <_Thread_Enable_dispatch>
        return EINVAL;                                                
  10b8c0:	be 16 00 00 00       	mov    $0x16,%esi                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b8c5:	89 f0                	mov    %esi,%eax                      
  10b8c7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b8ca:	5b                   	pop    %ebx                           
  10b8cb:	5e                   	pop    %esi                           
  10b8cc:	5f                   	pop    %edi                           
  10b8cd:	c9                   	leave                                 
  10b8ce:	c3                   	ret                                   
  10b8cf:	90                   	nop                                   
      if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) {       
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      (void) pthread_mutex_unlock( mutex );                           
  10b8d0:	83 ec 0c             	sub    $0xc,%esp                      
  10b8d3:	53                   	push   %ebx                           
  10b8d4:	e8 73 03 00 00       	call   10bc4c <pthread_mutex_unlock>  
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
*/                                                                    
                                                                      
      if ( !already_timedout ) {                                      
  10b8d9:	83 c4 10             	add    $0x10,%esp                     
  10b8dc:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)               
  10b8e0:	75 4e                	jne    10b930 <_POSIX_Condition_variables_Wait_support+0xd8>
        the_cond->Mutex = *mutex;                                     
  10b8e2:	8b 03                	mov    (%ebx),%eax                    
  10b8e4:	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;
  10b8e7:	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;                      
  10b8ee:	a1 78 a4 12 00       	mov    0x12a478,%eax                  
  10b8f3:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
        _Thread_Executing->Wait.queue       = &the_cond->Wait_queue;  
  10b8fa:	83 c6 18             	add    $0x18,%esi                     
  10b8fd:	89 70 44             	mov    %esi,0x44(%eax)                
        _Thread_Executing->Wait.id          = *cond;                  
  10b900:	8b 17                	mov    (%edi),%edx                    
  10b902:	89 50 20             	mov    %edx,0x20(%eax)                
                                                                      
        _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout );      
  10b905:	50                   	push   %eax                           
  10b906:	68 58 f3 10 00       	push   $0x10f358                      
  10b90b:	ff 75 10             	pushl  0x10(%ebp)                     
  10b90e:	56                   	push   %esi                           
  10b90f:	e8 c8 36 00 00       	call   10efdc <_Thread_queue_Enqueue_with_handler>
                                                                      
        _Thread_Enable_dispatch();                                    
  10b914:	e8 1b 32 00 00       	call   10eb34 <_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;                 
  10b919:	a1 78 a4 12 00       	mov    0x12a478,%eax                  
  10b91e:	8b 70 34             	mov    0x34(%eax),%esi                
        if ( status == EINTR )                                        
  10b921:	83 c4 10             	add    $0x10,%esp                     
  10b924:	83 fe 04             	cmp    $0x4,%esi                      
  10b927:	75 11                	jne    10b93a <_POSIX_Condition_variables_Wait_support+0xe2>
          status = 0;                                                 
  10b929:	31 f6                	xor    %esi,%esi                      
  10b92b:	eb 0d                	jmp    10b93a <_POSIX_Condition_variables_Wait_support+0xe2>
  10b92d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      } else {                                                        
        _Thread_Enable_dispatch();                                    
  10b930:	e8 ff 31 00 00       	call   10eb34 <_Thread_Enable_dispatch>
        status = ETIMEDOUT;                                           
  10b935:	be 74 00 00 00       	mov    $0x74,%esi                     
                                                                      
      /*                                                              
       *  When we get here the dispatch disable level is 0.           
       */                                                             
                                                                      
      mutex_status = pthread_mutex_lock( mutex );                     
  10b93a:	83 ec 0c             	sub    $0xc,%esp                      
  10b93d:	53                   	push   %ebx                           
  10b93e:	e8 81 02 00 00       	call   10bbc4 <pthread_mutex_lock>    
      if ( mutex_status )                                             
  10b943:	83 c4 10             	add    $0x10,%esp                     
  10b946:	85 c0                	test   %eax,%eax                      
  10b948:	0f 85 51 ff ff ff    	jne    10b89f <_POSIX_Condition_variables_Wait_support+0x47>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b94e:	89 f0                	mov    %esi,%eax                      
  10b950:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b953:	5b                   	pop    %ebx                           
  10b954:	5e                   	pop    %esi                           
  10b955:	5f                   	pop    %edi                           
  10b956:	c9                   	leave                                 
  10b957:	c3                   	ret                                   
                                                                      

00115a48 <_POSIX_Message_queue_Create_support>: const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) {
  115a48:	55                   	push   %ebp                           
  115a49:	89 e5                	mov    %esp,%ebp                      
  115a4b:	57                   	push   %edi                           
  115a4c:	56                   	push   %esi                           
  115a4d:	53                   	push   %ebx                           
  115a4e:	83 ec 24             	sub    $0x24,%esp                     
  115a51:	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 );                                  
  115a54:	68 ff 00 00 00       	push   $0xff                          
  115a59:	ff 75 08             	pushl  0x8(%ebp)                      
  115a5c:	e8 37 4e 00 00       	call   11a898 <strnlen>               
  115a61:	89 c6                	mov    %eax,%esi                      
  115a63:	a1 8c fa 12 00       	mov    0x12fa8c,%eax                  
  115a68:	40                   	inc    %eax                           
  115a69:	a3 8c fa 12 00       	mov    %eax,0x12fa8c                  
   *  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 ) {                                           
  115a6e:	83 c4 10             	add    $0x10,%esp                     
  115a71:	85 db                	test   %ebx,%ebx                      
  115a73:	0f 84 b7 00 00 00    	je     115b30 <_POSIX_Message_queue_Create_support+0xe8>
    attr.mq_maxmsg  = 10;                                             
    attr.mq_msgsize = 16;                                             
  } else {                                                            
    if ( attr_ptr->mq_maxmsg <= 0 ){                                  
  115a79:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  115a7c:	85 ff                	test   %edi,%edi                      
  115a7e:	0f 8e f0 00 00 00    	jle    115b74 <_POSIX_Message_queue_Create_support+0x12c>
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    }                                                                 
                                                                      
    if ( attr_ptr->mq_msgsize <= 0 ){                                 
  115a84:	8b 5b 08             	mov    0x8(%ebx),%ebx                 
  115a87:	89 5d e4             	mov    %ebx,-0x1c(%ebp)               
  115a8a:	85 db                	test   %ebx,%ebx                      
  115a8c:	0f 8e e2 00 00 00    	jle    115b74 <_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 );           
  115a92:	83 ec 0c             	sub    $0xc,%esp                      
  115a95:	68 20 fe 12 00       	push   $0x12fe20                      
  115a9a:	e8 fd c1 ff ff       	call   111c9c <_Objects_Allocate>     
  115a9f:	89 c3                	mov    %eax,%ebx                      
                                                                      
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
  115aa1:	83 c4 10             	add    $0x10,%esp                     
  115aa4:	85 c0                	test   %eax,%eax                      
  115aa6:	0f 84 0a 01 00 00    	je     115bb6 <_POSIX_Message_queue_Create_support+0x16e>
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
                                                                      
  the_mq->process_shared  = pshared;                                  
  115aac:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  115aaf:	89 43 10             	mov    %eax,0x10(%ebx)                
  the_mq->named = true;                                               
  115ab2:	c6 43 14 01          	movb   $0x1,0x14(%ebx)                
  the_mq->open_count = 1;                                             
  115ab6:	c7 43 18 01 00 00 00 	movl   $0x1,0x18(%ebx)                
  the_mq->linked = true;                                              
  115abd:	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);                                    
  115ac1:	8d 56 01             	lea    0x1(%esi),%edx                 
  115ac4:	83 ec 0c             	sub    $0xc,%esp                      
  115ac7:	52                   	push   %edx                           
  115ac8:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  115acb:	e8 c8 e2 ff ff       	call   113d98 <_Workspace_Allocate>   
  115ad0:	89 c6                	mov    %eax,%esi                      
  if (!name) {                                                        
  115ad2:	83 c4 10             	add    $0x10,%esp                     
  115ad5:	85 c0                	test   %eax,%eax                      
  115ad7:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  115ada:	0f 84 ab 00 00 00    	je     115b8b <_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 );                                     
  115ae0:	50                   	push   %eax                           
  115ae1:	52                   	push   %edx                           
  115ae2:	ff 75 08             	pushl  0x8(%ebp)                      
  115ae5:	56                   	push   %esi                           
  115ae6:	e8 31 4d 00 00       	call   11a81c <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;      
  115aeb:	c7 43 5c 00 00 00 00 	movl   $0x0,0x5c(%ebx)                
                                                                      
  if ( !_CORE_message_queue_Initialize(                               
  115af2:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  115af5:	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;                    
  115af6:	8d 43 5c             	lea    0x5c(%ebx),%eax                
  the_mq_attr->discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;      
                                                                      
  if ( !_CORE_message_queue_Initialize(                               
  115af9:	50                   	push   %eax                           
  115afa:	8d 43 1c             	lea    0x1c(%ebx),%eax                
  115afd:	50                   	push   %eax                           
  115afe:	e8 a9 11 00 00       	call   116cac <_CORE_message_queue_Initialize>
  115b03:	83 c4 20             	add    $0x20,%esp                     
  115b06:	84 c0                	test   %al,%al                        
  115b08:	74 3a                	je     115b44 <_POSIX_Message_queue_Create_support+0xfc>
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  115b0a:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  115b0e:	a1 3c fe 12 00       	mov    0x12fe3c,%eax                  
  115b13:	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;                                   
  115b16:	89 73 0c             	mov    %esi,0xc(%ebx)                 
    &_POSIX_Message_queue_Information,                                
    &the_mq->Object,                                                  
    name                                                              
  );                                                                  
                                                                      
  *message_queue = the_mq;                                            
  115b19:	8b 45 14             	mov    0x14(%ebp),%eax                
  115b1c:	89 18                	mov    %ebx,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  115b1e:	e8 bd d1 ff ff       	call   112ce0 <_Thread_Enable_dispatch>
  return 0;                                                           
  115b23:	31 c0                	xor    %eax,%eax                      
}                                                                     
  115b25:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115b28:	5b                   	pop    %ebx                           
  115b29:	5e                   	pop    %esi                           
  115b2a:	5f                   	pop    %edi                           
  115b2b:	c9                   	leave                                 
  115b2c:	c3                   	ret                                   
  115b2d:	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;                                             
  115b30:	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;                                             
  115b37:	bf 0a 00 00 00       	mov    $0xa,%edi                      
  115b3c:	e9 51 ff ff ff       	jmp    115a92 <_POSIX_Message_queue_Create_support+0x4a>
  115b41:	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 );
  115b44:	83 ec 08             	sub    $0x8,%esp                      
  115b47:	53                   	push   %ebx                           
  115b48:	68 20 fe 12 00       	push   $0x12fe20                      
  115b4d:	e8 be c4 ff ff       	call   112010 <_Objects_Free>         
           attr.mq_maxmsg,                                            
           attr.mq_msgsize                                            
      ) ) {                                                           
                                                                      
    _POSIX_Message_queue_Free( the_mq );                              
    _Workspace_Free(name);                                            
  115b52:	89 34 24             	mov    %esi,(%esp)                    
  115b55:	e8 5a e2 ff ff       	call   113db4 <_Workspace_Free>       
    _Thread_Enable_dispatch();                                        
  115b5a:	e8 81 d1 ff ff       	call   112ce0 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  115b5f:	e8 b8 35 00 00       	call   11911c <__errno>               
  115b64:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)                   
  115b6a:	83 c4 10             	add    $0x10,%esp                     
  115b6d:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  115b72:	eb b1                	jmp    115b25 <_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();                                      
  115b74:	e8 67 d1 ff ff       	call   112ce0 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  115b79:	e8 9e 35 00 00       	call   11911c <__errno>               
  115b7e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  115b84:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  115b89:	eb 9a                	jmp    115b25 <_POSIX_Message_queue_Create_support+0xdd>
  115b8b:	83 ec 08             	sub    $0x8,%esp                      
  115b8e:	53                   	push   %ebx                           
  115b8f:	68 20 fe 12 00       	push   $0x12fe20                      
  115b94:	e8 77 c4 ff ff       	call   112010 <_Objects_Free>         
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
  if (!name) {                                                        
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
  115b99:	e8 42 d1 ff ff       	call   112ce0 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
  115b9e:	e8 79 35 00 00       	call   11911c <__errno>               
  115ba3:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)                    
  115ba9:	83 c4 10             	add    $0x10,%esp                     
  115bac:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  115bb1:	e9 6f ff ff ff       	jmp    115b25 <_POSIX_Message_queue_Create_support+0xdd>
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
    _Thread_Enable_dispatch();                                        
  115bb6:	e8 25 d1 ff ff       	call   112ce0 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  115bbb:	e8 5c 35 00 00       	call   11911c <__errno>               
  115bc0:	c7 00 17 00 00 00    	movl   $0x17,(%eax)                   
  115bc6:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  115bcb:	e9 55 ff ff ff       	jmp    115b25 <_POSIX_Message_queue_Create_support+0xdd>
                                                                      

00115bd0 <_POSIX_Message_queue_Name_to_id>: */ int _POSIX_Message_queue_Name_to_id( const char *name, Objects_Id *id ) {
  115bd0:	55                   	push   %ebp                           
  115bd1:	89 e5                	mov    %esp,%ebp                      
  115bd3:	53                   	push   %ebx                           
  115bd4:	83 ec 14             	sub    $0x14,%esp                     
  115bd7:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
  115bda:	85 db                	test   %ebx,%ebx                      
  115bdc:	74 05                	je     115be3 <_POSIX_Message_queue_Name_to_id+0x13>
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
  115bde:	80 3b 00             	cmpb   $0x0,(%ebx)                    
  115be1:	75 0d                	jne    115bf0 <_POSIX_Message_queue_Name_to_id+0x20>
    return EINVAL;                                                    
  115be3:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  115be8:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115beb:	c9                   	leave                                 
  115bec:	c3                   	ret                                   
  115bed:	8d 76 00             	lea    0x0(%esi),%esi                 
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
  115bf0:	83 ec 08             	sub    $0x8,%esp                      
  115bf3:	68 ff 00 00 00       	push   $0xff                          
  115bf8:	53                   	push   %ebx                           
  115bf9:	e8 9a 4c 00 00       	call   11a898 <strnlen>               
  115bfe:	83 c4 10             	add    $0x10,%esp                     
  115c01:	3d fe 00 00 00       	cmp    $0xfe,%eax                     
  115c06:	76 0c                	jbe    115c14 <_POSIX_Message_queue_Name_to_id+0x44>
    return ENAMETOOLONG;                                              
  115c08:	b8 5b 00 00 00       	mov    $0x5b,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  115c0d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c10:	c9                   	leave                                 
  115c11:	c3                   	ret                                   
  115c12:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
    return ENAMETOOLONG;                                              
                                                                      
  status = _Objects_Name_to_id_string(                                
  115c14:	50                   	push   %eax                           
  115c15:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115c18:	50                   	push   %eax                           
  115c19:	53                   	push   %ebx                           
  115c1a:	68 20 fe 12 00       	push   $0x12fe20                      
  115c1f:	e8 a8 16 00 00       	call   1172cc <_Objects_Name_to_id_string>
    &_POSIX_Message_queue_Information,                                
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
  115c24:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  115c27:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  115c2a:	89 0a                	mov    %ecx,(%edx)                    
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
  115c2c:	83 c4 10             	add    $0x10,%esp                     
    return 0;                                                         
  115c2f:	83 f8 01             	cmp    $0x1,%eax                      
  115c32:	19 c0                	sbb    %eax,%eax                      
  115c34:	f7 d0                	not    %eax                           
  115c36:	83 e0 02             	and    $0x2,%eax                      
                                                                      
  return ENOENT;                                                      
}                                                                     
  115c39:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c3c:	c9                   	leave                                 
  115c3d:	c3                   	ret                                   
                                                                      

0010f290 <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) {
  10f290:	55                   	push   %ebp                           
  10f291:	89 e5                	mov    %esp,%ebp                      
  10f293:	53                   	push   %ebx                           
  10f294:	83 ec 28             	sub    $0x28,%esp                     
  10f297:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10f29a:	8a 45 18             	mov    0x18(%ebp),%al                 
  10f29d:	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 );        
  10f2a0:	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(             
  10f2a3:	50                   	push   %eax                           
  10f2a4:	53                   	push   %ebx                           
  10f2a5:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f2aa:	e8 a1 2e 00 00       	call   112150 <_Objects_Get>          
  switch ( location ) {                                               
  10f2af:	83 c4 10             	add    $0x10,%esp                     
  10f2b2:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10f2b5:	85 d2                	test   %edx,%edx                      
  10f2b7:	74 17                	je     10f2d0 <_POSIX_Message_queue_Receive_support+0x40>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
  10f2b9:	e8 5e 9e 00 00       	call   11911c <__errno>               
  10f2be:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10f2c4:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10f2c9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10f2cc:	c9                   	leave                                 
  10f2cd:	c3                   	ret                                   
  10f2ce:	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 ) {             
  10f2d0:	8b 50 14             	mov    0x14(%eax),%edx                
  10f2d3:	89 d1                	mov    %edx,%ecx                      
  10f2d5:	83 e1 03             	and    $0x3,%ecx                      
  10f2d8:	49                   	dec    %ecx                           
  10f2d9:	0f 84 af 00 00 00    	je     10f38e <_POSIX_Message_queue_Receive_support+0xfe>
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
  10f2df:	8b 40 10             	mov    0x10(%eax),%eax                
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
  10f2e2:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10f2e5:	39 48 68             	cmp    %ecx,0x68(%eax)                
  10f2e8:	77 62                	ja     10f34c <_POSIX_Message_queue_Receive_support+0xbc>
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
  10f2ea:	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 )                                                     
  10f2f1:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)               
  10f2f5:	75 45                	jne    10f33c <_POSIX_Message_queue_Receive_support+0xac><== ALWAYS TAKEN
  10f2f7:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
  10f2f9:	83 ec 08             	sub    $0x8,%esp                      
  10f2fc:	ff 75 1c             	pushl  0x1c(%ebp)                     
  10f2ff:	52                   	push   %edx                           
  10f300:	8d 55 f0             	lea    -0x10(%ebp),%edx               
  10f303:	52                   	push   %edx                           
  10f304:	ff 75 0c             	pushl  0xc(%ebp)                      
  10f307:	53                   	push   %ebx                           
  10f308:	83 c0 1c             	add    $0x1c,%eax                     
  10f30b:	50                   	push   %eax                           
  10f30c:	e8 ef 1e 00 00       	call   111200 <_CORE_message_queue_Seize>
        &length_out,                                                  
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10f311:	83 c4 20             	add    $0x20,%esp                     
  10f314:	e8 c7 39 00 00       	call   112ce0 <_Thread_Enable_dispatch>
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
  10f319:	8b 15 38 00 13 00    	mov    0x130038,%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);                    
  10f31f:	8b 42 24             	mov    0x24(%edx),%eax                
  10f322:	85 c0                	test   %eax,%eax                      
  10f324:	78 22                	js     10f348 <_POSIX_Message_queue_Receive_support+0xb8>
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
  10f326:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10f329:	89 01                	mov    %eax,(%ecx)                    
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
  10f32b:	8b 42 34             	mov    0x34(%edx),%eax                
  10f32e:	85 c0                	test   %eax,%eax                      
  10f330:	75 36                	jne    10f368 <_POSIX_Message_queue_Receive_support+0xd8>
        return length_out;                                            
  10f332:	8b 45 f0             	mov    -0x10(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
  10f335:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10f338:	c9                   	leave                                 
  10f339:	c3                   	ret                                   
  10f33a:	66 90                	xchg   %ax,%ax                        
      length_out = -1;                                                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10f33c:	80 e6 40             	and    $0x40,%dh                      
  10f33f:	0f 94 c2             	sete   %dl                            
  10f342:	0f b6 d2             	movzbl %dl,%edx                       
  10f345:	eb b2                	jmp    10f2f9 <_POSIX_Message_queue_Receive_support+0x69>
  10f347:	90                   	nop                                   
  10f348:	f7 d8                	neg    %eax                           
  10f34a:	eb da                	jmp    10f326 <_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();                                    
  10f34c:	e8 8f 39 00 00       	call   112ce0 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EMSGSIZE );             
  10f351:	e8 c6 9d 00 00       	call   11911c <__errno>               
  10f356:	c7 00 7a 00 00 00    	movl   $0x7a,(%eax)                   
  10f35c:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f361:	e9 63 ff ff ff       	jmp    10f2c9 <_POSIX_Message_queue_Receive_support+0x39>
  10f366:	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(                           
  10f368:	e8 af 9d 00 00       	call   11911c <__errno>               
  10f36d:	89 c3                	mov    %eax,%ebx                      
  10f36f:	83 ec 0c             	sub    $0xc,%esp                      
  10f372:	a1 38 00 13 00       	mov    0x130038,%eax                  
  10f377:	ff 70 34             	pushl  0x34(%eax)                     
  10f37a:	e8 29 02 00 00       	call   10f5a8 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
  10f37f:	89 03                	mov    %eax,(%ebx)                    
  10f381:	83 c4 10             	add    $0x10,%esp                     
  10f384:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f389:	e9 3b ff ff ff       	jmp    10f2c9 <_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();                                    
  10f38e:	e8 4d 39 00 00       	call   112ce0 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EBADF );                
  10f393:	e8 84 9d 00 00       	call   11911c <__errno>               
  10f398:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10f39e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f3a3:	e9 21 ff ff ff       	jmp    10f2c9 <_POSIX_Message_queue_Receive_support+0x39>
                                                                      

0010f3c8 <_POSIX_Message_queue_Send_support>: size_t msg_len, uint32_t msg_prio, bool wait, Watchdog_Interval timeout ) {
  10f3c8:	55                   	push   %ebp                           
  10f3c9:	89 e5                	mov    %esp,%ebp                      
  10f3cb:	56                   	push   %esi                           
  10f3cc:	53                   	push   %ebx                           
  10f3cd:	83 ec 20             	sub    $0x20,%esp                     
  10f3d0:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10f3d3:	8b 5d 14             	mov    0x14(%ebp),%ebx                
  10f3d6:	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 )                                       
  10f3d9:	83 fb 20             	cmp    $0x20,%ebx                     
  10f3dc:	0f 87 92 00 00 00    	ja     10f474 <_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(             
  10f3e2:	51                   	push   %ecx                           
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  10f3e3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10f3e6:	50                   	push   %eax                           
  10f3e7:	56                   	push   %esi                           
  10f3e8:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f3ed:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10f3f0:	e8 5b 2d 00 00       	call   112150 <_Objects_Get>          
  switch ( location ) {                                               
  10f3f5:	83 c4 10             	add    $0x10,%esp                     
  10f3f8:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10f3fb:	85 d2                	test   %edx,%edx                      
  10f3fd:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10f400:	75 5e                	jne    10f460 <_POSIX_Message_queue_Send_support+0x98>
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) {             
  10f402:	8b 48 14             	mov    0x14(%eax),%ecx                
  10f405:	f6 c1 03             	test   $0x3,%cl                       
  10f408:	74 7e                	je     10f488 <_POSIX_Message_queue_Send_support+0xc0>
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
  10f40a:	8b 40 10             	mov    0x10(%eax),%eax                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10f40d:	84 d2                	test   %dl,%dl                        
  10f40f:	75 37                	jne    10f448 <_POSIX_Message_queue_Send_support+0x80>
  10f411:	31 d2                	xor    %edx,%edx                      
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      msg_status = _CORE_message_queue_Submit(                        
  10f413:	ff 75 1c             	pushl  0x1c(%ebp)                     
  10f416:	52                   	push   %edx                           
                                                                      
RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
  unsigned int priority                                               
)                                                                     
{                                                                     
  return priority * -1;                                               
  10f417:	f7 db                	neg    %ebx                           
  10f419:	53                   	push   %ebx                           
  10f41a:	6a 00                	push   $0x0                           
  10f41c:	56                   	push   %esi                           
  10f41d:	ff 75 10             	pushl  0x10(%ebp)                     
  10f420:	ff 75 0c             	pushl  0xc(%ebp)                      
  10f423:	83 c0 1c             	add    $0x1c,%eax                     
  10f426:	50                   	push   %eax                           
  10f427:	e8 00 1f 00 00       	call   11132c <_CORE_message_queue_Submit>
  10f42c:	89 c3                	mov    %eax,%ebx                      
        _POSIX_Message_queue_Priority_to_core( msg_prio ),            
        do_wait,                                                      
        timeout    /* no timeout */                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10f42e:	83 c4 20             	add    $0x20,%esp                     
  10f431:	e8 aa 38 00 00       	call   112ce0 <_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 ) 
  10f436:	83 fb 07             	cmp    $0x7,%ebx                      
  10f439:	74 19                	je     10f454 <_POSIX_Message_queue_Send_support+0x8c>
        msg_status = _Thread_Executing->Wait.return_code;             
                                                                      
      if ( !msg_status )                                              
  10f43b:	85 db                	test   %ebx,%ebx                      
  10f43d:	75 61                	jne    10f4a0 <_POSIX_Message_queue_Send_support+0xd8>
        return msg_status;                                            
  10f43f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
  10f441:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10f444:	5b                   	pop    %ebx                           
  10f445:	5e                   	pop    %esi                           
  10f446:	c9                   	leave                                 
  10f447:	c3                   	ret                                   
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
  10f448:	31 d2                	xor    %edx,%edx                      
  10f44a:	f6 c5 40             	test   $0x40,%ch                      
  10f44d:	0f 94 c2             	sete   %dl                            
  10f450:	eb c1                	jmp    10f413 <_POSIX_Message_queue_Send_support+0x4b>
  10f452:	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;             
  10f454:	a1 38 00 13 00       	mov    0x130038,%eax                  
  10f459:	8b 58 34             	mov    0x34(%eax),%ebx                
  10f45c:	eb dd                	jmp    10f43b <_POSIX_Message_queue_Send_support+0x73>
  10f45e:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
  10f460:	e8 b7 9c 00 00       	call   11911c <__errno>               
  10f465:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10f46b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f470:	eb cf                	jmp    10f441 <_POSIX_Message_queue_Send_support+0x79>
  10f472:	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 );                   
  10f474:	e8 a3 9c 00 00       	call   11911c <__errno>               
  10f479:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10f47f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f484:	eb bb                	jmp    10f441 <_POSIX_Message_queue_Send_support+0x79>
  10f486:	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();                                    
  10f488:	e8 53 38 00 00       	call   112ce0 <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EBADF );                
  10f48d:	e8 8a 9c 00 00       	call   11911c <__errno>               
  10f492:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10f498:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f49d:	eb a2                	jmp    10f441 <_POSIX_Message_queue_Send_support+0x79>
  10f49f:	90                   	nop                                   
        msg_status = _Thread_Executing->Wait.return_code;             
                                                                      
      if ( !msg_status )                                              
        return msg_status;                                            
                                                                      
      rtems_set_errno_and_return_minus_one(                           
  10f4a0:	e8 77 9c 00 00       	call   11911c <__errno>               
  10f4a5:	89 c6                	mov    %eax,%esi                      
  10f4a7:	83 ec 0c             	sub    $0xc,%esp                      
  10f4aa:	53                   	push   %ebx                           
  10f4ab:	e8 f8 00 00 00       	call   10f5a8 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
  10f4b0:	89 06                	mov    %eax,(%esi)                    
  10f4b2:	83 c4 10             	add    $0x10,%esp                     
  10f4b5:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f4ba:	eb 85                	jmp    10f441 <_POSIX_Message_queue_Send_support+0x79>
                                                                      

0010c68c <_POSIX_Mutex_Get>: POSIX_Mutex_Control *_POSIX_Mutex_Get ( pthread_mutex_t *mutex, Objects_Locations *location ) {
  10c68c:	55                   	push   %ebp                           
  10c68d:	89 e5                	mov    %esp,%ebp                      
  10c68f:	56                   	push   %esi                           
  10c690:	53                   	push   %ebx                           
  10c691:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c694:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
  10c697:	85 db                	test   %ebx,%ebx                      
  10c699:	74 39                	je     10c6d4 <_POSIX_Mutex_Get+0x48> 
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10c69b:	8b 03                	mov    (%ebx),%eax                    
  10c69d:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10c6a0:	74 1a                	je     10c6bc <_POSIX_Mutex_Get+0x30> 
                                                                      
  return (POSIX_Mutex_Control *)                                      
    _Objects_Get( &_POSIX_Mutex_Information, (Objects_Id) *mutex, location );
  10c6a2:	52                   	push   %edx                           
  10c6a3:	56                   	push   %esi                           
  10c6a4:	50                   	push   %eax                           
  10c6a5:	68 60 ca 12 00       	push   $0x12ca60                      
  10c6aa:	e8 f1 29 00 00       	call   10f0a0 <_Objects_Get>          
{                                                                     
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
                                                                      
  return (POSIX_Mutex_Control *)                                      
  10c6af:	83 c4 10             	add    $0x10,%esp                     
    _Objects_Get( &_POSIX_Mutex_Information, (Objects_Id) *mutex, location );
}                                                                     
  10c6b2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c6b5:	5b                   	pop    %ebx                           
  10c6b6:	5e                   	pop    %esi                           
  10c6b7:	c9                   	leave                                 
  10c6b8:	c3                   	ret                                   
  10c6b9:	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 );  
  10c6bc:	83 ec 08             	sub    $0x8,%esp                      
  10c6bf:	6a 00                	push   $0x0                           
  10c6c1:	53                   	push   %ebx                           
  10c6c2:	e8 b9 00 00 00       	call   10c780 <pthread_mutex_init>    
  10c6c7:	83 c4 10             	add    $0x10,%esp                     
  10c6ca:	85 c0                	test   %eax,%eax                      
  10c6cc:	75 06                	jne    10c6d4 <_POSIX_Mutex_Get+0x48> 
  10c6ce:	8b 03                	mov    (%ebx),%eax                    
  10c6d0:	eb d0                	jmp    10c6a2 <_POSIX_Mutex_Get+0x16> 
  10c6d2:	66 90                	xchg   %ax,%ax                        
  10c6d4:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
  10c6da:	31 c0                	xor    %eax,%eax                      
  10c6dc:	eb d4                	jmp    10c6b2 <_POSIX_Mutex_Get+0x26> 
                                                                      

0010c6e0 <_POSIX_Mutex_Get_interrupt_disable>: POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable ( pthread_mutex_t *mutex, Objects_Locations *location, ISR_Level *level ) {
  10c6e0:	55                   	push   %ebp                           
  10c6e1:	89 e5                	mov    %esp,%ebp                      
  10c6e3:	56                   	push   %esi                           
  10c6e4:	53                   	push   %ebx                           
  10c6e5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c6e8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
  10c6eb:	85 db                	test   %ebx,%ebx                      
  10c6ed:	74 39                	je     10c728 <_POSIX_Mutex_Get_interrupt_disable+0x48>
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10c6ef:	8b 03                	mov    (%ebx),%eax                    
  10c6f1:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10c6f4:	74 1a                	je     10c710 <_POSIX_Mutex_Get_interrupt_disable+0x30>
                                                                      
  return (POSIX_Mutex_Control *) _Objects_Get_isr_disable(            
  10c6f6:	ff 75 10             	pushl  0x10(%ebp)                     
  10c6f9:	56                   	push   %esi                           
  10c6fa:	50                   	push   %eax                           
  10c6fb:	68 60 ca 12 00       	push   $0x12ca60                      
  10c700:	e8 43 29 00 00       	call   10f048 <_Objects_Get_isr_disable>
  10c705:	83 c4 10             	add    $0x10,%esp                     
    &_POSIX_Mutex_Information,                                        
    (Objects_Id) *mutex,                                              
    location,                                                         
    level                                                             
  );                                                                  
}                                                                     
  10c708:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c70b:	5b                   	pop    %ebx                           
  10c70c:	5e                   	pop    %esi                           
  10c70d:	c9                   	leave                                 
  10c70e:	c3                   	ret                                   
  10c70f:	90                   	nop                                   
  ISR_Level         *level                                            
)                                                                     
{                                                                     
  ___POSIX_Mutex_Get_support_error_check( mutex, location );          
                                                                      
  ___POSIX_Mutex_Get_support_auto_initialization( mutex, location );  
  10c710:	83 ec 08             	sub    $0x8,%esp                      
  10c713:	6a 00                	push   $0x0                           
  10c715:	53                   	push   %ebx                           
  10c716:	e8 65 00 00 00       	call   10c780 <pthread_mutex_init>    
  10c71b:	83 c4 10             	add    $0x10,%esp                     
  10c71e:	85 c0                	test   %eax,%eax                      
  10c720:	75 06                	jne    10c728 <_POSIX_Mutex_Get_interrupt_disable+0x48>
  10c722:	8b 03                	mov    (%ebx),%eax                    
  10c724:	eb d0                	jmp    10c6f6 <_POSIX_Mutex_Get_interrupt_disable+0x16>
  10c726:	66 90                	xchg   %ax,%ax                        
  10c728:	c7 06 01 00 00 00    	movl   $0x1,(%esi)                    
  10c72e:	31 c0                	xor    %eax,%eax                      
  10c730:	eb d6                	jmp    10c708 <_POSIX_Mutex_Get_interrupt_disable+0x28>
                                                                      

0010c8e0 <_POSIX_Mutex_Lock_support>: int _POSIX_Mutex_Lock_support( pthread_mutex_t *mutex, bool blocking, Watchdog_Interval timeout ) {
  10c8e0:	55                   	push   %ebp                           
  10c8e1:	89 e5                	mov    %esp,%ebp                      
  10c8e3:	53                   	push   %ebx                           
  10c8e4:	83 ec 18             	sub    $0x18,%esp                     
  10c8e7:	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 );
  10c8ea:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10c8ed:	50                   	push   %eax                           
  10c8ee:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c8f1:	50                   	push   %eax                           
  10c8f2:	ff 75 08             	pushl  0x8(%ebp)                      
  10c8f5:	e8 e6 fd ff ff       	call   10c6e0 <_POSIX_Mutex_Get_interrupt_disable>
  switch ( location ) {                                               
  10c8fa:	83 c4 10             	add    $0x10,%esp                     
  10c8fd:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c900:	85 d2                	test   %edx,%edx                      
  10c902:	75 34                	jne    10c938 <_POSIX_Mutex_Lock_support+0x58>
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_mutex_Seize(                                              
  10c904:	83 ec 0c             	sub    $0xc,%esp                      
  10c907:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10c90a:	ff 75 10             	pushl  0x10(%ebp)                     
  10c90d:	0f b6 db             	movzbl %bl,%ebx                       
  10c910:	53                   	push   %ebx                           
  10c911:	ff 70 08             	pushl  0x8(%eax)                      
  10c914:	83 c0 14             	add    $0x14,%eax                     
  10c917:	50                   	push   %eax                           
  10c918:	e8 53 1b 00 00       	call   10e470 <_CORE_mutex_Seize>     
        the_mutex->Object.id,                                         
        blocking,                                                     
        timeout,                                                      
        level                                                         
      );                                                              
      return _POSIX_Mutex_Translate_core_mutex_return_code(           
  10c91d:	83 c4 14             	add    $0x14,%esp                     
        (CORE_mutex_Status) _Thread_Executing->Wait.return_code       
  10c920:	a1 38 cc 12 00       	mov    0x12cc38,%eax                  
        the_mutex->Object.id,                                         
        blocking,                                                     
        timeout,                                                      
        level                                                         
      );                                                              
      return _POSIX_Mutex_Translate_core_mutex_return_code(           
  10c925:	ff 70 34             	pushl  0x34(%eax)                     
  10c928:	e8 1b 01 00 00       	call   10ca48 <_POSIX_Mutex_Translate_core_mutex_return_code>
  10c92d:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c930:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c933:	c9                   	leave                                 
  10c934:	c3                   	ret                                   
  10c935:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c938:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10c93d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c940:	c9                   	leave                                 
  10c941:	c3                   	ret                                   
                                                                      

00113ed8 <_POSIX_Semaphore_Create_support>: const char *name, int pshared, unsigned int value, POSIX_Semaphore_Control **the_sem ) {
  113ed8:	55                   	push   %ebp                           
  113ed9:	89 e5                	mov    %esp,%ebp                      
  113edb:	56                   	push   %esi                           
  113edc:	53                   	push   %ebx                           
  113edd:	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)                                                   
  113ee0:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  113ee3:	85 d2                	test   %edx,%edx                      
  113ee5:	0f 85 b9 00 00 00    	jne    113fa4 <_POSIX_Semaphore_Create_support+0xcc>
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
                                                                      
  if ( name ) {                                                       
  113eeb:	85 db                	test   %ebx,%ebx                      
  113eed:	74 1c                	je     113f0b <_POSIX_Semaphore_Create_support+0x33>
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
  113eef:	83 ec 08             	sub    $0x8,%esp                      
  113ef2:	68 ff 00 00 00       	push   $0xff                          
  113ef7:	53                   	push   %ebx                           
  113ef8:	e8 3b 43 00 00       	call   118238 <strnlen>               
  113efd:	83 c4 10             	add    $0x10,%esp                     
  113f00:	3d fe 00 00 00       	cmp    $0xfe,%eax                     
  113f05:	0f 87 ad 00 00 00    	ja     113fb8 <_POSIX_Semaphore_Create_support+0xe0>
  113f0b:	a1 ec c6 12 00       	mov    0x12c6ec,%eax                  
  113f10:	40                   	inc    %eax                           
  113f11:	a3 ec c6 12 00       	mov    %eax,0x12c6ec                  
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void )
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Allocate( &_POSIX_Semaphore_Information );               
  113f16:	83 ec 0c             	sub    $0xc,%esp                      
  113f19:	68 00 ca 12 00       	push   $0x12ca00                      
  113f1e:	e8 b5 b7 ff ff       	call   10f6d8 <_Objects_Allocate>     
  113f23:	89 c6                	mov    %eax,%esi                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
  113f25:	83 c4 10             	add    $0x10,%esp                     
  113f28:	85 c0                	test   %eax,%eax                      
  113f2a:	0f 84 9a 00 00 00    	je     113fca <_POSIX_Semaphore_Create_support+0xf2>
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  }                                                                   
                                                                      
  the_semaphore->process_shared  = pshared;                           
  113f30:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)                
                                                                      
  if ( name ) {                                                       
  113f37:	85 db                	test   %ebx,%ebx                      
  113f39:	74 55                	je     113f90 <_POSIX_Semaphore_Create_support+0xb8>
    the_semaphore->named = true;                                      
  113f3b:	c6 40 14 01          	movb   $0x1,0x14(%eax)                
    the_semaphore->open_count = 1;                                    
  113f3f:	c7 40 18 01 00 00 00 	movl   $0x1,0x18(%eax)                
    the_semaphore->linked = true;                                     
  113f46:	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;         
  113f4a:	c7 46 60 00 00 00 00 	movl   $0x0,0x60(%esi)                
                                                                      
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
  113f51:	c7 46 5c ff ff ff ff 	movl   $0xffffffff,0x5c(%esi)         
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
  113f58:	50                   	push   %eax                           
  113f59:	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;                
  113f5c:	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 );
  113f5f:	50                   	push   %eax                           
  113f60:	8d 46 1c             	lea    0x1c(%esi),%eax                
  113f63:	50                   	push   %eax                           
  113f64:	e8 f7 b1 ff ff       	call   10f160 <_CORE_semaphore_Initialize>
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  113f69:	0f b7 56 08          	movzwl 0x8(%esi),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  113f6d:	a1 1c ca 12 00       	mov    0x12ca1c,%eax                  
  113f72:	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;                                   
  113f75:	89 5e 0c             	mov    %ebx,0xc(%esi)                 
    &_POSIX_Semaphore_Information,                                    
    &the_semaphore->Object,                                           
    name_p                                                            
  );                                                                  
                                                                      
  *the_sem = the_semaphore;                                           
  113f78:	8b 45 14             	mov    0x14(%ebp),%eax                
  113f7b:	89 30                	mov    %esi,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  113f7d:	e8 9a c7 ff ff       	call   11071c <_Thread_Enable_dispatch>
  return 0;                                                           
  113f82:	83 c4 10             	add    $0x10,%esp                     
  113f85:	31 c0                	xor    %eax,%eax                      
}                                                                     
  113f87:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  113f8a:	5b                   	pop    %ebx                           
  113f8b:	5e                   	pop    %esi                           
  113f8c:	c9                   	leave                                 
  113f8d:	c3                   	ret                                   
  113f8e:	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;                                     
  113f90:	c6 40 14 00          	movb   $0x0,0x14(%eax)                
    the_semaphore->open_count = 0;                                    
  113f94:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
    the_semaphore->linked = false;                                    
  113f9b:	c6 40 15 00          	movb   $0x0,0x15(%eax)                
  113f9f:	eb a9                	jmp    113f4a <_POSIX_Semaphore_Create_support+0x72>
  113fa1:	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 );                   
  113fa4:	e8 63 31 00 00       	call   11710c <__errno>               
  113fa9:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  113faf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  113fb4:	eb d1                	jmp    113f87 <_POSIX_Semaphore_Create_support+0xaf>
  113fb6:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( name ) {                                                       
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
      rtems_set_errno_and_return_minus_one( ENAMETOOLONG );           
  113fb8:	e8 4f 31 00 00       	call   11710c <__errno>               
  113fbd:	c7 00 5b 00 00 00    	movl   $0x5b,(%eax)                   
  113fc3:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  113fc8:	eb bd                	jmp    113f87 <_POSIX_Semaphore_Create_support+0xaf>
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
  113fca:	e8 4d c7 ff ff       	call   11071c <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  113fcf:	e8 38 31 00 00       	call   11710c <__errno>               
  113fd4:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)                   
  113fda:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  113fdf:	eb a6                	jmp    113f87 <_POSIX_Semaphore_Create_support+0xaf>
                                                                      

00113fe4 <_POSIX_Semaphore_Delete>: */ void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore ) {
  113fe4:	55                   	push   %ebp                           
  113fe5:	89 e5                	mov    %esp,%ebp                      
  113fe7:	53                   	push   %ebx                           
  113fe8:	83 ec 04             	sub    $0x4,%esp                      
  113feb:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  if ( !the_semaphore->linked && !the_semaphore->open_count ) {       
  113fee:	80 7b 15 00          	cmpb   $0x0,0x15(%ebx)                
  113ff2:	75 07                	jne    113ffb <_POSIX_Semaphore_Delete+0x17>
  113ff4:	8b 4b 18             	mov    0x18(%ebx),%ecx                
  113ff7:	85 c9                	test   %ecx,%ecx                      
  113ff9:	74 05                	je     114000 <_POSIX_Semaphore_Delete+0x1c><== NEVER TAKEN
        -1                                                            
      );                                                              
                                                                      
    _POSIX_Semaphore_Free( the_semaphore );                           
  }                                                                   
}                                                                     
  113ffb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  113ffe:	c9                   	leave                                 
  113fff:	c3                   	ret                                   
void _POSIX_Semaphore_Delete(                                         
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
  if ( !the_semaphore->linked && !the_semaphore->open_count ) {       
      _Objects_Close( &_POSIX_Semaphore_Information, &the_semaphore->Object );
  114000:	83 ec 08             	sub    $0x8,%esp                      
  114003:	53                   	push   %ebx                           
  114004:	68 00 ca 12 00       	push   $0x12ca00                      
  114009:	e8 46 b7 ff ff       	call   10f754 <_Objects_Close>        
                                                                      
      _CORE_semaphore_Flush(                                          
  11400e:	83 c4 0c             	add    $0xc,%esp                      
  114011:	6a ff                	push   $0xffffffff                    
  114013:	6a 00                	push   $0x0                           
  114015:	8d 43 1c             	lea    0x1c(%ebx),%eax                
  114018:	50                   	push   %eax                           
  114019:	e8 36 b1 ff ff       	call   10f154 <_CORE_semaphore_Flush> 
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free (                     
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Semaphore_Information, &the_semaphore->Object );
  11401e:	58                   	pop    %eax                           
  11401f:	5a                   	pop    %edx                           
  114020:	53                   	push   %ebx                           
  114021:	68 00 ca 12 00       	push   $0x12ca00                      
  114026:	e8 21 ba ff ff       	call   10fa4c <_Objects_Free>         
  11402b:	83 c4 10             	add    $0x10,%esp                     
        -1                                                            
      );                                                              
                                                                      
    _POSIX_Semaphore_Free( the_semaphore );                           
  }                                                                   
}                                                                     
  11402e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  114031:	c9                   	leave                                 
  114032:	c3                   	ret                                   
                                                                      

00114034 <_POSIX_Semaphore_Name_to_id>: int _POSIX_Semaphore_Name_to_id( const char *name, sem_t *id ) {
  114034:	55                   	push   %ebp                           
  114035:	89 e5                	mov    %esp,%ebp                      
  114037:	83 ec 18             	sub    $0x18,%esp                     
  11403a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
  11403d:	85 c0                	test   %eax,%eax                      
  11403f:	74 05                	je     114046 <_POSIX_Semaphore_Name_to_id+0x12>
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
  114041:	80 38 00             	cmpb   $0x0,(%eax)                    
  114044:	75 0a                	jne    114050 <_POSIX_Semaphore_Name_to_id+0x1c>
    return EINVAL;                                                    
  114046:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
  11404b:	c9                   	leave                                 
  11404c:	c3                   	ret                                   
  11404d:	8d 76 00             	lea    0x0(%esi),%esi                 
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  status = _Objects_Name_to_id_string(                                
  114050:	52                   	push   %edx                           
  114051:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  114054:	52                   	push   %edx                           
  114055:	50                   	push   %eax                           
  114056:	68 00 ca 12 00       	push   $0x12ca00                      
  11405b:	e8 d4 11 00 00       	call   115234 <_Objects_Name_to_id_string>
    &_POSIX_Semaphore_Information,                                    
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
  114060:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  114063:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  114066:	89 0a                	mov    %ecx,(%edx)                    
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
  114068:	83 c4 10             	add    $0x10,%esp                     
    return 0;                                                         
  11406b:	83 f8 01             	cmp    $0x1,%eax                      
  11406e:	19 c0                	sbb    %eax,%eax                      
  114070:	f7 d0                	not    %eax                           
  114072:	83 e0 02             	and    $0x2,%eax                      
                                                                      
  return ENOENT;                                                      
}                                                                     
  114075:	c9                   	leave                                 
  114076:	c3                   	ret                                   
                                                                      

001140a0 <_POSIX_Semaphore_Wait_support>: int _POSIX_Semaphore_Wait_support( sem_t *sem, bool blocking, Watchdog_Interval timeout ) {
  1140a0:	55                   	push   %ebp                           
  1140a1:	89 e5                	mov    %esp,%ebp                      
  1140a3:	53                   	push   %ebx                           
  1140a4:	83 ec 18             	sub    $0x18,%esp                     
  1140a7:	8a 5d 0c             	mov    0xc(%ebp),%bl                  
  POSIX_Semaphore_Control *the_semaphore;                             
  Objects_Locations        location;                                  
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  1140aa:	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 );
  1140ad:	50                   	push   %eax                           
  1140ae:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1140b1:	ff 30                	pushl  (%eax)                         
  1140b3:	68 00 ca 12 00       	push   $0x12ca00                      
  1140b8:	e8 cf ba ff ff       	call   10fb8c <_Objects_Get>          
  switch ( location ) {                                               
  1140bd:	83 c4 10             	add    $0x10,%esp                     
  1140c0:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1140c3:	85 d2                	test   %edx,%edx                      
  1140c5:	74 15                	je     1140dc <_POSIX_Semaphore_Wait_support+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  1140c7:	e8 40 30 00 00       	call   11710c <__errno>               
  1140cc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  1140d2:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  1140d7:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1140da:	c9                   	leave                                 
  1140db:	c3                   	ret                                   
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Seize(                                          
  1140dc:	ff 75 10             	pushl  0x10(%ebp)                     
  1140df:	0f b6 db             	movzbl %bl,%ebx                       
  1140e2:	53                   	push   %ebx                           
  1140e3:	ff 70 08             	pushl  0x8(%eax)                      
  1140e6:	83 c0 1c             	add    $0x1c,%eax                     
  1140e9:	50                   	push   %eax                           
  1140ea:	e8 6d 0c 00 00       	call   114d5c <_CORE_semaphore_Seize> 
        &the_semaphore->Semaphore,                                    
        the_semaphore->Object.id,                                     
        blocking,                                                     
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
  1140ef:	e8 28 c6 ff ff       	call   11071c <_Thread_Enable_dispatch>
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
  1140f4:	83 c4 10             	add    $0x10,%esp                     
  1140f7:	a1 98 cc 12 00       	mov    0x12cc98,%eax                  
  1140fc:	8b 40 34             	mov    0x34(%eax),%eax                
  1140ff:	85 c0                	test   %eax,%eax                      
  114101:	75 09                	jne    11410c <_POSIX_Semaphore_Wait_support+0x6c>
        return 0;                                                     
  114103:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  114105:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  114108:	c9                   	leave                                 
  114109:	c3                   	ret                                   
  11410a:	66 90                	xchg   %ax,%ax                        
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
        return 0;                                                     
                                                                      
      rtems_set_errno_and_return_minus_one(                           
  11410c:	e8 fb 2f 00 00       	call   11710c <__errno>               
  114111:	89 c3                	mov    %eax,%ebx                      
  114113:	83 ec 0c             	sub    $0xc,%esp                      
  114116:	a1 98 cc 12 00       	mov    0x12cc98,%eax                  
  11411b:	ff 70 34             	pushl  0x34(%eax)                     
  11411e:	e8 6d 2a 00 00       	call   116b90 <_POSIX_Semaphore_Translate_core_semaphore_return_code>
  114123:	89 03                	mov    %eax,(%ebx)                    
  114125:	83 c4 10             	add    $0x10,%esp                     
  114128:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  11412d:	eb a8                	jmp    1140d7 <_POSIX_Semaphore_Wait_support+0x37>
                                                                      

0010fc6c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>: #include <rtems/posix/pthread.h> void _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( Thread_Control *the_thread ) {
  10fc6c:	55                   	push   %ebp                           
  10fc6d:	89 e5                	mov    %esp,%ebp                      
  10fc6f:	83 ec 08             	sub    $0x8,%esp                      
  10fc72:	8b 55 08             	mov    0x8(%ebp),%edx                 
  POSIX_API_Control *thread_support;                                  
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
  10fc75:	8b 82 ec 00 00 00    	mov    0xec(%edx),%eax                
                                                                      
  if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
  10fc7b:	8b 88 d8 00 00 00    	mov    0xd8(%eax),%ecx                
  10fc81:	85 c9                	test   %ecx,%ecx                      
  10fc83:	75 09                	jne    10fc8e <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x22><== NEVER TAKEN
  10fc85:	83 b8 dc 00 00 00 01 	cmpl   $0x1,0xdc(%eax)                
  10fc8c:	74 06                	je     10fc94 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x28>
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  } else                                                              
    _Thread_Enable_dispatch();                                        
                                                                      
}                                                                     
  10fc8e:	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();                                        
  10fc8f:	e9 bc d4 ff ff       	jmp    10d150 <_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 &&
  10fc94:	8b 80 e0 00 00 00    	mov    0xe0(%eax),%eax                
  10fc9a:	85 c0                	test   %eax,%eax                      
  10fc9c:	74 f0                	je     10fc8e <_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;                                
  10fc9e:	a1 6c 8a 12 00       	mov    0x128a6c,%eax                  
  10fca3:	48                   	dec    %eax                           
  10fca4:	a3 6c 8a 12 00       	mov    %eax,0x128a6c                  
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  10fca9:	83 ec 08             	sub    $0x8,%esp                      
  10fcac:	6a ff                	push   $0xffffffff                    
  10fcae:	52                   	push   %edx                           
  10fcaf:	e8 c0 08 00 00       	call   110574 <_POSIX_Thread_Exit>    
  10fcb4:	83 c4 10             	add    $0x10,%esp                     
  } else                                                              
    _Thread_Enable_dispatch();                                        
                                                                      
}                                                                     
  10fcb7:	c9                   	leave                                 
  10fcb8:	c3                   	ret                                   
                                                                      

00110fcc <_POSIX_Thread_Translate_sched_param>: int policy, struct sched_param *param, Thread_CPU_budget_algorithms *budget_algorithm, Thread_CPU_budget_algorithm_callout *budget_callout ) {
  110fcc:	55                   	push   %ebp                           
  110fcd:	89 e5                	mov    %esp,%ebp                      
  110fcf:	57                   	push   %edi                           
  110fd0:	56                   	push   %esi                           
  110fd1:	53                   	push   %ebx                           
  110fd2:	83 ec 18             	sub    $0x18,%esp                     
  110fd5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  110fd8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  110fdb:	8b 7d 10             	mov    0x10(%ebp),%edi                
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
  110fde:	ff 36                	pushl  (%esi)                         
  110fe0:	e8 cb ff ff ff       	call   110fb0 <_POSIX_Priority_Is_valid>
  110fe5:	83 c4 10             	add    $0x10,%esp                     
  110fe8:	84 c0                	test   %al,%al                        
  110fea:	74 2a                	je     111016 <_POSIX_Thread_Translate_sched_param+0x4a><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
  110fec:	c7 07 00 00 00 00    	movl   $0x0,(%edi)                    
  *budget_callout = NULL;                                             
  110ff2:	8b 45 14             	mov    0x14(%ebp),%eax                
  110ff5:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
  110ffb:	85 db                	test   %ebx,%ebx                      
  110ffd:	74 25                	je     111024 <_POSIX_Thread_Translate_sched_param+0x58>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
  110fff:	83 fb 01             	cmp    $0x1,%ebx                      
  111002:	0f 84 90 00 00 00    	je     111098 <_POSIX_Thread_Translate_sched_param+0xcc>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
  111008:	83 fb 02             	cmp    $0x2,%ebx                      
  11100b:	0f 84 8f 00 00 00    	je     1110a0 <_POSIX_Thread_Translate_sched_param+0xd4>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
  111011:	83 fb 04             	cmp    $0x4,%ebx                      
  111014:	74 1e                	je     111034 <_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;                                                  
  111016:	b8 16 00 00 00       	mov    $0x16,%eax                     
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  11101b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11101e:	5b                   	pop    %ebx                           
  11101f:	5e                   	pop    %esi                           
  111020:	5f                   	pop    %edi                           
  111021:	c9                   	leave                                 
  111022:	c3                   	ret                                   
  111023:	90                   	nop                                   
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
  *budget_callout = NULL;                                             
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
  111024:	c7 07 01 00 00 00    	movl   $0x1,(%edi)                    
    return 0;                                                         
  11102a:	31 c0                	xor    %eax,%eax                      
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  11102c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11102f:	5b                   	pop    %ebx                           
  111030:	5e                   	pop    %esi                           
  111031:	5f                   	pop    %edi                           
  111032:	c9                   	leave                                 
  111033:	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) &&                 
  111034:	8b 5e 08             	mov    0x8(%esi),%ebx                 
  111037:	85 db                	test   %ebx,%ebx                      
  111039:	75 07                	jne    111042 <_POSIX_Thread_Translate_sched_param+0x76>
  11103b:	8b 4e 0c             	mov    0xc(%esi),%ecx                 
  11103e:	85 c9                	test   %ecx,%ecx                      
  111040:	74 d4                	je     111016 <_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) &&                 
  111042:	8b 56 10             	mov    0x10(%esi),%edx                
  111045:	85 d2                	test   %edx,%edx                      
  111047:	75 07                	jne    111050 <_POSIX_Thread_Translate_sched_param+0x84>
  111049:	8b 46 14             	mov    0x14(%esi),%eax                
  11104c:	85 c0                	test   %eax,%eax                      
  11104e:	74 c6                	je     111016 <_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 ) <         
  111050:	83 ec 0c             	sub    $0xc,%esp                      
  111053:	8d 46 08             	lea    0x8(%esi),%eax                 
  111056:	50                   	push   %eax                           
  111057:	e8 fc d7 ff ff       	call   10e858 <_Timespec_To_ticks>    
  11105c:	89 c3                	mov    %eax,%ebx                      
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
  11105e:	8d 46 10             	lea    0x10(%esi),%eax                
  111061:	89 04 24             	mov    %eax,(%esp)                    
  111064:	e8 ef d7 ff ff       	call   10e858 <_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 ) <         
  111069:	83 c4 10             	add    $0x10,%esp                     
  11106c:	39 c3                	cmp    %eax,%ebx                      
  11106e:	72 a6                	jb     111016 <_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 ) )  
  111070:	83 ec 0c             	sub    $0xc,%esp                      
  111073:	ff 76 04             	pushl  0x4(%esi)                      
  111076:	e8 35 ff ff ff       	call   110fb0 <_POSIX_Priority_Is_valid>
  11107b:	83 c4 10             	add    $0x10,%esp                     
  11107e:	84 c0                	test   %al,%al                        
  111080:	74 94                	je     111016 <_POSIX_Thread_Translate_sched_param+0x4a>
      return EINVAL;                                                  
                                                                      
    *budget_algorithm  = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;         
  111082:	c7 07 03 00 00 00    	movl   $0x3,(%edi)                    
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
  111088:	8b 45 14             	mov    0x14(%ebp),%eax                
  11108b:	c7 00 bc b2 10 00    	movl   $0x10b2bc,(%eax)               
    return 0;                                                         
  111091:	31 c0                	xor    %eax,%eax                      
  111093:	eb 86                	jmp    11101b <_POSIX_Thread_Translate_sched_param+0x4f>
  111095:	8d 76 00             	lea    0x0(%esi),%esi                 
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  111098:	31 c0                	xor    %eax,%eax                      
  11109a:	e9 7c ff ff ff       	jmp    11101b <_POSIX_Thread_Translate_sched_param+0x4f>
  11109f:	90                   	nop                                   
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
  1110a0:	c7 07 02 00 00 00    	movl   $0x2,(%edi)                    
    return 0;                                                         
  1110a6:	31 c0                	xor    %eax,%eax                      
  1110a8:	e9 6e ff ff ff       	jmp    11101b <_POSIX_Thread_Translate_sched_param+0x4f>
                                                                      

0010fef8 <_POSIX_Threads_Create_extension>: bool _POSIX_Threads_Create_extension( Thread_Control *executing __attribute__((unused)), Thread_Control *created ) {
  10fef8:	55                   	push   %ebp                           
  10fef9:	89 e5                	mov    %esp,%ebp                      
  10fefb:	57                   	push   %edi                           
  10fefc:	56                   	push   %esi                           
  10fefd:	53                   	push   %ebx                           
  10fefe:	83 ec 28             	sub    $0x28,%esp                     
  10ff01:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  POSIX_API_Control *api;                                             
  POSIX_API_Control *executing_api;                                   
                                                                      
  api = _Workspace_Allocate( sizeof( POSIX_API_Control ) );           
  10ff04:	68 f0 00 00 00       	push   $0xf0                          
  10ff09:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10ff0c:	e8 4b de ff ff       	call   10dd5c <_Workspace_Allocate>   
  10ff11:	89 c3                	mov    %eax,%ebx                      
                                                                      
  if ( !api )                                                         
  10ff13:	83 c4 10             	add    $0x10,%esp                     
  10ff16:	85 c0                	test   %eax,%eax                      
  10ff18:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10ff1b:	0f 84 2f 01 00 00    	je     110050 <_POSIX_Threads_Create_extension+0x158>
    return false;                                                     
                                                                      
  created->API_Extensions[ THREAD_API_POSIX ] = api;                  
  10ff21:	89 82 ec 00 00 00    	mov    %eax,0xec(%edx)                
                                                                      
  /* XXX check all fields are touched */                              
  api->Attributes  = _POSIX_Threads_Default_attributes;               
  10ff27:	b9 40 00 00 00       	mov    $0x40,%ecx                     
  10ff2c:	31 c0                	xor    %eax,%eax                      
  10ff2e:	89 df                	mov    %ebx,%edi                      
  10ff30:	f3 aa                	rep stos %al,%es:(%edi)               
  10ff32:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
  10ff38:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)                
  10ff3f:	c7 43 14 01 00 00 00 	movl   $0x1,0x14(%ebx)                
  10ff46:	c7 43 18 02 00 00 00 	movl   $0x2,0x18(%ebx)                
  10ff4d:	c7 43 38 01 00 00 00 	movl   $0x1,0x38(%ebx)                
  10ff54:	c7 43 3c 01 00 00 00 	movl   $0x1,0x3c(%ebx)                
  api->detachstate = _POSIX_Threads_Default_attributes.detachstate;   
  10ff5b:	c7 43 40 01 00 00 00 	movl   $0x1,0x40(%ebx)                
  api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy;   
  10ff62:	c7 83 84 00 00 00 01 	movl   $0x1,0x84(%ebx)                
  10ff69:	00 00 00                                                    
  api->schedparam  = _POSIX_Threads_Default_attributes.schedparam;    
  10ff6c:	be 58 16 12 00       	mov    $0x121658,%esi                 
  10ff71:	8d bb 88 00 00 00    	lea    0x88(%ebx),%edi                
  10ff77:	b1 07                	mov    $0x7,%cl                       
  10ff79:	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);           
  10ff7b:	0f b6 05 54 35 12 00 	movzbl 0x123554,%eax                  
  10ff82:	2b 42 14             	sub    0x14(%edx),%eax                
  10ff85:	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;                                     
  10ff8b:	c7 83 e0 00 00 00 00 	movl   $0x0,0xe0(%ebx)                
  10ff92:	00 00 00                                                    
  api->cancelability_state = PTHREAD_CANCEL_ENABLE;                   
  10ff95:	c7 83 d8 00 00 00 00 	movl   $0x0,0xd8(%ebx)                
  10ff9c:	00 00 00                                                    
  api->cancelability_type = PTHREAD_CANCEL_DEFERRED;                  
  10ff9f:	c7 83 dc 00 00 00 00 	movl   $0x0,0xdc(%ebx)                
  10ffa6:	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 );                        
  10ffa9:	8d 83 e8 00 00 00    	lea    0xe8(%ebx),%eax                
  10ffaf:	89 83 e4 00 00 00    	mov    %eax,0xe4(%ebx)                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10ffb5:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)                
  10ffbc:	00 00 00                                                    
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  10ffbf:	8d 83 e4 00 00 00    	lea    0xe4(%ebx),%eax                
  10ffc5:	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;                                           
  10ffcb:	c7 83 d4 00 00 00 00 	movl   $0x0,0xd4(%ebx)                
  10ffd2:	00 00 00                                                    
  10ffd5:	0f b6 42 0b          	movzbl 0xb(%edx),%eax                 
  10ffd9:	83 e0 07             	and    $0x7,%eax                      
  if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API    
  10ffdc:	83 f8 03             	cmp    $0x3,%eax                      
  10ffdf:	74 53                	je     110034 <_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;                                
  10ffe1:	c7 83 d0 00 00 00 ff 	movl   $0xffffffff,0xd0(%ebx)         
  10ffe8:	ff ff ff                                                    
  }                                                                   
                                                                      
  _Thread_queue_Initialize(                                           
  10ffeb:	6a 00                	push   $0x0                           
  10ffed:	68 00 10 00 00       	push   $0x1000                        
  10fff2:	6a 00                	push   $0x0                           
  10fff4:	8d 43 44             	lea    0x44(%ebx),%eax                
  10fff7:	50                   	push   %eax                           
  10fff8:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10fffb:	e8 90 d4 ff ff       	call   10d490 <_Thread_queue_Initialize>
    THREAD_QUEUE_DISCIPLINE_FIFO,                                     
    STATES_WAITING_FOR_JOIN_AT_EXIT,                                  
    0                                                                 
  );                                                                  
                                                                      
  _Watchdog_Initialize(                                               
  110000:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  110003:	8b 42 08             	mov    0x8(%edx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  110006:	c7 83 b0 00 00 00 00 	movl   $0x0,0xb0(%ebx)                
  11000d:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  110010:	c7 83 c4 00 00 00 5c 	movl   $0x11005c,0xc4(%ebx)           
  110017:	00 11 00                                                    
  the_watchdog->id        = id;                                       
  11001a:	89 83 c8 00 00 00    	mov    %eax,0xc8(%ebx)                
  the_watchdog->user_data = user_data;                                
  110020:	89 93 cc 00 00 00    	mov    %edx,0xcc(%ebx)                
    _POSIX_Threads_Sporadic_budget_TSR,                               
    created->Object.id,                                               
    created                                                           
  );                                                                  
                                                                      
  return true;                                                        
  110026:	83 c4 10             	add    $0x10,%esp                     
  110029:	b0 01                	mov    $0x1,%al                       
}                                                                     
  11002b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11002e:	5b                   	pop    %ebx                           
  11002f:	5e                   	pop    %esi                           
  110030:	5f                   	pop    %edi                           
  110031:	c9                   	leave                                 
  110032:	c3                   	ret                                   
  110033:	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 ];
  110034:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
    api->signals_blocked = executing_api->signals_blocked;            
  110039:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  11003f:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  110045:	89 83 d0 00 00 00    	mov    %eax,0xd0(%ebx)                
  11004b:	eb 9e                	jmp    10ffeb <_POSIX_Threads_Create_extension+0xf3>
  11004d:	8d 76 00             	lea    0x0(%esi),%esi                 
  POSIX_API_Control *executing_api;                                   
                                                                      
  api = _Workspace_Allocate( sizeof( POSIX_API_Control ) );           
                                                                      
  if ( !api )                                                         
    return false;                                                     
  110050:	31 c0                	xor    %eax,%eax                      
    created->Object.id,                                               
    created                                                           
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
  110052:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  110055:	5b                   	pop    %ebx                           
  110056:	5e                   	pop    %esi                           
  110057:	5f                   	pop    %edi                           
  110058:	c9                   	leave                                 
  110059:	c3                   	ret                                   
                                                                      

0010fe70 <_POSIX_Threads_Delete_extension>: */ void _POSIX_Threads_Delete_extension( Thread_Control *executing __attribute__((unused)), Thread_Control *deleted ) {
  10fe70:	55                   	push   %ebp                           
  10fe71:	89 e5                	mov    %esp,%ebp                      
  10fe73:	57                   	push   %edi                           
  10fe74:	56                   	push   %esi                           
  10fe75:	53                   	push   %ebx                           
  10fe76:	83 ec 28             	sub    $0x28,%esp                     
  10fe79:	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 ];                  
  10fe7c:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax                
  10fe82:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
  /*                                                                  
   *  Run the POSIX cancellation handlers                             
   */                                                                 
  _POSIX_Threads_cancel_run( deleted );                               
  10fe85:	57                   	push   %edi                           
  10fe86:	e8 15 27 00 00       	call   1125a0 <_POSIX_Threads_cancel_run>
                                                                      
  /*                                                                  
   *  Run all the key destructors                                     
   */                                                                 
  _POSIX_Keys_Run_destructors( deleted );                             
  10fe8b:	89 3c 24             	mov    %edi,(%esp)                    
  10fe8e:	e8 75 27 00 00       	call   112608 <_POSIX_Keys_Run_destructors>
                                                                      
  /*                                                                  
   *  Wakeup all the tasks which joined with this one                 
   */                                                                 
  value_ptr = (void **) deleted->Wait.return_argument;                
  10fe93:	8b 77 28             	mov    0x28(%edi),%esi                
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) )   
  10fe96:	83 c4 10             	add    $0x10,%esp                     
  10fe99:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10fe9c:	8d 58 44             	lea    0x44(%eax),%ebx                
  10fe9f:	eb 08                	jmp    10fea9 <_POSIX_Threads_Delete_extension+0x39>
  10fea1:	8d 76 00             	lea    0x0(%esi),%esi                 
      *(void **)the_thread->Wait.return_argument = value_ptr;         
  10fea4:	8b 40 28             	mov    0x28(%eax),%eax                
  10fea7:	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 )) )   
  10fea9:	83 ec 0c             	sub    $0xc,%esp                      
  10feac:	53                   	push   %ebx                           
  10fead:	e8 4e d2 ff ff       	call   10d100 <_Thread_queue_Dequeue> 
  10feb2:	83 c4 10             	add    $0x10,%esp                     
  10feb5:	85 c0                	test   %eax,%eax                      
  10feb7:	75 eb                	jne    10fea4 <_POSIX_Threads_Delete_extension+0x34>
      *(void **)the_thread->Wait.return_argument = value_ptr;         
                                                                      
  if ( api->schedpolicy == SCHED_SPORADIC )                           
  10feb9:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10febc:	83 b8 84 00 00 00 04 	cmpl   $0x4,0x84(%eax)                
  10fec3:	74 1f                	je     10fee4 <_POSIX_Threads_Delete_extension+0x74>
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
  10fec5:	c7 87 ec 00 00 00 00 	movl   $0x0,0xec(%edi)                
  10fecc:	00 00 00                                                    
                                                                      
  _Workspace_Free( api );                                             
  10fecf:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10fed2:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10fed5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10fed8:	5b                   	pop    %ebx                           
  10fed9:	5e                   	pop    %esi                           
  10feda:	5f                   	pop    %edi                           
  10fedb:	c9                   	leave                                 
  if ( api->schedpolicy == SCHED_SPORADIC )                           
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
                                                                      
  _Workspace_Free( api );                                             
  10fedc:	e9 97 de ff ff       	jmp    10dd78 <_Workspace_Free>       
  10fee1:	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 );                  
  10fee4:	83 ec 0c             	sub    $0xc,%esp                      
  10fee7:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10feec:	50                   	push   %eax                           
  10feed:	e8 42 dd ff ff       	call   10dc34 <_Watchdog_Remove>      
  10fef2:	83 c4 10             	add    $0x10,%esp                     
  10fef5:	eb ce                	jmp    10fec5 <_POSIX_Threads_Delete_extension+0x55>
                                                                      

0010fe34 <_POSIX_Threads_Initialize_user_threads>: * * This routine creates and starts all configured user * initialzation threads. */ void _POSIX_Threads_Initialize_user_threads( void ) {
  10fe34:	55                   	push   %ebp                           
  10fe35:	89 e5                	mov    %esp,%ebp                      
  10fe37:	83 ec 08             	sub    $0x8,%esp                      
  if ( _POSIX_Threads_Initialize_user_threads_p )                     
  10fe3a:	a1 b8 5a 12 00       	mov    0x125ab8,%eax                  
  10fe3f:	85 c0                	test   %eax,%eax                      
  10fe41:	74 05                	je     10fe48 <_POSIX_Threads_Initialize_user_threads+0x14>
    (*_POSIX_Threads_Initialize_user_threads_p)();                    
}                                                                     
  10fe43:	c9                   	leave                                 
 *  initialzation threads.                                            
 */                                                                   
void _POSIX_Threads_Initialize_user_threads( void )                   
{                                                                     
  if ( _POSIX_Threads_Initialize_user_threads_p )                     
    (*_POSIX_Threads_Initialize_user_threads_p)();                    
  10fe44:	ff e0                	jmp    *%eax                          
  10fe46:	66 90                	xchg   %ax,%ax                        
}                                                                     
  10fe48:	c9                   	leave                                 
  10fe49:	c3                   	ret                                   
                                                                      

0010af9c <_POSIX_Threads_Initialize_user_threads_body>: * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads_body(void) {
  10af9c:	55                   	push   %ebp                           
  10af9d:	89 e5                	mov    %esp,%ebp                      
  10af9f:	57                   	push   %edi                           
  10afa0:	56                   	push   %esi                           
  10afa1:	53                   	push   %ebx                           
  10afa2:	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;
  10afa5:	8b 3d d4 47 12 00    	mov    0x1247d4,%edi                  
  maximum      = Configuration_POSIX_API.number_of_initialization_threads;
  10afab:	a1 d0 47 12 00       	mov    0x1247d0,%eax                  
  10afb0:	89 45 94             	mov    %eax,-0x6c(%ebp)               
                                                                      
  if ( !user_threads || maximum == 0 )                                
  10afb3:	85 ff                	test   %edi,%edi                      
  10afb5:	74 44                	je     10affb <_POSIX_Threads_Initialize_user_threads_body+0x5f><== NEVER TAKEN
  10afb7:	85 c0                	test   %eax,%eax                      
  10afb9:	74 40                	je     10affb <_POSIX_Threads_Initialize_user_threads_body+0x5f><== NEVER TAKEN
  10afbb:	31 db                	xor    %ebx,%ebx                      
  10afbd:	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 );                                
  10afc0:	83 ec 0c             	sub    $0xc,%esp                      
  10afc3:	56                   	push   %esi                           
  10afc4:	e8 e7 60 00 00       	call   1110b0 <pthread_attr_init>     
    (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
  10afc9:	5a                   	pop    %edx                           
  10afca:	59                   	pop    %ecx                           
  10afcb:	6a 02                	push   $0x2                           
  10afcd:	56                   	push   %esi                           
  10afce:	e8 09 61 00 00       	call   1110dc <pthread_attr_setinheritsched>
    (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size);
  10afd3:	59                   	pop    %ecx                           
  10afd4:	58                   	pop    %eax                           
  10afd5:	ff 74 df 04          	pushl  0x4(%edi,%ebx,8)               
  10afd9:	56                   	push   %esi                           
  10afda:	e8 31 61 00 00       	call   111110 <pthread_attr_setstacksize>
                                                                      
    status = pthread_create(                                          
  10afdf:	6a 00                	push   $0x0                           
  10afe1:	ff 34 df             	pushl  (%edi,%ebx,8)                  
  10afe4:	56                   	push   %esi                           
  10afe5:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10afe8:	50                   	push   %eax                           
  10afe9:	e8 92 fc ff ff       	call   10ac80 <pthread_create>        
      &thread_id,                                                     
      &attr,                                                          
      user_threads[ index ].thread_entry,                             
      NULL                                                            
    );                                                                
    if ( status )                                                     
  10afee:	83 c4 20             	add    $0x20,%esp                     
  10aff1:	85 c0                	test   %eax,%eax                      
  10aff3:	75 0e                	jne    10b003 <_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++ ) {                       
  10aff5:	43                   	inc    %ebx                           
  10aff6:	39 5d 94             	cmp    %ebx,-0x6c(%ebp)               
  10aff9:	77 c5                	ja     10afc0 <_POSIX_Threads_Initialize_user_threads_body+0x24><== NEVER TAKEN
      NULL                                                            
    );                                                                
    if ( status )                                                     
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
  }                                                                   
}                                                                     
  10affb:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10affe:	5b                   	pop    %ebx                           
  10afff:	5e                   	pop    %esi                           
  10b000:	5f                   	pop    %edi                           
  10b001:	c9                   	leave                                 
  10b002:	c3                   	ret                                   
      &attr,                                                          
      user_threads[ index ].thread_entry,                             
      NULL                                                            
    );                                                                
    if ( status )                                                     
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
  10b003:	52                   	push   %edx                           
  10b004:	50                   	push   %eax                           
  10b005:	6a 01                	push   $0x1                           
  10b007:	6a 02                	push   $0x2                           
  10b009:	e8 da 1c 00 00       	call   10cce8 <_Internal_error_Occurred>
                                                                      

0011005c <_POSIX_Threads_Sporadic_budget_TSR>: */ void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id __attribute__((unused)), void *argument ) {
  11005c:	55                   	push   %ebp                           
  11005d:	89 e5                	mov    %esp,%ebp                      
  11005f:	56                   	push   %esi                           
  110060:	53                   	push   %ebx                           
  110061:	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 ];               
  110064:	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 );
  11006a:	83 ec 0c             	sub    $0xc,%esp                      
  11006d:	8d 83 98 00 00 00    	lea    0x98(%ebx),%eax                
  110073:	50                   	push   %eax                           
  110074:	e8 97 13 00 00       	call   111410 <_Timespec_To_ticks>    
                                                                      
  the_thread->cpu_time_budget = ticks;                                
  110079:	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);
  11007c:	0f b6 05 54 35 12 00 	movzbl 0x123554,%eax                  
  110083:	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;                           
  110089:	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 ) {                            
  11008c:	83 c4 10             	add    $0x10,%esp                     
  11008f:	8b 4e 1c             	mov    0x1c(%esi),%ecx                
  110092:	85 c9                	test   %ecx,%ecx                      
  110094:	75 05                	jne    11009b <_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 ) {              
  110096:	39 46 14             	cmp    %eax,0x14(%esi)                
  110099:	77 35                	ja     1100d0 <_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 );
  11009b:	83 ec 0c             	sub    $0xc,%esp                      
  11009e:	8d 83 90 00 00 00    	lea    0x90(%ebx),%eax                
  1100a4:	50                   	push   %eax                           
  1100a5:	e8 66 13 00 00       	call   111410 <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  1100aa:	89 83 b4 00 00 00    	mov    %eax,0xb4(%ebx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  1100b0:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks );              
  1100b3:	81 c3 a8 00 00 00    	add    $0xa8,%ebx                     
  1100b9:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  1100bc:	c7 45 08 c0 78 12 00 	movl   $0x1278c0,0x8(%ebp)            
}                                                                     
  1100c3:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1100c6:	5b                   	pop    %ebx                           
  1100c7:	5e                   	pop    %esi                           
  1100c8:	c9                   	leave                                 
  1100c9:	e9 26 da ff ff       	jmp    10daf4 <_Watchdog_Insert>      
  1100ce:	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 );      
  1100d0:	52                   	push   %edx                           
  1100d1:	6a 01                	push   $0x1                           
  1100d3:	50                   	push   %eax                           
  1100d4:	56                   	push   %esi                           
  1100d5:	e8 6e c8 ff ff       	call   10c948 <_Thread_Change_priority>
  1100da:	83 c4 10             	add    $0x10,%esp                     
  1100dd:	eb bc                	jmp    11009b <_POSIX_Threads_Sporadic_budget_TSR+0x3f>
                                                                      

001100e0 <_POSIX_Threads_Sporadic_budget_callout>: * _POSIX_Threads_Sporadic_budget_callout */ void _POSIX_Threads_Sporadic_budget_callout( Thread_Control *the_thread ) {
  1100e0:	55                   	push   %ebp                           
  1100e1:	89 e5                	mov    %esp,%ebp                      
  1100e3:	83 ec 08             	sub    $0x8,%esp                      
  1100e6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_API_Control *api;                                             
  uint32_t           new_priority;                                    
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  1100e9:	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 */
  1100ef:	c7 40 78 ff ff ff ff 	movl   $0xffffffff,0x78(%eax)         
  1100f6:	0f b6 15 54 35 12 00 	movzbl 0x123554,%edx                  
  1100fd:	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;                           
  110103:	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 ) {                            
  110106:	8b 48 1c             	mov    0x1c(%eax),%ecx                
  110109:	85 c9                	test   %ecx,%ecx                      
  11010b:	75 05                	jne    110112 <_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 ) {              
  11010d:	39 50 14             	cmp    %edx,0x14(%eax)                
  110110:	72 02                	jb     110114 <_POSIX_Threads_Sporadic_budget_callout+0x34><== ALWAYS TAKEN
      #if 0                                                           
        printk( "lower priority\n" );                                 
      #endif                                                          
    }                                                                 
  }                                                                   
}                                                                     
  110112:	c9                   	leave                                 <== NOT EXECUTED
  110113:	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 );      
  110114:	51                   	push   %ecx                           
  110115:	6a 01                	push   $0x1                           
  110117:	52                   	push   %edx                           
  110118:	50                   	push   %eax                           
  110119:	e8 2a c8 ff ff       	call   10c948 <_Thread_Change_priority>
  11011e:	83 c4 10             	add    $0x10,%esp                     
      #if 0                                                           
        printk( "lower priority\n" );                                 
      #endif                                                          
    }                                                                 
  }                                                                   
}                                                                     
  110121:	c9                   	leave                                 
  110122:	c3                   	ret                                   
                                                                      

001125a0 <_POSIX_Threads_cancel_run>: #include <rtems/posix/threadsup.h> void _POSIX_Threads_cancel_run( Thread_Control *the_thread ) {
  1125a0:	55                   	push   %ebp                           
  1125a1:	89 e5                	mov    %esp,%ebp                      
  1125a3:	57                   	push   %edi                           
  1125a4:	56                   	push   %esi                           
  1125a5:	53                   	push   %ebx                           
  1125a6:	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 ];    
  1125a9:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1125ac:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
  1125b2:	c7 86 d8 00 00 00 01 	movl   $0x1,0xd8(%esi)                
  1125b9:	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 );                            
  1125bc:	8d be e8 00 00 00    	lea    0xe8(%esi),%edi                
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
  1125c2:	39 be e4 00 00 00    	cmp    %edi,0xe4(%esi)                
  1125c8:	74 33                	je     1125fd <_POSIX_Threads_cancel_run+0x5d>
  1125ca:	66 90                	xchg   %ax,%ax                        
    _ISR_Disable( level );                                            
  1125cc:	9c                   	pushf                                 
  1125cd:	fa                   	cli                                   
  1125ce:	59                   	pop    %ecx                           
      handler = (POSIX_Cancel_Handler_control *)                      
  1125cf:	8b 9e ec 00 00 00    	mov    0xec(%esi),%ebx                
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  1125d5:	8b 13                	mov    (%ebx),%edx                    
  previous       = the_node->previous;                                
  1125d7:	8b 43 04             	mov    0x4(%ebx),%eax                 
  next->previous = previous;                                          
  1125da:	89 42 04             	mov    %eax,0x4(%edx)                 
  previous->next = next;                                              
  1125dd:	89 10                	mov    %edx,(%eax)                    
           _Chain_Tail( handler_stack )->previous;                    
      _Chain_Extract_unprotected( &handler->Node );                   
    _ISR_Enable( level );                                             
  1125df:	51                   	push   %ecx                           
  1125e0:	9d                   	popf                                  
                                                                      
    (*handler->routine)( handler->arg );                              
  1125e1:	83 ec 0c             	sub    $0xc,%esp                      
  1125e4:	ff 73 0c             	pushl  0xc(%ebx)                      
  1125e7:	ff 53 08             	call   *0x8(%ebx)                     
                                                                      
    _Workspace_Free( handler );                                       
  1125ea:	89 1c 24             	mov    %ebx,(%esp)                    
  1125ed:	e8 86 b7 ff ff       	call   10dd78 <_Workspace_Free>       
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
  1125f2:	83 c4 10             	add    $0x10,%esp                     
  1125f5:	39 be e4 00 00 00    	cmp    %edi,0xe4(%esi)                
  1125fb:	75 cf                	jne    1125cc <_POSIX_Threads_cancel_run+0x2c><== NEVER TAKEN
                                                                      
    (*handler->routine)( handler->arg );                              
                                                                      
    _Workspace_Free( handler );                                       
  }                                                                   
}                                                                     
  1125fd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112600:	5b                   	pop    %ebx                           
  112601:	5e                   	pop    %esi                           
  112602:	5f                   	pop    %edi                           
  112603:	c9                   	leave                                 
  112604:	c3                   	ret                                   
                                                                      

00110db8 <_POSIX_Timer_Insert_helper>: Watchdog_Interval ticks, Objects_Id id, Watchdog_Service_routine_entry TSR, void *arg ) {
  110db8:	55                   	push   %ebp                           
  110db9:	89 e5                	mov    %esp,%ebp                      
  110dbb:	56                   	push   %esi                           
  110dbc:	53                   	push   %ebx                           
  110dbd:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  ISR_Level            level;                                         
                                                                      
  (void) _Watchdog_Remove( timer );                                   
  110dc0:	83 ec 0c             	sub    $0xc,%esp                      
  110dc3:	53                   	push   %ebx                           
  110dc4:	e8 f3 d8 ff ff       	call   10e6bc <_Watchdog_Remove>      
  _ISR_Disable( level );                                              
  110dc9:	9c                   	pushf                                 
  110dca:	fa                   	cli                                   
  110dcb:	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 ) {                        
  110dcc:	83 c4 10             	add    $0x10,%esp                     
  110dcf:	8b 43 08             	mov    0x8(%ebx),%eax                 
  110dd2:	85 c0                	test   %eax,%eax                      
  110dd4:	74 0e                	je     110de4 <_POSIX_Timer_Insert_helper+0x2c>
      _ISR_Enable( level );                                           
  110dd6:	56                   	push   %esi                           
  110dd7:	9d                   	popf                                  
      return false;                                                   
  110dd8:	31 c0                	xor    %eax,%eax                      
     */                                                               
    _Watchdog_Initialize( timer, TSR, id, arg );                      
    _Watchdog_Insert_ticks( timer, ticks );                           
  _ISR_Enable( level );                                               
  return true;                                                        
}                                                                     
  110dda:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110ddd:	5b                   	pop    %ebx                           
  110dde:	5e                   	pop    %esi                           
  110ddf:	c9                   	leave                                 
  110de0:	c3                   	ret                                   
  110de1:	8d 76 00             	lea    0x0(%esi),%esi                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  110de4:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)                 
  the_watchdog->routine   = routine;                                  
  110deb:	8b 45 14             	mov    0x14(%ebp),%eax                
  110dee:	89 43 1c             	mov    %eax,0x1c(%ebx)                
  the_watchdog->id        = id;                                       
  110df1:	8b 45 10             	mov    0x10(%ebp),%eax                
  110df4:	89 43 20             	mov    %eax,0x20(%ebx)                
  the_watchdog->user_data = user_data;                                
  110df7:	8b 45 18             	mov    0x18(%ebp),%eax                
  110dfa:	89 43 24             	mov    %eax,0x24(%ebx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  110dfd:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  110e00:	89 43 0c             	mov    %eax,0xc(%ebx)                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  110e03:	83 ec 08             	sub    $0x8,%esp                      
  110e06:	53                   	push   %ebx                           
  110e07:	68 60 9b 12 00       	push   $0x129b60                      
  110e0c:	e8 6b d7 ff ff       	call   10e57c <_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 );                                               
  110e11:	56                   	push   %esi                           
  110e12:	9d                   	popf                                  
  return true;                                                        
  110e13:	83 c4 10             	add    $0x10,%esp                     
  110e16:	b0 01                	mov    $0x1,%al                       
}                                                                     
  110e18:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110e1b:	5b                   	pop    %ebx                           
  110e1c:	5e                   	pop    %esi                           
  110e1d:	c9                   	leave                                 
  110e1e:	c3                   	ret                                   
                                                                      

0010ad9c <_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) {
  10ad9c:	55                   	push   %ebp                           
  10ad9d:	89 e5                	mov    %esp,%ebp                      
  10ad9f:	53                   	push   %ebx                           
  10ada0:	83 ec 04             	sub    $0x4,%esp                      
  10ada3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
  10ada6:	ff 43 68             	incl   0x68(%ebx)                     
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
  10ada9:	8b 53 54             	mov    0x54(%ebx),%edx                
  10adac:	85 d2                	test   %edx,%edx                      
  10adae:	75 28                	jne    10add8 <_POSIX_Timer_TSR+0x3c> 
  10adb0:	8b 43 58             	mov    0x58(%ebx),%eax                
  10adb3:	85 c0                	test   %eax,%eax                      
  10adb5:	75 21                	jne    10add8 <_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;                     
  10adb7:	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 ) ) {
  10adbb:	83 ec 08             	sub    $0x8,%esp                      
  10adbe:	ff 73 44             	pushl  0x44(%ebx)                     
  10adc1:	ff 73 38             	pushl  0x38(%ebx)                     
  10adc4:	e8 83 5b 00 00       	call   11094c <pthread_kill>          
  }                                                                   
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
  10adc9:	c7 43 68 00 00 00 00 	movl   $0x0,0x68(%ebx)                
  10add0:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10add3:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10add6:	c9                   	leave                                 
  10add7:	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(                           
  10add8:	83 ec 0c             	sub    $0xc,%esp                      
  10addb:	53                   	push   %ebx                           
  10addc:	68 9c ad 10 00       	push   $0x10ad9c                      
  10ade1:	ff 73 08             	pushl  0x8(%ebx)                      
  10ade4:	ff 73 64             	pushl  0x64(%ebx)                     
  10ade7:	8d 43 10             	lea    0x10(%ebx),%eax                
  10adea:	50                   	push   %eax                           
  10adeb:	e8 c8 5f 00 00       	call   110db8 <_POSIX_Timer_Insert_helper>
      ptimer->ticks,                                                  
      ptimer->Object.id,                                              
      _POSIX_Timer_TSR,                                               
      ptimer                                                          
    );                                                                
    if ( !activated )                                                 
  10adf0:	83 c4 20             	add    $0x20,%esp                     
  10adf3:	84 c0                	test   %al,%al                        
  10adf5:	74 dc                	je     10add3 <_POSIX_Timer_TSR+0x37> <== NEVER TAKEN
      return;                                                         
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
  10adf7:	83 ec 0c             	sub    $0xc,%esp                      
  10adfa:	8d 43 6c             	lea    0x6c(%ebx),%eax                
  10adfd:	50                   	push   %eax                           
  10adfe:	e8 a9 14 00 00       	call   10c2ac <_TOD_Get>              
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
  10ae03:	c6 43 3c 03          	movb   $0x3,0x3c(%ebx)                
  10ae07:	83 c4 10             	add    $0x10,%esp                     
  10ae0a:	eb af                	jmp    10adbb <_POSIX_Timer_TSR+0x1f> 
                                                                      

0011268c <_POSIX_signals_Check_signal>: bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) {
  11268c:	55                   	push   %ebp                           
  11268d:	89 e5                	mov    %esp,%ebp                      
  11268f:	57                   	push   %edi                           
  112690:	56                   	push   %esi                           
  112691:	53                   	push   %ebx                           
  112692:	83 ec 78             	sub    $0x78,%esp                     
  112695:	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,   
  112698:	6a 01                	push   $0x1                           
  11269a:	0f b6 45 10          	movzbl 0x10(%ebp),%eax                
  11269e:	50                   	push   %eax                           
  11269f:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  1126a2:	52                   	push   %edx                           
  1126a3:	53                   	push   %ebx                           
  1126a4:	ff 75 08             	pushl  0x8(%ebp)                      
  1126a7:	89 55 9c             	mov    %edx,-0x64(%ebp)               
  1126aa:	e8 b5 00 00 00       	call   112764 <_POSIX_signals_Clear_signals>
  1126af:	83 c4 20             	add    $0x20,%esp                     
  1126b2:	84 c0                	test   %al,%al                        
  1126b4:	8b 55 9c             	mov    -0x64(%ebp),%edx               
  1126b7:	0f 84 9b 00 00 00    	je     112758 <_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 )        
  1126bd:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  1126c0:	c1 e0 02             	shl    $0x2,%eax                      
  1126c3:	8b 88 08 7e 12 00    	mov    0x127e08(%eax),%ecx            
  1126c9:	89 4d a4             	mov    %ecx,-0x5c(%ebp)               
  1126cc:	49                   	dec    %ecx                           
  1126cd:	0f 84 85 00 00 00    	je     112758 <_POSIX_signals_Check_signal+0xcc><== NEVER TAKEN
    return false;                                                     
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  1126d3:	8b 75 08             	mov    0x8(%ebp),%esi                 
  1126d6:	8b b6 d0 00 00 00    	mov    0xd0(%esi),%esi                
  1126dc:	89 75 a0             	mov    %esi,-0x60(%ebp)               
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
  1126df:	8b 88 04 7e 12 00    	mov    0x127e04(%eax),%ecx            
  1126e5:	09 f1                	or     %esi,%ecx                      
  1126e7:	8b 75 08             	mov    0x8(%ebp),%esi                 
  1126ea:	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,  
  1126f0:	8d 75 b4             	lea    -0x4c(%ebp),%esi               
  1126f3:	89 75 94             	mov    %esi,-0x6c(%ebp)               
  1126f6:	8b 35 98 7d 12 00    	mov    0x127d98,%esi                  
  1126fc:	83 c6 20             	add    $0x20,%esi                     
  1126ff:	b9 0a 00 00 00       	mov    $0xa,%ecx                      
  112704:	8b 7d 94             	mov    -0x6c(%ebp),%edi               
  112707:	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 ) {               
  112709:	83 b8 00 7e 12 00 02 	cmpl   $0x2,0x127e00(%eax)            
  112710:	74 36                	je     112748 <_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 );         
  112712:	83 ec 0c             	sub    $0xc,%esp                      
  112715:	53                   	push   %ebx                           
  112716:	ff 55 a4             	call   *-0x5c(%ebp)                   
      break;                                                          
  112719:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  /*                                                                  
   *  Restore the blocking information                                
   */                                                                 
  memcpy( &_Thread_Executing->Wait, &stored_thread_wait_information,  
  11271c:	8b 3d 98 7d 12 00    	mov    0x127d98,%edi                  
  112722:	83 c7 20             	add    $0x20,%edi                     
  112725:	b9 0a 00 00 00       	mov    $0xa,%ecx                      
  11272a:	8b 75 94             	mov    -0x6c(%ebp),%esi               
  11272d:	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;                       
  11272f:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  112732:	8b 45 08             	mov    0x8(%ebp),%eax                 
  112735:	89 90 d0 00 00 00    	mov    %edx,0xd0(%eax)                
                                                                      
  return true;                                                        
  11273b:	b0 01                	mov    $0x1,%al                       
}                                                                     
  11273d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112740:	5b                   	pop    %ebx                           
  112741:	5e                   	pop    %esi                           
  112742:	5f                   	pop    %edi                           
  112743:	c9                   	leave                                 
  112744:	c3                   	ret                                   
  112745:	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)(                
  112748:	50                   	push   %eax                           
  112749:	6a 00                	push   $0x0                           
  11274b:	52                   	push   %edx                           
  11274c:	53                   	push   %ebx                           
  11274d:	ff 55 a4             	call   *-0x5c(%ebp)                   
        signo,                                                        
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
  112750:	83 c4 10             	add    $0x10,%esp                     
  112753:	eb c7                	jmp    11271c <_POSIX_signals_Check_signal+0x90>
  112755:	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;                                                     
  112758:	31 c0                	xor    %eax,%eax                      
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
                                                                      
  return true;                                                        
}                                                                     
  11275a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11275d:	5b                   	pop    %ebx                           
  11275e:	5e                   	pop    %esi                           
  11275f:	5f                   	pop    %edi                           
  112760:	c9                   	leave                                 
  112761:	c3                   	ret                                   
                                                                      

00112e00 <_POSIX_signals_Clear_process_signals>: */ void _POSIX_signals_Clear_process_signals( int signo ) {
  112e00:	55                   	push   %ebp                           
  112e01:	89 e5                	mov    %esp,%ebp                      
  112e03:	53                   	push   %ebx                           
  112e04:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  clear_signal = true;                                                
  mask         = signo_to_mask( signo );                              
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
  112e07:	9c                   	pushf                                 
  112e08:	fa                   	cli                                   
  112e09:	5a                   	pop    %edx                           
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
  112e0a:	8d 04 49             	lea    (%ecx,%ecx,2),%eax             
  112e0d:	c1 e0 02             	shl    $0x2,%eax                      
  112e10:	83 b8 00 7e 12 00 02 	cmpl   $0x2,0x127e00(%eax)            
  112e17:	74 13                	je     112e2c <_POSIX_signals_Clear_process_signals+0x2c>
  112e19:	49                   	dec    %ecx                           
  112e1a:	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;                                
  112e1f:	d3 c0                	rol    %cl,%eax                       
  112e21:	21 05 08 80 12 00    	and    %eax,0x128008                  
    }                                                                 
  _ISR_Enable( level );                                               
  112e27:	52                   	push   %edx                           
  112e28:	9d                   	popf                                  
}                                                                     
  112e29:	5b                   	pop    %ebx                           
  112e2a:	c9                   	leave                                 
  112e2b:	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 );                            
  112e2c:	8d 98 24 80 12 00    	lea    0x128024(%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 ] ) )     
  112e32:	39 98 20 80 12 00    	cmp    %ebx,0x128020(%eax)            
  112e38:	75 ed                	jne    112e27 <_POSIX_signals_Clear_process_signals+0x27><== NEVER TAKEN
  112e3a:	eb dd                	jmp    112e19 <_POSIX_signals_Clear_process_signals+0x19>
                                                                      

00112764 <_POSIX_signals_Clear_signals>: int signo, siginfo_t *info, bool is_global, bool check_blocked ) {
  112764:	55                   	push   %ebp                           
  112765:	89 e5                	mov    %esp,%ebp                      
  112767:	57                   	push   %edi                           
  112768:	56                   	push   %esi                           
  112769:	53                   	push   %ebx                           
  11276a:	83 ec 1c             	sub    $0x1c,%esp                     
  11276d:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  112770:	0f b6 7d 14          	movzbl 0x14(%ebp),%edi                
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  112774:	8d 4b ff             	lea    -0x1(%ebx),%ecx                
  112777:	b8 01 00 00 00       	mov    $0x1,%eax                      
  11277c:	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 )                                                
  11277e:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)                
  112782:	74 40                	je     1127c4 <_POSIX_signals_Clear_signals+0x60>
    signals_blocked = ~api->signals_blocked;                          
  112784:	8b 55 08             	mov    0x8(%ebp),%edx                 
  112787:	8b 8a d0 00 00 00    	mov    0xd0(%edx),%ecx                
  11278d:	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 );                                              
  11278f:	9c                   	pushf                                 
  112790:	fa                   	cli                                   
  112791:	8f 45 e4             	popl   -0x1c(%ebp)                    
    if ( is_global ) {                                                
  112794:	89 fa                	mov    %edi,%edx                      
  112796:	84 d2                	test   %dl,%dl                        
  112798:	74 32                	je     1127cc <_POSIX_signals_Clear_signals+0x68>
       if ( mask & (_POSIX_signals_Pending & signals_blocked) ) {     
  11279a:	23 05 08 80 12 00    	and    0x128008,%eax                  
  1127a0:	85 c8                	test   %ecx,%eax                      
  1127a2:	74 54                	je     1127f8 <_POSIX_signals_Clear_signals+0x94>
         if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
  1127a4:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx             
  1127a7:	c1 e2 02             	shl    $0x2,%edx                      
  1127aa:	83 ba 00 7e 12 00 02 	cmpl   $0x2,0x127e00(%edx)            
  1127b1:	74 49                	je     1127fc <_POSIX_signals_Clear_signals+0x98>
               &psiginfo->Node                                        
             );                                                       
           } else                                                     
             do_callout = false;                                      
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
  1127b3:	83 ec 0c             	sub    $0xc,%esp                      
  1127b6:	53                   	push   %ebx                           
  1127b7:	e8 44 06 00 00       	call   112e00 <_POSIX_signals_Clear_process_signals>
  1127bc:	83 c4 10             	add    $0x10,%esp                     
         do_callout = true;                                           
  1127bf:	b0 01                	mov    $0x1,%al                       
  1127c1:	eb 26                	jmp    1127e9 <_POSIX_signals_Clear_signals+0x85>
  1127c3:	90                   	nop                                   
   */                                                                 
                                                                      
  if ( check_blocked )                                                
    signals_blocked = ~api->signals_blocked;                          
  else                                                                
    signals_blocked = SIGNAL_ALL_MASK;                                
  1127c4:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx               
  1127c9:	eb c4                	jmp    11278f <_POSIX_signals_Clear_signals+0x2b>
  1127cb:	90                   	nop                                   
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
         do_callout = true;                                           
       }                                                              
    } else {                                                          
      if ( mask & (api->signals_pending & signals_blocked) ) {        
  1127cc:	8b 55 08             	mov    0x8(%ebp),%edx                 
  1127cf:	8b 9a d4 00 00 00    	mov    0xd4(%edx),%ebx                
  1127d5:	89 c6                	mov    %eax,%esi                      
  1127d7:	21 de                	and    %ebx,%esi                      
  1127d9:	85 ce                	test   %ecx,%esi                      
  1127db:	74 1b                	je     1127f8 <_POSIX_signals_Clear_signals+0x94>
        api->signals_pending &= ~mask;                                
  1127dd:	f7 d0                	not    %eax                           
  1127df:	21 d8                	and    %ebx,%eax                      
  1127e1:	89 82 d4 00 00 00    	mov    %eax,0xd4(%edx)                
        do_callout = true;                                            
  1127e7:	b0 01                	mov    $0x1,%al                       
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  1127e9:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  1127ec:	9d                   	popf                                  
  return do_callout;                                                  
}                                                                     
  1127ed:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1127f0:	5b                   	pop    %ebx                           
  1127f1:	5e                   	pop    %esi                           
  1127f2:	5f                   	pop    %edi                           
  1127f3:	c9                   	leave                                 
  1127f4:	c3                   	ret                                   
  1127f5:	8d 76 00             	lea    0x0(%esi),%esi                 
  bool                        do_callout;                             
  POSIX_signals_Siginfo_node *psiginfo;                               
                                                                      
  mask = signo_to_mask( signo );                                      
                                                                      
  do_callout = false;                                                 
  1127f8:	31 c0                	xor    %eax,%eax                      
  1127fa:	eb ed                	jmp    1127e9 <_POSIX_signals_Clear_signals+0x85>
        do_callout = true;                                            
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  return do_callout;                                                  
}                                                                     
  1127fc:	8d 8a 20 80 12 00    	lea    0x128020(%edx),%ecx            
  112802:	8b 82 20 80 12 00    	mov    0x128020(%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 );                            
  112808:	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))                                   
  11280b:	39 f0                	cmp    %esi,%eax                      
  11280d:	74 45                	je     112854 <_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;                            
  11280f:	8b 30                	mov    (%eax),%esi                    
                                                                      
  head->next = new_first;                                             
  112811:	89 b2 20 80 12 00    	mov    %esi,0x128020(%edx)            
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  112817:	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 );             
  11281a:	83 ec 0c             	sub    $0xc,%esp                      
  11281d:	53                   	push   %ebx                           
  11281e:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  112821:	e8 da 05 00 00       	call   112e00 <_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;                                  
  112826:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  112829:	8d 70 08             	lea    0x8(%eax),%esi                 
  11282c:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  112831:	8b 7d 10             	mov    0x10(%ebp),%edi                
  112834:	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;                              
  112836:	8b 15 88 7f 12 00    	mov    0x127f88,%edx                  
                                                                      
  the_node->next = tail;                                              
  11283c:	c7 00 84 7f 12 00    	movl   $0x127f84,(%eax)               
  tail->previous = the_node;                                          
  112842:	a3 88 7f 12 00       	mov    %eax,0x127f88                  
  old_last->next = the_node;                                          
  112847:	89 02                	mov    %eax,(%edx)                    
  the_node->previous = old_last;                                      
  112849:	89 50 04             	mov    %edx,0x4(%eax)                 
  11284c:	83 c4 10             	add    $0x10,%esp                     
  11284f:	e9 5f ff ff ff       	jmp    1127b3 <_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 );             
  112854:	83 ec 0c             	sub    $0xc,%esp                      
  112857:	53                   	push   %ebx                           
  112858:	e8 a3 05 00 00       	call   112e00 <_POSIX_signals_Clear_process_signals>
  11285d:	83 c4 10             	add    $0x10,%esp                     
  112860:	e9 4e ff ff ff       	jmp    1127b3 <_POSIX_signals_Clear_signals+0x4f>
                                                                      

0010b670 <_POSIX_signals_Get_lowest>: #include <rtems/score/isr.h> int _POSIX_signals_Get_lowest( sigset_t set ) {
  10b670:	55                   	push   %ebp                           
  10b671:	89 e5                	mov    %esp,%ebp                      
  10b673:	56                   	push   %esi                           
  10b674:	53                   	push   %ebx                           
  10b675:	8b 55 08             	mov    0x8(%ebp),%edx                 
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
  10b678:	b8 1b 00 00 00       	mov    $0x1b,%eax                     
  10b67d:	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(                                        
  10b682:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10b685:	89 de                	mov    %ebx,%esi                      
  10b687:	d3 e6                	shl    %cl,%esi                       
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
    if ( set & signo_to_mask( signo ) ) {                             
  10b689:	85 d6                	test   %edx,%esi                      
  10b68b:	75 20                	jne    10b6ad <_POSIX_signals_Get_lowest+0x3d><== NEVER TAKEN
  sigset_t   set                                                      
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
  10b68d:	40                   	inc    %eax                           
  10b68e:	83 f8 20             	cmp    $0x20,%eax                     
  10b691:	75 ef                	jne    10b682 <_POSIX_signals_Get_lowest+0x12>
  10b693:	b0 01                	mov    $0x1,%al                       
  10b695:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  10b69a:	eb 06                	jmp    10b6a2 <_POSIX_signals_Get_lowest+0x32>
   */                                                                 
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
  10b69c:	40                   	inc    %eax                           
  10b69d:	83 f8 1b             	cmp    $0x1b,%eax                     
  10b6a0:	74 0b                	je     10b6ad <_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(                                        
  10b6a2:	8d 48 ff             	lea    -0x1(%eax),%ecx                
  10b6a5:	89 de                	mov    %ebx,%esi                      
  10b6a7:	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 ) ) {                             
  10b6a9:	85 d6                	test   %edx,%esi                      
  10b6ab:	74 ef                	je     10b69c <_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;                                                       
}                                                                     
  10b6ad:	5b                   	pop    %ebx                           
  10b6ae:	5e                   	pop    %esi                           
  10b6af:	c9                   	leave                                 
  10b6b0:	c3                   	ret                                   
                                                                      

001247cc <_POSIX_signals_Unblock_thread>: bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) {
  1247cc:	55                   	push   %ebp                           
  1247cd:	89 e5                	mov    %esp,%ebp                      
  1247cf:	57                   	push   %edi                           
  1247d0:	56                   	push   %esi                           
  1247d1:	53                   	push   %ebx                           
  1247d2:	83 ec 0c             	sub    $0xc,%esp                      
  1247d5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  1247d8:	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 ];               
  1247db:	8b b3 ec 00 00 00    	mov    0xec(%ebx),%esi                
  1247e1:	8d 4a ff             	lea    -0x1(%edx),%ecx                
  1247e4:	b8 01 00 00 00       	mov    $0x1,%eax                      
  1247e9:	d3 e0                	shl    %cl,%eax                       
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
  1247eb:	8b 4b 10             	mov    0x10(%ebx),%ecx                
  1247ee:	89 cf                	mov    %ecx,%edi                      
  1247f0:	81 e7 00 80 00 10    	and    $0x10008000,%edi               
  1247f6:	81 ff 00 80 00 10    	cmp    $0x10008000,%edi               
  1247fc:	74 72                	je     124870 <_POSIX_signals_Unblock_thread+0xa4>
  }                                                                   
                                                                      
  /*                                                                  
   *  Thread is not waiting due to a sigwait.                         
   */                                                                 
  if ( ~api->signals_blocked & mask ) {                               
  1247fe:	8b 96 d0 00 00 00    	mov    0xd0(%esi),%edx                
  124804:	f7 d2                	not    %edx                           
  124806:	85 d0                	test   %edx,%eax                      
  124808:	74 5a                	je     124864 <_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 ) ) {
  12480a:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx               
  124810:	74 3a                	je     12484c <_POSIX_signals_Unblock_thread+0x80>
      the_thread->Wait.return_code = EINTR;                           
  124812:	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) )
  124819:	f7 c1 e0 be 03 00    	test   $0x3bee0,%ecx                  
  12481f:	0f 85 93 00 00 00    	jne    1248b8 <_POSIX_signals_Unblock_thread+0xec>
         _Thread_queue_Extract_with_proxy( the_thread );              
       else if ( _States_Is_delaying(the_thread->current_state) ) {   
  124825:	83 e1 08             	and    $0x8,%ecx                      
  124828:	74 3a                	je     124864 <_POSIX_signals_Unblock_thread+0x98><== NEVER TAKEN
          (void) _Watchdog_Remove( &the_thread->Timer );              
  12482a:	83 ec 0c             	sub    $0xc,%esp                      
  12482d:	8d 43 48             	lea    0x48(%ebx),%eax                
  124830:	50                   	push   %eax                           
  124831:	e8 9e e4 fe ff       	call   112cd4 <_Watchdog_Remove>      
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  124836:	5a                   	pop    %edx                           
  124837:	59                   	pop    %ecx                           
  124838:	68 f8 ff 03 10       	push   $0x1003fff8                    
  12483d:	53                   	push   %ebx                           
  12483e:	e8 79 d2 fe ff       	call   111abc <_Thread_Clear_state>   
  124843:	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;                                                       
  124846:	31 c0                	xor    %eax,%eax                      
  124848:	eb 1c                	jmp    124866 <_POSIX_signals_Unblock_thread+0x9a>
  12484a:	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 ) {         
  12484c:	85 c9                	test   %ecx,%ecx                      
  12484e:	75 14                	jne    124864 <_POSIX_signals_Unblock_thread+0x98><== NEVER TAKEN
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  124850:	a1 34 dc 12 00       	mov    0x12dc34,%eax                  
  124855:	85 c0                	test   %eax,%eax                      
  124857:	74 0b                	je     124864 <_POSIX_signals_Unblock_thread+0x98>
  124859:	3b 1d 38 dc 12 00    	cmp    0x12dc38,%ebx                  
  12485f:	74 7b                	je     1248dc <_POSIX_signals_Unblock_thread+0x110><== ALWAYS TAKEN
  124861:	8d 76 00             	lea    0x0(%esi),%esi                 
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
  124864:	31 c0                	xor    %eax,%eax                      
}                                                                     
  124866:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124869:	5b                   	pop    %ebx                           
  12486a:	5e                   	pop    %esi                           
  12486b:	5f                   	pop    %edi                           
  12486c:	c9                   	leave                                 
  12486d:	c3                   	ret                                   
  12486e:	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) ) {
  124870:	85 43 30             	test   %eax,0x30(%ebx)                
  124873:	74 33                	je     1248a8 <_POSIX_signals_Unblock_thread+0xdc>
      the_thread->Wait.return_code = EINTR;                           
  124875:	c7 43 34 04 00 00 00 	movl   $0x4,0x34(%ebx)                
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
  12487c:	8b 43 28             	mov    0x28(%ebx),%eax                
                                                                      
      if ( !info ) {                                                  
  12487f:	8b 75 10             	mov    0x10(%ebp),%esi                
  124882:	85 f6                	test   %esi,%esi                      
  124884:	74 42                	je     1248c8 <_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;                                            
  124886:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  12488b:	89 c7                	mov    %eax,%edi                      
  12488d:	8b 75 10             	mov    0x10(%ebp),%esi                
  124890:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
      }                                                               
                                                                      
      _Thread_queue_Extract_with_proxy( the_thread );                 
  124892:	83 ec 0c             	sub    $0xc,%esp                      
  124895:	53                   	push   %ebx                           
  124896:	e8 3d dc fe ff       	call   1124d8 <_Thread_queue_Extract_with_proxy>
      return true;                                                    
  12489b:	83 c4 10             	add    $0x10,%esp                     
  12489e:	b0 01                	mov    $0x1,%al                       
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
}                                                                     
  1248a0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1248a3:	5b                   	pop    %ebx                           
  1248a4:	5e                   	pop    %esi                           
  1248a5:	5f                   	pop    %edi                           
  1248a6:	c9                   	leave                                 
  1248a7:	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) ) {
  1248a8:	8b 8e d0 00 00 00    	mov    0xd0(%esi),%ecx                
  1248ae:	f7 d1                	not    %ecx                           
  1248b0:	85 c8                	test   %ecx,%eax                      
  1248b2:	75 c1                	jne    124875 <_POSIX_signals_Unblock_thread+0xa9>
  1248b4:	eb ae                	jmp    124864 <_POSIX_signals_Unblock_thread+0x98>
  1248b6:	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 );              
  1248b8:	83 ec 0c             	sub    $0xc,%esp                      
  1248bb:	53                   	push   %ebx                           
  1248bc:	e8 17 dc fe ff       	call   1124d8 <_Thread_queue_Extract_with_proxy>
  1248c1:	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;                                                       
  1248c4:	31 c0                	xor    %eax,%eax                      
  1248c6:	eb 9e                	jmp    124866 <_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;                                   
  1248c8:	89 10                	mov    %edx,(%eax)                    
        the_info->si_code = SI_USER;                                  
  1248ca:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)                 
        the_info->si_value.sival_int = 0;                             
  1248d1:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)                 
  1248d8:	eb b8                	jmp    124892 <_POSIX_signals_Unblock_thread+0xc6>
  1248da:	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;                            
  1248dc:	c6 05 44 dc 12 00 01 	movb   $0x1,0x12dc44                  
    }                                                                 
  }                                                                   
  return false;                                                       
  1248e3:	31 c0                	xor    %eax,%eax                      
  1248e5:	e9 7c ff ff ff       	jmp    124866 <_POSIX_signals_Unblock_thread+0x9a>
                                                                      

0010cba0 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
  10cba0:	55                   	push   %ebp                           
  10cba1:	89 e5                	mov    %esp,%ebp                      
  10cba3:	56                   	push   %esi                           
  10cba4:	53                   	push   %ebx                           
  10cba5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10cba8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !the_heap )                                                    
  10cbab:	85 db                	test   %ebx,%ebx                      
  10cbad:	74 35                	je     10cbe4 <_Protected_heap_Get_information+0x44>
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
  10cbaf:	85 f6                	test   %esi,%esi                      
  10cbb1:	74 31                	je     10cbe4 <_Protected_heap_Get_information+0x44>
    return false;                                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  10cbb3:	83 ec 0c             	sub    $0xc,%esp                      
  10cbb6:	ff 35 20 82 12 00    	pushl  0x128220                       
  10cbbc:	e8 87 ef ff ff       	call   10bb48 <_API_Mutex_Lock>       
    _Heap_Get_information( the_heap, the_info );                      
  10cbc1:	5a                   	pop    %edx                           
  10cbc2:	59                   	pop    %ecx                           
  10cbc3:	56                   	push   %esi                           
  10cbc4:	53                   	push   %ebx                           
  10cbc5:	e8 42 4f 00 00       	call   111b0c <_Heap_Get_information> 
  _RTEMS_Unlock_allocator();                                          
  10cbca:	58                   	pop    %eax                           
  10cbcb:	ff 35 20 82 12 00    	pushl  0x128220                       
  10cbd1:	e8 ba ef ff ff       	call   10bb90 <_API_Mutex_Unlock>     
                                                                      
  return true;                                                        
  10cbd6:	83 c4 10             	add    $0x10,%esp                     
  10cbd9:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10cbdb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cbde:	5b                   	pop    %ebx                           
  10cbdf:	5e                   	pop    %esi                           
  10cbe0:	c9                   	leave                                 
  10cbe1:	c3                   	ret                                   
  10cbe2:	66 90                	xchg   %ax,%ax                        
{                                                                     
  if ( !the_heap )                                                    
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
    return false;                                                     
  10cbe4:	31 c0                	xor    %eax,%eax                      
  _RTEMS_Lock_allocator();                                            
    _Heap_Get_information( the_heap, the_info );                      
  _RTEMS_Unlock_allocator();                                          
                                                                      
  return true;                                                        
}                                                                     
  10cbe6:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cbe9:	5b                   	pop    %ebx                           
  10cbea:	5e                   	pop    %esi                           
  10cbeb:	c9                   	leave                                 
  10cbec:	c3                   	ret                                   
                                                                      

00110048 <_Protected_heap_Walk>: bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) {
  110048:	55                   	push   %ebp                           
  110049:	89 e5                	mov    %esp,%ebp                      
  11004b:	56                   	push   %esi                           
  11004c:	53                   	push   %ebx                           
  11004d:	83 ec 10             	sub    $0x10,%esp                     
  110050:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  110053:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  110056:	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 ) {                            
  110059:	8b 15 0c de 12 00    	mov    0x12de0c,%edx                  
  11005f:	85 d2                	test   %edx,%edx                      
  110061:	74 19                	je     11007c <_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 );                 
  110063:	0f b6 c0             	movzbl %al,%eax                       
  110066:	89 45 10             	mov    %eax,0x10(%ebp)                
  110069:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  11006c:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
  return status;                                                      
}                                                                     
  11006f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110072:	5b                   	pop    %ebx                           
  110073:	5e                   	pop    %esi                           
  110074:	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 );                 
  110075:	e9 22 f2 ff ff       	jmp    10f29c <_Heap_Walk>            
  11007a:	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();                                          
  11007c:	83 ec 0c             	sub    $0xc,%esp                      
  11007f:	ff 35 c0 de 12 00    	pushl  0x12dec0                       
  110085:	88 45 f4             	mov    %al,-0xc(%ebp)                 
  110088:	e8 d3 e4 ff ff       	call   10e560 <_API_Mutex_Lock>       
      status = _Heap_Walk( the_heap, source, do_dump );               
  11008d:	83 c4 0c             	add    $0xc,%esp                      
  110090:	8a 45 f4             	mov    -0xc(%ebp),%al                 
  110093:	0f b6 c0             	movzbl %al,%eax                       
  110096:	50                   	push   %eax                           
  110097:	56                   	push   %esi                           
  110098:	53                   	push   %ebx                           
  110099:	e8 fe f1 ff ff       	call   10f29c <_Heap_Walk>            
    _RTEMS_Unlock_allocator();                                        
  11009e:	5a                   	pop    %edx                           
  11009f:	ff 35 c0 de 12 00    	pushl  0x12dec0                       
  1100a5:	88 45 f4             	mov    %al,-0xc(%ebp)                 
  1100a8:	e8 fb e4 ff ff       	call   10e5a8 <_API_Mutex_Unlock>     
  1100ad:	83 c4 10             	add    $0x10,%esp                     
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
  }                                                                   
  return status;                                                      
}                                                                     
  1100b0:	8a 45 f4             	mov    -0xc(%ebp),%al                 
  1100b3:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1100b6:	5b                   	pop    %ebx                           
  1100b7:	5e                   	pop    %esi                           
  1100b8:	c9                   	leave                                 
  1100b9:	c3                   	ret                                   
                                                                      

001106f8 <_RTEMS_tasks_Create_extension>: bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) {
  1106f8:	55                   	push   %ebp                           
  1106f9:	89 e5                	mov    %esp,%ebp                      
  1106fb:	53                   	push   %ebx                           
  1106fc:	83 ec 10             	sub    $0x10,%esp                     
  1106ff:	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 );                          
  110702:	80 3d 24 35 12 00 01 	cmpb   $0x1,0x123524                  
  110709:	19 c0                	sbb    %eax,%eax                      
  11070b:	83 e0 c0             	and    $0xffffffc0,%eax               
  11070e:	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 );                           
  110711:	50                   	push   %eax                           
  110712:	e8 45 d6 ff ff       	call   10dd5c <_Workspace_Allocate>   
                                                                      
  if ( !api )                                                         
  110717:	83 c4 10             	add    $0x10,%esp                     
  11071a:	85 c0                	test   %eax,%eax                      
  11071c:	74 6a                	je     110788 <_RTEMS_tasks_Create_extension+0x90>
    return false;                                                     
                                                                      
  created->API_Extensions[ THREAD_API_RTEMS ] = api;                  
  11071e:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)                
                                                                      
  api->pending_events = EVENT_SETS_NONE_PENDING;                      
  110724:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  api->event_condition = 0;                                           
  11072a:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _ASR_Initialize (                           
  ASR_Information *information                                        
)                                                                     
{                                                                     
  information->is_enabled      = false;                               
  110731:	c6 40 08 00          	movb   $0x0,0x8(%eax)                 
  information->handler         = NULL;                                
  110735:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
  information->mode_set        = RTEMS_DEFAULT_MODES;                 
  11073c:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)                
  information->signals_posted  = 0;                                   
  110743:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)                
  information->signals_pending = 0;                                   
  11074a:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  information->nest_level      = 0;                                   
  110751:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)                
  _ASR_Initialize( &api->Signal );                                    
  created->task_variables = NULL;                                     
  110758:	c7 83 f4 00 00 00 00 	movl   $0x0,0xf4(%ebx)                
  11075f:	00 00 00                                                    
                                                                      
  if ( rtems_configuration_get_notepads_enabled() ) {                 
  110762:	80 3d 24 35 12 00 00 	cmpb   $0x0,0x123524                  
  110769:	74 13                	je     11077e <_RTEMS_tasks_Create_extension+0x86>
  11076b:	31 d2                	xor    %edx,%edx                      
  11076d:	8d 76 00             	lea    0x0(%esi),%esi                 
    for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++)                         
      api->Notepads[i] = 0;                                           
  110770:	c7 44 90 20 00 00 00 	movl   $0x0,0x20(%eax,%edx,4)         
  110777:	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++)                         
  110778:	42                   	inc    %edx                           
  110779:	83 fa 10             	cmp    $0x10,%edx                     
  11077c:	75 f2                	jne    110770 <_RTEMS_tasks_Create_extension+0x78>
      api->Notepads[i] = 0;                                           
  }                                                                   
                                                                      
  return true;                                                        
  11077e:	b0 01                	mov    $0x1,%al                       
}                                                                     
  110780:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  110783:	c9                   	leave                                 
  110784:	c3                   	ret                                   
  110785:	8d 76 00             	lea    0x0(%esi),%esi                 
    to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t));        
                                                                      
  api = _Workspace_Allocate( to_allocate );                           
                                                                      
  if ( !api )                                                         
    return false;                                                     
  110788:	31 c0                	xor    %eax,%eax                      
    for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++)                         
      api->Notepads[i] = 0;                                           
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  11078a:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11078d:	c9                   	leave                                 
  11078e:	c3                   	ret                                   
                                                                      

001106a0 <_RTEMS_tasks_Delete_extension>: void _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) {
  1106a0:	55                   	push   %ebp                           
  1106a1:	89 e5                	mov    %esp,%ebp                      
  1106a3:	56                   	push   %esi                           
  1106a4:	53                   	push   %ebx                           
  1106a5:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
  /*                                                                  
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  1106a8:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax                
  deleted->task_variables = NULL;                                     
  1106ae:	c7 86 f4 00 00 00 00 	movl   $0x0,0xf4(%esi)                
  1106b5:	00 00 00                                                    
  while (tvp) {                                                       
  1106b8:	85 c0                	test   %eax,%eax                      
  1106ba:	75 06                	jne    1106c2 <_RTEMS_tasks_Delete_extension+0x22>
  1106bc:	eb 17                	jmp    1106d5 <_RTEMS_tasks_Delete_extension+0x35>
  1106be:	66 90                	xchg   %ax,%ax                        
    next = (rtems_task_variable_t *)tvp->next;                        
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
    tvp = next;                                                       
  1106c0:	89 d8                	mov    %ebx,%eax                      
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
    next = (rtems_task_variable_t *)tvp->next;                        
  1106c2:	8b 18                	mov    (%eax),%ebx                    
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
  1106c4:	83 ec 08             	sub    $0x8,%esp                      
  1106c7:	50                   	push   %eax                           
  1106c8:	56                   	push   %esi                           
  1106c9:	e8 56 01 00 00       	call   110824 <_RTEMS_Tasks_Invoke_task_variable_dtor>
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
  1106ce:	83 c4 10             	add    $0x10,%esp                     
  1106d1:	85 db                	test   %ebx,%ebx                      
  1106d3:	75 eb                	jne    1106c0 <_RTEMS_tasks_Delete_extension+0x20>
                                                                      
  /*                                                                  
   *  Free API specific memory                                        
   */                                                                 
                                                                      
  (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] );
  1106d5:	83 ec 0c             	sub    $0xc,%esp                      
  1106d8:	ff b6 e8 00 00 00    	pushl  0xe8(%esi)                     
  1106de:	e8 95 d6 ff ff       	call   10dd78 <_Workspace_Free>       
  deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL;                 
  1106e3:	c7 86 e8 00 00 00 00 	movl   $0x0,0xe8(%esi)                
  1106ea:	00 00 00                                                    
  1106ed:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  1106f0:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1106f3:	5b                   	pop    %ebx                           
  1106f4:	5e                   	pop    %esi                           
  1106f5:	c9                   	leave                                 
  1106f6:	c3                   	ret                                   
                                                                      

00110624 <_RTEMS_tasks_Initialize_user_tasks>: * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) {
  110624:	55                   	push   %ebp                           
  110625:	89 e5                	mov    %esp,%ebp                      
  110627:	83 ec 08             	sub    $0x8,%esp                      
  if ( _RTEMS_tasks_Initialize_user_tasks_p )                         
  11062a:	a1 a0 35 12 00       	mov    0x1235a0,%eax                  
  11062f:	85 c0                	test   %eax,%eax                      
  110631:	74 05                	je     110638 <_RTEMS_tasks_Initialize_user_tasks+0x14>
    (*_RTEMS_tasks_Initialize_user_tasks_p)();                        
}                                                                     
  110633:	c9                   	leave                                 
 */                                                                   
                                                                      
void _RTEMS_tasks_Initialize_user_tasks( void )                       
{                                                                     
  if ( _RTEMS_tasks_Initialize_user_tasks_p )                         
    (*_RTEMS_tasks_Initialize_user_tasks_p)();                        
  110634:	ff e0                	jmp    *%eax                          
  110636:	66 90                	xchg   %ax,%ax                        
}                                                                     
  110638:	c9                   	leave                                 
  110639:	c3                   	ret                                   
                                                                      

0010af78 <_RTEMS_tasks_Initialize_user_tasks_body>: * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks_body( void ) {
  10af78:	55                   	push   %ebp                           
  10af79:	89 e5                	mov    %esp,%ebp                      
  10af7b:	57                   	push   %edi                           
  10af7c:	56                   	push   %esi                           
  10af7d:	53                   	push   %ebx                           
  10af7e:	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;
  10af81:	8b 1d 4c 35 12 00    	mov    0x12354c,%ebx                  
  maximum    = Configuration_RTEMS_API.number_of_initialization_tasks;
  10af87:	8b 3d 48 35 12 00    	mov    0x123548,%edi                  
                                                                      
  /*                                                                  
   *  Verify that we have a set of user tasks to iterate              
   */                                                                 
  if ( !user_tasks )                                                  
  10af8d:	85 db                	test   %ebx,%ebx                      
  10af8f:	74 46                	je     10afd7 <_RTEMS_tasks_Initialize_user_tasks_body+0x5f>
    return;                                                           
                                                                      
  /*                                                                  
   *  Now iterate over the initialization tasks and create/start them.
   */                                                                 
  for ( index=0 ; index < maximum ; index++ ) {                       
  10af91:	85 ff                	test   %edi,%edi                      
  10af93:	74 42                	je     10afd7 <_RTEMS_tasks_Initialize_user_tasks_body+0x5f><== NEVER TAKEN
  10af95:	31 f6                	xor    %esi,%esi                      
  10af97:	90                   	nop                                   
    return_value = rtems_task_create(                                 
  10af98:	83 ec 08             	sub    $0x8,%esp                      
  10af9b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10af9e:	50                   	push   %eax                           
  10af9f:	ff 73 0c             	pushl  0xc(%ebx)                      
  10afa2:	ff 73 14             	pushl  0x14(%ebx)                     
  10afa5:	ff 73 04             	pushl  0x4(%ebx)                      
  10afa8:	ff 73 08             	pushl  0x8(%ebx)                      
  10afab:	ff 33                	pushl  (%ebx)                         
  10afad:	e8 92 fd ff ff       	call   10ad44 <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 ) )                
  10afb2:	83 c4 20             	add    $0x20,%esp                     
  10afb5:	85 c0                	test   %eax,%eax                      
  10afb7:	75 26                	jne    10afdf <_RTEMS_tasks_Initialize_user_tasks_body+0x67>
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, true, return_value );
                                                                      
    return_value = rtems_task_start(                                  
  10afb9:	51                   	push   %ecx                           
  10afba:	ff 73 18             	pushl  0x18(%ebx)                     
  10afbd:	ff 73 10             	pushl  0x10(%ebx)                     
  10afc0:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10afc3:	e8 24 00 00 00       	call   10afec <rtems_task_start>      
      id,                                                             
      user_tasks[ index ].entry_point,                                
      user_tasks[ index ].argument                                    
    );                                                                
    if ( !rtems_is_status_successful( return_value ) )                
  10afc8:	83 c4 10             	add    $0x10,%esp                     
  10afcb:	85 c0                	test   %eax,%eax                      
  10afcd:	75 10                	jne    10afdf <_RTEMS_tasks_Initialize_user_tasks_body+0x67>
    return;                                                           
                                                                      
  /*                                                                  
   *  Now iterate over the initialization tasks and create/start them.
   */                                                                 
  for ( index=0 ; index < maximum ; index++ ) {                       
  10afcf:	46                   	inc    %esi                           
  10afd0:	83 c3 1c             	add    $0x1c,%ebx                     
  10afd3:	39 f7                	cmp    %esi,%edi                      
  10afd5:	77 c1                	ja     10af98 <_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 );
  }                                                                   
}                                                                     
  10afd7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10afda:	5b                   	pop    %ebx                           
  10afdb:	5e                   	pop    %esi                           
  10afdc:	5f                   	pop    %edi                           
  10afdd:	c9                   	leave                                 
  10afde:	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 );
  10afdf:	52                   	push   %edx                           
  10afe0:	50                   	push   %eax                           
  10afe1:	6a 01                	push   $0x1                           
  10afe3:	6a 01                	push   $0x1                           
  10afe5:	e8 ca 0c 00 00       	call   10bcb4 <_Internal_error_Occurred>
                                                                      

001105dc <_RTEMS_tasks_Switch_extension>: void _RTEMS_tasks_Switch_extension( Thread_Control *executing, Thread_Control *heir ) {
  1105dc:	55                   	push   %ebp                           
  1105dd:	89 e5                	mov    %esp,%ebp                      
                                                                      
  /*                                                                  
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  1105df:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1105e2:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
  while (tvp) {                                                       
  1105e8:	85 c0                	test   %eax,%eax                      
  1105ea:	74 13                	je     1105ff <_RTEMS_tasks_Switch_extension+0x23>
    tvp->tval = *tvp->ptr;                                            
  1105ec:	8b 50 04             	mov    0x4(%eax),%edx                 
  1105ef:	8b 0a                	mov    (%edx),%ecx                    
  1105f1:	89 48 0c             	mov    %ecx,0xc(%eax)                 
    *tvp->ptr = tvp->gval;                                            
  1105f4:	8b 48 08             	mov    0x8(%eax),%ecx                 
  1105f7:	89 0a                	mov    %ecx,(%edx)                    
    tvp = (rtems_task_variable_t *)tvp->next;                         
  1105f9:	8b 00                	mov    (%eax),%eax                    
  /*                                                                  
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  while (tvp) {                                                       
  1105fb:	85 c0                	test   %eax,%eax                      
  1105fd:	75 ed                	jne    1105ec <_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;                                         
  1105ff:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  110602:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
  while (tvp) {                                                       
  110608:	85 c0                	test   %eax,%eax                      
  11060a:	74 13                	je     11061f <_RTEMS_tasks_Switch_extension+0x43>
    tvp->gval = *tvp->ptr;                                            
  11060c:	8b 50 04             	mov    0x4(%eax),%edx                 
  11060f:	8b 0a                	mov    (%edx),%ecx                    
  110611:	89 48 08             	mov    %ecx,0x8(%eax)                 
    *tvp->ptr = tvp->tval;                                            
  110614:	8b 48 0c             	mov    0xc(%eax),%ecx                 
  110617:	89 0a                	mov    %ecx,(%edx)                    
    tvp = (rtems_task_variable_t *)tvp->next;                         
  110619:	8b 00                	mov    (%eax),%eax                    
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  while (tvp) {                                                       
  11061b:	85 c0                	test   %eax,%eax                      
  11061d:	75 ed                	jne    11060c <_RTEMS_tasks_Switch_extension+0x30><== NEVER TAKEN
    tvp->gval = *tvp->ptr;                                            
    *tvp->ptr = tvp->tval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
}                                                                     
  11061f:	c9                   	leave                                 
  110620:	c3                   	ret                                   
                                                                      

0010b9d8 <_Rate_monotonic_Initiate_statistics>: } void _Rate_monotonic_Initiate_statistics( Rate_monotonic_Control *the_period ) {
  10b9d8:	55                   	push   %ebp                           
  10b9d9:	89 e5                	mov    %esp,%ebp                      
  10b9db:	57                   	push   %edi                           
  10b9dc:	56                   	push   %esi                           
  10b9dd:	53                   	push   %ebx                           
  10b9de:	83 ec 28             	sub    $0x28,%esp                     
  10b9e1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Thread_Control *owning_thread = the_period->owner;                  
  10b9e4:	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 );                                       
  10b9e7:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10b9ea:	57                   	push   %edi                           
  10b9eb:	e8 60 17 00 00       	call   10d150 <_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;                       
  10b9f0:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10b9f3:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10b9f6:	89 43 4c             	mov    %eax,0x4c(%ebx)                
  10b9f9:	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;
  10b9fc:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax                
  10ba02:	8b 96 88 00 00 00    	mov    0x88(%esi),%edx                
  10ba08:	89 43 44             	mov    %eax,0x44(%ebx)                
  10ba0b:	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) {                         
  10ba0e:	83 c4 10             	add    $0x10,%esp                     
  10ba11:	39 35 18 b1 12 00    	cmp    %esi,0x12b118                  
  10ba17:	74 0b                	je     10ba24 <_Rate_monotonic_Initiate_statistics+0x4c>
      );                                                              
                                                                      
      _Timespec_Add_to( &the_period->cpu_usage_period_initiated, &ran );
    }                                                                 
  #endif                                                              
}                                                                     
  10ba19:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba1c:	5b                   	pop    %ebx                           
  10ba1d:	5e                   	pop    %esi                           
  10ba1e:	5f                   	pop    %edi                           
  10ba1f:	c9                   	leave                                 
  10ba20:	c3                   	ret                                   
  10ba21:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      /*                                                              
       *  Adjust the CPU time used to account for the time since last 
       *  context switch.                                             
       */                                                             
      _Timespec_Subtract(                                             
  10ba24:	50                   	push   %eax                           
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
  10ba25:	8d 75 d8             	lea    -0x28(%ebp),%esi               
                                                                      
      /*                                                              
       *  Adjust the CPU time used to account for the time since last 
       *  context switch.                                             
       */                                                             
      _Timespec_Subtract(                                             
  10ba28:	56                   	push   %esi                           
  10ba29:	57                   	push   %edi                           
  10ba2a:	68 2c ac 12 00       	push   $0x12ac2c                      
  10ba2f:	e8 8c 38 00 00       	call   10f2c0 <_Timespec_Subtract>    
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      _Timespec_Add_to( &the_period->cpu_usage_period_initiated, &ran );
  10ba34:	59                   	pop    %ecx                           
  10ba35:	5f                   	pop    %edi                           
  10ba36:	56                   	push   %esi                           
  10ba37:	83 c3 44             	add    $0x44,%ebx                     
  10ba3a:	53                   	push   %ebx                           
  10ba3b:	e8 84 37 00 00       	call   10f1c4 <_Timespec_Add_to>      
  10ba40:	83 c4 10             	add    $0x10,%esp                     
    }                                                                 
  #endif                                                              
}                                                                     
  10ba43:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba46:	5b                   	pop    %ebx                           
  10ba47:	5e                   	pop    %esi                           
  10ba48:	5f                   	pop    %edi                           
  10ba49:	c9                   	leave                                 
  10ba4a:	c3                   	ret                                   
                                                                      

0010bf94 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) {
  10bf94:	55                   	push   %ebp                           
  10bf95:	89 e5                	mov    %esp,%ebp                      
  10bf97:	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 );                  
  10bf9a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bf9d:	50                   	push   %eax                           
  10bf9e:	ff 75 08             	pushl  0x8(%ebp)                      
  10bfa1:	68 80 aa 12 00       	push   $0x12aa80                      
  10bfa6:	e8 39 1c 00 00       	call   10dbe4 <_Objects_Get>          
  switch ( location ) {                                               
  10bfab:	83 c4 10             	add    $0x10,%esp                     
  10bfae:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bfb1:	85 d2                	test   %edx,%edx                      
  10bfb3:	75 29                	jne    10bfde <_Rate_monotonic_Timeout+0x4a><== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      the_thread = the_period->owner;                                 
  10bfb5:	8b 50 40             	mov    0x40(%eax),%edx                
      if ( _States_Is_waiting_for_period( the_thread->current_state ) &&
  10bfb8:	f6 42 11 40          	testb  $0x40,0x11(%edx)               
  10bfbc:	74 08                	je     10bfc6 <_Rate_monotonic_Timeout+0x32>
  10bfbe:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10bfc1:	39 4a 20             	cmp    %ecx,0x20(%edx)                
  10bfc4:	74 4e                	je     10c014 <_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 ) {
  10bfc6:	83 78 38 01          	cmpl   $0x1,0x38(%eax)                
  10bfca:	74 14                	je     10bfe0 <_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;                   
  10bfcc:	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;                                
  10bfd3:	a1 6c ab 12 00       	mov    0x12ab6c,%eax                  
  10bfd8:	48                   	dec    %eax                           
  10bfd9:	a3 6c ab 12 00       	mov    %eax,0x12ab6c                  
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
  10bfde:	c9                   	leave                                 
  10bfdf:	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;    
  10bfe0:	c7 40 38 03 00 00 00 	movl   $0x3,0x38(%eax)                
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
  10bfe7:	83 ec 0c             	sub    $0xc,%esp                      
  10bfea:	50                   	push   %eax                           
  10bfeb:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10bfee:	e8 e5 f9 ff ff       	call   10b9d8 <_Rate_monotonic_Initiate_statistics>
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10bff3:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10bff6:	8b 50 3c             	mov    0x3c(%eax),%edx                
  10bff9:	89 50 1c             	mov    %edx,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10bffc:	5a                   	pop    %edx                           
  10bffd:	59                   	pop    %ecx                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
  10bffe:	83 c0 10             	add    $0x10,%eax                     
  10c001:	50                   	push   %eax                           
  10c002:	68 40 ac 12 00       	push   $0x12ac40                      
  10c007:	e8 94 35 00 00       	call   10f5a0 <_Watchdog_Insert>      
  10c00c:	83 c4 10             	add    $0x10,%esp                     
  10c00f:	eb c2                	jmp    10bfd3 <_Rate_monotonic_Timeout+0x3f>
  10c011:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10c014:	83 ec 08             	sub    $0x8,%esp                      
  10c017:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10c01c:	52                   	push   %edx                           
  10c01d:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c020:	e8 e3 23 00 00       	call   10e408 <_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 );            
  10c025:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c028:	89 04 24             	mov    %eax,(%esp)                    
  10c02b:	eb c1                	jmp    10bfee <_Rate_monotonic_Timeout+0x5a>
                                                                      

0010ba4c <_Rate_monotonic_Update_statistics>: void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period ) {
  10ba4c:	55                   	push   %ebp                           
  10ba4d:	89 e5                	mov    %esp,%ebp                      
  10ba4f:	57                   	push   %edi                           
  10ba50:	56                   	push   %esi                           
  10ba51:	53                   	push   %ebx                           
  10ba52:	83 ec 1c             	sub    $0x1c,%esp                     
  10ba55:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
                                                                      
  /*                                                                  
   *  Update the counts.                                              
   */                                                                 
  stats = &the_period->Statistics;                                    
  stats->count++;                                                     
  10ba58:	ff 43 54             	incl   0x54(%ebx)                     
                                                                      
  if ( the_period->state == RATE_MONOTONIC_EXPIRED )                  
  10ba5b:	83 7b 38 04          	cmpl   $0x4,0x38(%ebx)                
  10ba5f:	0f 84 bf 00 00 00    	je     10bb24 <_Rate_monotonic_Update_statistics+0xd8>
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10ba65:	51                   	push   %ecx                           
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  10ba66:	8d 7d e0             	lea    -0x20(%ebp),%edi               
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10ba69:	57                   	push   %edi                           
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  10ba6a:	8d 75 d8             	lea    -0x28(%ebp),%esi               
    stats->missed_count++;                                            
                                                                      
  /*                                                                  
   *  Grab status for time statistics.                                
   */                                                                 
  valid_status =                                                      
  10ba6d:	56                   	push   %esi                           
  10ba6e:	53                   	push   %ebx                           
  10ba6f:	e8 cc fe ff ff       	call   10b940 <_Rate_monotonic_Get_status>
    _Rate_monotonic_Get_status( the_period, &since_last_period, &executed );
  if (!valid_status)                                                  
  10ba74:	83 c4 10             	add    $0x10,%esp                     
  10ba77:	84 c0                	test   %al,%al                        
  10ba79:	75 09                	jne    10ba84 <_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                                                              
}                                                                     
  10ba7b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba7e:	5b                   	pop    %ebx                           
  10ba7f:	5e                   	pop    %esi                           
  10ba80:	5f                   	pop    %edi                           
  10ba81:	c9                   	leave                                 
  10ba82:	c3                   	ret                                   
  10ba83:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  Update CPU time                                                 
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Add_to( &stats->total_cpu_time, &executed );           
  10ba84:	83 ec 08             	sub    $0x8,%esp                      
  10ba87:	57                   	push   %edi                           
  10ba88:	8d 43 6c             	lea    0x6c(%ebx),%eax                
  10ba8b:	50                   	push   %eax                           
  10ba8c:	e8 33 37 00 00       	call   10f1c4 <_Timespec_Add_to>      
                                                                      
    if ( _Timestamp_Less_than( &executed, &stats->min_cpu_time ) )    
  10ba91:	58                   	pop    %eax                           
  10ba92:	5a                   	pop    %edx                           
  10ba93:	8d 43 5c             	lea    0x5c(%ebx),%eax                
  10ba96:	50                   	push   %eax                           
  10ba97:	57                   	push   %edi                           
  10ba98:	e8 ff 37 00 00       	call   10f29c <_Timespec_Less_than>   
  10ba9d:	83 c4 10             	add    $0x10,%esp                     
  10baa0:	84 c0                	test   %al,%al                        
  10baa2:	74 0c                	je     10bab0 <_Rate_monotonic_Update_statistics+0x64>
      stats->min_cpu_time = executed;                                 
  10baa4:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10baa7:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10baaa:	89 43 5c             	mov    %eax,0x5c(%ebx)                
  10baad:	89 53 60             	mov    %edx,0x60(%ebx)                
                                                                      
    if ( _Timestamp_Greater_than( &executed, &stats->max_cpu_time ) ) 
  10bab0:	83 ec 08             	sub    $0x8,%esp                      
  10bab3:	8d 43 64             	lea    0x64(%ebx),%eax                
  10bab6:	50                   	push   %eax                           
  10bab7:	57                   	push   %edi                           
  10bab8:	e8 bb 37 00 00       	call   10f278 <_Timespec_Greater_than>
  10babd:	83 c4 10             	add    $0x10,%esp                     
  10bac0:	84 c0                	test   %al,%al                        
  10bac2:	74 0c                	je     10bad0 <_Rate_monotonic_Update_statistics+0x84>
      stats->max_cpu_time = executed;                                 
  10bac4:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10bac7:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10baca:	89 43 64             	mov    %eax,0x64(%ebx)                
  10bacd:	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 ); 
  10bad0:	83 ec 08             	sub    $0x8,%esp                      
  10bad3:	56                   	push   %esi                           
  10bad4:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax                
  10bada:	50                   	push   %eax                           
  10badb:	e8 e4 36 00 00       	call   10f1c4 <_Timespec_Add_to>      
                                                                      
    if ( _Timestamp_Less_than( &since_last_period, &stats->min_wall_time ) )
  10bae0:	5a                   	pop    %edx                           
  10bae1:	59                   	pop    %ecx                           
  10bae2:	8d 43 74             	lea    0x74(%ebx),%eax                
  10bae5:	50                   	push   %eax                           
  10bae6:	56                   	push   %esi                           
  10bae7:	e8 b0 37 00 00       	call   10f29c <_Timespec_Less_than>   
  10baec:	83 c4 10             	add    $0x10,%esp                     
  10baef:	84 c0                	test   %al,%al                        
  10baf1:	75 39                	jne    10bb2c <_Rate_monotonic_Update_statistics+0xe0>
      stats->min_wall_time = since_last_period;                       
                                                                      
    if ( _Timestamp_Greater_than( &since_last_period, &stats->max_wall_time ) )
  10baf3:	83 ec 08             	sub    $0x8,%esp                      
  10baf6:	8d 43 7c             	lea    0x7c(%ebx),%eax                
  10baf9:	50                   	push   %eax                           
  10bafa:	56                   	push   %esi                           
  10bafb:	e8 78 37 00 00       	call   10f278 <_Timespec_Greater_than>
  10bb00:	83 c4 10             	add    $0x10,%esp                     
  10bb03:	84 c0                	test   %al,%al                        
  10bb05:	0f 84 70 ff ff ff    	je     10ba7b <_Rate_monotonic_Update_statistics+0x2f>
      stats->max_wall_time = since_last_period;                       
  10bb0b:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  10bb0e:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10bb11:	89 43 7c             	mov    %eax,0x7c(%ebx)                
  10bb14:	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                                                              
}                                                                     
  10bb1a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bb1d:	5b                   	pop    %ebx                           
  10bb1e:	5e                   	pop    %esi                           
  10bb1f:	5f                   	pop    %edi                           
  10bb20:	c9                   	leave                                 
  10bb21:	c3                   	ret                                   
  10bb22:	66 90                	xchg   %ax,%ax                        
   */                                                                 
  stats = &the_period->Statistics;                                    
  stats->count++;                                                     
                                                                      
  if ( the_period->state == RATE_MONOTONIC_EXPIRED )                  
    stats->missed_count++;                                            
  10bb24:	ff 43 58             	incl   0x58(%ebx)                     
  10bb27:	e9 39 ff ff ff       	jmp    10ba65 <_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;                       
  10bb2c:	8b 45 d8             	mov    -0x28(%ebp),%eax               
  10bb2f:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10bb32:	89 43 74             	mov    %eax,0x74(%ebx)                
  10bb35:	89 53 78             	mov    %edx,0x78(%ebx)                
  10bb38:	eb b9                	jmp    10baf3 <_Rate_monotonic_Update_statistics+0xa7>
                                                                      

0010c55c <_Scheduler_priority_Block>: #include <rtems/score/thread.h> void _Scheduler_priority_Block( Thread_Control *the_thread ) {
  10c55c:	55                   	push   %ebp                           
  10c55d:	89 e5                	mov    %esp,%ebp                      
  10c55f:	53                   	push   %ebx                           
  10c560:	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;
  10c563:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx                
  ready      = sched_info->ready_chain;                               
  10c569:	8b 11                	mov    (%ecx),%edx                    
                                                                      
  if ( _Chain_Has_only_one_node( ready ) ) {                          
  10c56b:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  10c56e:	39 1a                	cmp    %ebx,(%edx)                    
  10c570:	74 6e                	je     10c5e0 <_Scheduler_priority_Block+0x84>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10c572:	8b 08                	mov    (%eax),%ecx                    
  previous       = the_node->previous;                                
  10c574:	8b 50 04             	mov    0x4(%eax),%edx                 
  next->previous = previous;                                          
  10c577:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  10c57a:	89 0a                	mov    %ecx,(%edx)                    
  _Scheduler_priority_Ready_queue_extract( the_thread );              
                                                                      
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
  10c57c:	3b 05 9c 7d 12 00    	cmp    0x127d9c,%eax                  
  10c582:	74 18                	je     10c59c <_Scheduler_priority_Block+0x40>
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
  10c584:	3b 05 98 7d 12 00    	cmp    0x127d98,%eax                  
  10c58a:	74 04                	je     10c590 <_Scheduler_priority_Block+0x34>
    _Thread_Dispatch_necessary = true;                                
                                                                      
}                                                                     
  10c58c:	5b                   	pop    %ebx                           
  10c58d:	c9                   	leave                                 
  10c58e:	c3                   	ret                                   
  10c58f:	90                   	nop                                   
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
    _Thread_Dispatch_necessary = true;                                
  10c590:	c6 05 a4 7d 12 00 01 	movb   $0x1,0x127da4                  
                                                                      
}                                                                     
  10c597:	5b                   	pop    %ebx                           
  10c598:	c9                   	leave                                 
  10c599:	c3                   	ret                                   
  10c59a:	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 );         
  10c59c:	66 8b 1d c0 7d 12 00 	mov    0x127dc0,%bx                   
  10c5a3:	31 d2                	xor    %edx,%edx                      
  10c5a5:	89 d1                	mov    %edx,%ecx                      
  10c5a7:	66 0f bc cb          	bsf    %bx,%cx                        
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
  10c5ab:	0f b7 c9             	movzwl %cx,%ecx                       
  10c5ae:	66 8b 9c 09 e0 7d 12 	mov    0x127de0(%ecx,%ecx,1),%bx      
  10c5b5:	00                                                          
  10c5b6:	66 0f bc d3          	bsf    %bx,%dx                        
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
  10c5ba:	c1 e1 04             	shl    $0x4,%ecx                      
  10c5bd:	0f b7 d2             	movzwl %dx,%edx                       
  10c5c0:	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 ] ) )                
  10c5c3:	8d 14 52             	lea    (%edx,%edx,2),%edx             
  10c5c6:	c1 e2 02             	shl    $0x2,%edx                      
  10c5c9:	03 15 60 34 12 00    	add    0x123460,%edx                  
  10c5cf:	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 );                            
  10c5d1:	83 c2 04             	add    $0x4,%edx                      
  10c5d4:	39 d1                	cmp    %edx,%ecx                      
  10c5d6:	74 44                	je     10c61c <_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(               
  10c5d8:	89 0d 9c 7d 12 00    	mov    %ecx,0x127d9c                  
  10c5de:	eb a4                	jmp    10c584 <_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 );                        
  10c5e0:	8d 5a 04             	lea    0x4(%edx),%ebx                 
  10c5e3:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10c5e5:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)                 
  tail->previous = head;                                              
  10c5ec:	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;          
  10c5ef:	8b 59 04             	mov    0x4(%ecx),%ebx                 
  10c5f2:	66 8b 13             	mov    (%ebx),%dx                     
  10c5f5:	66 23 51 0e          	and    0xe(%ecx),%dx                  
  10c5f9:	66 89 13             	mov    %dx,(%ebx)                     
  if ( *the_priority_map->minor == 0 )                                
  10c5fc:	66 85 d2             	test   %dx,%dx                        
  10c5ff:	0f 85 77 ff ff ff    	jne    10c57c <_Scheduler_priority_Block+0x20>
    _Priority_Major_bit_map &= the_priority_map->block_major;         
  10c605:	66 8b 15 c0 7d 12 00 	mov    0x127dc0,%dx                   
  10c60c:	23 51 0c             	and    0xc(%ecx),%edx                 
  10c60f:	66 89 15 c0 7d 12 00 	mov    %dx,0x127dc0                   
  10c616:	e9 61 ff ff ff       	jmp    10c57c <_Scheduler_priority_Block+0x20>
  10c61b:	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;                                                        
  10c61c:	31 c9                	xor    %ecx,%ecx                      <== NOT EXECUTED
  10c61e:	eb b8                	jmp    10c5d8 <_Scheduler_priority_Block+0x7c><== NOT EXECUTED
                                                                      

0010c770 <_Scheduler_priority_Schedule>: #include <rtems/system.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulerpriority.h> void _Scheduler_priority_Schedule(void) {
  10c770:	55                   	push   %ebp                           
  10c771:	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 );         
  10c773:	66 8b 0d c0 7d 12 00 	mov    0x127dc0,%cx                   
  10c77a:	31 c0                	xor    %eax,%eax                      
  10c77c:	89 c2                	mov    %eax,%edx                      
  10c77e:	66 0f bc d1          	bsf    %cx,%dx                        
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
  10c782:	0f b7 d2             	movzwl %dx,%edx                       
  10c785:	66 8b 8c 12 e0 7d 12 	mov    0x127de0(%edx,%edx,1),%cx      
  10c78c:	00                                                          
  10c78d:	66 0f bc c1          	bsf    %cx,%ax                        
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
  10c791:	c1 e2 04             	shl    $0x4,%edx                      
  10c794:	0f b7 c0             	movzwl %ax,%eax                       
  10c797:	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 ] ) )                
  10c79a:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10c79d:	c1 e0 02             	shl    $0x2,%eax                      
  10c7a0:	03 05 60 34 12 00    	add    0x123460,%eax                  
  _Scheduler_priority_Schedule_body();                                
}                                                                     
  10c7a6:	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 );                            
  10c7a8:	83 c0 04             	add    $0x4,%eax                      
  10c7ab:	39 c2                	cmp    %eax,%edx                      
  10c7ad:	74 09                	je     10c7b8 <_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(               
  10c7af:	89 15 9c 7d 12 00    	mov    %edx,0x127d9c                  
  10c7b5:	c9                   	leave                                 
  10c7b6:	c3                   	ret                                   
  10c7b7:	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;                                                        
  10c7b8:	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(               
  10c7ba:	89 15 9c 7d 12 00    	mov    %edx,0x127d9c                  <== NOT EXECUTED
  10c7c0:	c9                   	leave                                 <== NOT EXECUTED
  10c7c1:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010c894 <_Scheduler_priority_Yield>: * ready chain * select heir */ void _Scheduler_priority_Yield(void) {
  10c894:	55                   	push   %ebp                           
  10c895:	89 e5                	mov    %esp,%ebp                      
  10c897:	56                   	push   %esi                           
  10c898:	53                   	push   %ebx                           
  Scheduler_priority_Per_thread *sched_info;                          
  ISR_Level                      level;                               
  Thread_Control                *executing;                           
  Chain_Control                 *ready;                               
                                                                      
  executing  = _Thread_Executing;                                     
  10c899:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
  sched_info = (Scheduler_priority_Per_thread *) executing->scheduler_info;
  ready      = sched_info->ready_chain;                               
  10c89e:	8b 90 8c 00 00 00    	mov    0x8c(%eax),%edx                
  10c8a4:	8b 12                	mov    (%edx),%edx                    
  _ISR_Disable( level );                                              
  10c8a6:	9c                   	pushf                                 
  10c8a7:	fa                   	cli                                   
  10c8a8:	59                   	pop    %ecx                           
    if ( !_Chain_Has_only_one_node( ready ) ) {                       
  10c8a9:	8b 5a 08             	mov    0x8(%edx),%ebx                 
  10c8ac:	39 1a                	cmp    %ebx,(%edx)                    
  10c8ae:	74 40                	je     10c8f0 <_Scheduler_priority_Yield+0x5c>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10c8b0:	8b 30                	mov    (%eax),%esi                    
  previous       = the_node->previous;                                
  10c8b2:	8b 58 04             	mov    0x4(%eax),%ebx                 
  next->previous = previous;                                          
  10c8b5:	89 5e 04             	mov    %ebx,0x4(%esi)                 
  previous->next = next;                                              
  10c8b8:	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;                              
  10c8ba:	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 );                        
  10c8bd:	8d 72 04             	lea    0x4(%edx),%esi                 
  10c8c0:	89 30                	mov    %esi,(%eax)                    
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
  10c8c2:	89 42 08             	mov    %eax,0x8(%edx)                 
  old_last->next = the_node;                                          
  10c8c5:	89 03                	mov    %eax,(%ebx)                    
  the_node->previous = old_last;                                      
  10c8c7:	89 58 04             	mov    %ebx,0x4(%eax)                 
      _Chain_Extract_unprotected( &executing->Object.Node );          
      _Chain_Append_unprotected( ready, &executing->Object.Node );    
                                                                      
      _ISR_Flash( level );                                            
  10c8ca:	51                   	push   %ecx                           
  10c8cb:	9d                   	popf                                  
  10c8cc:	fa                   	cli                                   
                                                                      
      if ( _Thread_Is_heir( executing ) )                             
  10c8cd:	3b 05 9c 7d 12 00    	cmp    0x127d9c,%eax                  
  10c8d3:	74 0f                	je     10c8e4 <_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;                              
  10c8d5:	c6 05 a4 7d 12 00 01 	movb   $0x1,0x127da4                  
                                                                      
  _ISR_Enable( level );                                               
  10c8dc:	51                   	push   %ecx                           
  10c8dd:	9d                   	popf                                  
}                                                                     
  10c8de:	5b                   	pop    %ebx                           
  10c8df:	5e                   	pop    %esi                           
  10c8e0:	c9                   	leave                                 
  10c8e1:	c3                   	ret                                   
  10c8e2:	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 );      
  10c8e4:	8b 02                	mov    (%edx),%eax                    
  10c8e6:	a3 9c 7d 12 00       	mov    %eax,0x127d9c                  
  10c8eb:	eb e8                	jmp    10c8d5 <_Scheduler_priority_Yield+0x41>
  10c8ed:	8d 76 00             	lea    0x0(%esi),%esi                 
      _Thread_Dispatch_necessary = true;                              
    }                                                                 
    else if ( !_Thread_Is_heir( executing ) )                         
  10c8f0:	3b 05 9c 7d 12 00    	cmp    0x127d9c,%eax                  
  10c8f6:	75 dd                	jne    10c8d5 <_Scheduler_priority_Yield+0x41>
  10c8f8:	eb e2                	jmp    10c8dc <_Scheduler_priority_Yield+0x48>
                                                                      

0010cb28 <_Scheduler_simple_Ready_queue_Enqueue>: #include <rtems/score/schedulersimple.h> void _Scheduler_simple_Ready_queue_Enqueue( Thread_Control *the_thread ) {
  10cb28:	55                   	push   %ebp                           
  10cb29:	89 e5                	mov    %esp,%ebp                      
  10cb2b:	56                   	push   %esi                           
  10cb2c:	53                   	push   %ebx                           
  10cb2d:	8b 75 08             	mov    0x8(%ebp),%esi                 
  Chain_Control    *ready;                                            
  Chain_Node       *the_node;                                         
  Thread_Control   *current;                                          
                                                                      
  ready    = (Chain_Control *)_Scheduler.information;                 
  10cb30:	8b 15 a0 3e 12 00    	mov    0x123ea0,%edx                  
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
  10cb36:	8b 02                	mov    (%edx),%eax                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
  10cb38:	8d 4a 04             	lea    0x4(%edx),%ecx                 
                                                                      
  ready    = (Chain_Control *)_Scheduler.information;                 
  the_node = _Chain_First( ready );                                   
  current  = (Thread_Control *)ready;                                 
                                                                      
  for ( ; !_Chain_Is_tail( ready, the_node ) ; the_node = the_node->next ) {
  10cb3b:	39 c8                	cmp    %ecx,%eax                      
  10cb3d:	74 1a                	je     10cb59 <_Scheduler_simple_Ready_queue_Enqueue+0x31>
    current = (Thread_Control *) the_node;                            
  10cb3f:	89 c2                	mov    %eax,%edx                      
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
  10cb41:	8b 5e 14             	mov    0x14(%esi),%ebx                
  10cb44:	3b 58 14             	cmp    0x14(%eax),%ebx                
  10cb47:	73 0a                	jae    10cb53 <_Scheduler_simple_Ready_queue_Enqueue+0x2b>
  10cb49:	eb 21                	jmp    10cb6c <_Scheduler_simple_Ready_queue_Enqueue+0x44>
  10cb4b:	90                   	nop                                   
  ready    = (Chain_Control *)_Scheduler.information;                 
  the_node = _Chain_First( ready );                                   
  current  = (Thread_Control *)ready;                                 
                                                                      
  for ( ; !_Chain_Is_tail( ready, the_node ) ; the_node = the_node->next ) {
    current = (Thread_Control *) the_node;                            
  10cb4c:	89 c2                	mov    %eax,%edx                      
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
  10cb4e:	39 58 14             	cmp    %ebx,0x14(%eax)                
  10cb51:	77 19                	ja     10cb6c <_Scheduler_simple_Ready_queue_Enqueue+0x44>
                                                                      
  ready    = (Chain_Control *)_Scheduler.information;                 
  the_node = _Chain_First( ready );                                   
  current  = (Thread_Control *)ready;                                 
                                                                      
  for ( ; !_Chain_Is_tail( ready, the_node ) ; the_node = the_node->next ) {
  10cb53:	8b 00                	mov    (%eax),%eax                    
  10cb55:	39 c8                	cmp    %ecx,%eax                      
  10cb57:	75 f3                	jne    10cb4c <_Scheduler_simple_Ready_queue_Enqueue+0x24>
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  10cb59:	89 56 04             	mov    %edx,0x4(%esi)                 
  before_node           = after_node->next;                           
  10cb5c:	8b 02                	mov    (%edx),%eax                    
  after_node->next      = the_node;                                   
  10cb5e:	89 32                	mov    %esi,(%edx)                    
  the_node->next        = before_node;                                
  10cb60:	89 06                	mov    %eax,(%esi)                    
  before_node->previous = the_node;                                   
  10cb62:	89 70 04             	mov    %esi,0x4(%eax)                 
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
  10cb65:	5b                   	pop    %ebx                           
  10cb66:	5e                   	pop    %esi                           
  10cb67:	c9                   	leave                                 
  10cb68:	c3                   	ret                                   
  10cb69:	8d 76 00             	lea    0x0(%esi),%esi                 
  for ( ; !_Chain_Is_tail( ready, the_node ) ; the_node = the_node->next ) {
    current = (Thread_Control *) the_node;                            
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
      current = (Thread_Control *)current->Object.Node.previous;      
  10cb6c:	8b 50 04             	mov    0x4(%eax),%edx                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  10cb6f:	89 56 04             	mov    %edx,0x4(%esi)                 
  before_node           = after_node->next;                           
  10cb72:	8b 02                	mov    (%edx),%eax                    
  after_node->next      = the_node;                                   
  10cb74:	89 32                	mov    %esi,(%edx)                    
  the_node->next        = before_node;                                
  10cb76:	89 06                	mov    %eax,(%esi)                    
  before_node->previous = the_node;                                   
  10cb78:	89 70 04             	mov    %esi,0x4(%eax)                 
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
  10cb7b:	5b                   	pop    %ebx                           
  10cb7c:	5e                   	pop    %esi                           
  10cb7d:	c9                   	leave                                 
  10cb7e:	c3                   	ret                                   
                                                                      

0010caf8 <_Scheduler_simple_Ready_queue_Enqueue_first>: #include <rtems/score/schedulersimple.h> void _Scheduler_simple_Ready_queue_Enqueue_first( Thread_Control *the_thread ) {
  10caf8:	55                   	push   %ebp                           
  10caf9:	89 e5                	mov    %esp,%ebp                      
  10cafb:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
  10cafe:	a1 a0 3e 12 00       	mov    0x123ea0,%eax                  
  10cb03:	8b 00                	mov    (%eax),%eax                    
   */                                                                 
  for ( the_node = _Chain_First(ready) ; ; the_node = the_node->next ) {
    current = (Thread_Control *) the_node;                            
                                                                      
    /* break when AT HEAD OF (or PAST) our priority */                
    if ( the_thread->current_priority <= current->current_priority ) {
  10cb05:	8b 51 14             	mov    0x14(%ecx),%edx                
  10cb08:	3b 50 14             	cmp    0x14(%eax),%edx                
  10cb0b:	76 0a                	jbe    10cb17 <_Scheduler_simple_Ready_queue_Enqueue_first+0x1f>
  10cb0d:	8d 76 00             	lea    0x0(%esi),%esi                 
   * Do NOT need to check for end of chain because there is always    
   * at least one task on the ready chain -- the IDLE task.  It can   
   * never block, should never attempt to obtain a semaphore or mutex,
   * and thus will always be there.                                   
   */                                                                 
  for ( the_node = _Chain_First(ready) ; ; the_node = the_node->next ) {
  10cb10:	8b 00                	mov    (%eax),%eax                    
    current = (Thread_Control *) the_node;                            
                                                                      
    /* break when AT HEAD OF (or PAST) our priority */                
    if ( the_thread->current_priority <= current->current_priority ) {
  10cb12:	39 50 14             	cmp    %edx,0x14(%eax)                
  10cb15:	72 f9                	jb     10cb10 <_Scheduler_simple_Ready_queue_Enqueue_first+0x18><== NEVER TAKEN
      current = (Thread_Control *)current->Object.Node.previous;      
  10cb17:	8b 40 04             	mov    0x4(%eax),%eax                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  10cb1a:	89 41 04             	mov    %eax,0x4(%ecx)                 
  before_node           = after_node->next;                           
  10cb1d:	8b 10                	mov    (%eax),%edx                    
  after_node->next      = the_node;                                   
  10cb1f:	89 08                	mov    %ecx,(%eax)                    
  the_node->next        = before_node;                                
  10cb21:	89 11                	mov    %edx,(%ecx)                    
  before_node->previous = the_node;                                   
  10cb23:	89 4a 04             	mov    %ecx,0x4(%edx)                 
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
  10cb26:	c9                   	leave                                 
  10cb27:	c3                   	ret                                   
                                                                      

0010cec0 <_TOD_Set>: */ void _TOD_Set( const struct timespec *time ) {
  10cec0:	55                   	push   %ebp                           
  10cec1:	89 e5                	mov    %esp,%ebp                      
  10cec3:	53                   	push   %ebx                           
  10cec4:	83 ec 04             	sub    $0x4,%esp                      
  10cec7:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10ceca:	a1 6c b3 12 00       	mov    0x12b36c,%eax                  
  10cecf:	40                   	inc    %eax                           
  10ced0:	a3 6c b3 12 00       	mov    %eax,0x12b36c                  
  long seconds;                                                       
                                                                      
  _Thread_Disable_dispatch();                                         
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
  10ced5:	a1 08 b4 12 00       	mov    0x12b408,%eax                  
                                                                      
  if ( time->tv_sec < seconds )                                       
  10ceda:	8b 13                	mov    (%ebx),%edx                    
  10cedc:	39 d0                	cmp    %edx,%eax                      
  10cede:	7f 34                	jg     10cf14 <_TOD_Set+0x54>         
  Watchdog_Adjust_directions direction,                               
  Watchdog_Interval          units                                    
)                                                                     
{                                                                     
                                                                      
  _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units );     
  10cee0:	51                   	push   %ecx                           
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  else                                                                
    _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - seconds );
  10cee1:	29 c2                	sub    %eax,%edx                      
  10cee3:	52                   	push   %edx                           
  10cee4:	6a 00                	push   $0x0                           
  10cee6:	68 34 b4 12 00       	push   $0x12b434                      
  10ceeb:	e8 30 24 00 00       	call   10f320 <_Watchdog_Adjust>      
  10cef0:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  /* POSIX format TOD (timespec) */                                   
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
  10cef3:	8b 03                	mov    (%ebx),%eax                    
  10cef5:	a3 08 b4 12 00       	mov    %eax,0x12b408                  
  10cefa:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10cefd:	a3 0c b4 12 00       	mov    %eax,0x12b40c                  
  _TOD_Is_set = true;                                                 
  10cf02:	c6 05 7c b3 12 00 01 	movb   $0x1,0x12b37c                  
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
}                                                                     
  10cf09:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10cf0c:	c9                   	leave                                 
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
  _TOD_Is_set = true;                                                 
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10cf0d:	e9 9a 15 00 00       	jmp    10e4ac <_Thread_Enable_dispatch>
  10cf12:	66 90                	xchg   %ax,%ax                        
  10cf14:	51                   	push   %ecx                           
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
                                                                      
  if ( time->tv_sec < seconds )                                       
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  10cf15:	29 d0                	sub    %edx,%eax                      
  10cf17:	50                   	push   %eax                           
  10cf18:	6a 01                	push   $0x1                           
  10cf1a:	68 34 b4 12 00       	push   $0x12b434                      
  10cf1f:	e8 fc 23 00 00       	call   10f320 <_Watchdog_Adjust>      
  10cf24:	83 c4 10             	add    $0x10,%esp                     
  10cf27:	eb ca                	jmp    10cef3 <_TOD_Set+0x33>         
                                                                      

0010b7b4 <_TOD_To_seconds>: */ uint32_t _TOD_To_seconds( const rtems_time_of_day *the_tod ) {
  10b7b4:	55                   	push   %ebp                           
  10b7b5:	89 e5                	mov    %esp,%ebp                      
  10b7b7:	56                   	push   %esi                           
  10b7b8:	53                   	push   %ebx                           
  10b7b9:	8b 55 08             	mov    0x8(%ebp),%edx                 
  uint32_t   time;                                                    
  uint32_t   year_mod_4;                                              
                                                                      
  time = the_tod->day - 1;                                            
  10b7bc:	8b 72 08             	mov    0x8(%edx),%esi                 
  10b7bf:	4e                   	dec    %esi                           
  year_mod_4 = the_tod->year & 3;                                     
  10b7c0:	8b 02                	mov    (%edx),%eax                    
                                                                      
  if ( year_mod_4 == 0 )                                              
  10b7c2:	89 c3                	mov    %eax,%ebx                      
  10b7c4:	83 e3 03             	and    $0x3,%ebx                      
  10b7c7:	74 67                	je     10b830 <_TOD_To_seconds+0x7c>  
    time += _TOD_Days_to_date[ 1 ][ the_tod->month ];                 
  else                                                                
    time += _TOD_Days_to_date[ 0 ][ the_tod->month ];                 
  10b7c9:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  10b7cc:	0f b7 8c 09 00 3d 12 	movzwl 0x123d00(%ecx,%ecx,1),%ecx     
  10b7d3:	00                                                          
  10b7d4:	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 ];               
  10b7d7:	0f b7 8c 1b 34 3d 12 	movzwl 0x123d34(%ebx,%ebx,1),%ecx     
  10b7de:	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 ) *                   
  10b7df:	2d c4 07 00 00       	sub    $0x7c4,%eax                    
  10b7e4:	c1 e8 02             	shr    $0x2,%eax                      
  10b7e7:	8d 1c c0             	lea    (%eax,%eax,8),%ebx             
  10b7ea:	8d 1c d8             	lea    (%eax,%ebx,8),%ebx             
  10b7ed:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx             
  10b7f0:	8d 04 98             	lea    (%eax,%ebx,4),%eax             
  10b7f3:	01 c1                	add    %eax,%ecx                      
            ( (TOD_DAYS_PER_YEAR * 4) + 1);                           
                                                                      
  time += _TOD_Days_since_last_leap_year[ year_mod_4 ];               
  10b7f5:	01 f1                	add    %esi,%ecx                      
                                                                      
  time *= TOD_SECONDS_PER_DAY;                                        
  10b7f7:	8d 04 89             	lea    (%ecx,%ecx,4),%eax             
  10b7fa:	8d 04 81             	lea    (%ecx,%eax,4),%eax             
  10b7fd:	8d 04 c1             	lea    (%ecx,%eax,8),%eax             
  10b800:	c1 e0 02             	shl    $0x2,%eax                      
  10b803:	29 c8                	sub    %ecx,%eax                      
  10b805:	c1 e0 07             	shl    $0x7,%eax                      
                                                                      
  time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute)  
  10b808:	8b 5a 14             	mov    0x14(%edx),%ebx                
  10b80b:	8b 4a 0c             	mov    0xc(%edx),%ecx                 
  10b80e:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx             
  10b811:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx             
  10b814:	c1 e1 02             	shl    $0x2,%ecx                      
  10b817:	03 4a 10             	add    0x10(%edx),%ecx                
             * TOD_SECONDS_PER_MINUTE;                                
  10b81a:	8d 14 49             	lea    (%ecx,%ecx,2),%edx             
  10b81d:	8d 14 92             	lea    (%edx,%edx,4),%edx             
                                                                      
  time += the_tod->second;                                            
  10b820:	8d 94 93 00 e5 da 21 	lea    0x21dae500(%ebx,%edx,4),%edx   
                                                                      
  time += TOD_SECONDS_1970_THROUGH_1988;                              
  10b827:	8d 04 02             	lea    (%edx,%eax,1),%eax             
                                                                      
  return( time );                                                     
}                                                                     
  10b82a:	5b                   	pop    %ebx                           
  10b82b:	5e                   	pop    %esi                           
  10b82c:	c9                   	leave                                 
  10b82d:	c3                   	ret                                   
  10b82e:	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 ];                 
  10b830:	8b 4a 04             	mov    0x4(%edx),%ecx                 
  10b833:	0f b7 8c 09 1a 3d 12 	movzwl 0x123d1a(%ecx,%ecx,1),%ecx     
  10b83a:	00                                                          
  10b83b:	8d 34 31             	lea    (%ecx,%esi,1),%esi             
  10b83e:	eb 97                	jmp    10b7d7 <_TOD_To_seconds+0x23>  
                                                                      

0010b840 <_TOD_Validate>: */ bool _TOD_Validate( const rtems_time_of_day *the_tod ) {
  10b840:	55                   	push   %ebp                           
  10b841:	89 e5                	mov    %esp,%ebp                      
  10b843:	53                   	push   %ebx                           
  10b844:	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();                 
  10b847:	8b 1d 6c 6c 12 00    	mov    0x126c6c,%ebx                  
  if ((!the_tod)                                  ||                  
  10b84d:	85 c9                	test   %ecx,%ecx                      
  10b84f:	74 53                	je     10b8a4 <_TOD_Validate+0x64>    <== NEVER TAKEN
)                                                                     
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
  10b851:	b8 40 42 0f 00       	mov    $0xf4240,%eax                  
  10b856:	31 d2                	xor    %edx,%edx                      
  10b858:	f7 f3                	div    %ebx                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
  10b85a:	3b 41 18             	cmp    0x18(%ecx),%eax                
  10b85d:	76 45                	jbe    10b8a4 <_TOD_Validate+0x64>    
      (the_tod->ticks  >= ticks_per_second)       ||                  
  10b85f:	83 79 14 3b          	cmpl   $0x3b,0x14(%ecx)               
  10b863:	77 3f                	ja     10b8a4 <_TOD_Validate+0x64>    
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
  10b865:	83 79 10 3b          	cmpl   $0x3b,0x10(%ecx)               
  10b869:	77 39                	ja     10b8a4 <_TOD_Validate+0x64>    
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
  10b86b:	83 79 0c 17          	cmpl   $0x17,0xc(%ecx)                
  10b86f:	77 33                	ja     10b8a4 <_TOD_Validate+0x64>    
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
  10b871:	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)      ||                  
  10b874:	85 c0                	test   %eax,%eax                      
  10b876:	74 2c                	je     10b8a4 <_TOD_Validate+0x64>    <== NEVER TAKEN
      (the_tod->month  == 0)                      ||                  
  10b878:	83 f8 0c             	cmp    $0xc,%eax                      
  10b87b:	77 27                	ja     10b8a4 <_TOD_Validate+0x64>    
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
  10b87d:	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)    ||                  
  10b87f:	81 fa c3 07 00 00    	cmp    $0x7c3,%edx                    
  10b885:	76 1d                	jbe    10b8a4 <_TOD_Validate+0x64>    
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
  10b887:	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)          ||                  
  10b88a:	85 c9                	test   %ecx,%ecx                      
  10b88c:	74 16                	je     10b8a4 <_TOD_Validate+0x64>    <== NEVER TAKEN
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
  10b88e:	83 e2 03             	and    $0x3,%edx                      
  10b891:	75 16                	jne    10b8a9 <_TOD_Validate+0x69>    
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
  10b893:	8b 04 85 74 3d 12 00 	mov    0x123d74(,%eax,4),%eax         
 *    false - if the the_tod is invalid                               
 *                                                                    
 *  NOTE: This routine only works for leap-years through 2099.        
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  10b89a:	39 c8                	cmp    %ecx,%eax                      
  10b89c:	0f 93 c0             	setae  %al                            
  10b89f:	eb 05                	jmp    10b8a6 <_TOD_Validate+0x66>    
  10b8a1:	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;                                                    
  10b8a4:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  10b8a6:	5b                   	pop    %ebx                           
  10b8a7:	c9                   	leave                                 
  10b8a8:	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 ];       
  10b8a9:	8b 04 85 40 3d 12 00 	mov    0x123d40(,%eax,4),%eax         
  10b8b0:	eb e8                	jmp    10b89a <_TOD_Validate+0x5a>    
                                                                      

0010c948 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
  10c948:	55                   	push   %ebp                           
  10c949:	89 e5                	mov    %esp,%ebp                      
  10c94b:	57                   	push   %edi                           
  10c94c:	56                   	push   %esi                           
  10c94d:	53                   	push   %ebx                           
  10c94e:	83 ec 28             	sub    $0x28,%esp                     
  10c951:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c954:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10c957:	8a 45 10             	mov    0x10(%ebp),%al                 
  10c95a:	88 45 e7             	mov    %al,-0x19(%ebp)                
  States_Control state, original_state;                               
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
  10c95d:	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 );                                
  10c960:	53                   	push   %ebx                           
  10c961:	e8 7a 0c 00 00       	call   10d5e0 <_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 )                  
  10c966:	83 c4 10             	add    $0x10,%esp                     
  10c969:	39 73 14             	cmp    %esi,0x14(%ebx)                
  10c96c:	74 0d                	je     10c97b <_Thread_Change_priority+0x33>
    _Thread_Set_priority( the_thread, new_priority );                 
  10c96e:	83 ec 08             	sub    $0x8,%esp                      
  10c971:	56                   	push   %esi                           
  10c972:	53                   	push   %ebx                           
  10c973:	e8 14 0c 00 00       	call   10d58c <_Thread_Set_priority>  
  10c978:	83 c4 10             	add    $0x10,%esp                     
                                                                      
  _ISR_Disable( level );                                              
  10c97b:	9c                   	pushf                                 
  10c97c:	fa                   	cli                                   
  10c97d:	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;                                  
  10c97e:	8b 43 10             	mov    0x10(%ebx),%eax                
  if ( state != STATES_TRANSIENT ) {                                  
  10c981:	83 f8 04             	cmp    $0x4,%eax                      
  10c984:	74 22                	je     10c9a8 <_Thread_Change_priority+0x60>
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
  10c986:	83 e7 04             	and    $0x4,%edi                      
  10c989:	74 11                	je     10c99c <_Thread_Change_priority+0x54><== ALWAYS TAKEN
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
  10c98b:	56                   	push   %esi                           
  10c98c:	9d                   	popf                                  
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
  10c98d:	a9 e0 be 03 00       	test   $0x3bee0,%eax                  
  10c992:	75 60                	jne    10c9f4 <_Thread_Change_priority+0xac>
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
  10c994:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c997:	5b                   	pop    %ebx                           
  10c998:	5e                   	pop    %esi                           
  10c999:	5f                   	pop    %edi                           
  10c99a:	c9                   	leave                                 
  10c99b:	c3                   	ret                                   
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
  10c99c:	89 c2                	mov    %eax,%edx                      
  10c99e:	83 e2 fb             	and    $0xfffffffb,%edx               
  10c9a1:	89 53 10             	mov    %edx,0x10(%ebx)                
  10c9a4:	eb e5                	jmp    10c98b <_Thread_Change_priority+0x43>
  10c9a6:	66 90                	xchg   %ax,%ax                        
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
  10c9a8:	83 e7 04             	and    $0x4,%edi                      
  10c9ab:	75 1a                	jne    10c9c7 <_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 );
  10c9ad:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
                                                                      
    if ( prepend_it )                                                 
  10c9b4:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)               
  10c9b8:	74 52                	je     10ca0c <_Thread_Change_priority+0xc4>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(                   
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue_first( the_thread );                  
  10c9ba:	83 ec 0c             	sub    $0xc,%esp                      
  10c9bd:	53                   	push   %ebx                           
  10c9be:	ff 15 88 34 12 00    	call   *0x123488                      
  10c9c4:	83 c4 10             	add    $0x10,%esp                     
      _Scheduler_Enqueue_first( the_thread );                         
    else                                                              
      _Scheduler_Enqueue( the_thread );                               
  }                                                                   
                                                                      
  _ISR_Flash( level );                                                
  10c9c7:	56                   	push   %esi                           
  10c9c8:	9d                   	popf                                  
  10c9c9:	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();                                   
  10c9ca:	ff 15 68 34 12 00    	call   *0x123468                      
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
  10c9d0:	a1 98 7d 12 00       	mov    0x127d98,%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() &&                       
  10c9d5:	3b 05 9c 7d 12 00    	cmp    0x127d9c,%eax                  
  10c9db:	74 0d                	je     10c9ea <_Thread_Change_priority+0xa2>
  10c9dd:	80 78 74 00          	cmpb   $0x0,0x74(%eax)                
  10c9e1:	74 07                	je     10c9ea <_Thread_Change_priority+0xa2>
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  10c9e3:	c6 05 a4 7d 12 00 01 	movb   $0x1,0x127da4                  
  _ISR_Enable( level );                                               
  10c9ea:	56                   	push   %esi                           
  10c9eb:	9d                   	popf                                  
}                                                                     
  10c9ec:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c9ef:	5b                   	pop    %ebx                           
  10c9f0:	5e                   	pop    %esi                           
  10c9f1:	5f                   	pop    %edi                           
  10c9f2:	c9                   	leave                                 
  10c9f3:	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 );    
  10c9f4:	89 5d 0c             	mov    %ebx,0xc(%ebp)                 
  10c9f7:	8b 43 44             	mov    0x44(%ebx),%eax                
  10c9fa:	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 );                                               
}                                                                     
  10c9fd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ca00:	5b                   	pop    %ebx                           
  10ca01:	5e                   	pop    %esi                           
  10ca02:	5f                   	pop    %edi                           
  10ca03:	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 );    
  10ca04:	e9 eb 0a 00 00       	jmp    10d4f4 <_Thread_queue_Requeue> 
  10ca09:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(                         
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue( the_thread );                        
  10ca0c:	83 ec 0c             	sub    $0xc,%esp                      
  10ca0f:	53                   	push   %ebx                           
  10ca10:	ff 15 84 34 12 00    	call   *0x123484                      
  10ca16:	83 c4 10             	add    $0x10,%esp                     
  10ca19:	eb ac                	jmp    10c9c7 <_Thread_Change_priority+0x7f>
                                                                      

0010ca1c <_Thread_Clear_state>: */ void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) {
  10ca1c:	55                   	push   %ebp                           
  10ca1d:	89 e5                	mov    %esp,%ebp                      
  10ca1f:	53                   	push   %ebx                           
  10ca20:	83 ec 04             	sub    $0x4,%esp                      
  10ca23:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10ca26:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
  10ca29:	9c                   	pushf                                 
  10ca2a:	fa                   	cli                                   
  10ca2b:	5b                   	pop    %ebx                           
    current_state = the_thread->current_state;                        
  10ca2c:	8b 4a 10             	mov    0x10(%edx),%ecx                
                                                                      
    if ( current_state & state ) {                                    
  10ca2f:	85 c8                	test   %ecx,%eax                      
  10ca31:	74 0b                	je     10ca3e <_Thread_Clear_state+0x22>
  10ca33:	f7 d0                	not    %eax                           
  10ca35:	21 c8                	and    %ecx,%eax                      
      current_state =                                                 
      the_thread->current_state = _States_Clear( state, current_state );
  10ca37:	89 42 10             	mov    %eax,0x10(%edx)                
                                                                      
      if ( _States_Is_ready( current_state ) ) {                      
  10ca3a:	85 c0                	test   %eax,%eax                      
  10ca3c:	74 0a                	je     10ca48 <_Thread_Clear_state+0x2c>
        _Scheduler_Unblock( the_thread );                             
      }                                                               
  }                                                                   
  _ISR_Enable( level );                                               
  10ca3e:	53                   	push   %ebx                           
  10ca3f:	9d                   	popf                                  
}                                                                     
  10ca40:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ca43:	c9                   	leave                                 
  10ca44:	c3                   	ret                                   
  10ca45:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(                         
    Thread_Control    *the_thread                                     
)                                                                     
{                                                                     
  _Scheduler.Operations.unblock( the_thread );                        
  10ca48:	83 ec 0c             	sub    $0xc,%esp                      
  10ca4b:	52                   	push   %edx                           
  10ca4c:	ff 15 74 34 12 00    	call   *0x123474                      
  10ca52:	83 c4 10             	add    $0x10,%esp                     
  10ca55:	eb e7                	jmp    10ca3e <_Thread_Clear_state+0x22>
                                                                      

0010cbcc <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
  10cbcc:	55                   	push   %ebp                           
  10cbcd:	89 e5                	mov    %esp,%ebp                      
  10cbcf:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10cbd2:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10cbd5:	50                   	push   %eax                           
  10cbd6:	ff 75 08             	pushl  0x8(%ebp)                      
  10cbd9:	e8 c6 01 00 00       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  10cbde:	83 c4 10             	add    $0x10,%esp                     
  10cbe1:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10cbe4:	85 d2                	test   %edx,%edx                      
  10cbe6:	75 1c                	jne    10cc04 <_Thread_Delay_ended+0x38><== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
  10cbe8:	83 ec 08             	sub    $0x8,%esp                      
  10cbeb:	68 18 00 00 10       	push   $0x10000018                    
  10cbf0:	50                   	push   %eax                           
  10cbf1:	e8 26 fe ff ff       	call   10ca1c <_Thread_Clear_state>   
  10cbf6:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10cbfb:	48                   	dec    %eax                           
  10cbfc:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
  10cc01:	83 c4 10             	add    $0x10,%esp                     
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10cc04:	c9                   	leave                                 
  10cc05:	c3                   	ret                                   
                                                                      

0010cc08 <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) {
  10cc08:	55                   	push   %ebp                           
  10cc09:	89 e5                	mov    %esp,%ebp                      
  10cc0b:	57                   	push   %edi                           
  10cc0c:	56                   	push   %esi                           
  10cc0d:	53                   	push   %ebx                           
  10cc0e:	83 ec 1c             	sub    $0x1c,%esp                     
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  10cc11:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
  _ISR_Disable( level );                                              
  10cc17:	9c                   	pushf                                 
  10cc18:	fa                   	cli                                   
  10cc19:	58                   	pop    %eax                           
  while ( _Thread_Dispatch_necessary == true ) {                      
  10cc1a:	8a 15 a4 7d 12 00    	mov    0x127da4,%dl                   
  10cc20:	84 d2                	test   %dl,%dl                        
  10cc22:	0f 84 3c 01 00 00    	je     10cd64 <_Thread_Dispatch+0x15c>
    heir = _Thread_Heir;                                              
  10cc28:	8b 35 9c 7d 12 00    	mov    0x127d9c,%esi                  
    _Thread_Dispatch_disable_level = 1;                               
  10cc2e:	c7 05 ec 77 12 00 01 	movl   $0x1,0x1277ec                  
  10cc35:	00 00 00                                                    
    _Thread_Dispatch_necessary = false;                               
  10cc38:	c6 05 a4 7d 12 00 00 	movb   $0x0,0x127da4                  
    _Thread_Executing = heir;                                         
  10cc3f:	89 35 98 7d 12 00    	mov    %esi,0x127d98                  
    /*                                                                
     *  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 )                                          
  10cc45:	39 f3                	cmp    %esi,%ebx                      
  10cc47:	0f 84 17 01 00 00    	je     10cd64 <_Thread_Dispatch+0x15c>
  10cc4d:	8d 7d d8             	lea    -0x28(%ebp),%edi               
  10cc50:	e9 f5 00 00 00       	jmp    10cd4a <_Thread_Dispatch+0x142>
  10cc55:	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 );                                             
  10cc58:	50                   	push   %eax                           
  10cc59:	9d                   	popf                                  
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
  10cc5a:	83 ec 0c             	sub    $0xc,%esp                      
  10cc5d:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10cc60:	50                   	push   %eax                           
  10cc61:	e8 7e 41 00 00       	call   110de4 <_TOD_Get_uptime>       
        _Timestamp_Subtract(                                          
  10cc66:	83 c4 0c             	add    $0xc,%esp                      
  10cc69:	57                   	push   %edi                           
  10cc6a:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10cc6d:	50                   	push   %eax                           
  10cc6e:	68 ac 78 12 00       	push   $0x1278ac                      
  10cc73:	e8 9c 0b 00 00       	call   10d814 <_Timespec_Subtract>    
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
  10cc78:	58                   	pop    %eax                           
  10cc79:	5a                   	pop    %edx                           
  10cc7a:	57                   	push   %edi                           
  10cc7b:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax                
  10cc81:	50                   	push   %eax                           
  10cc82:	e8 51 0b 00 00       	call   10d7d8 <_Timespec_Add_to>      
        _Thread_Time_of_last_context_switch = uptime;                 
  10cc87:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10cc8a:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10cc8d:	a3 ac 78 12 00       	mov    %eax,0x1278ac                  
  10cc92:	89 15 b0 78 12 00    	mov    %edx,0x1278b0                  
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
  10cc98:	a1 84 78 12 00       	mov    0x127884,%eax                  
  10cc9d:	83 c4 10             	add    $0x10,%esp                     
  10cca0:	85 c0                	test   %eax,%eax                      
  10cca2:	74 10                	je     10ccb4 <_Thread_Dispatch+0xac> <== NEVER TAKEN
      executing->libc_reent = *_Thread_libc_reent;                    
  10cca4:	8b 10                	mov    (%eax),%edx                    
  10cca6:	89 93 e4 00 00 00    	mov    %edx,0xe4(%ebx)                
      *_Thread_libc_reent = heir->libc_reent;                         
  10ccac:	8b 96 e4 00 00 00    	mov    0xe4(%esi),%edx                
  10ccb2:	89 10                	mov    %edx,(%eax)                    
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
  10ccb4:	83 ec 08             	sub    $0x8,%esp                      
  10ccb7:	56                   	push   %esi                           
  10ccb8:	53                   	push   %ebx                           
  10ccb9:	e8 f6 0d 00 00       	call   10dab4 <_User_extensions_Thread_switch>
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
  10ccbe:	5a                   	pop    %edx                           
  10ccbf:	59                   	pop    %ecx                           
  10ccc0:	81 c6 c8 00 00 00    	add    $0xc8,%esi                     
  10ccc6:	56                   	push   %esi                           
  10ccc7:	8d 83 c8 00 00 00    	lea    0xc8(%ebx),%eax                
  10cccd:	50                   	push   %eax                           
  10ccce:	e8 ed 10 00 00       	call   10ddc0 <_CPU_Context_switch>   
                                                                      
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
  10ccd3:	83 c4 10             	add    $0x10,%esp                     
  10ccd6:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax                
  10ccdc:	85 c0                	test   %eax,%eax                      
  10ccde:	74 36                	je     10cd16 <_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 );                      
  10cce0:	a1 80 78 12 00       	mov    0x127880,%eax                  
  10cce5:	39 c3                	cmp    %eax,%ebx                      
  10cce7:	74 2d                	je     10cd16 <_Thread_Dispatch+0x10e>
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
  10cce9:	85 c0                	test   %eax,%eax                      
  10cceb:	74 11                	je     10ccfe <_Thread_Dispatch+0xf6> 
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
  10cced:	83 ec 0c             	sub    $0xc,%esp                      
  10ccf0:	05 e0 00 00 00       	add    $0xe0,%eax                     
  10ccf5:	50                   	push   %eax                           
  10ccf6:	e8 f9 10 00 00       	call   10ddf4 <_CPU_Context_save_fp>  
  10ccfb:	83 c4 10             	add    $0x10,%esp                     
      _Context_Restore_fp( &executing->fp_context );                  
  10ccfe:	83 ec 0c             	sub    $0xc,%esp                      
  10cd01:	8d 83 e0 00 00 00    	lea    0xe0(%ebx),%eax                
  10cd07:	50                   	push   %eax                           
  10cd08:	e8 f1 10 00 00       	call   10ddfe <_CPU_Context_restore_fp>
      _Thread_Allocated_fp = executing;                               
  10cd0d:	89 1d 80 78 12 00    	mov    %ebx,0x127880                  
  10cd13:	83 c4 10             	add    $0x10,%esp                     
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
  10cd16:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
                                                                      
    _ISR_Disable( level );                                            
  10cd1c:	9c                   	pushf                                 
  10cd1d:	fa                   	cli                                   
  10cd1e:	58                   	pop    %eax                           
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
  10cd1f:	8a 15 a4 7d 12 00    	mov    0x127da4,%dl                   
  10cd25:	84 d2                	test   %dl,%dl                        
  10cd27:	74 3b                	je     10cd64 <_Thread_Dispatch+0x15c>
    heir = _Thread_Heir;                                              
  10cd29:	8b 35 9c 7d 12 00    	mov    0x127d9c,%esi                  
    _Thread_Dispatch_disable_level = 1;                               
  10cd2f:	c7 05 ec 77 12 00 01 	movl   $0x1,0x1277ec                  
  10cd36:	00 00 00                                                    
    _Thread_Dispatch_necessary = false;                               
  10cd39:	c6 05 a4 7d 12 00 00 	movb   $0x0,0x127da4                  
    _Thread_Executing = heir;                                         
  10cd40:	89 35 98 7d 12 00    	mov    %esi,0x127d98                  
    /*                                                                
     *  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 )                                          
  10cd46:	39 de                	cmp    %ebx,%esi                      
  10cd48:	74 1a                	je     10cd64 <_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 )
  10cd4a:	83 7e 7c 01          	cmpl   $0x1,0x7c(%esi)                
  10cd4e:	0f 85 04 ff ff ff    	jne    10cc58 <_Thread_Dispatch+0x50> 
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
  10cd54:	8b 15 c0 77 12 00    	mov    0x1277c0,%edx                  
  10cd5a:	89 56 78             	mov    %edx,0x78(%esi)                
  10cd5d:	e9 f6 fe ff ff       	jmp    10cc58 <_Thread_Dispatch+0x50> 
  10cd62:	66 90                	xchg   %ax,%ax                        
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
post_switch:                                                          
  _Thread_Dispatch_disable_level = 0;                                 
  10cd64:	c7 05 ec 77 12 00 00 	movl   $0x0,0x1277ec                  
  10cd6b:	00 00 00                                                    
                                                                      
  _ISR_Enable( level );                                               
  10cd6e:	50                   	push   %eax                           
  10cd6f:	9d                   	popf                                  
                                                                      
  _API_extensions_Run_postswitch();                                   
  10cd70:	e8 4b e6 ff ff       	call   10b3c0 <_API_extensions_Run_postswitch>
}                                                                     
  10cd75:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cd78:	5b                   	pop    %ebx                           
  10cd79:	5e                   	pop    %esi                           
  10cd7a:	5f                   	pop    %edi                           
  10cd7b:	c9                   	leave                                 
  10cd7c:	c3                   	ret                                   
                                                                      

0010cda4 <_Thread_Get>: */ Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) {
  10cda4:	55                   	push   %ebp                           
  10cda5:	89 e5                	mov    %esp,%ebp                      
  10cda7:	53                   	push   %ebx                           
  10cda8:	83 ec 04             	sub    $0x4,%esp                      
  10cdab:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10cdae:	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 ) ) {           
  10cdb1:	85 c0                	test   %eax,%eax                      
  10cdb3:	74 4b                	je     10ce00 <_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);
  10cdb5:	89 c2                	mov    %eax,%edx                      
  10cdb7:	c1 ea 18             	shr    $0x18,%edx                     
  10cdba:	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 )                      
  10cdbd:	8d 5a ff             	lea    -0x1(%edx),%ebx                
  10cdc0:	83 fb 02             	cmp    $0x2,%ebx                      
  10cdc3:	77 2b                	ja     10cdf0 <_Thread_Get+0x4c>      
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
  10cdc5:	89 c3                	mov    %eax,%ebx                      
  10cdc7:	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 :) */
  10cdca:	4b                   	dec    %ebx                           
  10cdcb:	75 23                	jne    10cdf0 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  api_information = _Objects_Information_table[ the_api ];            
  10cdcd:	8b 14 95 c4 77 12 00 	mov    0x1277c4(,%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 ) {                                           
  10cdd4:	85 d2                	test   %edx,%edx                      
  10cdd6:	74 18                	je     10cdf0 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
  10cdd8:	8b 52 04             	mov    0x4(%edx),%edx                 
  if ( !information ) {                                               
  10cddb:	85 d2                	test   %edx,%edx                      
  10cddd:	74 11                	je     10cdf0 <_Thread_Get+0x4c>      
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
  10cddf:	53                   	push   %ebx                           
  10cde0:	51                   	push   %ecx                           
  10cde1:	50                   	push   %eax                           
  10cde2:	52                   	push   %edx                           
  10cde3:	e8 10 f4 ff ff       	call   10c1f8 <_Objects_Get>          
  10cde8:	83 c4 10             	add    $0x10,%esp                     
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10cdeb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10cdee:	c9                   	leave                                 
  10cdef:	c3                   	ret                                   
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
  if ( !information ) {                                               
    *location = OBJECTS_ERROR;                                        
  10cdf0:	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;                     
  10cdf6:	31 c0                	xor    %eax,%eax                      
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10cdf8:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10cdfb:	c9                   	leave                                 
  10cdfc:	c3                   	ret                                   
  10cdfd:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10ce00:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10ce05:	40                   	inc    %eax                           
  10ce06:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
  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;                                        
  10ce0b:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)                    
    tp = _Thread_Executing;                                           
  10ce11:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
  10ce16:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ce19:	c9                   	leave                                 
  10ce1a:	c3                   	ret                                   
                                                                      

00112c8c <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) {
  112c8c:	55                   	push   %ebp                           
  112c8d:	89 e5                	mov    %esp,%ebp                      
  112c8f:	53                   	push   %ebx                           
  112c90:	83 ec 14             	sub    $0x14,%esp                     
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    static char doneConstructors;                                     
    char doneCons;                                                    
  #endif                                                              
                                                                      
  executing = _Thread_Executing;                                      
  112c93:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
  /*                                                                  
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
  112c99:	8b 83 ac 00 00 00    	mov    0xac(%ebx),%eax                
  _ISR_Set_level(level);                                              
  112c9f:	85 c0                	test   %eax,%eax                      
  112ca1:	74 79                	je     112d1c <_Thread_Handler+0x90>  
  112ca3:	fa                   	cli                                   
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
  112ca4:	a0 54 74 12 00       	mov    0x127454,%al                   
  112ca9:	88 45 f7             	mov    %al,-0x9(%ebp)                 
    doneConstructors = 1;                                             
  112cac:	c6 05 54 74 12 00 01 	movb   $0x1,0x127454                  
  #endif                                                              
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                        
      if ( (executing->fp_context != NULL) &&                         
  112cb3:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax                
  112cb9:	85 c0                	test   %eax,%eax                      
  112cbb:	74 24                	je     112ce1 <_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 );                      
  112cbd:	a1 80 78 12 00       	mov    0x127880,%eax                  
  112cc2:	39 c3                	cmp    %eax,%ebx                      
  112cc4:	74 1b                	je     112ce1 <_Thread_Handler+0x55>  
            !_Thread_Is_allocated_fp( executing ) ) {                 
        if ( _Thread_Allocated_fp != NULL )                           
  112cc6:	85 c0                	test   %eax,%eax                      
  112cc8:	74 11                	je     112cdb <_Thread_Handler+0x4f>  
          _Context_Save_fp( &_Thread_Allocated_fp->fp_context );      
  112cca:	83 ec 0c             	sub    $0xc,%esp                      
  112ccd:	05 e0 00 00 00       	add    $0xe0,%eax                     
  112cd2:	50                   	push   %eax                           
  112cd3:	e8 1c b1 ff ff       	call   10ddf4 <_CPU_Context_save_fp>  
  112cd8:	83 c4 10             	add    $0x10,%esp                     
        _Thread_Allocated_fp = executing;                             
  112cdb:	89 1d 80 78 12 00    	mov    %ebx,0x127880                  
  /*                                                                  
   * 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 );                         
  112ce1:	83 ec 0c             	sub    $0xc,%esp                      
  112ce4:	53                   	push   %ebx                           
  112ce5:	e8 2e ac ff ff       	call   10d918 <_User_extensions_Thread_begin>
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
  _Thread_Enable_dispatch();                                          
  112cea:	e8 91 a0 ff ff       	call   10cd80 <_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) */ {                 
  112cef:	83 c4 10             	add    $0x10,%esp                     
  112cf2:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)                
  112cf6:	74 28                	je     112d20 <_Thread_Handler+0x94>  
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
  112cf8:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax                
  112cfe:	85 c0                	test   %eax,%eax                      
  112d00:	74 2d                	je     112d2f <_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 ) {  
  112d02:	48                   	dec    %eax                           
  112d03:	74 43                	je     112d48 <_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 );                       
  112d05:	83 ec 0c             	sub    $0xc,%esp                      
  112d08:	53                   	push   %ebx                           
  112d09:	e8 46 ac ff ff       	call   10d954 <_User_extensions_Thread_exitted>
                                                                      
  _Internal_error_Occurred(                                           
  112d0e:	83 c4 0c             	add    $0xc,%esp                      
  112d11:	6a 05                	push   $0x5                           
  112d13:	6a 01                	push   $0x1                           
  112d15:	6a 00                	push   $0x0                           
  112d17:	e8 98 8f ff ff       	call   10bcb4 <_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);                                              
  112d1c:	fb                   	sti                                   
  112d1d:	eb 85                	jmp    112ca4 <_Thread_Handler+0x18>  
  112d1f:	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 ();                                                   
  112d20:	e8 4b c7 00 00       	call   11f470 <__start_set_sysctl_set>
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
  112d25:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax                
  112d2b:	85 c0                	test   %eax,%eax                      
  112d2d:	75 d3                	jne    112d02 <_Thread_Handler+0x76>  
    executing->Wait.return_argument =                                 
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
  112d2f:	83 ec 0c             	sub    $0xc,%esp                      
  112d32:	ff b3 9c 00 00 00    	pushl  0x9c(%ebx)                     
  112d38:	ff 93 90 00 00 00    	call   *0x90(%ebx)                    
      INIT_NAME ();                                                   
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
    executing->Wait.return_argument =                                 
  112d3e:	89 43 28             	mov    %eax,0x28(%ebx)                
  112d41:	83 c4 10             	add    $0x10,%esp                     
  112d44:	eb bf                	jmp    112d05 <_Thread_Handler+0x79>  
  112d46:	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)(       
  112d48:	83 ec 0c             	sub    $0xc,%esp                      
  112d4b:	ff b3 98 00 00 00    	pushl  0x98(%ebx)                     
  112d51:	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 =                               
  112d57:	89 43 28             	mov    %eax,0x28(%ebx)                
  112d5a:	83 c4 10             	add    $0x10,%esp                     
  112d5d:	eb a6                	jmp    112d05 <_Thread_Handler+0x79>  
                                                                      

0010ce1c <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) {
  10ce1c:	55                   	push   %ebp                           
  10ce1d:	89 e5                	mov    %esp,%ebp                      
  10ce1f:	57                   	push   %edi                           
  10ce20:	56                   	push   %esi                           
  10ce21:	53                   	push   %ebx                           
  10ce22:	83 ec 1c             	sub    $0x1c,%esp                     
  10ce25:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10ce28:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10ce2b:	8b 75 14             	mov    0x14(%ebp),%esi                
  10ce2e:	8b 7d 1c             	mov    0x1c(%ebp),%edi                
  10ce31:	8a 55 18             	mov    0x18(%ebp),%dl                 
  10ce34:	8a 45 20             	mov    0x20(%ebp),%al                 
  10ce37:	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;                             
  10ce3a:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)                
  10ce41:	00 00 00                                                    
  10ce44:	c7 83 ec 00 00 00 00 	movl   $0x0,0xec(%ebx)                
  10ce4b:	00 00 00                                                    
                                                                      
  extensions_area = NULL;                                             
  the_thread->libc_reent = NULL;                                      
  10ce4e:	c7 83 e4 00 00 00 00 	movl   $0x0,0xe4(%ebx)                
  10ce55:	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 ) {                                              
  10ce58:	85 c9                	test   %ecx,%ecx                      
  10ce5a:	0f 84 d3 01 00 00    	je     10d033 <_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;                 
  10ce60:	c6 83 b4 00 00 00 00 	movb   $0x0,0xb4(%ebx)                
  10ce67:	89 f0                	mov    %esi,%eax                      
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
  10ce69:	89 8b bc 00 00 00    	mov    %ecx,0xbc(%ebx)                
  the_stack->size = size;                                             
  10ce6f:	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 ) {                                                    
  10ce75:	84 d2                	test   %dl,%dl                        
  10ce77:	0f 85 4f 01 00 00    	jne    10cfcc <_Thread_Initialize+0x1b0>
  10ce7d:	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;                                                   
  10ce7f:	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;                           
  10ce86:	89 83 e0 00 00 00    	mov    %eax,0xe0(%ebx)                
    the_thread->Start.fp_context = fp_area;                           
  10ce8c:	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;                        
  10ce92:	c7 43 50 00 00 00 00 	movl   $0x0,0x50(%ebx)                
  the_watchdog->routine   = routine;                                  
  10ce99:	c7 43 64 00 00 00 00 	movl   $0x0,0x64(%ebx)                
  the_watchdog->id        = id;                                       
  10cea0:	c7 43 68 00 00 00 00 	movl   $0x0,0x68(%ebx)                
  the_watchdog->user_data = user_data;                                
  10cea7:	c7 43 6c 00 00 00 00 	movl   $0x0,0x6c(%ebx)                
  #endif                                                              
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
  10ceae:	a1 90 78 12 00       	mov    0x127890,%eax                  
  10ceb3:	85 c0                	test   %eax,%eax                      
  10ceb5:	0f 85 39 01 00 00    	jne    10cff4 <_Thread_Initialize+0x1d8>
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10cebb:	c7 83 f0 00 00 00 00 	movl   $0x0,0xf0(%ebx)                
  10cec2:	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;                                             
  10cec5:	31 f6                	xor    %esi,%esi                      
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  10cec7:	8a 45 df             	mov    -0x21(%ebp),%al                
  10ceca:	88 83 a0 00 00 00    	mov    %al,0xa0(%ebx)                 
  the_thread->Start.budget_algorithm = budget_algorithm;              
  10ced0:	8b 45 24             	mov    0x24(%ebp),%eax                
  10ced3:	89 83 a4 00 00 00    	mov    %eax,0xa4(%ebx)                
  the_thread->Start.budget_callout   = budget_callout;                
  10ced9:	8b 45 28             	mov    0x28(%ebp),%eax                
  10cedc:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)                
                                                                      
  switch ( budget_algorithm ) {                                       
  10cee2:	83 7d 24 02          	cmpl   $0x2,0x24(%ebp)                
  10cee6:	75 08                	jne    10cef0 <_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;    
  10cee8:	a1 c0 77 12 00       	mov    0x1277c0,%eax                  
  10ceed:	89 43 78             	mov    %eax,0x78(%ebx)                
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	break;                                                               
    #endif                                                            
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
  10cef0:	8b 45 2c             	mov    0x2c(%ebp),%eax                
  10cef3:	89 83 ac 00 00 00    	mov    %eax,0xac(%ebx)                
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
  10cef9:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)                
  the_thread->Wait.queue              = NULL;                         
  10cf00:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
  the_thread->resource_count          = 0;                            
  10cf07:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)                
  the_thread->real_priority           = priority;                     
  10cf0e:	89 7b 18             	mov    %edi,0x18(%ebx)                
  the_thread->Start.initial_priority  = priority;                     
  10cf11:	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 );                
  10cf17:	83 ec 0c             	sub    $0xc,%esp                      
  10cf1a:	53                   	push   %ebx                           
  10cf1b:	ff 15 78 34 12 00    	call   *0x123478                      
  10cf21:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  sched =_Scheduler_Allocate( the_thread );                           
  if ( !sched )                                                       
  10cf24:	83 c4 10             	add    $0x10,%esp                     
  10cf27:	85 c0                	test   %eax,%eax                      
  10cf29:	74 40                	je     10cf6b <_Thread_Initialize+0x14f>
    goto failed;                                                      
  _Thread_Set_priority( the_thread, priority );                       
  10cf2b:	83 ec 08             	sub    $0x8,%esp                      
  10cf2e:	57                   	push   %edi                           
  10cf2f:	53                   	push   %ebx                           
  10cf30:	e8 57 06 00 00       	call   10d58c <_Thread_Set_priority>  
                                                                      
  /*                                                                  
   *  Initialize the CPU usage statistics                             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );             
  10cf35:	c7 83 84 00 00 00 00 	movl   $0x0,0x84(%ebx)                
  10cf3c:	00 00 00                                                    
  10cf3f:	c7 83 88 00 00 00 00 	movl   $0x0,0x88(%ebx)                
  10cf46:	00 00 00                                                    
                                                                      
   _Workspace_Free( sched );                                          
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  return false;                                                       
}                                                                     
  10cf49:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10cf4c:	8b 40 1c             	mov    0x1c(%eax),%eax                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10cf4f:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10cf53:	89 1c 90             	mov    %ebx,(%eax,%edx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10cf56:	8b 45 30             	mov    0x30(%ebp),%eax                
  10cf59:	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 );    
  10cf5c:	89 1c 24             	mov    %ebx,(%esp)                    
  10cf5f:	e8 7c 0a 00 00       	call   10d9e0 <_User_extensions_Thread_create>
  if ( extension_status )                                             
  10cf64:	83 c4 10             	add    $0x10,%esp                     
  10cf67:	84 c0                	test   %al,%al                        
  10cf69:	75 55                	jne    10cfc0 <_Thread_Initialize+0x1a4>
    return true;                                                      
                                                                      
failed:                                                               
  _Workspace_Free( the_thread->libc_reent );                          
  10cf6b:	83 ec 0c             	sub    $0xc,%esp                      
  10cf6e:	ff b3 e4 00 00 00    	pushl  0xe4(%ebx)                     
  10cf74:	e8 ff 0d 00 00       	call   10dd78 <_Workspace_Free>       
                                                                      
  for ( i=0 ; i <= THREAD_API_LAST ; i++ )                            
    _Workspace_Free( the_thread->API_Extensions[i] );                 
  10cf79:	5f                   	pop    %edi                           
  10cf7a:	ff b3 e8 00 00 00    	pushl  0xe8(%ebx)                     
  10cf80:	e8 f3 0d 00 00       	call   10dd78 <_Workspace_Free>       
  10cf85:	59                   	pop    %ecx                           
  10cf86:	ff b3 ec 00 00 00    	pushl  0xec(%ebx)                     
  10cf8c:	e8 e7 0d 00 00       	call   10dd78 <_Workspace_Free>       
                                                                      
  _Workspace_Free( extensions_area );                                 
  10cf91:	89 34 24             	mov    %esi,(%esp)                    
  10cf94:	e8 df 0d 00 00       	call   10dd78 <_Workspace_Free>       
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    _Workspace_Free( fp_area );                                       
  10cf99:	5a                   	pop    %edx                           
  10cf9a:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10cf9d:	e8 d6 0d 00 00       	call   10dd78 <_Workspace_Free>       
  #endif                                                              
                                                                      
   _Workspace_Free( sched );                                          
  10cfa2:	58                   	pop    %eax                           
  10cfa3:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10cfa6:	e8 cd 0d 00 00       	call   10dd78 <_Workspace_Free>       
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  10cfab:	89 1c 24             	mov    %ebx,(%esp)                    
  10cfae:	e8 c1 06 00 00       	call   10d674 <_Thread_Stack_Free>    
  return false;                                                       
  10cfb3:	83 c4 10             	add    $0x10,%esp                     
  10cfb6:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10cfb8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cfbb:	5b                   	pop    %ebx                           
  10cfbc:	5e                   	pop    %esi                           
  10cfbd:	5f                   	pop    %edi                           
  10cfbe:	c9                   	leave                                 
  10cfbf:	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;                                                      
  10cfc0:	b0 01                	mov    $0x1,%al                       
                                                                      
   _Workspace_Free( sched );                                          
                                                                      
   _Thread_Stack_Free( the_thread );                                  
  return false;                                                       
}                                                                     
  10cfc2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cfc5:	5b                   	pop    %ebx                           
  10cfc6:	5e                   	pop    %esi                           
  10cfc7:	5f                   	pop    %edi                           
  10cfc8:	c9                   	leave                                 
  10cfc9:	c3                   	ret                                   
  10cfca:	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 );               
  10cfcc:	83 ec 0c             	sub    $0xc,%esp                      
  10cfcf:	6a 6c                	push   $0x6c                          
  10cfd1:	e8 86 0d 00 00       	call   10dd5c <_Workspace_Allocate>   
  10cfd6:	89 45 e0             	mov    %eax,-0x20(%ebp)               
      if ( !fp_area )                                                 
  10cfd9:	83 c4 10             	add    $0x10,%esp                     
  10cfdc:	85 c0                	test   %eax,%eax                      
  10cfde:	0f 85 a2 fe ff ff    	jne    10ce86 <_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;                                             
  10cfe4:	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;                                  
  10cfe6:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  10cfed:	e9 79 ff ff ff       	jmp    10cf6b <_Thread_Initialize+0x14f>
  10cff2:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
  if ( _Thread_Maximum_extensions ) {                                 
    extensions_area = _Workspace_Allocate(                            
  10cff4:	83 ec 0c             	sub    $0xc,%esp                      
  10cff7:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax              
  10cffe:	50                   	push   %eax                           
  10cfff:	e8 58 0d 00 00       	call   10dd5c <_Workspace_Allocate>   
  10d004:	89 c6                	mov    %eax,%esi                      
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
  10d006:	83 c4 10             	add    $0x10,%esp                     
  10d009:	85 c0                	test   %eax,%eax                      
  10d00b:	74 5a                	je     10d067 <_Thread_Initialize+0x24b>
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10d00d:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)                
  10d013:	8b 0d 90 78 12 00    	mov    0x127890,%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++ )              
  10d019:	31 d2                	xor    %edx,%edx                      
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
    if ( !extensions_area )                                           
      goto failed;                                                    
  }                                                                   
  the_thread->extensions = (void **) extensions_area;                 
  10d01b:	31 c0                	xor    %eax,%eax                      
  10d01d:	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;                               
  10d020:	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++ )              
  10d027:	40                   	inc    %eax                           
  10d028:	89 c2                	mov    %eax,%edx                      
  10d02a:	39 c1                	cmp    %eax,%ecx                      
  10d02c:	73 f2                	jae    10d020 <_Thread_Initialize+0x204>
  10d02e:	e9 94 fe ff ff       	jmp    10cec7 <_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 );
  10d033:	83 ec 08             	sub    $0x8,%esp                      
  10d036:	56                   	push   %esi                           
  10d037:	53                   	push   %ebx                           
  10d038:	88 55 d8             	mov    %dl,-0x28(%ebp)                
  10d03b:	e8 d0 05 00 00       	call   10d610 <_Thread_Stack_Allocate>
      if ( !actual_stack_size || actual_stack_size < stack_size )     
  10d040:	83 c4 10             	add    $0x10,%esp                     
  10d043:	85 c0                	test   %eax,%eax                      
  10d045:	8a 55 d8             	mov    -0x28(%ebp),%dl                
  10d048:	74 16                	je     10d060 <_Thread_Initialize+0x244>
  10d04a:	39 c6                	cmp    %eax,%esi                      
  10d04c:	77 12                	ja     10d060 <_Thread_Initialize+0x244><== NEVER TAKEN
        return false;                     /* stack allocation failed */
                                                                      
      stack = the_thread->Start.stack;                                
  10d04e:	8b 8b c4 00 00 00    	mov    0xc4(%ebx),%ecx                
      the_thread->Start.core_allocated_stack = true;                  
  10d054:	c6 83 b4 00 00 00 01 	movb   $0x1,0xb4(%ebx)                
  10d05b:	e9 09 fe ff ff       	jmp    10ce69 <_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 */
  10d060:	31 c0                	xor    %eax,%eax                      
  10d062:	e9 51 ff ff ff       	jmp    10cfb8 <_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;                                  
  10d067:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  10d06e:	e9 f8 fe ff ff       	jmp    10cf6b <_Thread_Initialize+0x14f>
                                                                      

00112028 <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) {
  112028:	55                   	push   %ebp                           
  112029:	89 e5                	mov    %esp,%ebp                      
  11202b:	53                   	push   %ebx                           
  11202c:	83 ec 10             	sub    $0x10,%esp                     
  11202f:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  the_thread->resource_count   = 0;                                   
  112032:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)                
  the_thread->is_preemptible   = the_thread->Start.is_preemptible;    
  112039:	8a 83 a0 00 00 00    	mov    0xa0(%ebx),%al                 
  11203f:	88 43 74             	mov    %al,0x74(%ebx)                 
  the_thread->budget_algorithm = the_thread->Start.budget_algorithm;  
  112042:	8b 83 a4 00 00 00    	mov    0xa4(%ebx),%eax                
  112048:	89 43 7c             	mov    %eax,0x7c(%ebx)                
  the_thread->budget_callout   = the_thread->Start.budget_callout;    
  11204b:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax                
  112051:	89 83 80 00 00 00    	mov    %eax,0x80(%ebx)                
                                                                      
  the_thread->Start.pointer_argument = pointer_argument;              
  112057:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  11205a:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)                
  the_thread->Start.numeric_argument = numeric_argument;              
  112060:	8b 45 10             	mov    0x10(%ebp),%eax                
  112063:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)                
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
  112069:	53                   	push   %ebx                           
  11206a:	e8 8d be ff ff       	call   10defc <_Thread_queue_Extract_with_proxy>
  11206f:	83 c4 10             	add    $0x10,%esp                     
  112072:	84 c0                	test   %al,%al                        
  112074:	75 06                	jne    11207c <_Thread_Reset+0x54>    
                                                                      
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
  112076:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  11207a:	74 28                	je     1120a4 <_Thread_Reset+0x7c>    
      (void) _Watchdog_Remove( &the_thread->Timer );                  
  }                                                                   
                                                                      
  if ( the_thread->current_priority != the_thread->Start.initial_priority ) {
  11207c:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax                
  112082:	39 43 14             	cmp    %eax,0x14(%ebx)                
  112085:	74 15                	je     11209c <_Thread_Reset+0x74>    
    the_thread->real_priority = the_thread->Start.initial_priority;   
  112087:	89 43 18             	mov    %eax,0x18(%ebx)                
    _Thread_Set_priority( the_thread, the_thread->Start.initial_priority );
  11208a:	89 45 0c             	mov    %eax,0xc(%ebp)                 
  11208d:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
}                                                                     
  112090:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  112093:	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 );
  112094:	e9 3f c0 ff ff       	jmp    10e0d8 <_Thread_Set_priority>  
  112099:	8d 76 00             	lea    0x0(%esi),%esi                 
  }                                                                   
}                                                                     
  11209c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11209f:	c9                   	leave                                 
  1120a0:	c3                   	ret                                   
  1120a1:	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 );                  
  1120a4:	83 ec 0c             	sub    $0xc,%esp                      
  1120a7:	8d 43 48             	lea    0x48(%ebx),%eax                
  1120aa:	50                   	push   %eax                           
  1120ab:	e8 10 c7 ff ff       	call   10e7c0 <_Watchdog_Remove>      
  1120b0:	83 c4 10             	add    $0x10,%esp                     
  1120b3:	eb c7                	jmp    11207c <_Thread_Reset+0x54>    
                                                                      

0010d610 <_Thread_Stack_Allocate>: size_t _Thread_Stack_Allocate( Thread_Control *the_thread, size_t stack_size ) {
  10d610:	55                   	push   %ebp                           
  10d611:	89 e5                	mov    %esp,%ebp                      
  10d613:	53                   	push   %ebx                           
  10d614:	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;                                               
  10d617:	a1 50 35 12 00       	mov    0x123550,%eax                  
  10d61c:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10d61f:	39 c3                	cmp    %eax,%ebx                      
  10d621:	73 02                	jae    10d625 <_Thread_Stack_Allocate+0x15>
  10d623:	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 ) {                          
  10d625:	a1 80 35 12 00       	mov    0x123580,%eax                  
  10d62a:	85 c0                	test   %eax,%eax                      
  10d62c:	74 32                	je     10d660 <_Thread_Stack_Allocate+0x50>
    stack_addr = (*Configuration.stack_allocate_hook)( the_stack_size );
  10d62e:	83 ec 0c             	sub    $0xc,%esp                      
  10d631:	53                   	push   %ebx                           
  10d632:	ff d0                	call   *%eax                          
  10d634:	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 )                                                  
  10d637:	85 c0                	test   %eax,%eax                      
  10d639:	74 11                	je     10d64c <_Thread_Stack_Allocate+0x3c>
    the_stack_size = 0;                                               
                                                                      
  the_thread->Start.stack = stack_addr;                               
  10d63b:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d63e:	89 82 c4 00 00 00    	mov    %eax,0xc4(%edx)                
                                                                      
  return the_stack_size;                                              
}                                                                     
  10d644:	89 d8                	mov    %ebx,%eax                      
  10d646:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d649:	c9                   	leave                                 
  10d64a:	c3                   	ret                                   
  10d64b:	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;                                               
  10d64c:	31 db                	xor    %ebx,%ebx                      
                                                                      
  the_thread->Start.stack = stack_addr;                               
  10d64e:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10d651:	89 82 c4 00 00 00    	mov    %eax,0xc4(%edx)                
                                                                      
  return the_stack_size;                                              
}                                                                     
  10d657:	89 d8                	mov    %ebx,%eax                      
  10d659:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d65c:	c9                   	leave                                 
  10d65d:	c3                   	ret                                   
  10d65e:	66 90                	xchg   %ax,%ax                        
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Stack_Adjust_size (                  
  size_t size                                                         
)                                                                     
{                                                                     
  return size + CPU_STACK_ALIGNMENT;                                  
  10d660:	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 );               
  10d663:	83 ec 0c             	sub    $0xc,%esp                      
  10d666:	53                   	push   %ebx                           
  10d667:	e8 f0 06 00 00       	call   10dd5c <_Workspace_Allocate>   
  10d66c:	83 c4 10             	add    $0x10,%esp                     
  10d66f:	eb c6                	jmp    10d637 <_Thread_Stack_Allocate+0x27>
                                                                      

0010d674 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) {
  10d674:	55                   	push   %ebp                           
  10d675:	89 e5                	mov    %esp,%ebp                      
  10d677:	83 ec 08             	sub    $0x8,%esp                      
  10d67a:	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 )                    
  10d67d:	80 b8 b4 00 00 00 00 	cmpb   $0x0,0xb4(%eax)                
  10d684:	74 16                	je     10d69c <_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 )                                
  10d686:	8b 15 84 35 12 00    	mov    0x123584,%edx                  
  10d68c:	85 d2                	test   %edx,%edx                      
  10d68e:	74 10                	je     10d6a0 <_Thread_Stack_Free+0x2c>
    (*Configuration.stack_free_hook)( the_thread->Start.Initial_stack.area );
  10d690:	8b 80 bc 00 00 00    	mov    0xbc(%eax),%eax                
  10d696:	89 45 08             	mov    %eax,0x8(%ebp)                 
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
  10d699:	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 );
  10d69a:	ff e2                	jmp    *%edx                          
  else                                                                
    _Workspace_Free( the_thread->Start.Initial_stack.area );          
}                                                                     
  10d69c:	c9                   	leave                                 
  10d69d:	c3                   	ret                                   
  10d69e:	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 );          
  10d6a0:	8b 80 bc 00 00 00    	mov    0xbc(%eax),%eax                
  10d6a6:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10d6a9:	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 );          
  10d6aa:	e9 c9 06 00 00       	jmp    10dd78 <_Workspace_Free>       
                                                                      

0010d76c <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) {
  10d76c:	55                   	push   %ebp                           
  10d76d:	89 e5                	mov    %esp,%ebp                      
  10d76f:	53                   	push   %ebx                           
  10d770:	83 ec 04             	sub    $0x4,%esp                      
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
  10d773:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
  /*                                                                  
   *  If the thread is not preemptible or is not ready, then          
   *  just return.                                                    
   */                                                                 
                                                                      
  if ( !executing->is_preemptible )                                   
  10d779:	80 7b 74 00          	cmpb   $0x0,0x74(%ebx)                
  10d77d:	74 19                	je     10d798 <_Thread_Tickle_timeslice+0x2c>
    return;                                                           
                                                                      
  if ( !_States_Is_ready( executing->current_state ) )                
  10d77f:	8b 43 10             	mov    0x10(%ebx),%eax                
  10d782:	85 c0                	test   %eax,%eax                      
  10d784:	75 12                	jne    10d798 <_Thread_Tickle_timeslice+0x2c>
                                                                      
  /*                                                                  
   *  The cpu budget algorithm determines what happens next.          
   */                                                                 
                                                                      
  switch ( executing->budget_algorithm ) {                            
  10d786:	8b 43 7c             	mov    0x7c(%ebx),%eax                
  10d789:	83 f8 01             	cmp    $0x1,%eax                      
  10d78c:	72 0a                	jb     10d798 <_Thread_Tickle_timeslice+0x2c>
  10d78e:	83 f8 02             	cmp    $0x2,%eax                      
  10d791:	76 29                	jbe    10d7bc <_Thread_Tickle_timeslice+0x50>
  10d793:	83 f8 03             	cmp    $0x3,%eax                      
  10d796:	74 08                	je     10d7a0 <_Thread_Tickle_timeslice+0x34><== ALWAYS TAKEN
	if ( --executing->cpu_time_budget == 0 )                             
	  (*executing->budget_callout)( executing );                         
	break;                                                               
    #endif                                                            
  }                                                                   
}                                                                     
  10d798:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d79b:	c9                   	leave                                 
  10d79c:	c3                   	ret                                   
  10d79d:	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 )                             
  10d7a0:	8b 43 78             	mov    0x78(%ebx),%eax                
  10d7a3:	48                   	dec    %eax                           
  10d7a4:	89 43 78             	mov    %eax,0x78(%ebx)                
  10d7a7:	85 c0                	test   %eax,%eax                      
  10d7a9:	75 ed                	jne    10d798 <_Thread_Tickle_timeslice+0x2c>
	  (*executing->budget_callout)( executing );                         
  10d7ab:	83 ec 0c             	sub    $0xc,%esp                      
  10d7ae:	53                   	push   %ebx                           
  10d7af:	ff 93 80 00 00 00    	call   *0x80(%ebx)                    
  10d7b5:	83 c4 10             	add    $0x10,%esp                     
  10d7b8:	eb de                	jmp    10d798 <_Thread_Tickle_timeslice+0x2c>
  10d7ba:	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 ) {               
  10d7bc:	8b 43 78             	mov    0x78(%ebx),%eax                
  10d7bf:	48                   	dec    %eax                           
  10d7c0:	89 43 78             	mov    %eax,0x78(%ebx)                
  10d7c3:	85 c0                	test   %eax,%eax                      
  10d7c5:	7f d1                	jg     10d798 <_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();                                      
  10d7c7:	ff 15 6c 34 12 00    	call   *0x12346c                      
         *  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;     
  10d7cd:	a1 c0 77 12 00       	mov    0x1277c0,%eax                  
  10d7d2:	89 43 78             	mov    %eax,0x78(%ebx)                
  10d7d5:	eb c1                	jmp    10d798 <_Thread_Tickle_timeslice+0x2c>
                                                                      

0010d14c <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) {
  10d14c:	55                   	push   %ebp                           
  10d14d:	89 e5                	mov    %esp,%ebp                      
  10d14f:	57                   	push   %edi                           
  10d150:	56                   	push   %esi                           
  10d151:	53                   	push   %ebx                           
  10d152:	83 ec 2c             	sub    $0x2c,%esp                     
  10d155:	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 );                                              
  10d158:	9c                   	pushf                                 
  10d159:	fa                   	cli                                   
  10d15a:	58                   	pop    %eax                           
  10d15b:	89 f9                	mov    %edi,%ecx                      
  for( index=0 ;                                                      
  10d15d:	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 );                                               
}                                                                     
  10d15f:	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 );                            
  10d161:	8d 34 52             	lea    (%edx,%edx,2),%esi             
  10d164:	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 ] ) ) {
  10d168:	39 f3                	cmp    %esi,%ebx                      
  10d16a:	75 18                	jne    10d184 <_Thread_queue_Dequeue_priority+0x38>
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
  10d16c:	42                   	inc    %edx                           
  10d16d:	83 c1 0c             	add    $0xc,%ecx                      
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
  10d170:	83 fa 04             	cmp    $0x4,%edx                      
  10d173:	75 ea                	jne    10d15f <_Thread_queue_Dequeue_priority+0x13>
  }                                                                   
                                                                      
  /*                                                                  
   * We did not find a thread to unblock.                             
   */                                                                 
  _ISR_Enable( level );                                               
  10d175:	50                   	push   %eax                           
  10d176:	9d                   	popf                                  
  return NULL;                                                        
  10d177:	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 );                                               
}                                                                     
  10d179:	89 f0                	mov    %esi,%eax                      
  10d17b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d17e:	5b                   	pop    %ebx                           
  10d17f:	5e                   	pop    %esi                           
  10d180:	5f                   	pop    %edi                           
  10d181:	c9                   	leave                                 
  10d182:	c3                   	ret                                   
  10d183:	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(                   
  10d184:	89 de                	mov    %ebx,%esi                      
   */                                                                 
  _ISR_Enable( level );                                               
  return NULL;                                                        
                                                                      
dequeue:                                                              
  the_thread->Wait.queue = NULL;                                      
  10d186:	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 );                                               
}                                                                     
  10d18d:	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;                    
  10d190:	8b 0b                	mov    (%ebx),%ecx                    
  previous_node    = the_thread->Object.Node.previous;                
  10d192:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  10d195:	89 7d d4             	mov    %edi,-0x2c(%ebp)               
  10d198:	8d 7b 3c             	lea    0x3c(%ebx),%edi                
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
  10d19b:	39 fa                	cmp    %edi,%edx                      
  10d19d:	74 7f                	je     10d21e <_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 );                                               
}                                                                     
  10d19f:	8b 7b 40             	mov    0x40(%ebx),%edi                
  10d1a2:	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;                           
  10d1a5:	8b 3a                	mov    (%edx),%edi                    
  10d1a7:	89 7d e0             	mov    %edi,-0x20(%ebp)               
                                                                      
    previous_node->next      = new_first_node;                        
  10d1aa:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  10d1ad:	89 17                	mov    %edx,(%edi)                    
    next_node->previous      = new_first_node;                        
  10d1af:	89 51 04             	mov    %edx,0x4(%ecx)                 
    new_first_node->next     = next_node;                             
  10d1b2:	89 0a                	mov    %ecx,(%edx)                    
    new_first_node->previous = previous_node;                         
  10d1b4:	89 7a 04             	mov    %edi,0x4(%edx)                 
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
  10d1b7:	8b 4b 40             	mov    0x40(%ebx),%ecx                
  10d1ba:	39 4b 38             	cmp    %ecx,0x38(%ebx)                
  10d1bd:	74 17                	je     10d1d6 <_Thread_queue_Dequeue_priority+0x8a>
                                                /* > two threads on 2-n */
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
  10d1bf:	8d 4a 38             	lea    0x38(%edx),%ecx                
  10d1c2:	8b 7d e0             	mov    -0x20(%ebp),%edi               
  10d1c5:	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;                                   
  10d1c8:	89 7a 38             	mov    %edi,0x38(%edx)                
      tail->previous = last_node;                                     
  10d1cb:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10d1ce:	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 );          
  10d1d1:	83 c2 3c             	add    $0x3c,%edx                     
  10d1d4:	89 11                	mov    %edx,(%ecx)                    
  } else {                                                            
    previous_node->next = next_node;                                  
    next_node->previous = previous_node;                              
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  10d1d6:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  10d1da:	74 18                	je     10d1f4 <_Thread_queue_Dequeue_priority+0xa8>
    _ISR_Enable( level );                                             
  10d1dc:	50                   	push   %eax                           
  10d1dd:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  10d1de:	83 ec 08             	sub    $0x8,%esp                      
  10d1e1:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10d1e6:	53                   	push   %ebx                           
  10d1e7:	e8 30 f8 ff ff       	call   10ca1c <_Thread_Clear_state>   
  10d1ec:	83 c4 10             	add    $0x10,%esp                     
  10d1ef:	eb 88                	jmp    10d179 <_Thread_queue_Dequeue_priority+0x2d>
  10d1f1:	8d 76 00             	lea    0x0(%esi),%esi                 
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
  10d1f4:	c7 43 50 03 00 00 00 	movl   $0x3,0x50(%ebx)                
    _Thread_Unblock( the_thread );                                    
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
  10d1fb:	50                   	push   %eax                           
  10d1fc:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  10d1fd:	83 ec 0c             	sub    $0xc,%esp                      
  10d200:	8d 43 48             	lea    0x48(%ebx),%eax                
  10d203:	50                   	push   %eax                           
  10d204:	e8 2b 0a 00 00       	call   10dc34 <_Watchdog_Remove>      
  10d209:	58                   	pop    %eax                           
  10d20a:	5a                   	pop    %edx                           
  10d20b:	68 f8 ff 03 10       	push   $0x1003fff8                    
  10d210:	53                   	push   %ebx                           
  10d211:	e8 06 f8 ff ff       	call   10ca1c <_Thread_Clear_state>   
  10d216:	83 c4 10             	add    $0x10,%esp                     
  10d219:	e9 5b ff ff ff       	jmp    10d179 <_Thread_queue_Dequeue_priority+0x2d>
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
  10d21e:	8b 7d d4             	mov    -0x2c(%ebp),%edi               
  10d221:	89 0f                	mov    %ecx,(%edi)                    
    next_node->previous = previous_node;                              
  10d223:	89 79 04             	mov    %edi,0x4(%ecx)                 
  10d226:	eb ae                	jmp    10d1d6 <_Thread_queue_Dequeue_priority+0x8a>
                                                                      

001112b8 <_Thread_queue_Extract>: void _Thread_queue_Extract( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
  1112b8:	55                   	push   %ebp                           
  1112b9:	89 e5                	mov    %esp,%ebp                      
  1112bb:	83 ec 08             	sub    $0x8,%esp                      
  1112be:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1112c1:	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 )
  1112c4:	83 78 34 01          	cmpl   $0x1,0x34(%eax)                
  1112c8:	74 0e                	je     1112d8 <_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 );       
  1112ca:	89 55 0c             	mov    %edx,0xc(%ebp)                 
  1112cd:	89 45 08             	mov    %eax,0x8(%ebp)                 
                                                                      
}                                                                     
  1112d0:	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 );       
  1112d1:	e9 8a 1a 00 00       	jmp    112d60 <_Thread_queue_Extract_fifo>
  1112d6:	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 );   
  1112d8:	51                   	push   %ecx                           
  1112d9:	6a 00                	push   $0x0                           
  1112db:	52                   	push   %edx                           
  1112dc:	50                   	push   %eax                           
  1112dd:	e8 06 00 00 00       	call   1112e8 <_Thread_queue_Extract_priority_helper>
  1112e2:	83 c4 10             	add    $0x10,%esp                     
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    _Thread_queue_Extract_fifo( the_thread_queue, the_thread );       
                                                                      
}                                                                     
  1112e5:	c9                   	leave                                 
  1112e6:	c3                   	ret                                   
                                                                      

00112d60 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue __attribute__((unused)), Thread_Control *the_thread ) {
  112d60:	55                   	push   %ebp                           
  112d61:	89 e5                	mov    %esp,%ebp                      
  112d63:	53                   	push   %ebx                           
  112d64:	83 ec 04             	sub    $0x4,%esp                      
  112d67:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  112d6a:	9c                   	pushf                                 
  112d6b:	fa                   	cli                                   
  112d6c:	58                   	pop    %eax                           
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  112d6d:	f7 43 10 e0 be 03 00 	testl  $0x3bee0,0x10(%ebx)            
  112d74:	74 2e                	je     112da4 <_Thread_queue_Extract_fifo+0x44>
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  112d76:	8b 0b                	mov    (%ebx),%ecx                    
  previous       = the_node->previous;                                
  112d78:	8b 53 04             	mov    0x4(%ebx),%edx                 
  next->previous = previous;                                          
  112d7b:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  112d7e:	89 0a                	mov    %ecx,(%edx)                    
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
  112d80:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)                
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  112d87:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  112d8b:	74 1f                	je     112dac <_Thread_queue_Extract_fifo+0x4c>
    _ISR_Enable( level );                                             
  112d8d:	50                   	push   %eax                           
  112d8e:	9d                   	popf                                  
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
  112d8f:	c7 45 0c f8 ff 03 10 	movl   $0x1003fff8,0xc(%ebp)          
  112d96:	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                                                                
                                                                      
}                                                                     
  112d99:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  112d9c:	c9                   	leave                                 
  112d9d:	e9 7a 9c ff ff       	jmp    10ca1c <_Thread_Clear_state>   
  112da2:	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 );                                             
  112da4:	50                   	push   %eax                           
  112da5:	9d                   	popf                                  
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
  112da6:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  112da9:	c9                   	leave                                 
  112daa:	c3                   	ret                                   
  112dab:	90                   	nop                                   
  112dac:	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 );                                             
  112db3:	50                   	push   %eax                           
  112db4:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  112db5:	83 ec 0c             	sub    $0xc,%esp                      
  112db8:	8d 43 48             	lea    0x48(%ebx),%eax                
  112dbb:	50                   	push   %eax                           
  112dbc:	e8 73 ae ff ff       	call   10dc34 <_Watchdog_Remove>      
  112dc1:	83 c4 10             	add    $0x10,%esp                     
  112dc4:	eb c9                	jmp    112d8f <_Thread_queue_Extract_fifo+0x2f>
                                                                      

001112e8 <_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 ) {
  1112e8:	55                   	push   %ebp                           
  1112e9:	89 e5                	mov    %esp,%ebp                      
  1112eb:	57                   	push   %edi                           
  1112ec:	56                   	push   %esi                           
  1112ed:	53                   	push   %ebx                           
  1112ee:	83 ec 1c             	sub    $0x1c,%esp                     
  1112f1:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  1112f4:	8a 45 10             	mov    0x10(%ebp),%al                 
  1112f7:	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 );                                              
  1112fa:	9c                   	pushf                                 
  1112fb:	fa                   	cli                                   
  1112fc:	8f 45 e4             	popl   -0x1c(%ebp)                    
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  1112ff:	f7 43 10 e0 be 03 00 	testl  $0x3bee0,0x10(%ebx)            
  111306:	74 6c                	je     111374 <_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;                                     
  111308:	8b 13                	mov    (%ebx),%edx                    
  previous_node = the_node->previous;                                 
  11130a:	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                                                                
}                                                                     
  11130d:	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 );                            
  111310:	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 ) ) {              
  111313:	39 f0                	cmp    %esi,%eax                      
  111315:	74 69                	je     111380 <_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                                                                
}                                                                     
  111317:	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;                          
  11131a:	8b 30                	mov    (%eax),%esi                    
                                                                      
    previous_node->next      = new_first_node;                        
  11131c:	89 01                	mov    %eax,(%ecx)                    
    next_node->previous      = new_first_node;                        
  11131e:	89 42 04             	mov    %eax,0x4(%edx)                 
    new_first_node->next     = next_node;                             
  111321:	89 10                	mov    %edx,(%eax)                    
    new_first_node->previous = previous_node;                         
  111323:	89 48 04             	mov    %ecx,0x4(%eax)                 
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
  111326:	8b 53 40             	mov    0x40(%ebx),%edx                
  111329:	39 53 38             	cmp    %edx,0x38(%ebx)                
  11132c:	74 11                	je     11133f <_Thread_queue_Extract_priority_helper+0x57>
                                        /* > two threads on 2-n */    
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
  11132e:	8d 50 38             	lea    0x38(%eax),%edx                
  111331:	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;                                   
  111334:	89 70 38             	mov    %esi,0x38(%eax)                
      tail->previous = last_node;                                     
  111337:	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 );          
  11133a:	83 c0 3c             	add    $0x3c,%eax                     
  11133d:	89 07                	mov    %eax,(%edi)                    
                                                                      
  /*                                                                  
   *  If we are not supposed to touch timers or the thread's state, return.
   */                                                                 
                                                                      
  if ( requeuing ) {                                                  
  11133f:	80 7d e3 00          	cmpb   $0x0,-0x1d(%ebp)               
  111343:	75 23                	jne    111368 <_Thread_queue_Extract_priority_helper+0x80>
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
  111345:	83 7b 50 02          	cmpl   $0x2,0x50(%ebx)                
  111349:	74 3d                	je     111388 <_Thread_queue_Extract_priority_helper+0xa0>
    _ISR_Enable( level );                                             
  11134b:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  11134e:	9d                   	popf                                  
  11134f:	c7 45 0c f8 ff 03 10 	movl   $0x1003fff8,0xc(%ebp)          
  111356:	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                                                                
}                                                                     
  111359:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11135c:	5b                   	pop    %ebx                           
  11135d:	5e                   	pop    %esi                           
  11135e:	5f                   	pop    %edi                           
  11135f:	c9                   	leave                                 
  111360:	e9 b7 b6 ff ff       	jmp    10ca1c <_Thread_Clear_state>   
  111365:	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 );                                             
  111368:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  11136b:	9d                   	popf                                  
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  11136c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11136f:	5b                   	pop    %ebx                           
  111370:	5e                   	pop    %esi                           
  111371:	5f                   	pop    %edi                           
  111372:	c9                   	leave                                 
  111373:	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 );                                             
  111374:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  111377:	9d                   	popf                                  
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
  111378:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11137b:	5b                   	pop    %ebx                           
  11137c:	5e                   	pop    %esi                           
  11137d:	5f                   	pop    %edi                           
  11137e:	c9                   	leave                                 
  11137f:	c3                   	ret                                   
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
  111380:	89 11                	mov    %edx,(%ecx)                    
    next_node->previous = previous_node;                              
  111382:	89 4a 04             	mov    %ecx,0x4(%edx)                 
  111385:	eb b8                	jmp    11133f <_Thread_queue_Extract_priority_helper+0x57>
  111387:	90                   	nop                                   
  111388:	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 );                                             
  11138f:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  111392:	9d                   	popf                                  
    (void) _Watchdog_Remove( &the_thread->Timer );                    
  111393:	83 ec 0c             	sub    $0xc,%esp                      
  111396:	8d 43 48             	lea    0x48(%ebx),%eax                
  111399:	50                   	push   %eax                           
  11139a:	e8 95 c8 ff ff       	call   10dc34 <_Watchdog_Remove>      
  11139f:	83 c4 10             	add    $0x10,%esp                     
  1113a2:	eb ab                	jmp    11134f <_Thread_queue_Extract_priority_helper+0x67>
                                                                      

0010d438 <_Thread_queue_Extract_with_proxy>: */ bool _Thread_queue_Extract_with_proxy( Thread_Control *the_thread ) {
  10d438:	55                   	push   %ebp                           
  10d439:	89 e5                	mov    %esp,%ebp                      
  10d43b:	83 ec 08             	sub    $0x8,%esp                      
  10d43e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  States_Control                state;                                
                                                                      
  state = the_thread->current_state;                                  
                                                                      
  if ( _States_Is_waiting_on_thread_queue( state ) ) {                
  10d441:	f7 40 10 e0 be 03 00 	testl  $0x3bee0,0x10(%eax)            
  10d448:	75 06                	jne    10d450 <_Thread_queue_Extract_with_proxy+0x18>
    #endif                                                            
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
                                                                      
    return true;                                                      
  }                                                                   
  return false;                                                       
  10d44a:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10d44c:	c9                   	leave                                 
  10d44d:	c3                   	ret                                   
  10d44e:	66 90                	xchg   %ax,%ax                        
                                                                      
        if ( proxy_extract_callout )                                  
          (*proxy_extract_callout)( the_thread );                     
      }                                                               
    #endif                                                            
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
  10d450:	83 ec 08             	sub    $0x8,%esp                      
  10d453:	50                   	push   %eax                           
  10d454:	ff 70 44             	pushl  0x44(%eax)                     
  10d457:	e8 5c 3e 00 00       	call   1112b8 <_Thread_queue_Extract> 
                                                                      
    return true;                                                      
  10d45c:	83 c4 10             	add    $0x10,%esp                     
  10d45f:	b0 01                	mov    $0x1,%al                       
  }                                                                   
  return false;                                                       
}                                                                     
  10d461:	c9                   	leave                                 
  10d462:	c3                   	ret                                   
                                                                      

0010f218 <_Thread_queue_First>: */ Thread_Control *_Thread_queue_First( Thread_queue_Control *the_thread_queue ) {
  10f218:	55                   	push   %ebp                           
  10f219:	89 e5                	mov    %esp,%ebp                      
  10f21b:	83 ec 08             	sub    $0x8,%esp                      
  10f21e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  Thread_Control * (*first_p)(Thread_queue_Control *);                
                                                                      
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
  10f221:	83 78 34 01          	cmpl   $0x1,0x34(%eax)                
  10f225:	74 0d                	je     10f234 <_Thread_queue_First+0x1c>
      first_p = _Thread_queue_First_priority;                         
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
  10f227:	ba cc 31 11 00       	mov    $0x1131cc,%edx                 
                                                                      
  return (*first_p)( the_thread_queue );                              
  10f22c:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10f22f:	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 );                              
  10f230:	ff e2                	jmp    *%edx                          
  10f232:	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;                         
  10f234:	ba 40 f2 10 00       	mov    $0x10f240,%edx                 
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
      first_p = _Thread_queue_First_fifo;                             
                                                                      
  return (*first_p)( the_thread_queue );                              
  10f239:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10f23c:	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 );                              
  10f23d:	ff e2                	jmp    *%edx                          
                                                                      

001131cc <_Thread_queue_First_fifo>: */ Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) {
  1131cc:	55                   	push   %ebp                           
  1131cd:	89 e5                	mov    %esp,%ebp                      
  1131cf:	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;                                                        
}                                                                     
  1131d2:	8b 02                	mov    (%edx),%eax                    
  1131d4:	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 ) )           
  1131d7:	39 d0                	cmp    %edx,%eax                      
  1131d9:	74 05                	je     1131e0 <_Thread_queue_First_fifo+0x14>
    return (Thread_Control *) _Chain_First( &the_thread_queue->Queues.Fifo );
                                                                      
  return NULL;                                                        
}                                                                     
  1131db:	c9                   	leave                                 
  1131dc:	c3                   	ret                                   
  1131dd:	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;                                                        
  1131e0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1131e2:	c9                   	leave                                 
  1131e3:	c3                   	ret                                   
                                                                      

0010d464 <_Thread_queue_Flush>: #else Thread_queue_Flush_callout remote_extract_callout __attribute__((unused)), #endif uint32_t status ) {
  10d464:	55                   	push   %ebp                           
  10d465:	89 e5                	mov    %esp,%ebp                      
  10d467:	56                   	push   %esi                           
  10d468:	53                   	push   %ebx                           
  10d469:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10d46c:	8b 75 10             	mov    0x10(%ebp),%esi                
  Thread_Control *the_thread;                                         
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) {
  10d46f:	eb 06                	jmp    10d477 <_Thread_queue_Flush+0x13>
  10d471:	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;                          
  10d474:	89 70 34             	mov    %esi,0x34(%eax)                
  uint32_t                    status                                  
)                                                                     
{                                                                     
  Thread_Control *the_thread;                                         
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) {
  10d477:	83 ec 0c             	sub    $0xc,%esp                      
  10d47a:	53                   	push   %ebx                           
  10d47b:	e8 80 fc ff ff       	call   10d100 <_Thread_queue_Dequeue> 
  10d480:	83 c4 10             	add    $0x10,%esp                     
  10d483:	85 c0                	test   %eax,%eax                      
  10d485:	75 ed                	jne    10d474 <_Thread_queue_Flush+0x10>
      ( *remote_extract_callout )( the_thread );                      
    else                                                              
#endif                                                                
      the_thread->Wait.return_code = status;                          
  }                                                                   
}                                                                     
  10d487:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d48a:	5b                   	pop    %ebx                           
  10d48b:	5e                   	pop    %esi                           
  10d48c:	c9                   	leave                                 
  10d48d:	c3                   	ret                                   
                                                                      

0010d490 <_Thread_queue_Initialize>: Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) {
  10d490:	55                   	push   %ebp                           
  10d491:	89 e5                	mov    %esp,%ebp                      
  10d493:	56                   	push   %esi                           
  10d494:	53                   	push   %ebx                           
  10d495:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10d498:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  the_thread_queue->state          = state;                           
  10d49b:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  10d49e:	89 48 38             	mov    %ecx,0x38(%eax)                
  the_thread_queue->discipline     = the_discipline;                  
  10d4a1:	89 50 34             	mov    %edx,0x34(%eax)                
  the_thread_queue->timeout_status = timeout_status;                  
  10d4a4:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10d4a7:	89 48 3c             	mov    %ecx,0x3c(%eax)                
  the_thread_queue->sync_state     = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
  10d4aa:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
                                                                      
  if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {         
  10d4b1:	83 fa 01             	cmp    $0x1,%edx                      
  10d4b4:	74 16                	je     10d4cc <_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 );                        
  10d4b6:	8d 50 04             	lea    0x4(%eax),%edx                 
  10d4b9:	89 10                	mov    %edx,(%eax)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10d4bb:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)                 
  tail->previous = head;                                              
  10d4c2:	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 );        
  }                                                                   
                                                                      
}                                                                     
  10d4c5:	5b                   	pop    %ebx                           
  10d4c6:	5e                   	pop    %esi                           
  10d4c7:	c9                   	leave                                 
  10d4c8:	c3                   	ret                                   
  10d4c9:	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 ) {         
  10d4cc:	89 c1                	mov    %eax,%ecx                      
  10d4ce:	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 );                        
  10d4d0:	8d 1c 52             	lea    (%edx,%edx,2),%ebx             
  10d4d3:	8d 1c 98             	lea    (%eax,%ebx,4),%ebx             
  10d4d6:	8d 73 04             	lea    0x4(%ebx),%esi                 
  10d4d9:	89 31                	mov    %esi,(%ecx)                    
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10d4db:	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 );                        
  10d4e2:	89 59 08             	mov    %ebx,0x8(%ecx)                 
    uint32_t   index;                                                 
                                                                      
    for( index=0 ;                                                    
         index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;         
         index++)                                                     
  10d4e5:	42                   	inc    %edx                           
  10d4e6:	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 ;                                                    
  10d4e9:	83 fa 04             	cmp    $0x4,%edx                      
  10d4ec:	75 e2                	jne    10d4d0 <_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 );        
  }                                                                   
                                                                      
}                                                                     
  10d4ee:	5b                   	pop    %ebx                           
  10d4ef:	5e                   	pop    %esi                           
  10d4f0:	c9                   	leave                                 
  10d4f1:	c3                   	ret                                   
                                                                      

0010d4f4 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
  10d4f4:	55                   	push   %ebp                           
  10d4f5:	89 e5                	mov    %esp,%ebp                      
  10d4f7:	57                   	push   %edi                           
  10d4f8:	56                   	push   %esi                           
  10d4f9:	53                   	push   %ebx                           
  10d4fa:	83 ec 1c             	sub    $0x1c,%esp                     
  10d4fd:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10d500:	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 )                                            
  10d503:	85 f6                	test   %esi,%esi                      
  10d505:	74 06                	je     10d50d <_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 ) {
  10d507:	83 7e 34 01          	cmpl   $0x1,0x34(%esi)                
  10d50b:	74 0b                	je     10d518 <_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 );                                             
  }                                                                   
}                                                                     
  10d50d:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10d510:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10d511:	5e                   	pop    %esi                           <== NOT EXECUTED
  10d512:	5f                   	pop    %edi                           <== NOT EXECUTED
  10d513:	c9                   	leave                                 <== NOT EXECUTED
  10d514:	c3                   	ret                                   <== NOT EXECUTED
  10d515:	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 );                                            
  10d518:	9c                   	pushf                                 
  10d519:	fa                   	cli                                   
  10d51a:	5b                   	pop    %ebx                           
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
  10d51b:	f7 47 10 e0 be 03 00 	testl  $0x3bee0,0x10(%edi)            
  10d522:	75 0c                	jne    10d530 <_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 );                                             
  10d524:	53                   	push   %ebx                           
  10d525:	9d                   	popf                                  
  }                                                                   
}                                                                     
  10d526:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d529:	5b                   	pop    %ebx                           
  10d52a:	5e                   	pop    %esi                           
  10d52b:	5f                   	pop    %edi                           
  10d52c:	c9                   	leave                                 
  10d52d:	c3                   	ret                                   
  10d52e:	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;
  10d530:	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 );  
  10d537:	50                   	push   %eax                           
  10d538:	6a 01                	push   $0x1                           
  10d53a:	57                   	push   %edi                           
  10d53b:	56                   	push   %esi                           
  10d53c:	e8 a7 3d 00 00       	call   1112e8 <_Thread_queue_Extract_priority_helper>
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
  10d541:	83 c4 0c             	add    $0xc,%esp                      
  10d544:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10d547:	50                   	push   %eax                           
  10d548:	57                   	push   %edi                           
  10d549:	56                   	push   %esi                           
  10d54a:	e8 71 fd ff ff       	call   10d2c0 <_Thread_queue_Enqueue_priority>
  10d54f:	83 c4 10             	add    $0x10,%esp                     
  10d552:	eb d0                	jmp    10d524 <_Thread_queue_Requeue+0x30>
                                                                      

0010d554 <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
  10d554:	55                   	push   %ebp                           
  10d555:	89 e5                	mov    %esp,%ebp                      
  10d557:	83 ec 20             	sub    $0x20,%esp                     
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10d55a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10d55d:	50                   	push   %eax                           
  10d55e:	ff 75 08             	pushl  0x8(%ebp)                      
  10d561:	e8 3e f8 ff ff       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  10d566:	83 c4 10             	add    $0x10,%esp                     
  10d569:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10d56c:	85 d2                	test   %edx,%edx                      
  10d56e:	75 17                	jne    10d587 <_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 );                    
  10d570:	83 ec 0c             	sub    $0xc,%esp                      
  10d573:	50                   	push   %eax                           
  10d574:	e8 2b 3e 00 00       	call   1113a4 <_Thread_queue_Process_timeout>
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
  10d579:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10d57e:	48                   	dec    %eax                           
  10d57f:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
  10d584:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
  10d587:	c9                   	leave                                 
  10d588:	c3                   	ret                                   
                                                                      

001183e0 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
  1183e0:	55                   	push   %ebp                           
  1183e1:	89 e5                	mov    %esp,%ebp                      
  1183e3:	57                   	push   %edi                           
  1183e4:	56                   	push   %esi                           
  1183e5:	53                   	push   %ebx                           
  1183e6:	83 ec 4c             	sub    $0x4c,%esp                     
  1183e9:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  1183ec:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  1183ef:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  1183f2:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  head->previous = NULL;                                              
  1183f5:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  tail->previous = head;                                              
  1183fc:	8d 4d dc             	lea    -0x24(%ebp),%ecx               
  1183ff:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  118402:	8d 7d d0             	lea    -0x30(%ebp),%edi               
  118405:	8d 45 d4             	lea    -0x2c(%ebp),%eax               
  118408:	89 45 b0             	mov    %eax,-0x50(%ebp)               
  11840b:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  head->previous = NULL;                                              
  11840e:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)               
  tail->previous = head;                                              
  118415:	89 7d d8             	mov    %edi,-0x28(%ebp)               
  118418:	8d 73 30             	lea    0x30(%ebx),%esi                
  11841b:	8d 4b 68             	lea    0x68(%ebx),%ecx                
  11841e:	89 4d c4             	mov    %ecx,-0x3c(%ebp)               
  118421:	8d 43 08             	lea    0x8(%ebx),%eax                 
  118424:	89 45 c0             	mov    %eax,-0x40(%ebp)               
  118427:	8d 53 40             	lea    0x40(%ebx),%edx                
  11842a:	89 55 bc             	mov    %edx,-0x44(%ebp)               
  11842d:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  /*                                                                  
   *  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;                                    
  118430:	8d 4d dc             	lea    -0x24(%ebp),%ecx               
  118433:	89 4b 78             	mov    %ecx,0x78(%ebx)                
  118436:	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;            
  118438:	a1 e4 21 14 00       	mov    0x1421e4,%eax                  
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
  11843d:	8b 53 3c             	mov    0x3c(%ebx),%edx                
                                                                      
  watchdogs->last_snapshot = snapshot;                                
  118440:	89 43 3c             	mov    %eax,0x3c(%ebx)                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
  118443:	51                   	push   %ecx                           
  118444:	57                   	push   %edi                           
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
  118445:	29 d0                	sub    %edx,%eax                      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
  118447:	50                   	push   %eax                           
  118448:	56                   	push   %esi                           
  118449:	e8 32 3f 00 00       	call   11c380 <_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();
  11844e:	a1 48 21 14 00       	mov    0x142148,%eax                  
  Watchdog_Interval last_snapshot = watchdogs->last_snapshot;         
  118453:	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 ) {                                   
  118456:	83 c4 10             	add    $0x10,%esp                     
  118459:	39 d0                	cmp    %edx,%eax                      
  11845b:	77 63                	ja     1184c0 <_Timer_server_Body+0xe0>
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
  11845d:	72 7d                	jb     1184dc <_Timer_server_Body+0xfc>
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
  11845f:	89 43 74             	mov    %eax,0x74(%ebx)                
  118462:	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 );
  118464:	8b 43 78             	mov    0x78(%ebx),%eax                
  118467:	83 ec 0c             	sub    $0xc,%esp                      
  11846a:	50                   	push   %eax                           
  11846b:	e8 f8 09 00 00       	call   118e68 <_Chain_Get>            
                                                                      
    if ( timer == NULL ) {                                            
  118470:	83 c4 10             	add    $0x10,%esp                     
  118473:	85 c0                	test   %eax,%eax                      
  118475:	74 35                	je     1184ac <_Timer_server_Body+0xcc><== ALWAYS TAKEN
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
  118477:	8b 50 38             	mov    0x38(%eax),%edx                <== NOT EXECUTED
  11847a:	83 fa 01             	cmp    $0x1,%edx                      <== NOT EXECUTED
  11847d:	74 19                	je     118498 <_Timer_server_Body+0xb8><== NOT EXECUTED
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
  11847f:	83 fa 03             	cmp    $0x3,%edx                      <== NOT EXECUTED
  118482:	75 e0                	jne    118464 <_Timer_server_Body+0x84><== NOT EXECUTED
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
  118484:	83 ec 08             	sub    $0x8,%esp                      <== NOT EXECUTED
  118487:	83 c0 10             	add    $0x10,%eax                     <== NOT EXECUTED
  11848a:	50                   	push   %eax                           <== NOT EXECUTED
  11848b:	ff 75 c4             	pushl  -0x3c(%ebp)                    <== NOT EXECUTED
  11848e:	e8 79 3f 00 00       	call   11c40c <_Watchdog_Insert>      <== NOT EXECUTED
  118493:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  118496:	eb cc                	jmp    118464 <_Timer_server_Body+0x84><== 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 );
  118498:	83 ec 08             	sub    $0x8,%esp                      <== NOT EXECUTED
  11849b:	83 c0 10             	add    $0x10,%eax                     <== NOT EXECUTED
  11849e:	50                   	push   %eax                           <== NOT EXECUTED
  11849f:	56                   	push   %esi                           <== NOT EXECUTED
  1184a0:	e8 67 3f 00 00       	call   11c40c <_Watchdog_Insert>      <== NOT EXECUTED
  1184a5:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  1184a8:	eb ba                	jmp    118464 <_Timer_server_Body+0x84><== NOT EXECUTED
  1184aa:	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 );                                            
  1184ac:	9c                   	pushf                                 
  1184ad:	fa                   	cli                                   
  1184ae:	58                   	pop    %eax                           
    if ( _Chain_Is_empty( insert_chain ) ) {                          
  1184af:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  1184b2:	39 55 dc             	cmp    %edx,-0x24(%ebp)               
  1184b5:	74 41                	je     1184f8 <_Timer_server_Body+0x118><== ALWAYS TAKEN
      ts->insert_chain = NULL;                                        
      _ISR_Enable( level );                                           
                                                                      
      break;                                                          
    } else {                                                          
      _ISR_Enable( level );                                           
  1184b7:	50                   	push   %eax                           <== NOT EXECUTED
  1184b8:	9d                   	popf                                  <== NOT EXECUTED
  1184b9:	e9 7a ff ff ff       	jmp    118438 <_Timer_server_Body+0x58><== NOT EXECUTED
  1184be:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
    /*                                                                
     *  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 );
  1184c0:	51                   	push   %ecx                           
  1184c1:	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;                                 
  1184c2:	89 c1                	mov    %eax,%ecx                      
  1184c4:	29 d1                	sub    %edx,%ecx                      
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
  1184c6:	51                   	push   %ecx                           
  1184c7:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  1184ca:	89 45 b8             	mov    %eax,-0x48(%ebp)               
  1184cd:	e8 ae 3e 00 00       	call   11c380 <_Watchdog_Adjust_to_chain>
  1184d2:	83 c4 10             	add    $0x10,%esp                     
  1184d5:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  1184d8:	eb 85                	jmp    11845f <_Timer_server_Body+0x7f>
  1184da:	66 90                	xchg   %ax,%ax                        
     /*                                                               
      *  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 ); 
  1184dc:	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;                                
  1184dd:	29 c2                	sub    %eax,%edx                      
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
  1184df:	52                   	push   %edx                           
  1184e0:	6a 01                	push   $0x1                           
  1184e2:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  1184e5:	89 45 b8             	mov    %eax,-0x48(%ebp)               
  1184e8:	e8 1b 3e 00 00       	call   11c308 <_Watchdog_Adjust>      
  1184ed:	83 c4 10             	add    $0x10,%esp                     
  1184f0:	8b 45 b8             	mov    -0x48(%ebp),%eax               
  1184f3:	e9 67 ff ff ff       	jmp    11845f <_Timer_server_Body+0x7f>
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
    if ( _Chain_Is_empty( insert_chain ) ) {                          
      ts->insert_chain = NULL;                                        
  1184f8:	c7 43 78 00 00 00 00 	movl   $0x0,0x78(%ebx)                
      _ISR_Enable( level );                                           
  1184ff:	50                   	push   %eax                           
  118500:	9d                   	popf                                  
  _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 ) ) {                          
  118501:	8b 4d b0             	mov    -0x50(%ebp),%ecx               
  118504:	39 4d d0             	cmp    %ecx,-0x30(%ebp)               
  118507:	75 23                	jne    11852c <_Timer_server_Body+0x14c>
  118509:	eb 33                	jmp    11853e <_Timer_server_Body+0x15e>
  11850b:	90                   	nop                                   
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
  11850c:	8b 10                	mov    (%eax),%edx                    
                                                                      
  head->next = new_first;                                             
  11850e:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  new_first->previous = head;                                         
  118511:	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;                        
  118514:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)                 
          _ISR_Enable( level );                                       
  11851b:	51                   	push   %ecx                           
  11851c:	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 );    
  11851d:	83 ec 08             	sub    $0x8,%esp                      
  118520:	ff 70 24             	pushl  0x24(%eax)                     
  118523:	ff 70 20             	pushl  0x20(%eax)                     
  118526:	ff 50 1c             	call   *0x1c(%eax)                    
      }                                                               
  118529:	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 );                                        
  11852c:	9c                   	pushf                                 
  11852d:	fa                   	cli                                   
  11852e:	59                   	pop    %ecx                           
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  11852f:	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))                                   
  118532:	3b 45 b0             	cmp    -0x50(%ebp),%eax               
  118535:	75 d5                	jne    11850c <_Timer_server_Body+0x12c>
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
  118537:	51                   	push   %ecx                           
  118538:	9d                   	popf                                  
  118539:	e9 f2 fe ff ff       	jmp    118430 <_Timer_server_Body+0x50>
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
  11853e:	c6 43 7c 00          	movb   $0x0,0x7c(%ebx)                
  118542:	a1 ac 20 14 00       	mov    0x1420ac,%eax                  
  118547:	40                   	inc    %eax                           
  118548:	a3 ac 20 14 00       	mov    %eax,0x1420ac                  
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
  11854d:	83 ec 08             	sub    $0x8,%esp                      
  118550:	6a 08                	push   $0x8                           
  118552:	ff 33                	pushl  (%ebx)                         
  118554:	e8 d7 37 00 00       	call   11bd30 <_Thread_Set_state>     
        _Timer_server_Reset_interval_system_watchdog( ts );           
  118559:	89 d8                	mov    %ebx,%eax                      
  11855b:	e8 e0 fd ff ff       	call   118340 <_Timer_server_Reset_interval_system_watchdog>
        _Timer_server_Reset_tod_system_watchdog( ts );                
  118560:	89 d8                	mov    %ebx,%eax                      
  118562:	e8 29 fe ff ff       	call   118390 <_Timer_server_Reset_tod_system_watchdog>
      _Thread_Enable_dispatch();                                      
  118567:	e8 18 2f 00 00       	call   11b484 <_Thread_Enable_dispatch>
                                                                      
      ts->active = true;                                              
  11856c:	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 );        
  118570:	5a                   	pop    %edx                           
  118571:	ff 75 c0             	pushl  -0x40(%ebp)                    
  118574:	e8 d3 3f 00 00       	call   11c54c <_Watchdog_Remove>      
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
  118579:	58                   	pop    %eax                           
  11857a:	ff 75 bc             	pushl  -0x44(%ebp)                    
  11857d:	e8 ca 3f 00 00       	call   11c54c <_Watchdog_Remove>      
  118582:	83 c4 10             	add    $0x10,%esp                     
  118585:	e9 a6 fe ff ff       	jmp    118430 <_Timer_server_Body+0x50>
                                                                      

0011858c <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) {
  11858c:	55                   	push   %ebp                           
  11858d:	89 e5                	mov    %esp,%ebp                      
  11858f:	57                   	push   %edi                           
  118590:	56                   	push   %esi                           
  118591:	53                   	push   %ebx                           
  118592:	83 ec 2c             	sub    $0x2c,%esp                     
  118595:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  118598:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  if ( ts->insert_chain == NULL ) {                                   
  11859b:	8b 53 78             	mov    0x78(%ebx),%edx                
  11859e:	85 d2                	test   %edx,%edx                      
  1185a0:	74 16                	je     1185b8 <_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 );           
  1185a2:	8b 53 78             	mov    0x78(%ebx),%edx                <== NOT EXECUTED
  1185a5:	89 45 0c             	mov    %eax,0xc(%ebp)                 <== NOT EXECUTED
  1185a8:	89 55 08             	mov    %edx,0x8(%ebp)                 <== NOT EXECUTED
  }                                                                   
}                                                                     
  1185ab:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  1185ae:	5b                   	pop    %ebx                           <== NOT EXECUTED
  1185af:	5e                   	pop    %esi                           <== NOT EXECUTED
  1185b0:	5f                   	pop    %edi                           <== NOT EXECUTED
  1185b1:	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 );           
  1185b2:	e9 75 08 00 00       	jmp    118e2c <_Chain_Append>         <== NOT EXECUTED
  1185b7:	90                   	nop                                   <== NOT EXECUTED
  1185b8:	8b 15 ac 20 14 00    	mov    0x1420ac,%edx                  
  1185be:	42                   	inc    %edx                           
  1185bf:	89 15 ac 20 14 00    	mov    %edx,0x1420ac                  
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
  1185c5:	8b 50 38             	mov    0x38(%eax),%edx                
  1185c8:	83 fa 01             	cmp    $0x1,%edx                      
  1185cb:	74 7b                	je     118648 <_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 ) {       
  1185cd:	83 fa 03             	cmp    $0x3,%edx                      
  1185d0:	74 0e                	je     1185e0 <_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 );           
  }                                                                   
}                                                                     
  1185d2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1185d5:	5b                   	pop    %ebx                           
  1185d6:	5e                   	pop    %esi                           
  1185d7:	5f                   	pop    %edi                           
  1185d8:	c9                   	leave                                 
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
  1185d9:	e9 a6 2e 00 00       	jmp    11b484 <_Thread_Enable_dispatch>
  1185de:	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 );                                            
  1185e0:	9c                   	pushf                                 
  1185e1:	fa                   	cli                                   
  1185e2:	8f 45 e4             	popl   -0x1c(%ebp)                    
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
  1185e5:	8b 0d 48 21 14 00    	mov    0x142148,%ecx                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
  1185eb:	8b 53 74             	mov    0x74(%ebx),%edx                
  1185ee:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  1185f1:	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 );                            
  1185f4:	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 ) ) {             
  1185f7:	39 fa                	cmp    %edi,%edx                      
  1185f9:	74 21                	je     11861c <_Timer_server_Schedule_operation_method+0x90>
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
  1185fb:	8b 7a 10             	mov    0x10(%edx),%edi                
      if ( snapshot > last_snapshot ) {                               
  1185fe:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  118601:	0f 86 a1 00 00 00    	jbe    1186a8 <_Timer_server_Schedule_operation_method+0x11c>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
  118607:	89 ce                	mov    %ecx,%esi                      
  118609:	2b 75 d4             	sub    -0x2c(%ebp),%esi               
  11860c:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
        if (delta_interval > delta) {                                 
  11860f:	39 f7                	cmp    %esi,%edi                      
  118611:	0f 86 9b 00 00 00    	jbe    1186b2 <_Timer_server_Schedule_operation_method+0x126><== NEVER TAKEN
          delta_interval -= delta;                                    
  118617:	29 f7                	sub    %esi,%edi                      
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
        delta_interval += delta;                                      
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
  118619:	89 7a 10             	mov    %edi,0x10(%edx)                
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
  11861c:	89 4b 74             	mov    %ecx,0x74(%ebx)                
    _ISR_Enable( level );                                             
  11861f:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  118622:	9d                   	popf                                  
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
  118623:	83 ec 08             	sub    $0x8,%esp                      
  118626:	83 c0 10             	add    $0x10,%eax                     
  118629:	50                   	push   %eax                           
  11862a:	8d 43 68             	lea    0x68(%ebx),%eax                
  11862d:	50                   	push   %eax                           
  11862e:	e8 d9 3d 00 00       	call   11c40c <_Watchdog_Insert>      
                                                                      
    if ( !ts->active ) {                                              
  118633:	8a 43 7c             	mov    0x7c(%ebx),%al                 
  118636:	83 c4 10             	add    $0x10,%esp                     
  118639:	84 c0                	test   %al,%al                        
  11863b:	75 95                	jne    1185d2 <_Timer_server_Schedule_operation_method+0x46>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
  11863d:	89 d8                	mov    %ebx,%eax                      
  11863f:	e8 4c fd ff ff       	call   118390 <_Timer_server_Reset_tod_system_watchdog>
  118644:	eb 8c                	jmp    1185d2 <_Timer_server_Schedule_operation_method+0x46>
  118646:	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 );                                            
  118648:	9c                   	pushf                                 
  118649:	fa                   	cli                                   
  11864a:	8f 45 e4             	popl   -0x1c(%ebp)                    
    snapshot = _Watchdog_Ticks_since_boot;                            
  11864d:	8b 0d e4 21 14 00    	mov    0x1421e4,%ecx                  
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
  118653:	8b 7b 3c             	mov    0x3c(%ebx),%edi                
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  118656:	8b 53 30             	mov    0x30(%ebx),%edx                
  118659:	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 ) ) {        
  11865c:	39 f2                	cmp    %esi,%edx                      
  11865e:	74 10                	je     118670 <_Timer_server_Schedule_operation_method+0xe4>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
  118660:	89 ce                	mov    %ecx,%esi                      
  118662:	29 fe                	sub    %edi,%esi                      
                                                                      
      delta_interval = first_watchdog->delta_interval;                
  118664:	8b 7a 10             	mov    0x10(%edx),%edi                
      if (delta_interval > delta) {                                   
  118667:	39 fe                	cmp    %edi,%esi                      
  118669:	73 39                	jae    1186a4 <_Timer_server_Schedule_operation_method+0x118>
        delta_interval -= delta;                                      
  11866b:	29 f7                	sub    %esi,%edi                      
      } else {                                                        
        delta_interval = 0;                                           
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
  11866d:	89 7a 10             	mov    %edi,0x10(%edx)                
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
  118670:	89 4b 3c             	mov    %ecx,0x3c(%ebx)                
    _ISR_Enable( level );                                             
  118673:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  118676:	9d                   	popf                                  
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  118677:	83 ec 08             	sub    $0x8,%esp                      
  11867a:	83 c0 10             	add    $0x10,%eax                     
  11867d:	50                   	push   %eax                           
  11867e:	8d 43 30             	lea    0x30(%ebx),%eax                
  118681:	50                   	push   %eax                           
  118682:	e8 85 3d 00 00       	call   11c40c <_Watchdog_Insert>      
                                                                      
    if ( !ts->active ) {                                              
  118687:	8a 43 7c             	mov    0x7c(%ebx),%al                 
  11868a:	83 c4 10             	add    $0x10,%esp                     
  11868d:	84 c0                	test   %al,%al                        
  11868f:	0f 85 3d ff ff ff    	jne    1185d2 <_Timer_server_Schedule_operation_method+0x46>
      _Timer_server_Reset_interval_system_watchdog( ts );             
  118695:	89 d8                	mov    %ebx,%eax                      
  118697:	e8 a4 fc ff ff       	call   118340 <_Timer_server_Reset_interval_system_watchdog>
  11869c:	e9 31 ff ff ff       	jmp    1185d2 <_Timer_server_Schedule_operation_method+0x46>
  1186a1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
      delta_interval = first_watchdog->delta_interval;                
      if (delta_interval > delta) {                                   
        delta_interval -= delta;                                      
      } else {                                                        
        delta_interval = 0;                                           
  1186a4:	31 ff                	xor    %edi,%edi                      
  1186a6:	eb c5                	jmp    11866d <_Timer_server_Schedule_operation_method+0xe1>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
  1186a8:	03 7d d4             	add    -0x2c(%ebp),%edi               
        delta_interval += delta;                                      
  1186ab:	29 cf                	sub    %ecx,%edi                      
  1186ad:	e9 67 ff ff ff       	jmp    118619 <_Timer_server_Schedule_operation_method+0x8d>
         */                                                           
        delta = snapshot - last_snapshot;                             
        if (delta_interval > delta) {                                 
          delta_interval -= delta;                                    
        } else {                                                      
          delta_interval = 0;                                         
  1186b2:	31 ff                	xor    %edi,%edi                      <== NOT EXECUTED
  1186b4:	e9 60 ff ff ff       	jmp    118619 <_Timer_server_Schedule_operation_method+0x8d><== NOT EXECUTED
                                                                      

0010ef40 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) {
  10ef40:	55                   	push   %ebp                           
  10ef41:	89 e5                	mov    %esp,%ebp                      
  10ef43:	57                   	push   %edi                           
  10ef44:	56                   	push   %esi                           
  10ef45:	53                   	push   %ebx                           
  10ef46:	83 ec 2c             	sub    $0x2c,%esp                     
  10ef49:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10ef4c:	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;        
  10ef4f:	8b 38                	mov    (%eax),%edi                    
  left  += lhs->tv_nsec;                                              
  10ef51:	8b 70 04             	mov    0x4(%eax),%esi                 
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  10ef54:	bb 00 ca 9a 3b       	mov    $0x3b9aca00,%ebx               
  10ef59:	8b 01                	mov    (%ecx),%eax                    
  10ef5b:	f7 eb                	imul   %ebx                           
  10ef5d:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10ef60:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  right += rhs->tv_nsec;                                              
  10ef63:	8b 41 04             	mov    0x4(%ecx),%eax                 
  10ef66:	99                   	cltd                                  
  10ef67:	01 45 e0             	add    %eax,-0x20(%ebp)               
  10ef6a:	11 55 e4             	adc    %edx,-0x1c(%ebp)               
                                                                      
  if ( right == 0 ) {                                                 
  10ef6d:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10ef70:	0b 55 e0             	or     -0x20(%ebp),%edx               
  10ef73:	74 73                	je     10efe8 <_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;        
  10ef75:	89 f8                	mov    %edi,%eax                      
  10ef77:	f7 eb                	imul   %ebx                           
  10ef79:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  10ef7c:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  left  += lhs->tv_nsec;                                              
  10ef7f:	89 f7                	mov    %esi,%edi                      
  10ef81:	c1 ff 1f             	sar    $0x1f,%edi                     
  10ef84:	01 75 d0             	add    %esi,-0x30(%ebp)               
  10ef87:	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;                                   
  10ef8a:	69 4d d4 a0 86 01 00 	imul   $0x186a0,-0x2c(%ebp),%ecx      
  10ef91:	bb a0 86 01 00       	mov    $0x186a0,%ebx                  
  10ef96:	8b 45 d0             	mov    -0x30(%ebp),%eax               
  10ef99:	f7 e3                	mul    %ebx                           
  10ef9b:	8d 34 11             	lea    (%ecx,%edx,1),%esi             
  10ef9e:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10efa1:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10efa4:	56                   	push   %esi                           
  10efa5:	50                   	push   %eax                           
  10efa6:	e8 71 1a 01 00       	call   120a1c <__udivdi3>             
  10efab:	83 c4 10             	add    $0x10,%esp                     
  10efae:	89 c3                	mov    %eax,%ebx                      
  10efb0:	89 d6                	mov    %edx,%esi                      
                                                                      
  *ival_percentage = answer / 1000;                                   
  10efb2:	6a 00                	push   $0x0                           
  10efb4:	68 e8 03 00 00       	push   $0x3e8                         
  10efb9:	52                   	push   %edx                           
  10efba:	50                   	push   %eax                           
  10efbb:	e8 5c 1a 01 00       	call   120a1c <__udivdi3>             
  10efc0:	83 c4 10             	add    $0x10,%esp                     
  10efc3:	8b 55 10             	mov    0x10(%ebp),%edx                
  10efc6:	89 02                	mov    %eax,(%edx)                    
  *fval_percentage = answer % 1000;                                   
  10efc8:	6a 00                	push   $0x0                           
  10efca:	68 e8 03 00 00       	push   $0x3e8                         
  10efcf:	56                   	push   %esi                           
  10efd0:	53                   	push   %ebx                           
  10efd1:	e8 56 1b 01 00       	call   120b2c <__umoddi3>             
  10efd6:	83 c4 10             	add    $0x10,%esp                     
  10efd9:	8b 55 14             	mov    0x14(%ebp),%edx                
  10efdc:	89 02                	mov    %eax,(%edx)                    
}                                                                     
  10efde:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10efe1:	5b                   	pop    %ebx                           
  10efe2:	5e                   	pop    %esi                           
  10efe3:	5f                   	pop    %edi                           
  10efe4:	c9                   	leave                                 
  10efe5:	c3                   	ret                                   
  10efe6:	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;                                             
  10efe8:	8b 45 10             	mov    0x10(%ebp),%eax                
  10efeb:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
    *fval_percentage = 0;                                             
  10eff1:	8b 55 14             	mov    0x14(%ebp),%edx                
  10eff4:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    
                                                                      
  answer = (left * 100000) / right;                                   
                                                                      
  *ival_percentage = answer / 1000;                                   
  *fval_percentage = answer % 1000;                                   
}                                                                     
  10effa:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10effd:	5b                   	pop    %ebx                           
  10effe:	5e                   	pop    %esi                           
  10efff:	5f                   	pop    %edi                           
  10f000:	c9                   	leave                                 
  10f001:	c3                   	ret                                   
                                                                      

00120258 <_Timespec_Is_valid>: #include <rtems/score/tod.h> bool _Timespec_Is_valid( const struct timespec *time ) {
  120258:	55                   	push   %ebp                           
  120259:	89 e5                	mov    %esp,%ebp                      
  12025b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !time )                                                        
  12025e:	85 c0                	test   %eax,%eax                      
  120260:	74 1a                	je     12027c <_Timespec_Is_valid+0x24>
    return false;                                                     
                                                                      
  if ( time->tv_sec < 0 )                                             
  120262:	8b 10                	mov    (%eax),%edx                    
  120264:	85 d2                	test   %edx,%edx                      
  120266:	78 14                	js     12027c <_Timespec_Is_valid+0x24>
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
  120268:	8b 40 04             	mov    0x4(%eax),%eax                 
  12026b:	85 c0                	test   %eax,%eax                      
  12026d:	78 0d                	js     12027c <_Timespec_Is_valid+0x24>
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Is_valid(                                              
  12026f:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  120274:	0f 96 c0             	setbe  %al                            
                                                                      
  if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND )                  
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  120277:	c9                   	leave                                 
  120278:	c3                   	ret                                   
  120279:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( time->tv_sec < 0 )                                             
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
    return false;                                                     
  12027c:	31 c0                	xor    %eax,%eax                      
                                                                      
  if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND )                  
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
  12027e:	c9                   	leave                                 
  12027f:	c3                   	ret                                   
                                                                      

00111410 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) {
  111410:	55                   	push   %ebp                           
  111411:	89 e5                	mov    %esp,%ebp                      
  111413:	56                   	push   %esi                           
  111414:	53                   	push   %ebx                           
  111415:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
  111418:	8b 33                	mov    (%ebx),%esi                    
  11141a:	85 f6                	test   %esi,%esi                      
  11141c:	75 07                	jne    111425 <_Timespec_To_ticks+0x15>
  11141e:	8b 43 04             	mov    0x4(%ebx),%eax                 
  111421:	85 c0                	test   %eax,%eax                      
  111423:	74 37                	je     11145c <_Timespec_To_ticks+0x4c>
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
  111425:	e8 4e 18 00 00       	call   112c78 <TOD_TICKS_PER_SECOND_method>
  11142a:	89 c1                	mov    %eax,%ecx                      
  11142c:	0f af ce             	imul   %esi,%ecx                      
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
  11142f:	a1 6c 35 12 00       	mov    0x12356c,%eax                  
  111434:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  111437:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  11143a:	8d 34 80             	lea    (%eax,%eax,4),%esi             
  11143d:	c1 e6 03             	shl    $0x3,%esi                      
  111440:	8b 43 04             	mov    0x4(%ebx),%eax                 
  111443:	31 d2                	xor    %edx,%edx                      
  111445:	f7 f6                	div    %esi                           
                                                                      
  if (ticks)                                                          
  111447:	01 c8                	add    %ecx,%eax                      
  111449:	74 05                	je     111450 <_Timespec_To_ticks+0x40>
    return ticks;                                                     
                                                                      
  return 1;                                                           
}                                                                     
  11144b:	5b                   	pop    %ebx                           
  11144c:	5e                   	pop    %esi                           
  11144d:	c9                   	leave                                 
  11144e:	c3                   	ret                                   
  11144f:	90                   	nop                                   
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
                                                                      
  if (ticks)                                                          
    return ticks;                                                     
                                                                      
  return 1;                                                           
  111450:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  111455:	5b                   	pop    %ebx                           
  111456:	5e                   	pop    %esi                           
  111457:	c9                   	leave                                 
  111458:	c3                   	ret                                   
  111459:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
    return 0;                                                         
  11145c:	31 c0                	xor    %eax,%eax                      
                                                                      
  if (ticks)                                                          
    return ticks;                                                     
                                                                      
  return 1;                                                           
}                                                                     
  11145e:	5b                   	pop    %ebx                           
  11145f:	5e                   	pop    %esi                           
  111460:	c9                   	leave                                 
  111461:	c3                   	ret                                   
                                                                      

0010d990 <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
  10d990:	55                   	push   %ebp                           
  10d991:	89 e5                	mov    %esp,%ebp                      
  10d993:	57                   	push   %edi                           
  10d994:	56                   	push   %esi                           
  10d995:	53                   	push   %ebx                           
  10d996:	83 ec 1c             	sub    $0x1c,%esp                     
  10d999:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10d99c:	8b 7d 10             	mov    0x10(%ebp),%edi                
  10d99f:	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 );
  }                                                                   
}                                                                     
  10d9a2:	8b 1d 14 7a 12 00    	mov    0x127a14,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10d9a8:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10d9ae:	74 25                	je     10d9d5 <_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 );
  10d9b0:	0f b6 c0             	movzbl %al,%eax                       
  10d9b3:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10d9b6:	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 )                      
  10d9b8:	8b 43 30             	mov    0x30(%ebx),%eax                
  10d9bb:	85 c0                	test   %eax,%eax                      
  10d9bd:	74 0b                	je     10d9ca <_User_extensions_Fatal+0x3a>
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  10d9bf:	52                   	push   %edx                           
  10d9c0:	57                   	push   %edi                           
  10d9c1:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10d9c4:	56                   	push   %esi                           
  10d9c5:	ff d0                	call   *%eax                          
  10d9c7:	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 ) {                             
  10d9ca:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10d9cd:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10d9d3:	75 e3                	jne    10d9b8 <_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 );
  }                                                                   
}                                                                     
  10d9d5:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10d9d8:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10d9d9:	5e                   	pop    %esi                           <== NOT EXECUTED
  10d9da:	5f                   	pop    %edi                           <== NOT EXECUTED
  10d9db:	c9                   	leave                                 <== NOT EXECUTED
  10d9dc:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010d854 <_User_extensions_Handler_initialization>: #include <rtems/score/userext.h> #include <rtems/score/wkspace.h> #include <string.h> void _User_extensions_Handler_initialization(void) {
  10d854:	55                   	push   %ebp                           
  10d855:	89 e5                	mov    %esp,%ebp                      
  10d857:	57                   	push   %edi                           
  10d858:	56                   	push   %esi                           
  10d859:	53                   	push   %ebx                           
  10d85a:	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;  
  10d85d:	a1 98 35 12 00       	mov    0x123598,%eax                  
  10d862:	89 45 dc             	mov    %eax,-0x24(%ebp)               
  initial_extensions   = Configuration.User_extension_table;          
  10d865:	8b 35 9c 35 12 00    	mov    0x12359c,%esi                  
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10d86b:	c7 05 0c 7a 12 00 10 	movl   $0x127a10,0x127a0c             
  10d872:	7a 12 00                                                    
  head->previous = NULL;                                              
  10d875:	c7 05 10 7a 12 00 00 	movl   $0x0,0x127a10                  
  10d87c:	00 00 00                                                    
  tail->previous = head;                                              
  10d87f:	c7 05 14 7a 12 00 0c 	movl   $0x127a0c,0x127a14             
  10d886:	7a 12 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10d889:	c7 05 f0 77 12 00 f4 	movl   $0x1277f4,0x1277f0             
  10d890:	77 12 00                                                    
  head->previous = NULL;                                              
  10d893:	c7 05 f4 77 12 00 00 	movl   $0x0,0x1277f4                  
  10d89a:	00 00 00                                                    
  tail->previous = head;                                              
  10d89d:	c7 05 f8 77 12 00 f0 	movl   $0x1277f0,0x1277f8             
  10d8a4:	77 12 00                                                    
                                                                      
  _Chain_Initialize_empty( &_User_extensions_List );                  
  _Chain_Initialize_empty( &_User_extensions_Switches_list );         
                                                                      
  if ( initial_extensions ) {                                         
  10d8a7:	85 f6                	test   %esi,%esi                      
  10d8a9:	74 64                	je     10d90f <_User_extensions_Handler_initialization+0xbb><== NEVER TAKEN
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
  10d8ab:	89 c2                	mov    %eax,%edx                      
  10d8ad:	8d 04 40             	lea    (%eax,%eax,2),%eax             
  10d8b0:	8d 0c 82             	lea    (%edx,%eax,4),%ecx             
  10d8b3:	c1 e1 02             	shl    $0x2,%ecx                      
  10d8b6:	83 ec 0c             	sub    $0xc,%esp                      
  10d8b9:	51                   	push   %ecx                           
  10d8ba:	89 4d d8             	mov    %ecx,-0x28(%ebp)               
  10d8bd:	e8 ce 04 00 00       	call   10dd90 <_Workspace_Allocate_or_fatal_error>
  10d8c2:	89 c3                	mov    %eax,%ebx                      
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
  10d8c4:	31 c0                	xor    %eax,%eax                      
  10d8c6:	8b 4d d8             	mov    -0x28(%ebp),%ecx               
  10d8c9:	89 df                	mov    %ebx,%edi                      
  10d8cb:	f3 aa                	rep stos %al,%es:(%edi)               
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
  10d8cd:	83 c4 10             	add    $0x10,%esp                     
  10d8d0:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10d8d3:	85 c0                	test   %eax,%eax                      
  10d8d5:	74 38                	je     10d90f <_User_extensions_Handler_initialization+0xbb><== NEVER TAKEN
  10d8d7:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
  10d8da:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  10d8e1:	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;                             
  10d8e4:	8d 7b 14             	lea    0x14(%ebx),%edi                
  10d8e7:	8b 75 e4             	mov    -0x1c(%ebp),%esi               
  10d8ea:	b9 08 00 00 00       	mov    $0x8,%ecx                      
  10d8ef:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  _User_extensions_Add_set( extension );                              
  10d8f1:	83 ec 0c             	sub    $0xc,%esp                      
  10d8f4:	53                   	push   %ebx                           
  10d8f5:	e8 6a 3b 00 00       	call   111464 <_User_extensions_Add_set>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
  10d8fa:	83 c3 34             	add    $0x34,%ebx                     
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
  10d8fd:	ff 45 e0             	incl   -0x20(%ebp)                    
  10d900:	83 45 e4 20          	addl   $0x20,-0x1c(%ebp)              
  10d904:	83 c4 10             	add    $0x10,%esp                     
  10d907:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10d90a:	39 45 dc             	cmp    %eax,-0x24(%ebp)               
  10d90d:	77 d5                	ja     10d8e4 <_User_extensions_Handler_initialization+0x90>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
    }                                                                 
  }                                                                   
}                                                                     
  10d90f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d912:	5b                   	pop    %ebx                           
  10d913:	5e                   	pop    %esi                           
  10d914:	5f                   	pop    %edi                           
  10d915:	c9                   	leave                                 
  10d916:	c3                   	ret                                   
                                                                      

0010ece4 <_User_extensions_Remove_set>: #include <rtems/score/userext.h> void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) {
  10ece4:	55                   	push   %ebp                           
  10ece5:	89 e5                	mov    %esp,%ebp                      
  10ece7:	53                   	push   %ebx                           
  10ece8:	83 ec 10             	sub    $0x10,%esp                     
  10eceb:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  _Chain_Extract( &the_extension->Node );                             
  10ecee:	53                   	push   %ebx                           
  10ecef:	e8 9c db ff ff       	call   10c890 <_Chain_Extract>        
                                                                      
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
  10ecf4:	83 c4 10             	add    $0x10,%esp                     
  10ecf7:	8b 43 24             	mov    0x24(%ebx),%eax                
  10ecfa:	85 c0                	test   %eax,%eax                      
  10ecfc:	74 12                	je     10ed10 <_User_extensions_Remove_set+0x2c>
    _Chain_Extract( &the_extension->Switch.Node );                    
  10ecfe:	83 c3 08             	add    $0x8,%ebx                      
  10ed01:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
}                                                                     
  10ed04:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ed07:	c9                   	leave                                 
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
    _Chain_Extract( &the_extension->Switch.Node );                    
  10ed08:	e9 83 db ff ff       	jmp    10c890 <_Chain_Extract>        
  10ed0d:	8d 76 00             	lea    0x0(%esi),%esi                 
}                                                                     
  10ed10:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ed13:	c9                   	leave                                 
  10ed14:	c3                   	ret                                   
                                                                      

0010d918 <_User_extensions_Thread_begin>: #include <rtems/score/userext.h> void _User_extensions_Thread_begin ( Thread_Control *executing ) {
  10d918:	55                   	push   %ebp                           
  10d919:	89 e5                	mov    %esp,%ebp                      
  10d91b:	56                   	push   %esi                           
  10d91c:	53                   	push   %ebx                           
  10d91d:	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 );
  }                                                                   
}                                                                     
  10d920:	8b 1d 0c 7a 12 00    	mov    0x127a0c,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10d926:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10d92c:	74 1c                	je     10d94a <_User_extensions_Thread_begin+0x32><== NEVER TAKEN
  10d92e:	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 )               
  10d930:	8b 43 28             	mov    0x28(%ebx),%eax                
  10d933:	85 c0                	test   %eax,%eax                      
  10d935:	74 09                	je     10d940 <_User_extensions_Thread_begin+0x28>
      (*the_extension->Callouts.thread_begin)( executing );           
  10d937:	83 ec 0c             	sub    $0xc,%esp                      
  10d93a:	56                   	push   %esi                           
  10d93b:	ff d0                	call   *%eax                          
  10d93d:	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 ) {                                 
  10d940:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10d942:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10d948:	75 e6                	jne    10d930 <_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 );           
  }                                                                   
}                                                                     
  10d94a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d94d:	5b                   	pop    %ebx                           
  10d94e:	5e                   	pop    %esi                           
  10d94f:	c9                   	leave                                 
  10d950:	c3                   	ret                                   
                                                                      

0010d9e0 <_User_extensions_Thread_create>: #include <rtems/score/userext.h> bool _User_extensions_Thread_create ( Thread_Control *the_thread ) {
  10d9e0:	55                   	push   %ebp                           
  10d9e1:	89 e5                	mov    %esp,%ebp                      
  10d9e3:	56                   	push   %esi                           
  10d9e4:	53                   	push   %ebx                           
  10d9e5:	8b 75 08             	mov    0x8(%ebp),%esi                 
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  10d9e8:	8b 1d 0c 7a 12 00    	mov    0x127a0c,%ebx                  
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10d9ee:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10d9f4:	74 26                	je     10da1c <_User_extensions_Thread_create+0x3c><== NEVER TAKEN
  10d9f6:	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 ) {            
  10d9f8:	8b 43 14             	mov    0x14(%ebx),%eax                
  10d9fb:	85 c0                	test   %eax,%eax                      
  10d9fd:	74 13                	je     10da12 <_User_extensions_Thread_create+0x32>
      status = (*the_extension->Callouts.thread_create)(              
  10d9ff:	83 ec 08             	sub    $0x8,%esp                      
  10da02:	56                   	push   %esi                           
  10da03:	ff 35 98 7d 12 00    	pushl  0x127d98                       
  10da09:	ff d0                	call   *%eax                          
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
      if ( !status )                                                  
  10da0b:	83 c4 10             	add    $0x10,%esp                     
  10da0e:	84 c0                	test   %al,%al                        
  10da10:	74 16                	je     10da28 <_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 ) {                                 
  10da12:	8b 1b                	mov    (%ebx),%ebx                    
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10da14:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10da1a:	75 dc                	jne    10d9f8 <_User_extensions_Thread_create+0x18>
      if ( !status )                                                  
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
  10da1c:	b0 01                	mov    $0x1,%al                       
}                                                                     
  10da1e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10da21:	5b                   	pop    %ebx                           
  10da22:	5e                   	pop    %esi                           
  10da23:	c9                   	leave                                 
  10da24:	c3                   	ret                                   
  10da25:	8d 76 00             	lea    0x0(%esi),%esi                 
      status = (*the_extension->Callouts.thread_create)(              
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
      if ( !status )                                                  
        return false;                                                 
  10da28:	31 c0                	xor    %eax,%eax                      
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
  10da2a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10da2d:	5b                   	pop    %ebx                           
  10da2e:	5e                   	pop    %esi                           
  10da2f:	c9                   	leave                                 
  10da30:	c3                   	ret                                   
                                                                      

0010da34 <_User_extensions_Thread_delete>: #include <rtems/score/userext.h> void _User_extensions_Thread_delete ( Thread_Control *the_thread ) {
  10da34:	55                   	push   %ebp                           
  10da35:	89 e5                	mov    %esp,%ebp                      
  10da37:	56                   	push   %esi                           
  10da38:	53                   	push   %ebx                           
  10da39:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_delete)(                       
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10da3c:	8b 1d 14 7a 12 00    	mov    0x127a14,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10da42:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10da48:	74 23                	je     10da6d <_User_extensions_Thread_delete+0x39><== NEVER TAKEN
  10da4a:	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 )              
  10da4c:	8b 43 20             	mov    0x20(%ebx),%eax                
  10da4f:	85 c0                	test   %eax,%eax                      
  10da51:	74 0f                	je     10da62 <_User_extensions_Thread_delete+0x2e>
      (*the_extension->Callouts.thread_delete)(                       
  10da53:	83 ec 08             	sub    $0x8,%esp                      
  10da56:	56                   	push   %esi                           
  10da57:	ff 35 98 7d 12 00    	pushl  0x127d98                       
  10da5d:	ff d0                	call   *%eax                          
  10da5f:	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 ) {                             
  10da62:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10da65:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10da6b:	75 df                	jne    10da4c <_User_extensions_Thread_delete+0x18>
      (*the_extension->Callouts.thread_delete)(                       
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10da6d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10da70:	5b                   	pop    %ebx                           
  10da71:	5e                   	pop    %esi                           
  10da72:	c9                   	leave                                 
  10da73:	c3                   	ret                                   
                                                                      

0010d954 <_User_extensions_Thread_exitted>: void _User_extensions_Thread_exitted ( Thread_Control *executing ) {
  10d954:	55                   	push   %ebp                           
  10d955:	89 e5                	mov    %esp,%ebp                      
  10d957:	56                   	push   %esi                           
  10d958:	53                   	push   %ebx                           
  10d959:	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 );
  }                                                                   
}                                                                     
  10d95c:	8b 1d 14 7a 12 00    	mov    0x127a14,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10d962:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10d968:	74 1d                	je     10d987 <_User_extensions_Thread_exitted+0x33><== NEVER TAKEN
  10d96a:	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 )             
  10d96c:	8b 43 2c             	mov    0x2c(%ebx),%eax                
  10d96f:	85 c0                	test   %eax,%eax                      
  10d971:	74 09                	je     10d97c <_User_extensions_Thread_exitted+0x28>
      (*the_extension->Callouts.thread_exitted)( executing );         
  10d973:	83 ec 0c             	sub    $0xc,%esp                      
  10d976:	56                   	push   %esi                           
  10d977:	ff d0                	call   *%eax                          
  10d979:	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 ) {                             
  10d97c:	8b 5b 04             	mov    0x4(%ebx),%ebx                 
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
  10d97f:	81 fb 0c 7a 12 00    	cmp    $0x127a0c,%ebx                 
  10d985:	75 e5                	jne    10d96c <_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 );         
  }                                                                   
}                                                                     
  10d987:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10d98a:	5b                   	pop    %ebx                           
  10d98b:	5e                   	pop    %esi                           
  10d98c:	c9                   	leave                                 
  10d98d:	c3                   	ret                                   
                                                                      

0010e5c0 <_User_extensions_Thread_restart>: #include <rtems/score/userext.h> void _User_extensions_Thread_restart ( Thread_Control *the_thread ) {
  10e5c0:	55                   	push   %ebp                           
  10e5c1:	89 e5                	mov    %esp,%ebp                      
  10e5c3:	56                   	push   %esi                           
  10e5c4:	53                   	push   %ebx                           
  10e5c5:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_restart)(                      
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e5c8:	8b 1d ac 9c 12 00    	mov    0x129cac,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e5ce:	81 fb b0 9c 12 00    	cmp    $0x129cb0,%ebx                 
  10e5d4:	74 22                	je     10e5f8 <_User_extensions_Thread_restart+0x38><== NEVER TAKEN
  10e5d6:	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 )             
  10e5d8:	8b 43 1c             	mov    0x1c(%ebx),%eax                
  10e5db:	85 c0                	test   %eax,%eax                      
  10e5dd:	74 0f                	je     10e5ee <_User_extensions_Thread_restart+0x2e>
      (*the_extension->Callouts.thread_restart)(                      
  10e5df:	83 ec 08             	sub    $0x8,%esp                      
  10e5e2:	56                   	push   %esi                           
  10e5e3:	ff 35 38 a0 12 00    	pushl  0x12a038                       
  10e5e9:	ff d0                	call   *%eax                          
  10e5eb:	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 ) {                                 
  10e5ee:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10e5f0:	81 fb b0 9c 12 00    	cmp    $0x129cb0,%ebx                 
  10e5f6:	75 e0                	jne    10e5d8 <_User_extensions_Thread_restart+0x18>
      (*the_extension->Callouts.thread_restart)(                      
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10e5f8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10e5fb:	5b                   	pop    %ebx                           
  10e5fc:	5e                   	pop    %esi                           
  10e5fd:	c9                   	leave                                 
  10e5fe:	c3                   	ret                                   
                                                                      

0010da74 <_User_extensions_Thread_start>: #include <rtems/score/userext.h> void _User_extensions_Thread_start ( Thread_Control *the_thread ) {
  10da74:	55                   	push   %ebp                           
  10da75:	89 e5                	mov    %esp,%ebp                      
  10da77:	56                   	push   %esi                           
  10da78:	53                   	push   %ebx                           
  10da79:	8b 75 08             	mov    0x8(%ebp),%esi                 
      (*the_extension->Callouts.thread_start)(                        
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10da7c:	8b 1d 0c 7a 12 00    	mov    0x127a0c,%ebx                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10da82:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10da88:	74 22                	je     10daac <_User_extensions_Thread_start+0x38><== NEVER TAKEN
  10da8a:	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 )               
  10da8c:	8b 43 18             	mov    0x18(%ebx),%eax                
  10da8f:	85 c0                	test   %eax,%eax                      
  10da91:	74 0f                	je     10daa2 <_User_extensions_Thread_start+0x2e>
      (*the_extension->Callouts.thread_start)(                        
  10da93:	83 ec 08             	sub    $0x8,%esp                      
  10da96:	56                   	push   %esi                           
  10da97:	ff 35 98 7d 12 00    	pushl  0x127d98                       
  10da9d:	ff d0                	call   *%eax                          
  10da9f:	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 ) {                                 
  10daa2:	8b 1b                	mov    (%ebx),%ebx                    
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
  10daa4:	81 fb 10 7a 12 00    	cmp    $0x127a10,%ebx                 
  10daaa:	75 e0                	jne    10da8c <_User_extensions_Thread_start+0x18>
      (*the_extension->Callouts.thread_start)(                        
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
  10daac:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10daaf:	5b                   	pop    %ebx                           
  10dab0:	5e                   	pop    %esi                           
  10dab1:	c9                   	leave                                 
  10dab2:	c3                   	ret                                   
                                                                      

0010dab4 <_User_extensions_Thread_switch>: void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) {
  10dab4:	55                   	push   %ebp                           
  10dab5:	89 e5                	mov    %esp,%ebp                      
  10dab7:	57                   	push   %edi                           
  10dab8:	56                   	push   %esi                           
  10dab9:	53                   	push   %ebx                           
  10daba:	83 ec 0c             	sub    $0xc,%esp                      
  10dabd:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10dac0:	8b 75 0c             	mov    0xc(%ebp),%esi                 
                                                                      
    the_extension_switch = (User_extensions_Switch_control *) the_node;
                                                                      
    (*the_extension_switch->thread_switch)( executing, heir );        
  }                                                                   
}                                                                     
  10dac3:	8b 1d f0 77 12 00    	mov    0x1277f0,%ebx                  
)                                                                     
{                                                                     
  Chain_Node                     *the_node;                           
  User_extensions_Switch_control *the_extension_switch;               
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_Switches_list );   
  10dac9:	81 fb f4 77 12 00    	cmp    $0x1277f4,%ebx                 
  10dacf:	74 18                	je     10dae9 <_User_extensions_Thread_switch+0x35><== NEVER TAKEN
  10dad1:	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 );        
  10dad4:	83 ec 08             	sub    $0x8,%esp                      
  10dad7:	56                   	push   %esi                           
  10dad8:	57                   	push   %edi                           
  10dad9:	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 ) {                                 
  10dadc:	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 );   
  10dade:	83 c4 10             	add    $0x10,%esp                     
  10dae1:	81 fb f4 77 12 00    	cmp    $0x1277f4,%ebx                 
  10dae7:	75 eb                	jne    10dad4 <_User_extensions_Thread_switch+0x20>
                                                                      
    the_extension_switch = (User_extensions_Switch_control *) the_node;
                                                                      
    (*the_extension_switch->thread_switch)( executing, heir );        
  }                                                                   
}                                                                     
  10dae9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10daec:	5b                   	pop    %ebx                           
  10daed:	5e                   	pop    %esi                           
  10daee:	5f                   	pop    %edi                           
  10daef:	c9                   	leave                                 
  10daf0:	c3                   	ret                                   
                                                                      

0010f320 <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) {
  10f320:	55                   	push   %ebp                           
  10f321:	89 e5                	mov    %esp,%ebp                      
  10f323:	57                   	push   %edi                           
  10f324:	56                   	push   %esi                           
  10f325:	53                   	push   %ebx                           
  10f326:	83 ec 1c             	sub    $0x1c,%esp                     
  10f329:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10f32c:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10f32f:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  10f332:	9c                   	pushf                                 
  10f333:	fa                   	cli                                   
  10f334:	58                   	pop    %eax                           
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
  10f335:	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 );                            
  10f337:	8d 7e 04             	lea    0x4(%esi),%edi                 
  10f33a:	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 ) ) {                                 
  10f33d:	39 fa                	cmp    %edi,%edx                      
  10f33f:	74 3d                	je     10f37e <_Watchdog_Adjust+0x5e> 
    switch ( direction ) {                                            
  10f341:	85 c9                	test   %ecx,%ecx                      
  10f343:	75 43                	jne    10f388 <_Watchdog_Adjust+0x68> 
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
  10f345:	85 db                	test   %ebx,%ebx                      
  10f347:	74 35                	je     10f37e <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
          if ( units < _Watchdog_First( header )->delta_interval ) {  
  10f349:	8b 7a 10             	mov    0x10(%edx),%edi                
  10f34c:	39 fb                	cmp    %edi,%ebx                      
  10f34e:	73 0f                	jae    10f35f <_Watchdog_Adjust+0x3f> <== ALWAYS TAKEN
  10f350:	eb 3e                	jmp    10f390 <_Watchdog_Adjust+0x70> <== NOT EXECUTED
  10f352:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
  10f354:	29 fb                	sub    %edi,%ebx                      
  10f356:	74 26                	je     10f37e <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
          if ( units < _Watchdog_First( header )->delta_interval ) {  
  10f358:	8b 7a 10             	mov    0x10(%edx),%edi                
  10f35b:	39 df                	cmp    %ebx,%edi                      
  10f35d:	77 31                	ja     10f390 <_Watchdog_Adjust+0x70> 
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
  10f35f:	c7 42 10 01 00 00 00 	movl   $0x1,0x10(%edx)                
                                                                      
            _ISR_Enable( level );                                     
  10f366:	50                   	push   %eax                           
  10f367:	9d                   	popf                                  
                                                                      
            _Watchdog_Tickle( header );                               
  10f368:	83 ec 0c             	sub    $0xc,%esp                      
  10f36b:	56                   	push   %esi                           
  10f36c:	e8 d3 01 00 00       	call   10f544 <_Watchdog_Tickle>      
                                                                      
            _ISR_Disable( level );                                    
  10f371:	9c                   	pushf                                 
  10f372:	fa                   	cli                                   
  10f373:	58                   	pop    %eax                           
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
  10f374:	8b 16                	mov    (%esi),%edx                    
                                                                      
            _Watchdog_Tickle( header );                               
                                                                      
            _ISR_Disable( level );                                    
                                                                      
            if ( _Chain_Is_empty( header ) )                          
  10f376:	83 c4 10             	add    $0x10,%esp                     
  10f379:	39 55 e4             	cmp    %edx,-0x1c(%ebp)               
  10f37c:	75 d6                	jne    10f354 <_Watchdog_Adjust+0x34> 
        }                                                             
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  10f37e:	50                   	push   %eax                           
  10f37f:	9d                   	popf                                  
                                                                      
}                                                                     
  10f380:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10f383:	5b                   	pop    %ebx                           
  10f384:	5e                   	pop    %esi                           
  10f385:	5f                   	pop    %edi                           
  10f386:	c9                   	leave                                 
  10f387:	c3                   	ret                                   
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
    switch ( direction ) {                                            
  10f388:	49                   	dec    %ecx                           
  10f389:	75 f3                	jne    10f37e <_Watchdog_Adjust+0x5e> <== NEVER TAKEN
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
  10f38b:	01 5a 10             	add    %ebx,0x10(%edx)                
        break;                                                        
  10f38e:	eb ee                	jmp    10f37e <_Watchdog_Adjust+0x5e> 
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
  10f390:	29 df                	sub    %ebx,%edi                      
  10f392:	89 7a 10             	mov    %edi,0x10(%edx)                
            break;                                                    
  10f395:	eb e7                	jmp    10f37e <_Watchdog_Adjust+0x5e> 
                                                                      

0010daf4 <_Watchdog_Insert>: void _Watchdog_Insert( Chain_Control *header, Watchdog_Control *the_watchdog ) {
  10daf4:	55                   	push   %ebp                           
  10daf5:	89 e5                	mov    %esp,%ebp                      
  10daf7:	57                   	push   %edi                           
  10daf8:	56                   	push   %esi                           
  10daf9:	53                   	push   %ebx                           
  10dafa:	83 ec 04             	sub    $0x4,%esp                      
  10dafd:	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;                          
  10db00:	8b 3d 94 7d 12 00    	mov    0x127d94,%edi                  
                                                                      
  _ISR_Disable( level );                                              
  10db06:	9c                   	pushf                                 
  10db07:	fa                   	cli                                   
  10db08:	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 ) {                   
  10db0b:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10db0e:	85 c0                	test   %eax,%eax                      
  10db10:	0f 85 9e 00 00 00    	jne    10dbb4 <_Watchdog_Insert+0xc0> 
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  10db16:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)                 
  _Watchdog_Sync_count++;                                             
  10db1d:	a1 20 79 12 00       	mov    0x127920,%eax                  
  10db22:	40                   	inc    %eax                           
  10db23:	a3 20 79 12 00       	mov    %eax,0x127920                  
                                                                      
restart:                                                              
  delta_interval = the_watchdog->initial;                             
  10db28:	8b 43 0c             	mov    0xc(%ebx),%eax                 
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
  10db2b:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10db2e:	8b 11                	mov    (%ecx),%edx                    
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
  10db30:	85 c0                	test   %eax,%eax                      
  10db32:	74 5d                	je     10db91 <_Watchdog_Insert+0x9d> 
  10db34:	8b 32                	mov    (%edx),%esi                    
  10db36:	85 f6                	test   %esi,%esi                      
  10db38:	74 57                	je     10db91 <_Watchdog_Insert+0x9d> 
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
  10db3a:	8b 4a 10             	mov    0x10(%edx),%ecx                
  10db3d:	39 c8                	cmp    %ecx,%eax                      
  10db3f:	73 22                	jae    10db63 <_Watchdog_Insert+0x6f> 
  10db41:	eb 49                	jmp    10db8c <_Watchdog_Insert+0x98> 
  10db43:	90                   	nop                                   
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
  10db44:	8b 35 a4 78 12 00    	mov    0x1278a4,%esi                  
  10db4a:	39 f7                	cmp    %esi,%edi                      
  10db4c:	72 72                	jb     10dbc0 <_Watchdog_Insert+0xcc> 
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
  10db4e:	29 c8                	sub    %ecx,%eax                      
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  _Watchdog_Sync_count--;                                             
  _ISR_Enable( level );                                               
}                                                                     
  10db50:	8b 12                	mov    (%edx),%edx                    
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
  10db52:	85 c0                	test   %eax,%eax                      
  10db54:	74 3b                	je     10db91 <_Watchdog_Insert+0x9d> 
  10db56:	8b 0a                	mov    (%edx),%ecx                    
  10db58:	85 c9                	test   %ecx,%ecx                      
  10db5a:	74 35                	je     10db91 <_Watchdog_Insert+0x9d> 
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
  10db5c:	8b 4a 10             	mov    0x10(%edx),%ecx                
  10db5f:	39 c1                	cmp    %eax,%ecx                      
  10db61:	77 29                	ja     10db8c <_Watchdog_Insert+0x98> 
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
                                                                      
     _ISR_Flash( level );                                             
  10db63:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10db66:	9d                   	popf                                  
  10db67:	fa                   	cli                                   
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
  10db68:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)                 
  10db6c:	74 d6                	je     10db44 <_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;                       
  10db6e:	89 3d a4 78 12 00    	mov    %edi,0x1278a4                  
  _Watchdog_Sync_count--;                                             
  10db74:	a1 20 79 12 00       	mov    0x127920,%eax                  
  10db79:	48                   	dec    %eax                           
  10db7a:	a3 20 79 12 00       	mov    %eax,0x127920                  
  _ISR_Enable( level );                                               
  10db7f:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10db82:	9d                   	popf                                  
}                                                                     
  10db83:	58                   	pop    %eax                           
  10db84:	5b                   	pop    %ebx                           
  10db85:	5e                   	pop    %esi                           
  10db86:	5f                   	pop    %edi                           
  10db87:	c9                   	leave                                 
  10db88:	c3                   	ret                                   
  10db89:	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;                       
  10db8c:	29 c1                	sub    %eax,%ecx                      
  10db8e:	89 4a 10             	mov    %ecx,0x10(%edx)                
RTEMS_INLINE_ROUTINE void _Watchdog_Activate(                         
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_ACTIVE;                              
  10db91:	c7 43 08 02 00 00 00 	movl   $0x2,0x8(%ebx)                 
     }                                                                
  }                                                                   
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
  10db98:	89 43 10             	mov    %eax,0x10(%ebx)                
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
  10db9b:	8b 42 04             	mov    0x4(%edx),%eax                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  10db9e:	89 43 04             	mov    %eax,0x4(%ebx)                 
  before_node           = after_node->next;                           
  10dba1:	8b 10                	mov    (%eax),%edx                    
  after_node->next      = the_node;                                   
  10dba3:	89 18                	mov    %ebx,(%eax)                    
  the_node->next        = before_node;                                
  10dba5:	89 13                	mov    %edx,(%ebx)                    
  before_node->previous = the_node;                                   
  10dba7:	89 5a 04             	mov    %ebx,0x4(%edx)                 
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
  10dbaa:	a1 24 79 12 00       	mov    0x127924,%eax                  
  10dbaf:	89 43 14             	mov    %eax,0x14(%ebx)                
  10dbb2:	eb ba                	jmp    10db6e <_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 );                                             
  10dbb4:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10dbb7:	9d                   	popf                                  
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  _Watchdog_Sync_count--;                                             
  _ISR_Enable( level );                                               
}                                                                     
  10dbb8:	58                   	pop    %eax                           
  10dbb9:	5b                   	pop    %ebx                           
  10dbba:	5e                   	pop    %esi                           
  10dbbb:	5f                   	pop    %edi                           
  10dbbc:	c9                   	leave                                 
  10dbbd:	c3                   	ret                                   
  10dbbe:	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;                  
  10dbc0:	89 3d a4 78 12 00    	mov    %edi,0x1278a4                  
       goto restart;                                                  
  10dbc6:	e9 5d ff ff ff       	jmp    10db28 <_Watchdog_Insert+0x34> 
                                                                      

0010dc34 <_Watchdog_Remove>: */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) {
  10dc34:	55                   	push   %ebp                           
  10dc35:	89 e5                	mov    %esp,%ebp                      
  10dc37:	56                   	push   %esi                           
  10dc38:	53                   	push   %ebx                           
  10dc39:	8b 55 08             	mov    0x8(%ebp),%edx                 
  ISR_Level         level;                                            
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
  10dc3c:	9c                   	pushf                                 
  10dc3d:	fa                   	cli                                   
  10dc3e:	59                   	pop    %ecx                           
  previous_state = the_watchdog->state;                               
  10dc3f:	8b 42 08             	mov    0x8(%edx),%eax                 
  switch ( previous_state ) {                                         
  10dc42:	83 f8 01             	cmp    $0x1,%eax                      
  10dc45:	74 4d                	je     10dc94 <_Watchdog_Remove+0x60> 
  10dc47:	73 0f                	jae    10dc58 <_Watchdog_Remove+0x24> 
        _Watchdog_Sync_level = _ISR_Nest_level;                       
                                                                      
      _Chain_Extract_unprotected( &the_watchdog->Node );              
      break;                                                          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
  10dc49:	8b 1d 24 79 12 00    	mov    0x127924,%ebx                  
  10dc4f:	89 5a 18             	mov    %ebx,0x18(%edx)                
                                                                      
  _ISR_Enable( level );                                               
  10dc52:	51                   	push   %ecx                           
  10dc53:	9d                   	popf                                  
  return( previous_state );                                           
}                                                                     
  10dc54:	5b                   	pop    %ebx                           
  10dc55:	5e                   	pop    %esi                           
  10dc56:	c9                   	leave                                 
  10dc57:	c3                   	ret                                   
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
  previous_state = the_watchdog->state;                               
  switch ( previous_state ) {                                         
  10dc58:	83 f8 03             	cmp    $0x3,%eax                      
  10dc5b:	77 ec                	ja     10dc49 <_Watchdog_Remove+0x15> <== NEVER TAKEN
      break;                                                          
                                                                      
    case WATCHDOG_ACTIVE:                                             
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
  10dc5d:	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 );                                           
}                                                                     
  10dc64:	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) )                            
  10dc66:	8b 33                	mov    (%ebx),%esi                    
  10dc68:	85 f6                	test   %esi,%esi                      
  10dc6a:	74 06                	je     10dc72 <_Watchdog_Remove+0x3e> 
        next_watchdog->delta_interval += the_watchdog->delta_interval;
  10dc6c:	8b 72 10             	mov    0x10(%edx),%esi                
  10dc6f:	01 73 10             	add    %esi,0x10(%ebx)                
                                                                      
      if ( _Watchdog_Sync_count )                                     
  10dc72:	8b 35 20 79 12 00    	mov    0x127920,%esi                  
  10dc78:	85 f6                	test   %esi,%esi                      
  10dc7a:	74 0c                	je     10dc88 <_Watchdog_Remove+0x54> 
        _Watchdog_Sync_level = _ISR_Nest_level;                       
  10dc7c:	8b 35 94 7d 12 00    	mov    0x127d94,%esi                  
  10dc82:	89 35 a4 78 12 00    	mov    %esi,0x1278a4                  
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  10dc88:	8b 72 04             	mov    0x4(%edx),%esi                 
  next->previous = previous;                                          
  10dc8b:	89 73 04             	mov    %esi,0x4(%ebx)                 
  previous->next = next;                                              
  10dc8e:	89 1e                	mov    %ebx,(%esi)                    
  10dc90:	eb b7                	jmp    10dc49 <_Watchdog_Remove+0x15> 
  10dc92:	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;                        
  10dc94:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)                 
      break;                                                          
  10dc9b:	eb ac                	jmp    10dc49 <_Watchdog_Remove+0x15> 
                                                                      

0010ef58 <_Watchdog_Report>: void _Watchdog_Report( const char *name, Watchdog_Control *watch ) {
  10ef58:	55                   	push   %ebp                           
  10ef59:	89 e5                	mov    %esp,%ebp                      
  10ef5b:	57                   	push   %edi                           
  10ef5c:	56                   	push   %esi                           
  10ef5d:	53                   	push   %ebx                           
  10ef5e:	83 ec 2c             	sub    $0x2c,%esp                     
  10ef61:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10ef64:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  printk(                                                             
  10ef67:	8b 78 24             	mov    0x24(%eax),%edi                
  10ef6a:	8b 70 20             	mov    0x20(%eax),%esi                
  10ef6d:	8b 58 1c             	mov    0x1c(%eax),%ebx                
  10ef70:	8b 48 0c             	mov    0xc(%eax),%ecx                 
  10ef73:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  10ef76:	8b 48 10             	mov    0x10(%eax),%ecx                
  10ef79:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  10ef7c:	85 d2                	test   %edx,%edx                      
  10ef7e:	74 2c                	je     10efac <_Watchdog_Report+0x54> 
  10ef80:	b9 03 2f 12 00       	mov    $0x122f03,%ecx                 
  10ef85:	83 ec 0c             	sub    $0xc,%esp                      
  10ef88:	57                   	push   %edi                           
  10ef89:	56                   	push   %esi                           
  10ef8a:	53                   	push   %ebx                           
  10ef8b:	50                   	push   %eax                           
  10ef8c:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10ef8f:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10ef92:	51                   	push   %ecx                           
  10ef93:	52                   	push   %edx                           
  10ef94:	68 56 39 12 00       	push   $0x123956                      
  10ef99:	e8 92 a0 ff ff       	call   109030 <printk>                
  10ef9e:	83 c4 30             	add    $0x30,%esp                     
    watch,                                                            
    watch->routine,                                                   
    watch->id,                                                        
    watch->user_data                                                  
  );                                                                  
}                                                                     
  10efa1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10efa4:	5b                   	pop    %ebx                           
  10efa5:	5e                   	pop    %esi                           
  10efa6:	5f                   	pop    %edi                           
  10efa7:	c9                   	leave                                 
  10efa8:	c3                   	ret                                   
  10efa9:	8d 76 00             	lea    0x0(%esi),%esi                 
void _Watchdog_Report(                                                
  const char        *name,                                            
  Watchdog_Control  *watch                                            
)                                                                     
{                                                                     
  printk(                                                             
  10efac:	b9 c9 37 12 00       	mov    $0x1237c9,%ecx                 
  10efb1:	89 ca                	mov    %ecx,%edx                      
  10efb3:	eb d0                	jmp    10ef85 <_Watchdog_Report+0x2d> 
                                                                      

0010eee8 <_Watchdog_Report_chain>: void _Watchdog_Report_chain( const char *name, Chain_Control *header ) {
  10eee8:	55                   	push   %ebp                           
  10eee9:	89 e5                	mov    %esp,%ebp                      
  10eeeb:	57                   	push   %edi                           
  10eeec:	56                   	push   %esi                           
  10eeed:	53                   	push   %ebx                           
  10eeee:	83 ec 20             	sub    $0x20,%esp                     
  10eef1:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10eef4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
  10eef7:	9c                   	pushf                                 
  10eef8:	fa                   	cli                                   
  10eef9:	8f 45 e4             	popl   -0x1c(%ebp)                    
    printk( "Watchdog Chain: %s %p\n", name, header );                
  10eefc:	56                   	push   %esi                           
  10eefd:	57                   	push   %edi                           
  10eefe:	68 20 39 12 00       	push   $0x123920                      
  10ef03:	e8 28 a1 ff ff       	call   109030 <printk>                
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
  10ef08:	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 );                            
  10ef0a:	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 ) ) {                               
  10ef0d:	83 c4 10             	add    $0x10,%esp                     
  10ef10:	39 f3                	cmp    %esi,%ebx                      
  10ef12:	74 31                	je     10ef45 <_Watchdog_Report_chain+0x5d>
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
  10ef14:	83 ec 08             	sub    $0x8,%esp                      
  10ef17:	53                   	push   %ebx                           
  10ef18:	6a 00                	push   $0x0                           
  10ef1a:	e8 39 00 00 00       	call   10ef58 <_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 )                                       
  10ef1f:	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 ) ;                           
  10ef21:	83 c4 10             	add    $0x10,%esp                     
  10ef24:	39 f3                	cmp    %esi,%ebx                      
  10ef26:	75 ec                	jne    10ef14 <_Watchdog_Report_chain+0x2c><== NEVER TAKEN
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
  10ef28:	83 ec 08             	sub    $0x8,%esp                      
  10ef2b:	57                   	push   %edi                           
  10ef2c:	68 37 39 12 00       	push   $0x123937                      
  10ef31:	e8 fa a0 ff ff       	call   109030 <printk>                
  10ef36:	83 c4 10             	add    $0x10,%esp                     
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
  10ef39:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10ef3c:	9d                   	popf                                  
}                                                                     
  10ef3d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ef40:	5b                   	pop    %ebx                           
  10ef41:	5e                   	pop    %esi                           
  10ef42:	5f                   	pop    %edi                           
  10ef43:	c9                   	leave                                 
  10ef44:	c3                   	ret                                   
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
  10ef45:	83 ec 0c             	sub    $0xc,%esp                      
  10ef48:	68 46 39 12 00       	push   $0x123946                      
  10ef4d:	e8 de a0 ff ff       	call   109030 <printk>                
  10ef52:	83 c4 10             	add    $0x10,%esp                     
  10ef55:	eb e2                	jmp    10ef39 <_Watchdog_Report_chain+0x51>
                                                                      

0010dd0c <_Workspace_Handler_initialization>: /* * _Workspace_Handler_initialization */ void _Workspace_Handler_initialization(void) {
  10dd0c:	55                   	push   %ebp                           
  10dd0d:	89 e5                	mov    %esp,%ebp                      
  10dd0f:	57                   	push   %edi                           
  10dd10:	53                   	push   %ebx                           
  uintptr_t memory_available = 0;                                     
  void *starting_address = Configuration.work_space_start;            
  10dd11:	8b 1d 60 35 12 00    	mov    0x123560,%ebx                  
  uintptr_t size = Configuration.work_space_size;                     
  10dd17:	8b 15 64 35 12 00    	mov    0x123564,%edx                  
                                                                      
  if ( Configuration.do_zero_of_workspace )                           
  10dd1d:	80 3d 88 35 12 00 00 	cmpb   $0x0,0x123588                  
  10dd24:	75 1e                	jne    10dd44 <_Workspace_Handler_initialization+0x38>
   memset( starting_address, 0, size );                               
                                                                      
  memory_available = _Heap_Initialize(                                
  10dd26:	6a 04                	push   $0x4                           
  10dd28:	52                   	push   %edx                           
  10dd29:	53                   	push   %ebx                           
  10dd2a:	68 20 78 12 00       	push   $0x127820                      
  10dd2f:	e8 78 dd ff ff       	call   10baac <_Heap_Initialize>      
    starting_address,                                                 
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
  10dd34:	83 c4 10             	add    $0x10,%esp                     
  10dd37:	85 c0                	test   %eax,%eax                      
  10dd39:	74 13                	je     10dd4e <_Workspace_Handler_initialization+0x42>
    _Internal_error_Occurred(                                         
      INTERNAL_ERROR_CORE,                                            
      true,                                                           
      INTERNAL_ERROR_TOO_LITTLE_WORKSPACE                             
    );                                                                
}                                                                     
  10dd3b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10dd3e:	5b                   	pop    %ebx                           
  10dd3f:	5f                   	pop    %edi                           
  10dd40:	c9                   	leave                                 
  10dd41:	c3                   	ret                                   
  10dd42:	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 );                               
  10dd44:	31 c0                	xor    %eax,%eax                      
  10dd46:	89 df                	mov    %ebx,%edi                      
  10dd48:	89 d1                	mov    %edx,%ecx                      
  10dd4a:	f3 aa                	rep stos %al,%es:(%edi)               
  10dd4c:	eb d8                	jmp    10dd26 <_Workspace_Handler_initialization+0x1a>
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
    _Internal_error_Occurred(                                         
  10dd4e:	50                   	push   %eax                           
  10dd4f:	6a 02                	push   $0x2                           
  10dd51:	6a 01                	push   $0x1                           
  10dd53:	6a 00                	push   $0x0                           
  10dd55:	e8 5a df ff ff       	call   10bcb4 <_Internal_error_Occurred>
                                                                      

0010ab7c <adjtime>: int adjtime( struct timeval *delta, struct timeval *olddelta ) {
  10ab7c:	55                   	push   %ebp                           
  10ab7d:	89 e5                	mov    %esp,%ebp                      
  10ab7f:	57                   	push   %edi                           
  10ab80:	56                   	push   %esi                           
  10ab81:	53                   	push   %ebx                           
  10ab82:	83 ec 1c             	sub    $0x1c,%esp                     
  10ab85:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10ab88:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  long   adjustment;                                                  
                                                                      
  /*                                                                  
   * Simple validations                                               
   */                                                                 
  if ( !delta )                                                       
  10ab8b:	85 db                	test   %ebx,%ebx                      
  10ab8d:	0f 84 f1 00 00 00    	je     10ac84 <adjtime+0x108>         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND )                
  10ab93:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10ab96:	81 fa 3f 42 0f 00    	cmp    $0xf423f,%edx                  
  10ab9c:	0f 87 e2 00 00 00    	ja     10ac84 <adjtime+0x108>         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( olddelta ) {                                                   
  10aba2:	85 f6                	test   %esi,%esi                      
  10aba4:	74 10                	je     10abb6 <adjtime+0x3a>          
    olddelta->tv_sec  = 0;                                            
  10aba6:	c7 06 00 00 00 00    	movl   $0x0,(%esi)                    
    olddelta->tv_usec = 0;                                            
  10abac:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)                 
  10abb3:	8b 53 04             	mov    0x4(%ebx),%edx                 
  }                                                                   
                                                                      
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
  10abb6:	8b 03                	mov    (%ebx),%eax                    
  10abb8:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abbb:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abbe:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abc1:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abc4:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abc7:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10abca:	c1 e0 06             	shl    $0x6,%eax                      
  adjustment += delta->tv_usec;                                       
  10abcd:	8d 04 02             	lea    (%edx,%eax,1),%eax             
                                                                      
  /* too small to account for */                                      
  if ( adjustment < rtems_configuration_get_microseconds_per_tick() ) 
  10abd0:	3b 05 ec 49 12 00    	cmp    0x1249ec,%eax                  
  10abd6:	73 0c                	jae    10abe4 <adjtime+0x68>          
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
    *olddelta = *delta;                                               
                                                                      
  return 0;                                                           
  10abd8:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10abda:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10abdd:	5b                   	pop    %ebx                           
  10abde:	5e                   	pop    %esi                           
  10abdf:	5f                   	pop    %edi                           
  10abe0:	c9                   	leave                                 
  10abe1:	c3                   	ret                                   
  10abe2:	66 90                	xchg   %ax,%ax                        
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10abe4:	a1 ac 8d 12 00       	mov    0x128dac,%eax                  
  10abe9:	40                   	inc    %eax                           
  10abea:	a3 ac 8d 12 00       	mov    %eax,0x128dac                  
   * This prevents context switches while we are adjusting the TOD    
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
  10abef:	83 ec 0c             	sub    $0xc,%esp                      
  10abf2:	8d 7d e0             	lea    -0x20(%ebp),%edi               
  10abf5:	57                   	push   %edi                           
  10abf6:	e8 9d 15 00 00       	call   10c198 <_TOD_Get>              
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
  10abfb:	8b 03                	mov    (%ebx),%eax                    
  10abfd:	01 45 e0             	add    %eax,-0x20(%ebp)               
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
  10ac00:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10ac03:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10ac06:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10ac09:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10ac0c:	c1 e0 03             	shl    $0x3,%eax                      
  10ac0f:	03 45 e4             	add    -0x1c(%ebp),%eax               
  10ac12:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
  10ac15:	83 c4 10             	add    $0x10,%esp                     
  10ac18:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  10ac1d:	76 18                	jbe    10ac37 <adjtime+0xbb>          
  10ac1f:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10ac22:	66 90                	xchg   %ax,%ax                        
      ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                       
  10ac24:	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(                                                         
  10ac29:	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 ) {              
  10ac2a:	3d ff c9 9a 3b       	cmp    $0x3b9ac9ff,%eax               
  10ac2f:	77 f3                	ja     10ac24 <adjtime+0xa8>          <== NEVER TAKEN
  10ac31:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10ac34:	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) ) {       
  10ac37:	3d 00 36 65 c4       	cmp    $0xc4653600,%eax               
  10ac3c:	77 19                	ja     10ac57 <adjtime+0xdb>          <== NEVER TAKEN
  10ac3e:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10ac41:	8d 76 00             	lea    0x0(%esi),%esi                 
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
  10ac44:	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(                                                         
  10ac49:	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) ) {       
  10ac4a:	3d 00 36 65 c4       	cmp    $0xc4653600,%eax               
  10ac4f:	76 f3                	jbe    10ac44 <adjtime+0xc8>          
  10ac51:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10ac54:	89 55 e0             	mov    %edx,-0x20(%ebp)               
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
      ts.tv_sec--;                                                    
    }                                                                 
                                                                      
    _TOD_Set( &ts );                                                  
  10ac57:	83 ec 0c             	sub    $0xc,%esp                      
  10ac5a:	57                   	push   %edi                           
  10ac5b:	e8 c0 15 00 00       	call   10c220 <_TOD_Set>              
                                                                      
  _Thread_Enable_dispatch();                                          
  10ac60:	e8 5b 2a 00 00       	call   10d6c0 <_Thread_Enable_dispatch>
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
  10ac65:	83 c4 10             	add    $0x10,%esp                     
  10ac68:	85 f6                	test   %esi,%esi                      
  10ac6a:	0f 84 68 ff ff ff    	je     10abd8 <adjtime+0x5c>          
    *olddelta = *delta;                                               
  10ac70:	8b 03                	mov    (%ebx),%eax                    
  10ac72:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10ac75:	89 06                	mov    %eax,(%esi)                    
  10ac77:	89 56 04             	mov    %edx,0x4(%esi)                 
                                                                      
  return 0;                                                           
  10ac7a:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ac7c:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ac7f:	5b                   	pop    %ebx                           
  10ac80:	5e                   	pop    %esi                           
  10ac81:	5f                   	pop    %edi                           
  10ac82:	c9                   	leave                                 
  10ac83:	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 );                   
  10ac84:	e8 0f 8c 00 00       	call   113898 <__errno>               
  10ac89:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10ac8f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ac94:	e9 41 ff ff ff       	jmp    10abda <adjtime+0x5e>          
                                                                      

0010b2bc <aio_cancel>: * operation(s) cannot be canceled */ int aio_cancel(int fildes, struct aiocb *aiocbp) {
  10b2bc:	55                   	push   %ebp                           
  10b2bd:	89 e5                	mov    %esp,%ebp                      
  10b2bf:	57                   	push   %edi                           
  10b2c0:	56                   	push   %esi                           
  10b2c1:	53                   	push   %ebx                           
  10b2c2:	83 ec 18             	sub    $0x18,%esp                     
  10b2c5:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10b2c8:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
  10b2cb:	68 a0 94 12 00       	push   $0x1294a0                      
  10b2d0:	e8 bf 11 00 00       	call   10c494 <pthread_mutex_lock>    
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
  10b2d5:	5a                   	pop    %edx                           
  10b2d6:	59                   	pop    %ecx                           
  10b2d7:	6a 01                	push   $0x1                           
  10b2d9:	56                   	push   %esi                           
  10b2da:	e8 65 6a 00 00       	call   111d44 <fcntl>                 
  10b2df:	83 c4 10             	add    $0x10,%esp                     
  10b2e2:	85 c0                	test   %eax,%eax                      
  10b2e4:	0f 88 9b 01 00 00    	js     10b485 <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) {                                               
  10b2ea:	85 db                	test   %ebx,%ebx                      
  10b2ec:	0f 84 ea 00 00 00    	je     10b3dc <aio_cancel+0x120>      
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
    return AIO_CANCELED;                                              
  } else {                                                            
    AIO_printf ("Cancel request\n");                                  
                                                                      
    if (aiocbp->aio_fildes != fildes) {                               
  10b2f2:	8b 3b                	mov    (%ebx),%edi                    
  10b2f4:	39 f7                	cmp    %esi,%edi                      
  10b2f6:	0f 85 b8 00 00 00    	jne    10b3b4 <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);
  10b2fc:	56                   	push   %esi                           
  10b2fd:	6a 00                	push   $0x0                           
  10b2ff:	57                   	push   %edi                           
  10b300:	68 e8 94 12 00       	push   $0x1294e8                      
  10b305:	e8 9e 03 00 00       	call   10b6a8 <rtems_aio_search_fd>   
  10b30a:	89 c6                	mov    %eax,%esi                      
    if (r_chain == NULL) {                                            
  10b30c:	83 c4 10             	add    $0x10,%esp                     
  10b30f:	85 c0                	test   %eax,%eax                      
  10b311:	74 3d                	je     10b350 <aio_cancel+0x94>       
        return AIO_ALLDONE;                                           
      }                                                               
    }                                                                 
      AIO_printf ("Request on [WQ]\n");                               
                                                                      
      pthread_mutex_lock (&r_chain->mutex);                           
  10b313:	8d 78 1c             	lea    0x1c(%eax),%edi                
  10b316:	83 ec 0c             	sub    $0xc,%esp                      
  10b319:	57                   	push   %edi                           
  10b31a:	e8 75 11 00 00       	call   10c494 <pthread_mutex_lock>    
      result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);        
  10b31f:	58                   	pop    %eax                           
  10b320:	5a                   	pop    %edx                           
  10b321:	53                   	push   %ebx                           
  10b322:	83 c6 08             	add    $0x8,%esi                      
  10b325:	56                   	push   %esi                           
  10b326:	e8 5d 07 00 00       	call   10ba88 <rtems_aio_remove_req>  
  10b32b:	89 c3                	mov    %eax,%ebx                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10b32d:	89 3c 24             	mov    %edi,(%esp)                    
  10b330:	e8 e7 11 00 00       	call   10c51c <pthread_mutex_unlock>  
      pthread_mutex_unlock (&aio_request_queue.mutex);                
  10b335:	c7 04 24 a0 94 12 00 	movl   $0x1294a0,(%esp)               
  10b33c:	e8 db 11 00 00       	call   10c51c <pthread_mutex_unlock>  
      return result;                                                  
  10b341:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
  10b344:	89 d8                	mov    %ebx,%eax                      
  10b346:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b349:	5b                   	pop    %ebx                           
  10b34a:	5e                   	pop    %esi                           
  10b34b:	5f                   	pop    %edi                           
  10b34c:	c9                   	leave                                 
  10b34d:	c3                   	ret                                   
  10b34e:	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)) {      
  10b350:	81 3d f4 94 12 00 f8 	cmpl   $0x1294f8,0x1294f4             
  10b357:	94 12 00                                                    
  10b35a:	74 40                	je     10b39c <aio_cancel+0xe0>       <== NEVER TAKEN
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
  10b35c:	51                   	push   %ecx                           
  10b35d:	6a 00                	push   $0x0                           
  10b35f:	57                   	push   %edi                           
  10b360:	68 f4 94 12 00       	push   $0x1294f4                      
  10b365:	e8 3e 03 00 00       	call   10b6a8 <rtems_aio_search_fd>   
        if (r_chain == NULL) {                                        
  10b36a:	83 c4 10             	add    $0x10,%esp                     
  10b36d:	85 c0                	test   %eax,%eax                      
  10b36f:	74 43                	je     10b3b4 <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);      
  10b371:	83 ec 08             	sub    $0x8,%esp                      
  10b374:	53                   	push   %ebx                           
  10b375:	83 c0 08             	add    $0x8,%eax                      
  10b378:	50                   	push   %eax                           
  10b379:	e8 0a 07 00 00       	call   10ba88 <rtems_aio_remove_req>  
  10b37e:	89 c3                	mov    %eax,%ebx                      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
  10b380:	c7 04 24 a0 94 12 00 	movl   $0x1294a0,(%esp)               
  10b387:	e8 90 11 00 00       	call   10c51c <pthread_mutex_unlock>  
        return result;                                                
  10b38c:	83 c4 10             	add    $0x10,%esp                     
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_unlock (&aio_request_queue.mutex);                
      return result;                                                  
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
  10b38f:	89 d8                	mov    %ebx,%eax                      
  10b391:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b394:	5b                   	pop    %ebx                           
  10b395:	5e                   	pop    %esi                           
  10b396:	5f                   	pop    %edi                           
  10b397:	c9                   	leave                                 
  10b398:	c3                   	ret                                   
  10b399:	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);              
  10b39c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10b39f:	68 a0 94 12 00       	push   $0x1294a0                      <== NOT EXECUTED
  10b3a4:	e8 73 11 00 00       	call   10c51c <pthread_mutex_unlock>  <== NOT EXECUTED
        return AIO_ALLDONE;                                           
  10b3a9:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10b3ac:	bb 02 00 00 00       	mov    $0x2,%ebx                      <== NOT EXECUTED
  10b3b1:	eb 91                	jmp    10b344 <aio_cancel+0x88>       <== NOT EXECUTED
  10b3b3:	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);            
  10b3b4:	83 ec 0c             	sub    $0xc,%esp                      
  10b3b7:	68 a0 94 12 00       	push   $0x1294a0                      
  10b3bc:	e8 5b 11 00 00       	call   10c51c <pthread_mutex_unlock>  
          rtems_set_errno_and_return_minus_one (EINVAL);              
  10b3c1:	e8 36 a3 00 00       	call   1156fc <__errno>               
  10b3c6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b3cc:	83 c4 10             	add    $0x10,%esp                     
  10b3cf:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
  10b3d4:	e9 6b ff ff ff       	jmp    10b344 <aio_cancel+0x88>       
  10b3d9:	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);
  10b3dc:	50                   	push   %eax                           
  10b3dd:	6a 00                	push   $0x0                           
  10b3df:	56                   	push   %esi                           
  10b3e0:	68 e8 94 12 00       	push   $0x1294e8                      
  10b3e5:	e8 be 02 00 00       	call   10b6a8 <rtems_aio_search_fd>   
  10b3ea:	89 c3                	mov    %eax,%ebx                      
    if (r_chain == NULL) {                                            
  10b3ec:	83 c4 10             	add    $0x10,%esp                     
  10b3ef:	85 c0                	test   %eax,%eax                      
  10b3f1:	74 3d                	je     10b430 <aio_cancel+0x174>      
      return AIO_ALLDONE;                                             
    }                                                                 
                                                                      
    AIO_printf ("Request chain on [WQ]\n");                           
                                                                      
    pthread_mutex_lock (&r_chain->mutex);                             
  10b3f3:	8d 70 1c             	lea    0x1c(%eax),%esi                
  10b3f6:	83 ec 0c             	sub    $0xc,%esp                      
  10b3f9:	56                   	push   %esi                           
  10b3fa:	e8 95 10 00 00       	call   10c494 <pthread_mutex_lock>    
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10b3ff:	89 1c 24             	mov    %ebx,(%esp)                    
  10b402:	e8 a5 29 00 00       	call   10ddac <_Chain_Extract>        
    rtems_chain_extract (&r_chain->next_fd);                          
    rtems_aio_remove_fd (r_chain);                                    
  10b407:	89 1c 24             	mov    %ebx,(%esp)                    
  10b40a:	e8 29 06 00 00       	call   10ba38 <rtems_aio_remove_fd>   
    pthread_mutex_unlock (&r_chain->mutex);                           
  10b40f:	89 34 24             	mov    %esi,(%esp)                    
  10b412:	e8 05 11 00 00       	call   10c51c <pthread_mutex_unlock>  
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
  10b417:	c7 04 24 a0 94 12 00 	movl   $0x1294a0,(%esp)               
  10b41e:	e8 f9 10 00 00       	call   10c51c <pthread_mutex_unlock>  
    return AIO_CANCELED;                                              
  10b423:	83 c4 10             	add    $0x10,%esp                     
  10b426:	31 db                	xor    %ebx,%ebx                      
  10b428:	e9 17 ff ff ff       	jmp    10b344 <aio_cancel+0x88>       
  10b42d:	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)) {      
  10b430:	81 3d f4 94 12 00 f8 	cmpl   $0x1294f8,0x1294f4             
  10b437:	94 12 00                                                    
  10b43a:	0f 84 5c ff ff ff    	je     10b39c <aio_cancel+0xe0>       <== NEVER TAKEN
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
  10b440:	57                   	push   %edi                           
  10b441:	6a 00                	push   $0x0                           
  10b443:	56                   	push   %esi                           
  10b444:	68 f4 94 12 00       	push   $0x1294f4                      
  10b449:	e8 5a 02 00 00       	call   10b6a8 <rtems_aio_search_fd>   
  10b44e:	89 c3                	mov    %eax,%ebx                      
        if (r_chain == NULL) {                                        
  10b450:	83 c4 10             	add    $0x10,%esp                     
  10b453:	85 c0                	test   %eax,%eax                      
  10b455:	74 53                	je     10b4aa <aio_cancel+0x1ee>      
  10b457:	83 ec 0c             	sub    $0xc,%esp                      
  10b45a:	50                   	push   %eax                           
  10b45b:	e8 4c 29 00 00       	call   10ddac <_Chain_Extract>        
        }                                                             
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
  10b460:	89 1c 24             	mov    %ebx,(%esp)                    
  10b463:	e8 d0 05 00 00       	call   10ba38 <rtems_aio_remove_fd>   
        pthread_mutex_destroy (&r_chain->mutex);                      
  10b468:	8d 73 1c             	lea    0x1c(%ebx),%esi                
  10b46b:	89 34 24             	mov    %esi,(%esp)                    
  10b46e:	e8 b5 0d 00 00       	call   10c228 <pthread_mutex_destroy> 
        pthread_cond_destroy (&r_chain->mutex);                       
  10b473:	89 34 24             	mov    %esi,(%esp)                    
  10b476:	e8 69 0a 00 00       	call   10bee4 <pthread_cond_destroy>  
        free (r_chain);                                               
  10b47b:	89 1c 24             	mov    %ebx,(%esp)                    
  10b47e:	e8 31 cc ff ff       	call   1080b4 <free>                  
  10b483:	eb 92                	jmp    10b417 <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);                   
  10b485:	83 ec 0c             	sub    $0xc,%esp                      
  10b488:	68 a0 94 12 00       	push   $0x1294a0                      
  10b48d:	e8 8a 10 00 00       	call   10c51c <pthread_mutex_unlock>  
    rtems_set_errno_and_return_minus_one (EBADF);                     
  10b492:	e8 65 a2 00 00       	call   1156fc <__errno>               
  10b497:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10b49d:	83 c4 10             	add    $0x10,%esp                     
  10b4a0:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
  10b4a5:	e9 9a fe ff ff       	jmp    10b344 <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);             
  10b4aa:	83 ec 0c             	sub    $0xc,%esp                      
  10b4ad:	68 a0 94 12 00       	push   $0x1294a0                      
  10b4b2:	e8 65 10 00 00       	call   10c51c <pthread_mutex_unlock>  
          return AIO_ALLDONE;                                         
  10b4b7:	83 c4 10             	add    $0x10,%esp                     
  10b4ba:	b3 02                	mov    $0x2,%bl                       
  10b4bc:	e9 83 fe ff ff       	jmp    10b344 <aio_cancel+0x88>       
                                                                      

0010b4d0 <aio_fsync>: int aio_fsync( int op, struct aiocb *aiocbp ) {
  10b4d0:	55                   	push   %ebp                           
  10b4d1:	89 e5                	mov    %esp,%ebp                      
  10b4d3:	53                   	push   %ebx                           
  10b4d4:	83 ec 04             	sub    $0x4,%esp                      
  10b4d7:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
  10b4da:	81 7d 08 00 20 00 00 	cmpl   $0x2000,0x8(%ebp)              
  10b4e1:	75 41                	jne    10b524 <aio_fsync+0x54>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10b4e3:	83 ec 08             	sub    $0x8,%esp                      
  10b4e6:	6a 03                	push   $0x3                           
  10b4e8:	ff 33                	pushl  (%ebx)                         
  10b4ea:	e8 55 68 00 00       	call   111d44 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10b4ef:	83 e0 03             	and    $0x3,%eax                      
  10b4f2:	48                   	dec    %eax                           
  10b4f3:	83 c4 10             	add    $0x10,%esp                     
  10b4f6:	83 f8 01             	cmp    $0x1,%eax                      
  10b4f9:	77 4d                	ja     10b548 <aio_fsync+0x78>        
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10b4fb:	83 ec 0c             	sub    $0xc,%esp                      
  10b4fe:	6a 18                	push   $0x18                          
  10b500:	e8 c3 d0 ff ff       	call   1085c8 <malloc>                
  if (req == NULL)                                                    
  10b505:	83 c4 10             	add    $0x10,%esp                     
  10b508:	85 c0                	test   %eax,%eax                      
  10b50a:	74 57                	je     10b563 <aio_fsync+0x93>        <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10b50c:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
  10b50f:	c7 43 2c 03 00 00 00 	movl   $0x3,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10b516:	89 45 08             	mov    %eax,0x8(%ebp)                 
                                                                      
}                                                                     
  10b519:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b51c:	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);                                     
  10b51d:	e9 d6 05 00 00       	jmp    10baf8 <rtems_aio_enqueue>     
  10b522:	66 90                	xchg   %ax,%ax                        
{                                                                     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
  10b524:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10b52b:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10b532:	e8 c5 a1 00 00       	call   1156fc <__errno>               
  10b537:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
                                                                      
}                                                                     
  10b53d:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b542:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b545:	c9                   	leave                                 
  10b546:	c3                   	ret                                   
  10b547:	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);             
  10b548:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10b54f:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10b556:	e8 a1 a1 00 00       	call   1156fc <__errno>               
  10b55b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
  10b561:	eb da                	jmp    10b53d <aio_fsync+0x6d>        
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10b563:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10b56a:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10b571:	e8 86 a1 00 00       	call   1156fc <__errno>               <== NOT EXECUTED
  10b576:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10b57c:	eb bf                	jmp    10b53d <aio_fsync+0x6d>        <== NOT EXECUTED
                                                                      

0010bd08 <aio_read>: * 0 - otherwise */ int aio_read (struct aiocb *aiocbp) {
  10bd08:	55                   	push   %ebp                           
  10bd09:	89 e5                	mov    %esp,%ebp                      
  10bd0b:	53                   	push   %ebx                           
  10bd0c:	83 ec 0c             	sub    $0xc,%esp                      
  10bd0f:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10bd12:	6a 03                	push   $0x3                           
  10bd14:	ff 33                	pushl  (%ebx)                         
  10bd16:	e8 29 60 00 00       	call   111d44 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10bd1b:	83 c4 10             	add    $0x10,%esp                     
  10bd1e:	83 e0 03             	and    $0x3,%eax                      
  10bd21:	74 05                	je     10bd28 <aio_read+0x20>         <== NEVER TAKEN
  10bd23:	83 f8 02             	cmp    $0x2,%eax                      
  10bd26:	75 38                	jne    10bd60 <aio_read+0x58>         
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
  10bd28:	8b 53 14             	mov    0x14(%ebx),%edx                
  10bd2b:	85 d2                	test   %edx,%edx                      
  10bd2d:	75 55                	jne    10bd84 <aio_read+0x7c>         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
  10bd2f:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10bd32:	85 c0                	test   %eax,%eax                      
  10bd34:	78 4e                	js     10bd84 <aio_read+0x7c>         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10bd36:	83 ec 0c             	sub    $0xc,%esp                      
  10bd39:	6a 18                	push   $0x18                          
  10bd3b:	e8 88 c8 ff ff       	call   1085c8 <malloc>                
  if (req == NULL)                                                    
  10bd40:	83 c4 10             	add    $0x10,%esp                     
  10bd43:	85 c0                	test   %eax,%eax                      
  10bd45:	74 58                	je     10bd9f <aio_read+0x97>         <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10bd47:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
  10bd4a:	c7 43 2c 01 00 00 00 	movl   $0x1,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10bd51:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10bd54:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bd57:	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);                                     
  10bd58:	e9 9b fd ff ff       	jmp    10baf8 <rtems_aio_enqueue>     
  10bd5d:	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);             
  10bd60:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10bd67:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10bd6e:	e8 89 99 00 00       	call   1156fc <__errno>               
  10bd73:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
  10bd79:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10bd7e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bd81:	c9                   	leave                                 
  10bd82:	c3                   	ret                                   
  10bd83:	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);            
  10bd84:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10bd8b:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10bd92:	e8 65 99 00 00       	call   1156fc <__errno>               
  10bd97:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10bd9d:	eb da                	jmp    10bd79 <aio_read+0x71>         
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10bd9f:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10bda6:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10bdad:	e8 4a 99 00 00       	call   1156fc <__errno>               <== NOT EXECUTED
  10bdb2:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10bdb8:	eb bf                	jmp    10bd79 <aio_read+0x71>         <== NOT EXECUTED
                                                                      

0010bdc8 <aio_write>: * 0 - otherwise */ int aio_write (struct aiocb *aiocbp) {
  10bdc8:	55                   	push   %ebp                           
  10bdc9:	89 e5                	mov    %esp,%ebp                      
  10bdcb:	53                   	push   %ebx                           
  10bdcc:	83 ec 0c             	sub    $0xc,%esp                      
  10bdcf:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  10bdd2:	6a 03                	push   $0x3                           
  10bdd4:	ff 33                	pushl  (%ebx)                         
  10bdd6:	e8 69 5f 00 00       	call   111d44 <fcntl>                 
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
  10bddb:	83 e0 03             	and    $0x3,%eax                      
  10bdde:	48                   	dec    %eax                           
  10bddf:	83 c4 10             	add    $0x10,%esp                     
  10bde2:	83 f8 01             	cmp    $0x1,%eax                      
  10bde5:	77 35                	ja     10be1c <aio_write+0x54>        
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
  10bde7:	8b 53 14             	mov    0x14(%ebx),%edx                
  10bdea:	85 d2                	test   %edx,%edx                      
  10bdec:	75 52                	jne    10be40 <aio_write+0x78>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
  10bdee:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10bdf1:	85 c0                	test   %eax,%eax                      
  10bdf3:	78 4b                	js     10be40 <aio_write+0x78>        
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  10bdf5:	83 ec 0c             	sub    $0xc,%esp                      
  10bdf8:	6a 18                	push   $0x18                          
  10bdfa:	e8 c9 c7 ff ff       	call   1085c8 <malloc>                
  if (req == NULL)                                                    
  10bdff:	83 c4 10             	add    $0x10,%esp                     
  10be02:	85 c0                	test   %eax,%eax                      
  10be04:	74 55                	je     10be5b <aio_write+0x93>        <== NEVER TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  10be06:	89 58 14             	mov    %ebx,0x14(%eax)                
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
  10be09:	c7 43 2c 02 00 00 00 	movl   $0x2,0x2c(%ebx)                
                                                                      
  return rtems_aio_enqueue (req);                                     
  10be10:	89 45 08             	mov    %eax,0x8(%ebp)                 
}                                                                     
  10be13:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10be16:	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);                                     
  10be17:	e9 dc fc ff ff       	jmp    10baf8 <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);             
  10be1c:	c7 43 30 09 00 00 00 	movl   $0x9,0x30(%ebx)                
  10be23:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10be2a:	e8 cd 98 00 00       	call   1156fc <__errno>               
  10be2f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)                    
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
  10be35:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10be3a:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10be3d:	c9                   	leave                                 
  10be3e:	c3                   	ret                                   
  10be3f:	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);            
  10be40:	c7 43 30 16 00 00 00 	movl   $0x16,0x30(%ebx)               
  10be47:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         
  10be4e:	e8 a9 98 00 00       	call   1156fc <__errno>               
  10be53:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10be59:	eb da                	jmp    10be35 <aio_write+0x6d>        
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
  10be5b:	c7 43 30 0b 00 00 00 	movl   $0xb,0x30(%ebx)                <== NOT EXECUTED
  10be62:	c7 43 34 ff ff ff ff 	movl   $0xffffffff,0x34(%ebx)         <== NOT EXECUTED
  10be69:	e8 8e 98 00 00       	call   1156fc <__errno>               <== NOT EXECUTED
  10be6e:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    <== NOT EXECUTED
  10be74:	eb bf                	jmp    10be35 <aio_write+0x6d>        <== NOT EXECUTED
                                                                      

0010a9fc <clock_gettime>: int clock_gettime( clockid_t clock_id, struct timespec *tp ) {
  10a9fc:	55                   	push   %ebp                           
  10a9fd:	89 e5                	mov    %esp,%ebp                      
  10a9ff:	83 ec 08             	sub    $0x8,%esp                      
  10aa02:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10aa05:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !tp )                                                          
  10aa08:	85 d2                	test   %edx,%edx                      
  10aa0a:	74 14                	je     10aa20 <clock_gettime+0x24>    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
  10aa0c:	83 f8 01             	cmp    $0x1,%eax                      
  10aa0f:	74 47                	je     10aa58 <clock_gettime+0x5c>    
    _TOD_Get(tp);                                                     
    return 0;                                                         
  }                                                                   
#ifdef CLOCK_MONOTONIC                                                
  if ( clock_id == CLOCK_MONOTONIC ) {                                
  10aa11:	83 f8 04             	cmp    $0x4,%eax                      
  10aa14:	74 32                	je     10aa48 <clock_gettime+0x4c>    <== NEVER TAKEN
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
  10aa16:	83 f8 02             	cmp    $0x2,%eax                      
  10aa19:	74 2d                	je     10aa48 <clock_gettime+0x4c>    
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
  10aa1b:	83 f8 03             	cmp    $0x3,%eax                      
  10aa1e:	74 14                	je     10aa34 <clock_gettime+0x38>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10aa20:	e8 bb 93 00 00       	call   113de0 <__errno>               
  10aa25:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10aa2b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
                                                                      
  return 0;                                                           
}                                                                     
  10aa30:	c9                   	leave                                 
  10aa31:	c3                   	ret                                   
  10aa32:	66 90                	xchg   %ax,%ax                        
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
  10aa34:	e8 a7 93 00 00       	call   113de0 <__errno>               
  10aa39:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  10aa3f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10aa44:	c9                   	leave                                 
  10aa45:	c3                   	ret                                   
  10aa46:	66 90                	xchg   %ax,%ax                        
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
    _TOD_Get_uptime_as_timespec( tp );                                
  10aa48:	83 ec 0c             	sub    $0xc,%esp                      
  10aa4b:	52                   	push   %edx                           
  10aa4c:	e8 ab 1c 00 00       	call   10c6fc <_TOD_Get_uptime_as_timespec>
    return 0;                                                         
  10aa51:	83 c4 10             	add    $0x10,%esp                     
  10aa54:	31 c0                	xor    %eax,%eax                      
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10aa56:	c9                   	leave                                 
  10aa57:	c3                   	ret                                   
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    _TOD_Get(tp);                                                     
  10aa58:	83 ec 0c             	sub    $0xc,%esp                      
  10aa5b:	52                   	push   %edx                           
  10aa5c:	e8 47 1c 00 00       	call   10c6a8 <_TOD_Get>              
    return 0;                                                         
  10aa61:	83 c4 10             	add    $0x10,%esp                     
  10aa64:	31 c0                	xor    %eax,%eax                      
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
                                                                      
  return 0;                                                           
}                                                                     
  10aa66:	c9                   	leave                                 
  10aa67:	c3                   	ret                                   
                                                                      

0010aa68 <clock_settime>: int clock_settime( clockid_t clock_id, const struct timespec *tp ) {
  10aa68:	55                   	push   %ebp                           
  10aa69:	89 e5                	mov    %esp,%ebp                      
  10aa6b:	83 ec 08             	sub    $0x8,%esp                      
  10aa6e:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10aa71:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !tp )                                                          
  10aa74:	85 d2                	test   %edx,%edx                      
  10aa76:	74 0f                	je     10aa87 <clock_settime+0x1f>    <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
  10aa78:	83 f8 01             	cmp    $0x1,%eax                      
  10aa7b:	74 1f                	je     10aa9c <clock_settime+0x34>    
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
    _Thread_Enable_dispatch();                                        
  }                                                                   
#ifdef _POSIX_CPUTIME                                                 
  else if ( clock_id == CLOCK_PROCESS_CPUTIME )                       
  10aa7d:	83 f8 02             	cmp    $0x2,%eax                      
  10aa80:	74 42                	je     10aac4 <clock_settime+0x5c>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
#ifdef _POSIX_THREAD_CPUTIME                                          
  else if ( clock_id == CLOCK_THREAD_CPUTIME )                        
  10aa82:	83 f8 03             	cmp    $0x3,%eax                      
  10aa85:	74 3d                	je     10aac4 <clock_settime+0x5c>    
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10aa87:	e8 54 93 00 00       	call   113de0 <__errno>               
  10aa8c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10aa92:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
                                                                      
  return 0;                                                           
}                                                                     
  10aa97:	c9                   	leave                                 
  10aa98:	c3                   	ret                                   
  10aa99:	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 )                 
  10aa9c:	81 3a ff e4 da 21    	cmpl   $0x21dae4ff,(%edx)             
  10aaa2:	76 e3                	jbe    10aa87 <clock_settime+0x1f>    
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10aaa4:	a1 4c 97 12 00       	mov    0x12974c,%eax                  
  10aaa9:	40                   	inc    %eax                           
  10aaaa:	a3 4c 97 12 00       	mov    %eax,0x12974c                  
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
  10aaaf:	83 ec 0c             	sub    $0xc,%esp                      
  10aab2:	52                   	push   %edx                           
  10aab3:	e8 9c 1c 00 00       	call   10c754 <_TOD_Set>              
    _Thread_Enable_dispatch();                                        
  10aab8:	e8 37 31 00 00       	call   10dbf4 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
  10aabd:	83 c4 10             	add    $0x10,%esp                     
  10aac0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10aac2:	c9                   	leave                                 
  10aac3:	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 );                   
  10aac4:	e8 17 93 00 00       	call   113de0 <__errno>               
  10aac9:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
  10aacf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
}                                                                     
  10aad4:	c9                   	leave                                 
  10aad5:	c3                   	ret                                   
                                                                      

0010a7dc <getitimer>: int getitimer( int which, struct itimerval *value ) {
  10a7dc:	55                   	push   %ebp                           
  10a7dd:	89 e5                	mov    %esp,%ebp                      
  10a7df:	83 ec 08             	sub    $0x8,%esp                      
  if ( !value )                                                       
  10a7e2:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10a7e5:	85 c0                	test   %eax,%eax                      
  10a7e7:	74 2f                	je     10a818 <getitimer+0x3c>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
  10a7e9:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)                 
  10a7ed:	76 15                	jbe    10a804 <getitimer+0x28>        
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10a7ef:	e8 00 8d 00 00       	call   1134f4 <__errno>               
  10a7f4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
}                                                                     
  10a7fa:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10a7ff:	c9                   	leave                                 
  10a800:	c3                   	ret                                   
  10a801:	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 );                 
  10a804:	e8 eb 8c 00 00       	call   1134f4 <__errno>               
  10a809:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10a80f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10a814:	c9                   	leave                                 
  10a815:	c3                   	ret                                   
  10a816:	66 90                	xchg   %ax,%ax                        
  int               which,                                            
  struct itimerval *value                                             
)                                                                     
{                                                                     
  if ( !value )                                                       
    rtems_set_errno_and_return_minus_one( EFAULT );                   
  10a818:	e8 d7 8c 00 00       	call   1134f4 <__errno>               
  10a81d:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)                    
  10a823:	eb d5                	jmp    10a7fa <getitimer+0x1e>        
                                                                      

00124518 <killinfo>: int killinfo( pid_t pid, int sig, const union sigval *value ) {
  124518:	55                   	push   %ebp                           
  124519:	89 e5                	mov    %esp,%ebp                      
  12451b:	57                   	push   %edi                           
  12451c:	56                   	push   %esi                           
  12451d:	53                   	push   %ebx                           
  12451e:	83 ec 3c             	sub    $0x3c,%esp                     
  124521:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  124524:	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() )                                              
  124527:	e8 00 fd ff ff       	call   12422c <getpid>                
  12452c:	3b 45 08             	cmp    0x8(%ebp),%eax                 
  12452f:	0f 85 3f 02 00 00    	jne    124774 <killinfo+0x25c>        
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  /*                                                                  
   *  Validate the signal passed.                                     
   */                                                                 
  if ( !sig )                                                         
  124535:	85 f6                	test   %esi,%esi                      
  124537:	0f 84 4c 02 00 00    	je     124789 <killinfo+0x271>        
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  12453d:	8d 4e ff             	lea    -0x1(%esi),%ecx                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  124540:	83 f9 1f             	cmp    $0x1f,%ecx                     
  124543:	0f 87 40 02 00 00    	ja     124789 <killinfo+0x271>        
    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 )          
  124549:	8d 04 76             	lea    (%esi,%esi,2),%eax             
  12454c:	83 3c 85 a8 dc 12 00 	cmpl   $0x1,0x12dca8(,%eax,4)         
  124553:	01                                                          
  124554:	0f 84 e6 01 00 00    	je     124740 <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 ) )      
  12455a:	83 fe 08             	cmp    $0x8,%esi                      
  12455d:	0f 84 c9 00 00 00    	je     12462c <killinfo+0x114>        
  124563:	83 fe 04             	cmp    $0x4,%esi                      
  124566:	0f 84 c0 00 00 00    	je     12462c <killinfo+0x114>        
  12456c:	83 fe 0b             	cmp    $0xb,%esi                      
  12456f:	0f 84 b7 00 00 00    	je     12462c <killinfo+0x114>        
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  124575:	bb 01 00 00 00       	mov    $0x1,%ebx                      
  12457a:	d3 e3                	shl    %cl,%ebx                       
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  12457c:	89 75 dc             	mov    %esi,-0x24(%ebp)               
  siginfo->si_code = SI_USER;                                         
  12457f:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)               
  if ( !value ) {                                                     
  124586:	85 ff                	test   %edi,%edi                      
  124588:	0f 84 ba 01 00 00    	je     124748 <killinfo+0x230>        
    siginfo->si_value.sival_int = 0;                                  
  } else {                                                            
    siginfo->si_value = *value;                                       
  12458e:	8b 07                	mov    (%edi),%eax                    
  124590:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  124593:	a1 8c d6 12 00       	mov    0x12d68c,%eax                  
  124598:	40                   	inc    %eax                           
  124599:	a3 8c d6 12 00       	mov    %eax,0x12d68c                  
                                                                      
  /*                                                                  
   *  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;                                     
  12459e:	8b 0d 38 dc 12 00    	mov    0x12dc38,%ecx                  
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  if ( _POSIX_signals_Is_interested( api, mask ) ) {                  
  1245a4:	8b 81 ec 00 00 00    	mov    0xec(%ecx),%eax                
  1245aa:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  1245b0:	f7 d0                	not    %eax                           
  1245b2:	85 c3                	test   %eax,%ebx                      
  1245b4:	75 34                	jne    1245ea <killinfo+0xd2>         
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  1245b6:	a1 40 de 12 00       	mov    0x12de40,%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 );                         
  1245bb:	3d 44 de 12 00       	cmp    $0x12de44,%eax                 
  1245c0:	75 1b                	jne    1245dd <killinfo+0xc5>         
  1245c2:	e9 81 00 00 00       	jmp    124648 <killinfo+0x130>        
  1245c7:	90                   	nop                                   
                                                                      
    /*                                                                
     * Is this thread is blocked waiting for another signal but has   
     * not blocked this one?                                          
     */                                                               
    if (~api->signals_blocked & mask)                                 
  1245c8:	8b 92 d0 00 00 00    	mov    0xd0(%edx),%edx                
  1245ce:	f7 d2                	not    %edx                           
  1245d0:	85 d3                	test   %edx,%ebx                      
  1245d2:	75 16                	jne    1245ea <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 ) {                                 
  1245d4:	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 );                         
  1245d6:	3d 44 de 12 00       	cmp    $0x12de44,%eax                 
  1245db:	74 6b                	je     124648 <killinfo+0x130>        <== ALWAYS TAKEN
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
  1245dd:	89 c1                	mov    %eax,%ecx                      
    api = the_thread->API_Extensions[ THREAD_API_POSIX ];             
  1245df:	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)                               
  1245e5:	85 58 30             	test   %ebx,0x30(%eax)                
  1245e8:	74 de                	je     1245c8 <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 ) ) {  
  1245ea:	50                   	push   %eax                           
  mask = signo_to_mask( sig );                                        
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  1245eb:	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 ) ) {  
  1245ee:	50                   	push   %eax                           
  1245ef:	56                   	push   %esi                           
  1245f0:	51                   	push   %ecx                           
  1245f1:	e8 d6 01 00 00       	call   1247cc <_POSIX_signals_Unblock_thread>
  1245f6:	83 c4 10             	add    $0x10,%esp                     
  1245f9:	84 c0                	test   %al,%al                        
  1245fb:	75 1f                	jne    12461c <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 );                         
  1245fd:	83 ec 0c             	sub    $0xc,%esp                      
  124600:	53                   	push   %ebx                           
  124601:	e8 b2 01 00 00       	call   1247b8 <_POSIX_signals_Set_process_signals>
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
  124606:	8d 1c 76             	lea    (%esi,%esi,2),%ebx             
  124609:	c1 e3 02             	shl    $0x2,%ebx                      
  12460c:	83 c4 10             	add    $0x10,%esp                     
  12460f:	83 bb a0 dc 12 00 02 	cmpl   $0x2,0x12dca0(%ebx)            
  124616:	0f 84 e4 00 00 00    	je     124700 <killinfo+0x1e8>        
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  12461c:	e8 ff d7 fe ff       	call   111e20 <_Thread_Enable_dispatch>
  return 0;                                                           
  124621:	31 c0                	xor    %eax,%eax                      
}                                                                     
  124623:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124626:	5b                   	pop    %ebx                           
  124627:	5e                   	pop    %esi                           
  124628:	5f                   	pop    %edi                           
  124629:	c9                   	leave                                 
  12462a:	c3                   	ret                                   
  12462b:	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 );                     
  12462c:	e8 77 03 00 00       	call   1249a8 <pthread_self>          
  124631:	83 ec 08             	sub    $0x8,%esp                      
  124634:	56                   	push   %esi                           
  124635:	50                   	push   %eax                           
  124636:	e8 b1 02 00 00       	call   1248ec <pthread_kill>          
  12463b:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  12463e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  124641:	5b                   	pop    %ebx                           
  124642:	5e                   	pop    %esi                           
  124643:	5f                   	pop    %edi                           
  124644:	c9                   	leave                                 
  124645:	c3                   	ret                                   
  124646:	66 90                	xchg   %ax,%ax                        
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
  124648:	0f b6 05 54 92 12 00 	movzbl 0x129254,%eax                  
  12464f:	40                   	inc    %eax                           
  124650:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
   *                                                                  
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  124653:	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++) {
  12465a:	c7 45 cc 02 00 00 00 	movl   $0x2,-0x34(%ebp)               
  124661:	89 5d d0             	mov    %ebx,-0x30(%ebp)               
  124664:	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 ] )                     
  124667:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  12466a:	8b 04 95 64 d6 12 00 	mov    0x12d664(,%edx,4),%eax         
  124671:	85 c0                	test   %eax,%eax                      
  124673:	74 68                	je     1246dd <killinfo+0x1c5>        <== NEVER TAKEN
      continue;                                                       
                                                                      
    the_info = _Objects_Information_table[ the_api ][ 1 ];            
  124675:	8b 40 04             	mov    0x4(%eax),%eax                 
       */                                                             
      if ( !the_info )                                                
        continue;                                                     
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
  124678:	0f b7 70 10          	movzwl 0x10(%eax),%esi                
    object_table = the_info->local_table;                             
  12467c:	8b 78 1c             	mov    0x1c(%eax),%edi                
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
  12467f:	85 f6                	test   %esi,%esi                      
  124681:	74 5a                	je     1246dd <killinfo+0x1c5>        
  124683:	b8 01 00 00 00       	mov    $0x1,%eax                      
      the_thread = (Thread_Control *) object_table[ index ];          
  124688:	8b 14 87             	mov    (%edi,%eax,4),%edx             
                                                                      
      if ( !the_thread )                                              
  12468b:	85 d2                	test   %edx,%edx                      
  12468d:	74 49                	je     1246d8 <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 )       
  12468f:	8b 4a 14             	mov    0x14(%edx),%ecx                
  124692:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  124695:	77 41                	ja     1246d8 <killinfo+0x1c0>        
      #if defined(RTEMS_DEBUG)                                        
        if ( !api )                                                   
          continue;                                                   
      #endif                                                          
                                                                      
      if ( !_POSIX_signals_Is_interested( api, mask ) )               
  124697:	8b 9a ec 00 00 00    	mov    0xec(%edx),%ebx                
  12469d:	8b 9b d0 00 00 00    	mov    0xd0(%ebx),%ebx                
  1246a3:	f7 d3                	not    %ebx                           
  1246a5:	85 5d d0             	test   %ebx,-0x30(%ebp)               
  1246a8:	74 2e                	je     1246d8 <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 ) {     
  1246aa:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx               
  1246ad:	72 21                	jb     1246d0 <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 ) ) {
  1246af:	8b 5d c8             	mov    -0x38(%ebp),%ebx               
  1246b2:	85 db                	test   %ebx,%ebx                      
  1246b4:	74 22                	je     1246d8 <killinfo+0x1c0>        <== NEVER TAKEN
  1246b6:	8b 5d c8             	mov    -0x38(%ebp),%ebx               
  1246b9:	8b 5b 10             	mov    0x10(%ebx),%ebx                
  1246bc:	89 5d c4             	mov    %ebx,-0x3c(%ebp)               
  1246bf:	85 db                	test   %ebx,%ebx                      
  1246c1:	74 15                	je     1246d8 <killinfo+0x1c0>        <== NEVER TAKEN
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
  1246c3:	8b 5a 10             	mov    0x10(%edx),%ebx                
  1246c6:	85 db                	test   %ebx,%ebx                      
  1246c8:	0f 85 86 00 00 00    	jne    124754 <killinfo+0x23c>        
  1246ce:	66 90                	xchg   %ax,%ax                        
  1246d0:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  1246d3:	89 55 c8             	mov    %edx,-0x38(%ebp)               
  1246d6:	66 90                	xchg   %ax,%ax                        
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
  1246d8:	40                   	inc    %eax                           
  1246d9:	39 c6                	cmp    %eax,%esi                      
  1246db:	73 ab                	jae    124688 <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++) {
  1246dd:	ff 45 cc             	incl   -0x34(%ebp)                    
  1246e0:	83 7d cc 04          	cmpl   $0x4,-0x34(%ebp)               
  1246e4:	75 81                	jne    124667 <killinfo+0x14f>        
  1246e6:	8b 5d d0             	mov    -0x30(%ebp),%ebx               
  1246e9:	8b 75 c0             	mov    -0x40(%ebp),%esi               
        }                                                             
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( interested ) {                                                 
  1246ec:	8b 55 c8             	mov    -0x38(%ebp),%edx               
  1246ef:	85 d2                	test   %edx,%edx                      
  1246f1:	0f 84 06 ff ff ff    	je     1245fd <killinfo+0xe5>         
  1246f7:	8b 4d c8             	mov    -0x38(%ebp),%ecx               
  1246fa:	e9 eb fe ff ff       	jmp    1245ea <killinfo+0xd2>         
  1246ff:	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 );        
  124700:	83 ec 0c             	sub    $0xc,%esp                      
  124703:	68 20 de 12 00       	push   $0x12de20                      
  124708:	e8 77 be fe ff       	call   110584 <_Chain_Get>            
    if ( !psiginfo ) {                                                
  12470d:	83 c4 10             	add    $0x10,%esp                     
  124710:	85 c0                	test   %eax,%eax                      
  124712:	0f 84 86 00 00 00    	je     12479e <killinfo+0x286>        
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
    }                                                                 
                                                                      
    psiginfo->Info = *siginfo;                                        
  124718:	8d 78 08             	lea    0x8(%eax),%edi                 
  12471b:	8d 75 dc             	lea    -0x24(%ebp),%esi               
  12471e:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  124723:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
  124725:	83 ec 08             	sub    $0x8,%esp                      
  124728:	50                   	push   %eax                           
  124729:	81 c3 c0 de 12 00    	add    $0x12dec0,%ebx                 
  12472f:	53                   	push   %ebx                           
  124730:	e8 13 be fe ff       	call   110548 <_Chain_Append>         
  124735:	83 c4 10             	add    $0x10,%esp                     
  124738:	e9 df fe ff ff       	jmp    12461c <killinfo+0x104>        
  12473d:	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;                                                         
  124740:	31 c0                	xor    %eax,%eax                      
  124742:	e9 f7 fe ff ff       	jmp    12463e <killinfo+0x126>        
  124747:	90                   	nop                                   
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
  if ( !value ) {                                                     
    siginfo->si_value.sival_int = 0;                                  
  124748:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)               
  12474f:	e9 3f fe ff ff       	jmp    124593 <killinfo+0x7b>         
          continue;                                                   
        }                                                             
                                                                      
        DEBUG_STEP("6");                                              
        /* prefer blocked/interruptible over blocked/not interruptible */
        if ( !_States_Is_interruptible_by_signal(interested->current_state) ) {
  124754:	f7 45 c4 00 00 00 10 	testl  $0x10000000,-0x3c(%ebp)        
  12475b:	0f 85 77 ff ff ff    	jne    1246d8 <killinfo+0x1c0>        
          DEBUG_STEP("7");                                            
          if ( _States_Is_interruptible_by_signal(the_thread->current_state) ) {
  124761:	81 e3 00 00 00 10    	and    $0x10000000,%ebx               
  124767:	0f 84 6b ff ff ff    	je     1246d8 <killinfo+0x1c0>        
  12476d:	e9 5e ff ff ff       	jmp    1246d0 <killinfo+0x1b8>        
  124772:	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 );                    
  124774:	e8 23 38 ff ff       	call   117f9c <__errno>               
  124779:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    
  12477f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  124784:	e9 b5 fe ff ff       	jmp    12463e <killinfo+0x126>        
   */                                                                 
  if ( !sig )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  124789:	e8 0e 38 ff ff       	call   117f9c <__errno>               
  12478e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  124794:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  124799:	e9 a0 fe ff ff       	jmp    12463e <killinfo+0x126>        
  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();                                      
  12479e:	e8 7d d6 fe ff       	call   111e20 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
  1247a3:	e8 f4 37 ff ff       	call   117f9c <__errno>               
  1247a8:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    
  1247ae:	83 c8 ff             	or     $0xffffffff,%eax               
  1247b1:	e9 88 fe ff ff       	jmp    12463e <killinfo+0x126>        
                                                                      

0010f0bc <mq_open>: int oflag, ... /* mode_t mode, */ /* struct mq_attr attr */ ) {
  10f0bc:	55                   	push   %ebp                           
  10f0bd:	89 e5                	mov    %esp,%ebp                      
  10f0bf:	57                   	push   %edi                           
  10f0c0:	56                   	push   %esi                           
  10f0c1:	53                   	push   %ebx                           
  10f0c2:	83 ec 2c             	sub    $0x2c,%esp                     
  10f0c5:	8b 75 0c             	mov    0xc(%ebp),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10f0c8:	a1 8c fa 12 00       	mov    0x12fa8c,%eax                  
  10f0cd:	40                   	inc    %eax                           
  10f0ce:	a3 8c fa 12 00       	mov    %eax,0x12fa8c                  
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  Objects_Locations               location;                           
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
  10f0d3:	89 f0                	mov    %esi,%eax                      
  10f0d5:	25 00 02 00 00       	and    $0x200,%eax                    
  10f0da:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10f0dd:	0f 85 c9 00 00 00    	jne    10f1ac <mq_open+0xf0>          
  /* struct mq_attr  attr */                                          
)                                                                     
{                                                                     
  va_list                         arg;                                
  mode_t                          mode;                               
  struct mq_attr                 *attr = NULL;                        
  10f0e3:	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 );       
  10f0ea:	83 ec 0c             	sub    $0xc,%esp                      
  10f0ed:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f0f2:	e8 a5 2b 00 00       	call   111c9c <_Objects_Allocate>     
  10f0f7:	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 ) {                                                 
  10f0f9:	83 c4 10             	add    $0x10,%esp                     
  10f0fc:	85 c0                	test   %eax,%eax                      
  10f0fe:	0f 84 b4 00 00 00    	je     10f1b8 <mq_open+0xfc>          
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
  the_mq_fd->oflag = oflag;                                           
  10f104:	89 70 14             	mov    %esi,0x14(%eax)                
                                                                      
  status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id );       
  10f107:	83 ec 08             	sub    $0x8,%esp                      
  10f10a:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10f10d:	50                   	push   %eax                           
  10f10e:	ff 75 08             	pushl  0x8(%ebp)                      
  10f111:	e8 ba 6a 00 00       	call   115bd0 <_POSIX_Message_queue_Name_to_id>
  10f116:	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 ) {                                                     
  10f118:	83 c4 10             	add    $0x10,%esp                     
  10f11b:	85 c0                	test   %eax,%eax                      
  10f11d:	75 59                	jne    10f178 <mq_open+0xbc>          
                                                                      
  } else {                /* name -> ID translation succeeded */      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
  10f11f:	81 e6 00 0a 00 00    	and    $0xa00,%esi                    
  10f125:	81 fe 00 0a 00 00    	cmp    $0xa00,%esi                    
  10f12b:	0f 84 a7 00 00 00    	je     10f1d8 <mq_open+0x11c>         
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control *)                              
    _Objects_Get( &_POSIX_Message_queue_Information, id, location );  
  10f131:	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 );        
  10f132:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10f135:	50                   	push   %eax                           
  10f136:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10f139:	68 20 fe 12 00       	push   $0x12fe20                      
  10f13e:	e8 0d 30 00 00       	call   112150 <_Objects_Get>          
  10f143:	89 45 e0             	mov    %eax,-0x20(%ebp)               
    the_mq->open_count += 1;                                          
  10f146:	ff 40 18             	incl   0x18(%eax)                     
    the_mq_fd->Queue = the_mq;                                        
  10f149:	89 43 10             	mov    %eax,0x10(%ebx)                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10f14c:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10f150:	a1 dc ff 12 00       	mov    0x12ffdc,%eax                  
  10f155:	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;                                   
  10f158:	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();                                        
  10f15f:	e8 7c 3b 00 00       	call   112ce0 <_Thread_Enable_dispatch>
    _Thread_Enable_dispatch();                                        
  10f164:	e8 77 3b 00 00       	call   112ce0 <_Thread_Enable_dispatch>
    return (mqd_t)the_mq_fd->Object.id;                               
  10f169:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10f16c:	83 c4 10             	add    $0x10,%esp                     
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10f16f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10f172:	5b                   	pop    %ebx                           
  10f173:	5e                   	pop    %esi                           
  10f174:	5f                   	pop    %edi                           
  10f175:	c9                   	leave                                 
  10f176:	c3                   	ret                                   
  10f177:	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) ) ) {               
  10f178:	83 f8 02             	cmp    $0x2,%eax                      
  10f17b:	0f 84 87 00 00 00    	je     10f208 <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 );
  10f181:	83 ec 08             	sub    $0x8,%esp                      
  10f184:	53                   	push   %ebx                           
  10f185:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f18a:	e8 81 2e 00 00       	call   112010 <_Objects_Free>         
      _POSIX_Message_queue_Free_fd( the_mq_fd );                      
      _Thread_Enable_dispatch();                                      
  10f18f:	e8 4c 3b 00 00       	call   112ce0 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( status, mqd_t );     
  10f194:	e8 83 9f 00 00       	call   11911c <__errno>               
  10f199:	89 38                	mov    %edi,(%eax)                    
  10f19b:	83 c4 10             	add    $0x10,%esp                     
  10f19e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10f1a3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10f1a6:	5b                   	pop    %ebx                           
  10f1a7:	5e                   	pop    %esi                           
  10f1a8:	5f                   	pop    %edi                           
  10f1a9:	c9                   	leave                                 
  10f1aa:	c3                   	ret                                   
  10f1ab:	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 * );        
  10f1ac:	8b 45 14             	mov    0x14(%ebp),%eax                
  10f1af:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  10f1b2:	e9 33 ff ff ff       	jmp    10f0ea <mq_open+0x2e>          
  10f1b7:	90                   	nop                                   
    va_end(arg);                                                      
  }                                                                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Allocate_fd();                     
  if ( !the_mq_fd ) {                                                 
    _Thread_Enable_dispatch();                                        
  10f1b8:	e8 23 3b 00 00       	call   112ce0 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  10f1bd:	e8 5a 9f 00 00       	call   11911c <__errno>               
  10f1c2:	c7 00 17 00 00 00    	movl   $0x17,(%eax)                   
  10f1c8:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10f1cd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10f1d0:	5b                   	pop    %ebx                           
  10f1d1:	5e                   	pop    %esi                           
  10f1d2:	5f                   	pop    %edi                           
  10f1d3:	c9                   	leave                                 
  10f1d4:	c3                   	ret                                   
  10f1d5:	8d 76 00             	lea    0x0(%esi),%esi                 
  10f1d8:	83 ec 08             	sub    $0x8,%esp                      
  10f1db:	53                   	push   %ebx                           
  10f1dc:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f1e1:	e8 2a 2e 00 00       	call   112010 <_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();                                      
  10f1e6:	e8 f5 3a 00 00       	call   112ce0 <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t );     
  10f1eb:	e8 2c 9f 00 00       	call   11911c <__errno>               
  10f1f0:	c7 00 11 00 00 00    	movl   $0x11,(%eax)                   
  10f1f6:	83 c4 10             	add    $0x10,%esp                     
  10f1f9:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
  10f1fe:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10f201:	5b                   	pop    %ebx                           
  10f202:	5e                   	pop    %esi                           
  10f203:	5f                   	pop    %edi                           
  10f204:	c9                   	leave                                 
  10f205:	c3                   	ret                                   
  10f206:	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) ) ) {               
  10f208:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  10f20b:	85 d2                	test   %edx,%edx                      
  10f20d:	0f 84 6e ff ff ff    	je     10f181 <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(                       
  10f213:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10f216:	50                   	push   %eax                           
  10f217:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10f21a:	6a 01                	push   $0x1                           
  10f21c:	ff 75 08             	pushl  0x8(%ebp)                      
  10f21f:	e8 24 68 00 00       	call   115a48 <_POSIX_Message_queue_Create_support>
  );                                                                  
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
  if ( status == -1 ) {                                               
  10f224:	83 c4 10             	add    $0x10,%esp                     
  10f227:	40                   	inc    %eax                           
  10f228:	74 26                	je     10f250 <mq_open+0x194>         
    _POSIX_Message_queue_Free_fd( the_mq_fd );                        
    _Thread_Enable_dispatch();                                        
    return (mqd_t) -1;                                                
  }                                                                   
                                                                      
  the_mq_fd->Queue = the_mq;                                          
  10f22a:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10f22d:	89 43 10             	mov    %eax,0x10(%ebx)                
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10f230:	0f b7 53 08          	movzwl 0x8(%ebx),%edx                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10f234:	a1 dc ff 12 00       	mov    0x12ffdc,%eax                  
  10f239:	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;                                   
  10f23c:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
    &_POSIX_Message_queue_Information_fds,                            
    &the_mq_fd->Object,                                               
    NULL                                                              
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
  10f243:	e8 98 3a 00 00       	call   112ce0 <_Thread_Enable_dispatch>
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
  10f248:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10f24b:	e9 1f ff ff ff       	jmp    10f16f <mq_open+0xb3>          
  10f250:	83 ec 08             	sub    $0x8,%esp                      
  10f253:	53                   	push   %ebx                           
  10f254:	68 c0 ff 12 00       	push   $0x12ffc0                      
  10f259:	e8 b2 2d 00 00       	call   112010 <_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();                                        
  10f25e:	e8 7d 3a 00 00       	call   112ce0 <_Thread_Enable_dispatch>
    return (mqd_t) -1;                                                
  10f263:	83 c4 10             	add    $0x10,%esp                     
  10f266:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10f26b:	e9 ff fe ff ff       	jmp    10f16f <mq_open+0xb3>          
                                                                      

001200c4 <nanosleep>: int nanosleep( const struct timespec *rqtp, struct timespec *rmtp ) {
  1200c4:	55                   	push   %ebp                           
  1200c5:	89 e5                	mov    %esp,%ebp                      
  1200c7:	56                   	push   %esi                           
  1200c8:	53                   	push   %ebx                           
  1200c9:	8b 75 08             	mov    0x8(%ebp),%esi                 
  1200cc:	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 ) )                                  
  1200cf:	83 ec 0c             	sub    $0xc,%esp                      
  1200d2:	56                   	push   %esi                           
  1200d3:	e8 80 01 00 00       	call   120258 <_Timespec_Is_valid>    
  1200d8:	83 c4 10             	add    $0x10,%esp                     
  1200db:	84 c0                	test   %al,%al                        
  1200dd:	0f 84 e1 00 00 00    	je     1201c4 <nanosleep+0x100>       <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  ticks = _Timespec_To_ticks( rqtp );                                 
  1200e3:	83 ec 0c             	sub    $0xc,%esp                      
  1200e6:	56                   	push   %esi                           
  1200e7:	e8 e8 1f ff ff       	call   1120d4 <_Timespec_To_ticks>    
  1200ec:	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 ) {                                                     
  1200ee:	83 c4 10             	add    $0x10,%esp                     
  1200f1:	85 c0                	test   %eax,%eax                      
  1200f3:	75 37                	jne    12012c <nanosleep+0x68>        
  1200f5:	a1 2c 93 12 00       	mov    0x12932c,%eax                  
  1200fa:	40                   	inc    %eax                           
  1200fb:	a3 2c 93 12 00       	mov    %eax,0x12932c                  
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
  120100:	ff 15 cc 4a 12 00    	call   *0x124acc                      
    _Thread_Disable_dispatch();                                       
      _Scheduler_Yield();                                             
    _Thread_Enable_dispatch();                                        
  120106:	e8 a5 d7 fe ff       	call   10d8b0 <_Thread_Enable_dispatch>
    if ( rmtp ) {                                                     
  12010b:	85 db                	test   %ebx,%ebx                      
  12010d:	0f 84 93 00 00 00    	je     1201a6 <nanosleep+0xe2>        <== NEVER TAKEN
       rmtp->tv_sec = 0;                                              
  120113:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
       rmtp->tv_nsec = 0;                                             
  120119:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)                 
    }                                                                 
    return 0;                                                         
  120120:	31 c0                	xor    %eax,%eax                      
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
  120122:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  120125:	5b                   	pop    %ebx                           
  120126:	5e                   	pop    %esi                           
  120127:	c9                   	leave                                 
  120128:	c3                   	ret                                   
  120129:	8d 76 00             	lea    0x0(%esi),%esi                 
  12012c:	a1 2c 93 12 00       	mov    0x12932c,%eax                  
  120131:	40                   	inc    %eax                           
  120132:	a3 2c 93 12 00       	mov    %eax,0x12932c                  
                                                                      
  /*                                                                  
   *  Block for the desired amount of time                            
   */                                                                 
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
  120137:	83 ec 08             	sub    $0x8,%esp                      
  12013a:	68 08 00 00 10       	push   $0x10000008                    
  12013f:	ff 35 d8 98 12 00    	pushl  0x1298d8                       
  120145:	e8 8a df fe ff       	call   10e0d4 <_Thread_Set_state>     
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
  12014a:	8b 15 d8 98 12 00    	mov    0x1298d8,%edx                  
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
      _Thread_Executing,                                              
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
  120150:	8b 42 08             	mov    0x8(%edx),%eax                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  120153:	c7 42 50 00 00 00 00 	movl   $0x0,0x50(%edx)                
  the_watchdog->routine   = routine;                                  
  12015a:	c7 42 64 fc d6 10 00 	movl   $0x10d6fc,0x64(%edx)           
  the_watchdog->id        = id;                                       
  120161:	89 42 68             	mov    %eax,0x68(%edx)                
  the_watchdog->user_data = user_data;                                
  120164:	c7 42 6c 00 00 00 00 	movl   $0x0,0x6c(%edx)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  12016b:	89 72 54             	mov    %esi,0x54(%edx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  12016e:	58                   	pop    %eax                           
  12016f:	59                   	pop    %ecx                           
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );       
  120170:	83 c2 48             	add    $0x48,%edx                     
  120173:	52                   	push   %edx                           
  120174:	68 00 94 12 00       	push   $0x129400                      
  120179:	e8 a6 e4 fe ff       	call   10e624 <_Watchdog_Insert>      
  _Thread_Enable_dispatch();                                          
  12017e:	e8 2d d7 fe ff       	call   10d8b0 <_Thread_Enable_dispatch>
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
  120183:	83 c4 10             	add    $0x10,%esp                     
  120186:	85 db                	test   %ebx,%ebx                      
  120188:	74 1c                	je     1201a6 <nanosleep+0xe2>        
    ticks -=                                                          
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
  12018a:	a1 d8 98 12 00       	mov    0x1298d8,%eax                  
  12018f:	03 70 5c             	add    0x5c(%eax),%esi                
  _Thread_Enable_dispatch();                                          
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
    ticks -=                                                          
  120192:	2b 70 60             	sub    0x60(%eax),%esi                
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
                                                                      
    _Timespec_From_ticks( ticks, rmtp );                              
  120195:	83 ec 08             	sub    $0x8,%esp                      
  120198:	53                   	push   %ebx                           
  120199:	56                   	push   %esi                           
  12019a:	e8 71 00 00 00       	call   120210 <_Timespec_From_ticks>  
     */                                                               
    #if defined(RTEMS_POSIX_API)                                      
        /*                                                            
         *  If there is time remaining, then we were interrupted by a signal.
         */                                                           
        if ( ticks )                                                  
  12019f:	83 c4 10             	add    $0x10,%esp                     
  1201a2:	85 f6                	test   %esi,%esi                      
  1201a4:	75 09                	jne    1201af <nanosleep+0xeb>        
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
  1201a6:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1201a8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1201ab:	5b                   	pop    %ebx                           
  1201ac:	5e                   	pop    %esi                           
  1201ad:	c9                   	leave                                 
  1201ae:	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 );              
  1201af:	e8 dc 3d ff ff       	call   113f90 <__errno>               
  1201b4:	c7 00 04 00 00 00    	movl   $0x4,(%eax)                    
  1201ba:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  1201bf:	e9 5e ff ff ff       	jmp    120122 <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 );                   
  1201c4:	e8 c7 3d ff ff       	call   113f90 <__errno>               
  1201c9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  1201cf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  1201d4:	e9 49 ff ff ff       	jmp    120122 <nanosleep+0x5e>        
                                                                      

0010fee8 <pthread_attr_destroy>: #include <rtems/system.h> int pthread_attr_destroy( pthread_attr_t *attr ) {
  10fee8:	55                   	push   %ebp                           
  10fee9:	89 e5                	mov    %esp,%ebp                      
  10feeb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  10feee:	85 c0                	test   %eax,%eax                      
  10fef0:	74 12                	je     10ff04 <pthread_attr_destroy+0x1c>
  10fef2:	8b 10                	mov    (%eax),%edx                    
  10fef4:	85 d2                	test   %edx,%edx                      
  10fef6:	74 0c                	je     10ff04 <pthread_attr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10fef8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10fefe:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ff00:	c9                   	leave                                 
  10ff01:	c3                   	ret                                   
  10ff02:	66 90                	xchg   %ax,%ax                        
int pthread_attr_destroy(                                             
  pthread_attr_t  *attr                                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  10ff04:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10ff09:	c9                   	leave                                 
  10ff0a:	c3                   	ret                                   
                                                                      

0010ffe4 <pthread_attr_getscope>: int pthread_attr_getscope( const pthread_attr_t *attr, int *contentionscope ) {
  10ffe4:	55                   	push   %ebp                           
  10ffe5:	89 e5                	mov    %esp,%ebp                      
  10ffe7:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10ffea:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized || !contentionscope )           
  10ffed:	85 c0                	test   %eax,%eax                      
  10ffef:	74 13                	je     110004 <pthread_attr_getscope+0x20><== NEVER TAKEN
  10fff1:	8b 08                	mov    (%eax),%ecx                    
  10fff3:	85 c9                	test   %ecx,%ecx                      
  10fff5:	74 0d                	je     110004 <pthread_attr_getscope+0x20><== NEVER TAKEN
  10fff7:	85 d2                	test   %edx,%edx                      
  10fff9:	74 09                	je     110004 <pthread_attr_getscope+0x20><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *contentionscope = attr->contentionscope;                           
  10fffb:	8b 40 0c             	mov    0xc(%eax),%eax                 
  10fffe:	89 02                	mov    %eax,(%edx)                    
  return 0;                                                           
  110000:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110002:	c9                   	leave                                 
  110003:	c3                   	ret                                   
  const pthread_attr_t  *attr,                                        
  int                   *contentionscope                              
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !contentionscope )           
    return EINVAL;                                                    
  110004:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *contentionscope = attr->contentionscope;                           
  return 0;                                                           
}                                                                     
  110009:	c9                   	leave                                 
  11000a:	c3                   	ret                                   
                                                                      

00110034 <pthread_attr_getstack>: int pthread_attr_getstack( const pthread_attr_t *attr, void **stackaddr, size_t *stacksize ) {
  110034:	55                   	push   %ebp                           
  110035:	89 e5                	mov    %esp,%ebp                      
  110037:	53                   	push   %ebx                           
  110038:	8b 45 08             	mov    0x8(%ebp),%eax                 
  11003b:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  11003e:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
  110041:	85 c0                	test   %eax,%eax                      
  110043:	74 1f                	je     110064 <pthread_attr_getstack+0x30>
  110045:	8b 18                	mov    (%eax),%ebx                    
  110047:	85 db                	test   %ebx,%ebx                      
  110049:	74 19                	je     110064 <pthread_attr_getstack+0x30>
  11004b:	85 d2                	test   %edx,%edx                      
  11004d:	74 15                	je     110064 <pthread_attr_getstack+0x30>
  11004f:	85 c9                	test   %ecx,%ecx                      
  110051:	74 11                	je     110064 <pthread_attr_getstack+0x30>
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
  110053:	8b 58 04             	mov    0x4(%eax),%ebx                 
  110056:	89 1a                	mov    %ebx,(%edx)                    
  *stacksize = attr->stacksize;                                       
  110058:	8b 40 08             	mov    0x8(%eax),%eax                 
  11005b:	89 01                	mov    %eax,(%ecx)                    
  return 0;                                                           
  11005d:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11005f:	5b                   	pop    %ebx                           
  110060:	c9                   	leave                                 
  110061:	c3                   	ret                                   
  110062:	66 90                	xchg   %ax,%ax                        
  void                  **stackaddr,                                  
  size_t                 *stacksize                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
    return EINVAL;                                                    
  110064:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *stackaddr = attr->stackaddr;                                       
  *stacksize = attr->stacksize;                                       
  return 0;                                                           
}                                                                     
  110069:	5b                   	pop    %ebx                           
  11006a:	c9                   	leave                                 
  11006b:	c3                   	ret                                   
                                                                      

001100e8 <pthread_attr_setguardsize>: int pthread_attr_setguardsize( pthread_attr_t *attr, size_t guardsize ) {
  1100e8:	55                   	push   %ebp                           
  1100e9:	89 e5                	mov    %esp,%ebp                      
  1100eb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  1100ee:	85 c0                	test   %eax,%eax                      
  1100f0:	74 12                	je     110104 <pthread_attr_setguardsize+0x1c>
  1100f2:	8b 10                	mov    (%eax),%edx                    
  1100f4:	85 d2                	test   %edx,%edx                      
  1100f6:	74 0c                	je     110104 <pthread_attr_setguardsize+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->guardsize = guardsize;                                        
  1100f8:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  1100fb:	89 50 34             	mov    %edx,0x34(%eax)                
  return 0;                                                           
  1100fe:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110100:	c9                   	leave                                 
  110101:	c3                   	ret                                   
  110102:	66 90                	xchg   %ax,%ax                        
  pthread_attr_t  *attr,                                              
  size_t           guardsize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110104:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->guardsize = guardsize;                                        
  return 0;                                                           
}                                                                     
  110109:	c9                   	leave                                 
  11010a:	c3                   	ret                                   
                                                                      

001110dc <pthread_attr_setinheritsched>: int pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched ) {
  1110dc:	55                   	push   %ebp                           
  1110dd:	89 e5                	mov    %esp,%ebp                      
  1110df:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1110e2:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  1110e5:	85 c0                	test   %eax,%eax                      
  1110e7:	74 1f                	je     111108 <pthread_attr_setinheritsched+0x2c>
  1110e9:	8b 08                	mov    (%eax),%ecx                    
  1110eb:	85 c9                	test   %ecx,%ecx                      
  1110ed:	74 19                	je     111108 <pthread_attr_setinheritsched+0x2c>
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
  1110ef:	8d 4a ff             	lea    -0x1(%edx),%ecx                
  1110f2:	83 f9 01             	cmp    $0x1,%ecx                      
  1110f5:	76 09                	jbe    111100 <pthread_attr_setinheritsched+0x24>
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  1110f7:	b8 86 00 00 00       	mov    $0x86,%eax                     
  }                                                                   
}                                                                     
  1110fc:	c9                   	leave                                 
  1110fd:	c3                   	ret                                   
  1110fe:	66 90                	xchg   %ax,%ax                        
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
    case PTHREAD_INHERIT_SCHED:                                       
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
  111100:	89 50 10             	mov    %edx,0x10(%eax)                
      return 0;                                                       
  111103:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  111105:	c9                   	leave                                 
  111106:	c3                   	ret                                   
  111107:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  int              inheritsched                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  111108:	b8 16 00 00 00       	mov    $0x16,%eax                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  11110d:	c9                   	leave                                 
  11110e:	c3                   	ret                                   
                                                                      

00110140 <pthread_attr_setschedparam>: int pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param ) {
  110140:	55                   	push   %ebp                           
  110141:	89 e5                	mov    %esp,%ebp                      
  110143:	57                   	push   %edi                           
  110144:	56                   	push   %esi                           
  110145:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  110148:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !attr || !attr->is_initialized || !param )                     
  11014b:	85 ff                	test   %edi,%edi                      
  11014d:	74 1d                	je     11016c <pthread_attr_setschedparam+0x2c>
  11014f:	8b 07                	mov    (%edi),%eax                    
  110151:	85 c0                	test   %eax,%eax                      
  110153:	74 17                	je     11016c <pthread_attr_setschedparam+0x2c>
  110155:	85 f6                	test   %esi,%esi                      
  110157:	74 13                	je     11016c <pthread_attr_setschedparam+0x2c>
    return EINVAL;                                                    
                                                                      
  attr->schedparam = *param;                                          
  110159:	83 c7 18             	add    $0x18,%edi                     
  11015c:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  110161:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  return 0;                                                           
  110163:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110165:	5e                   	pop    %esi                           
  110166:	5f                   	pop    %edi                           
  110167:	c9                   	leave                                 
  110168:	c3                   	ret                                   
  110169:	8d 76 00             	lea    0x0(%esi),%esi                 
  pthread_attr_t           *attr,                                     
  const struct sched_param *param                                     
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !param )                     
    return EINVAL;                                                    
  11016c:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->schedparam = *param;                                          
  return 0;                                                           
}                                                                     
  110171:	5e                   	pop    %esi                           
  110172:	5f                   	pop    %edi                           
  110173:	c9                   	leave                                 
  110174:	c3                   	ret                                   
                                                                      

00110178 <pthread_attr_setschedpolicy>: int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) {
  110178:	55                   	push   %ebp                           
  110179:	89 e5                	mov    %esp,%ebp                      
  11017b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  11017e:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  110181:	85 c0                	test   %eax,%eax                      
  110183:	74 23                	je     1101a8 <pthread_attr_setschedpolicy+0x30>
  110185:	8b 08                	mov    (%eax),%ecx                    
  110187:	85 c9                	test   %ecx,%ecx                      
  110189:	74 1d                	je     1101a8 <pthread_attr_setschedpolicy+0x30>
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
  11018b:	85 d2                	test   %edx,%edx                      
  11018d:	78 0a                	js     110199 <pthread_attr_setschedpolicy+0x21>
  11018f:	83 fa 02             	cmp    $0x2,%edx                      
  110192:	7e 0c                	jle    1101a0 <pthread_attr_setschedpolicy+0x28>
  110194:	83 fa 04             	cmp    $0x4,%edx                      
  110197:	74 07                	je     1101a0 <pthread_attr_setschedpolicy+0x28><== ALWAYS TAKEN
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  110199:	b8 86 00 00 00       	mov    $0x86,%eax                     
  }                                                                   
}                                                                     
  11019e:	c9                   	leave                                 
  11019f:	c3                   	ret                                   
  switch ( policy ) {                                                 
    case SCHED_OTHER:                                                 
    case SCHED_FIFO:                                                  
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
  1101a0:	89 50 14             	mov    %edx,0x14(%eax)                
      return 0;                                                       
  1101a3:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  1101a5:	c9                   	leave                                 
  1101a6:	c3                   	ret                                   
  1101a7:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  int              policy                                             
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  1101a8:	b8 16 00 00 00       	mov    $0x16,%eax                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
  }                                                                   
}                                                                     
  1101ad:	c9                   	leave                                 
  1101ae:	c3                   	ret                                   
                                                                      

001101b0 <pthread_attr_setscope>: int pthread_attr_setscope( pthread_attr_t *attr, int contentionscope ) {
  1101b0:	55                   	push   %ebp                           
  1101b1:	89 e5                	mov    %esp,%ebp                      
  1101b3:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1101b6:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  1101b9:	85 c0                	test   %eax,%eax                      
  1101bb:	74 1a                	je     1101d7 <pthread_attr_setscope+0x27>
  1101bd:	8b 08                	mov    (%eax),%ecx                    
  1101bf:	85 c9                	test   %ecx,%ecx                      
  1101c1:	74 14                	je     1101d7 <pthread_attr_setscope+0x27>
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
  1101c3:	85 d2                	test   %edx,%edx                      
  1101c5:	75 0d                	jne    1101d4 <pthread_attr_setscope+0x24>
    case PTHREAD_SCOPE_PROCESS:                                       
      attr->contentionscope = contentionscope;                        
  1101c7:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
      return 0;                                                       
  1101ce:	31 c0                	xor    %eax,%eax                      
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  1101d0:	c9                   	leave                                 
  1101d1:	c3                   	ret                                   
  1101d2:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
  1101d4:	4a                   	dec    %edx                           
  1101d5:	74 09                	je     1101e0 <pthread_attr_setscope+0x30>
                                                                      
    case PTHREAD_SCOPE_SYSTEM:                                        
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
  1101d7:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  1101dc:	c9                   	leave                                 
  1101dd:	c3                   	ret                                   
  1101de:	66 90                	xchg   %ax,%ax                        
    case PTHREAD_SCOPE_PROCESS:                                       
      attr->contentionscope = contentionscope;                        
      return 0;                                                       
                                                                      
    case PTHREAD_SCOPE_SYSTEM:                                        
      return ENOTSUP;                                                 
  1101e0:	b8 86 00 00 00       	mov    $0x86,%eax                     
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  1101e5:	c9                   	leave                                 
  1101e6:	c3                   	ret                                   
                                                                      

0011020c <pthread_attr_setstack>: int pthread_attr_setstack( pthread_attr_t *attr, void *stackaddr, size_t stacksize ) {
  11020c:	55                   	push   %ebp                           
  11020d:	89 e5                	mov    %esp,%ebp                      
  11020f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  110212:	8b 55 10             	mov    0x10(%ebp),%edx                
  if ( !attr || !attr->is_initialized )                               
  110215:	85 c0                	test   %eax,%eax                      
  110217:	74 27                	je     110240 <pthread_attr_setstack+0x34>
  110219:	8b 08                	mov    (%eax),%ecx                    
  11021b:	85 c9                	test   %ecx,%ecx                      
  11021d:	74 21                	je     110240 <pthread_attr_setstack+0x34>
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
  11021f:	8b 0d 38 de 12 00    	mov    0x12de38,%ecx                  
  110225:	d1 e1                	shl    %ecx                           
  110227:	39 d1                	cmp    %edx,%ecx                      
  110229:	77 0d                	ja     110238 <pthread_attr_setstack+0x2c>
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  11022b:	89 50 08             	mov    %edx,0x8(%eax)                 
                                                                      
  attr->stackaddr = stackaddr;                                        
  11022e:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  110231:	89 50 04             	mov    %edx,0x4(%eax)                 
  return 0;                                                           
  110234:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110236:	c9                   	leave                                 
  110237:	c3                   	ret                                   
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  110238:	89 48 08             	mov    %ecx,0x8(%eax)                 
  11023b:	eb f1                	jmp    11022e <pthread_attr_setstack+0x22>
  11023d:	8d 76 00             	lea    0x0(%esi),%esi                 
  void            *stackaddr,                                         
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110240:	b8 16 00 00 00       	mov    $0x16,%eax                     
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
}                                                                     
  110245:	c9                   	leave                                 
  110246:	c3                   	ret                                   
                                                                      

001101e8 <pthread_attr_setstackaddr>: int pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr ) {
  1101e8:	55                   	push   %ebp                           
  1101e9:	89 e5                	mov    %esp,%ebp                      
  1101eb:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  1101ee:	85 c0                	test   %eax,%eax                      
  1101f0:	74 12                	je     110204 <pthread_attr_setstackaddr+0x1c>
  1101f2:	8b 10                	mov    (%eax),%edx                    
  1101f4:	85 d2                	test   %edx,%edx                      
  1101f6:	74 0c                	je     110204 <pthread_attr_setstackaddr+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->stackaddr = stackaddr;                                        
  1101f8:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  1101fb:	89 50 04             	mov    %edx,0x4(%eax)                 
  return 0;                                                           
  1101fe:	31 c0                	xor    %eax,%eax                      
}                                                                     
  110200:	c9                   	leave                                 
  110201:	c3                   	ret                                   
  110202:	66 90                	xchg   %ax,%ax                        
  pthread_attr_t  *attr,                                              
  void            *stackaddr                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  110204:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
}                                                                     
  110209:	c9                   	leave                                 
  11020a:	c3                   	ret                                   
                                                                      

00111110 <pthread_attr_setstacksize>: int pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize ) {
  111110:	55                   	push   %ebp                           
  111111:	89 e5                	mov    %esp,%ebp                      
  111113:	8b 45 08             	mov    0x8(%ebp),%eax                 
  111116:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  111119:	85 c0                	test   %eax,%eax                      
  11111b:	74 23                	je     111140 <pthread_attr_setstacksize+0x30>
  11111d:	8b 08                	mov    (%eax),%ecx                    
  11111f:	85 c9                	test   %ecx,%ecx                      
  111121:	74 1d                	je     111140 <pthread_attr_setstacksize+0x30>
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
  111123:	8b 0d d8 47 12 00    	mov    0x1247d8,%ecx                  
  111129:	d1 e1                	shl    %ecx                           
  11112b:	39 d1                	cmp    %edx,%ecx                      
  11112d:	77 09                	ja     111138 <pthread_attr_setstacksize+0x28>
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  11112f:	89 50 08             	mov    %edx,0x8(%eax)                 
  return 0;                                                           
  111132:	31 c0                	xor    %eax,%eax                      
}                                                                     
  111134:	c9                   	leave                                 
  111135:	c3                   	ret                                   
  111136:	66 90                	xchg   %ax,%ax                        
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  111138:	89 48 08             	mov    %ecx,0x8(%eax)                 
  else                                                                
    attr->stacksize = stacksize;                                      
  return 0;                                                           
  11113b:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11113d:	c9                   	leave                                 
  11113e:	c3                   	ret                                   
  11113f:	90                   	nop                                   
  pthread_attr_t  *attr,                                              
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  111140:	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;                                                           
}                                                                     
  111145:	c9                   	leave                                 
  111146:	c3                   	ret                                   
                                                                      

0010af34 <pthread_barrier_init>: int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) {
  10af34:	55                   	push   %ebp                           
  10af35:	89 e5                	mov    %esp,%ebp                      
  10af37:	57                   	push   %edi                           
  10af38:	56                   	push   %esi                           
  10af39:	53                   	push   %ebx                           
  10af3a:	83 ec 2c             	sub    $0x2c,%esp                     
  10af3d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10af40:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10af43:	8b 75 10             	mov    0x10(%ebp),%esi                
  const pthread_barrierattr_t   *the_attr;                            
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !barrier )                                                     
  10af46:	85 db                	test   %ebx,%ebx                      
  10af48:	0f 84 82 00 00 00    	je     10afd0 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  if ( count == 0 )                                                   
  10af4e:	85 f6                	test   %esi,%esi                      
  10af50:	74 7e                	je     10afd0 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
  10af52:	85 ff                	test   %edi,%edi                      
  10af54:	0f 84 92 00 00 00    	je     10afec <pthread_barrier_init+0xb8>
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
  10af5a:	8b 17                	mov    (%edi),%edx                    
  10af5c:	85 d2                	test   %edx,%edx                      
  10af5e:	74 70                	je     10afd0 <pthread_barrier_init+0x9c>
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
  10af60:	8b 47 04             	mov    0x4(%edi),%eax                 
  10af63:	85 c0                	test   %eax,%eax                      
  10af65:	75 69                	jne    10afd0 <pthread_barrier_init+0x9c><== NEVER TAKEN
  }                                                                   
                                                                      
  /*                                                                  
   * Convert from POSIX attributes to Core Barrier attributes         
   */                                                                 
  the_attributes.discipline    = CORE_BARRIER_AUTOMATIC_RELEASE;      
  10af67:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
  the_attributes.maximum_count = count;                               
  10af6e:	89 75 e4             	mov    %esi,-0x1c(%ebp)               
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10af71:	a1 cc 8e 12 00       	mov    0x128ecc,%eax                  
  10af76:	40                   	inc    %eax                           
  10af77:	a3 cc 8e 12 00       	mov    %eax,0x128ecc                  
 *  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 );                 
  10af7c:	83 ec 0c             	sub    $0xc,%esp                      
  10af7f:	68 e0 92 12 00       	push   $0x1292e0                      
  10af84:	e8 0f 1f 00 00       	call   10ce98 <_Objects_Allocate>     
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
  10af89:	83 c4 10             	add    $0x10,%esp                     
  10af8c:	85 c0                	test   %eax,%eax                      
  10af8e:	74 50                	je     10afe0 <pthread_barrier_init+0xac>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
  10af90:	83 ec 08             	sub    $0x8,%esp                      
  10af93:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  10af96:	52                   	push   %edx                           
  10af97:	8d 50 10             	lea    0x10(%eax),%edx                
  10af9a:	52                   	push   %edx                           
  10af9b:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10af9e:	e8 29 16 00 00       	call   10c5cc <_CORE_barrier_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10afa3:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10afa6:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10afa9:	0f b7 f2             	movzwl %dx,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10afac:	8b 0d fc 92 12 00    	mov    0x1292fc,%ecx                  
  10afb2:	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;                                   
  10afb5:	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;                                  
  10afbc:	89 13                	mov    %edx,(%ebx)                    
  _Thread_Enable_dispatch();                                          
  10afbe:	e8 99 2e 00 00       	call   10de5c <_Thread_Enable_dispatch>
  return 0;                                                           
  10afc3:	83 c4 10             	add    $0x10,%esp                     
  10afc6:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10afc8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10afcb:	5b                   	pop    %ebx                           
  10afcc:	5e                   	pop    %esi                           
  10afcd:	5f                   	pop    %edi                           
  10afce:	c9                   	leave                                 
  10afcf:	c3                   	ret                                   
  switch ( the_attr->process_shared ) {                               
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
  10afd0:	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;                                                           
}                                                                     
  10afd5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10afd8:	5b                   	pop    %ebx                           
  10afd9:	5e                   	pop    %esi                           
  10afda:	5f                   	pop    %edi                           
  10afdb:	c9                   	leave                                 
  10afdc:	c3                   	ret                                   
  10afdd:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
  10afe0:	e8 77 2e 00 00       	call   10de5c <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10afe5:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10afea:	eb e9                	jmp    10afd5 <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 );                      
  10afec:	83 ec 0c             	sub    $0xc,%esp                      
  10afef:	8d 7d d8             	lea    -0x28(%ebp),%edi               
  10aff2:	57                   	push   %edi                           
  10aff3:	e8 7c fe ff ff       	call   10ae74 <pthread_barrierattr_init>
  10aff8:	83 c4 10             	add    $0x10,%esp                     
  10affb:	e9 5a ff ff ff       	jmp    10af5a <pthread_barrier_init+0x26>
                                                                      

0010b000 <pthread_barrier_wait>: */ int pthread_barrier_wait( pthread_barrier_t *barrier ) {
  10b000:	55                   	push   %ebp                           
  10b001:	89 e5                	mov    %esp,%ebp                      
  10b003:	83 ec 18             	sub    $0x18,%esp                     
  10b006:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_Barrier_Control   *the_barrier = NULL;                        
  Objects_Locations        location;                                  
                                                                      
  if ( !barrier )                                                     
  10b009:	85 c0                	test   %eax,%eax                      
  10b00b:	74 4f                	je     10b05c <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(                      
  10b00d:	51                   	push   %ecx                           
    return EINVAL;                                                    
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  10b00e:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10b011:	52                   	push   %edx                           
  10b012:	ff 30                	pushl  (%eax)                         
  10b014:	68 e0 92 12 00       	push   $0x1292e0                      
  10b019:	e8 2e 23 00 00       	call   10d34c <_Objects_Get>          
  switch ( location ) {                                               
  10b01e:	83 c4 10             	add    $0x10,%esp                     
  10b021:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b024:	85 d2                	test   %edx,%edx                      
  10b026:	75 34                	jne    10b05c <pthread_barrier_wait+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_barrier_Wait(                                             
  10b028:	83 ec 0c             	sub    $0xc,%esp                      
  10b02b:	6a 00                	push   $0x0                           
  10b02d:	6a 00                	push   $0x0                           
  10b02f:	6a 01                	push   $0x1                           
  10b031:	ff 70 08             	pushl  0x8(%eax)                      
  10b034:	83 c0 10             	add    $0x10,%eax                     
  10b037:	50                   	push   %eax                           
  10b038:	e8 c3 15 00 00       	call   10c600 <_CORE_barrier_Wait>    
        the_barrier->Object.id,                                       
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
  10b03d:	83 c4 20             	add    $0x20,%esp                     
  10b040:	e8 17 2e 00 00       	call   10de5c <_Thread_Enable_dispatch>
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
  10b045:	83 ec 0c             	sub    $0xc,%esp                      
                _Thread_Executing->Wait.return_code );                
  10b048:	a1 78 94 12 00       	mov    0x129478,%eax                  
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
  10b04d:	ff 70 34             	pushl  0x34(%eax)                     
  10b050:	e8 cf 5b 00 00       	call   110c24 <_POSIX_Barrier_Translate_core_barrier_return_code>
  10b055:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b058:	c9                   	leave                                 
  10b059:	c3                   	ret                                   
  10b05a:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b05c:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10b061:	c9                   	leave                                 
  10b062:	c3                   	ret                                   
                                                                      

0010ae2c <pthread_barrierattr_destroy>: */ int pthread_barrierattr_destroy( pthread_barrierattr_t *attr ) {
  10ae2c:	55                   	push   %ebp                           
  10ae2d:	89 e5                	mov    %esp,%ebp                      
  10ae2f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10ae32:	85 c0                	test   %eax,%eax                      
  10ae34:	74 12                	je     10ae48 <pthread_barrierattr_destroy+0x1c>
  10ae36:	8b 10                	mov    (%eax),%edx                    
  10ae38:	85 d2                	test   %edx,%edx                      
  10ae3a:	74 0c                	je     10ae48 <pthread_barrierattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10ae3c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10ae42:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ae44:	c9                   	leave                                 
  10ae45:	c3                   	ret                                   
  10ae46:	66 90                	xchg   %ax,%ax                        
int pthread_barrierattr_destroy(                                      
  pthread_barrierattr_t *attr                                         
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10ae48:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10ae4d:	c9                   	leave                                 
  10ae4e:	c3                   	ret                                   
                                                                      

0010a6dc <pthread_cancel>: */ int pthread_cancel( pthread_t thread ) {
  10a6dc:	55                   	push   %ebp                           
  10a6dd:	89 e5                	mov    %esp,%ebp                      
  10a6df:	83 ec 18             	sub    $0x18,%esp                     
                                                                      
  /*                                                                  
   *  Don't even think about deleting a resource from an ISR.         
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
  10a6e2:	8b 0d 14 90 12 00    	mov    0x129014,%ecx                  
  10a6e8:	85 c9                	test   %ecx,%ecx                      
  10a6ea:	74 08                	je     10a6f4 <pthread_cancel+0x18>   
    return EPROTO;                                                    
  10a6ec:	b8 47 00 00 00       	mov    $0x47,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10a6f1:	c9                   	leave                                 
  10a6f2:	c3                   	ret                                   
  10a6f3:	90                   	nop                                   
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10a6f4:	83 ec 08             	sub    $0x8,%esp                      
  10a6f7:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10a6fa:	50                   	push   %eax                           
  10a6fb:	ff 75 08             	pushl  0x8(%ebp)                      
  10a6fe:	e8 71 2a 00 00       	call   10d174 <_Thread_Get>           
  switch ( location ) {                                               
  10a703:	83 c4 10             	add    $0x10,%esp                     
  10a706:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10a709:	85 d2                	test   %edx,%edx                      
  10a70b:	75 23                	jne    10a730 <pthread_cancel+0x54>   
                                                                      
    case OBJECTS_LOCAL:                                               
      thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];
                                                                      
      thread_support->cancelation_requested = 1;                      
  10a70d:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
  10a713:	c7 82 e0 00 00 00 01 	movl   $0x1,0xe0(%edx)                
  10a71a:	00 00 00                                                    
                                                                      
      /* This enables dispatch implicitly */                          
      _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( the_thread );
  10a71d:	83 ec 0c             	sub    $0xc,%esp                      
  10a720:	50                   	push   %eax                           
  10a721:	e8 46 55 00 00       	call   10fc6c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
      return 0;                                                       
  10a726:	83 c4 10             	add    $0x10,%esp                     
  10a729:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10a72b:	c9                   	leave                                 
  10a72c:	c3                   	ret                                   
  10a72d:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10a730:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10a735:	c9                   	leave                                 
  10a736:	c3                   	ret                                   
                                                                      

0010a54c <pthread_cleanup_pop>: */ void pthread_cleanup_pop( int execute ) {
  10a54c:	55                   	push   %ebp                           
  10a54d:	89 e5                	mov    %esp,%ebp                      
  10a54f:	57                   	push   %edi                           
  10a550:	56                   	push   %esi                           
  10a551:	53                   	push   %ebx                           
  10a552:	83 ec 0c             	sub    $0xc,%esp                      
  10a555:	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 ];
  10a558:	a1 38 81 12 00       	mov    0x128138,%eax                  
  10a55d:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10a563:	8b 15 8c 7b 12 00    	mov    0x127b8c,%edx                  
  10a569:	42                   	inc    %edx                           
  10a56a:	89 15 8c 7b 12 00    	mov    %edx,0x127b8c                  
   * 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 );                                              
  10a570:	9c                   	pushf                                 
  10a571:	fa                   	cli                                   
  10a572:	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 );                            
  10a573:	8d 90 e8 00 00 00    	lea    0xe8(%eax),%edx                
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
  10a579:	39 90 e4 00 00 00    	cmp    %edx,0xe4(%eax)                
  10a57f:	74 47                	je     10a5c8 <pthread_cleanup_pop+0x7c>
      _Thread_Enable_dispatch();                                      
      _ISR_Enable( level );                                           
      return;                                                         
    }                                                                 
                                                                      
    handler = (POSIX_Cancel_Handler_control *)                        
  10a581:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  10a587:	8b 08                	mov    (%eax),%ecx                    
  previous       = the_node->previous;                                
  10a589:	8b 50 04             	mov    0x4(%eax),%edx                 
  next->previous = previous;                                          
  10a58c:	89 51 04             	mov    %edx,0x4(%ecx)                 
  previous->next = next;                                              
  10a58f:	89 0a                	mov    %ecx,(%edx)                    
        _Chain_Tail( handler_stack )->previous;                       
    _Chain_Extract_unprotected( &handler->Node );                     
                                                                      
  _ISR_Enable( level );                                               
  10a591:	53                   	push   %ebx                           
  10a592:	9d                   	popf                                  
  10a593:	8b 58 08             	mov    0x8(%eax),%ebx                 
  10a596:	8b 78 0c             	mov    0xc(%eax),%edi                 
                                                                      
  tmp_handler = *handler;                                             
                                                                      
  _Workspace_Free( handler );                                         
  10a599:	83 ec 0c             	sub    $0xc,%esp                      
  10a59c:	50                   	push   %eax                           
  10a59d:	e8 16 38 00 00       	call   10ddb8 <_Workspace_Free>       
                                                                      
  _Thread_Enable_dispatch();                                          
  10a5a2:	e8 19 28 00 00       	call   10cdc0 <_Thread_Enable_dispatch>
                                                                      
  if ( execute )                                                      
  10a5a7:	83 c4 10             	add    $0x10,%esp                     
  10a5aa:	85 f6                	test   %esi,%esi                      
  10a5ac:	75 0a                	jne    10a5b8 <pthread_cleanup_pop+0x6c>
    (*tmp_handler.routine)( tmp_handler.arg );                        
}                                                                     
  10a5ae:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a5b1:	5b                   	pop    %ebx                           
  10a5b2:	5e                   	pop    %esi                           
  10a5b3:	5f                   	pop    %edi                           
  10a5b4:	c9                   	leave                                 
  10a5b5:	c3                   	ret                                   
  10a5b6:	66 90                	xchg   %ax,%ax                        
  _Workspace_Free( handler );                                         
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
  10a5b8:	89 7d 08             	mov    %edi,0x8(%ebp)                 
  10a5bb:	89 d8                	mov    %ebx,%eax                      
}                                                                     
  10a5bd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a5c0:	5b                   	pop    %ebx                           
  10a5c1:	5e                   	pop    %esi                           
  10a5c2:	5f                   	pop    %edi                           
  10a5c3:	c9                   	leave                                 
  _Workspace_Free( handler );                                         
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
  10a5c4:	ff e0                	jmp    *%eax                          
  10a5c6:	66 90                	xchg   %ax,%ax                        
                                                                      
  _Thread_Disable_dispatch();                                         
  _ISR_Disable( level );                                              
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
      _Thread_Enable_dispatch();                                      
  10a5c8:	e8 f3 27 00 00       	call   10cdc0 <_Thread_Enable_dispatch>
      _ISR_Enable( level );                                           
  10a5cd:	53                   	push   %ebx                           
  10a5ce:	9d                   	popf                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( execute )                                                      
    (*tmp_handler.routine)( tmp_handler.arg );                        
}                                                                     
  10a5cf:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a5d2:	5b                   	pop    %ebx                           
  10a5d3:	5e                   	pop    %esi                           
  10a5d4:	5f                   	pop    %edi                           
  10a5d5:	c9                   	leave                                 
  10a5d6:	c3                   	ret                                   
                                                                      

0010a908 <pthread_cleanup_push>: void pthread_cleanup_push( void (*routine)( void * ), void *arg ) {
  10a908:	55                   	push   %ebp                           
  10a909:	89 e5                	mov    %esp,%ebp                      
  10a90b:	56                   	push   %esi                           
  10a90c:	53                   	push   %ebx                           
  10a90d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10a910:	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 )                                                     
  10a913:	85 db                	test   %ebx,%ebx                      
  10a915:	74 4d                	je     10a964 <pthread_cleanup_push+0x5c>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10a917:	a1 0c 92 12 00       	mov    0x12920c,%eax                  
  10a91c:	40                   	inc    %eax                           
  10a91d:	a3 0c 92 12 00       	mov    %eax,0x12920c                  
    return;                                                           
                                                                      
  _Thread_Disable_dispatch();                                         
  handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) );
  10a922:	83 ec 0c             	sub    $0xc,%esp                      
  10a925:	6a 10                	push   $0x10                          
  10a927:	e8 d8 3f 00 00       	call   10e904 <_Workspace_Allocate>   
                                                                      
  if ( handler ) {                                                    
  10a92c:	83 c4 10             	add    $0x10,%esp                     
  10a92f:	85 c0                	test   %eax,%eax                      
  10a931:	74 25                	je     10a958 <pthread_cleanup_push+0x50><== NEVER TAKEN
    thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10a933:	8b 15 b8 97 12 00    	mov    0x1297b8,%edx                  
                                                                      
    handler_stack = &thread_support->Cancellation_Handlers;           
  10a939:	8b 92 ec 00 00 00    	mov    0xec(%edx),%edx                
  10a93f:	81 c2 e4 00 00 00    	add    $0xe4,%edx                     
                                                                      
    handler->routine = routine;                                       
  10a945:	89 58 08             	mov    %ebx,0x8(%eax)                 
    handler->arg = arg;                                               
  10a948:	89 70 0c             	mov    %esi,0xc(%eax)                 
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
  10a94b:	83 ec 08             	sub    $0x8,%esp                      
  10a94e:	50                   	push   %eax                           
  10a94f:	52                   	push   %edx                           
  10a950:	e8 0b 17 00 00       	call   10c060 <_Chain_Append>         
  10a955:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  _Thread_Enable_dispatch();                                          
}                                                                     
  10a958:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10a95b:	5b                   	pop    %ebx                           
  10a95c:	5e                   	pop    %esi                           
  10a95d:	c9                   	leave                                 
    handler->routine = routine;                                       
    handler->arg = arg;                                               
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
  }                                                                   
  _Thread_Enable_dispatch();                                          
  10a95e:	e9 35 2f 00 00       	jmp    10d898 <_Thread_Enable_dispatch>
  10a963:	90                   	nop                                   
}                                                                     
  10a964:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10a967:	5b                   	pop    %ebx                           
  10a968:	5e                   	pop    %esi                           
  10a969:	c9                   	leave                                 
  10a96a:	c3                   	ret                                   
                                                                      

0010b5fc <pthread_cond_destroy>: */ int pthread_cond_destroy( pthread_cond_t *cond ) {
  10b5fc:	55                   	push   %ebp                           
  10b5fd:	89 e5                	mov    %esp,%ebp                      
  10b5ff:	53                   	push   %ebx                           
  10b600:	83 ec 1c             	sub    $0x1c,%esp                     
  POSIX_Condition_variables_Control *the_cond;                        
  Objects_Locations                  location;                        
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  10b603:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b606:	50                   	push   %eax                           
  10b607:	ff 75 08             	pushl  0x8(%ebp)                      
  10b60a:	e8 65 00 00 00       	call   10b674 <_POSIX_Condition_variables_Get>
  10b60f:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10b611:	83 c4 10             	add    $0x10,%esp                     
  10b614:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10b617:	85 c9                	test   %ecx,%ecx                      
  10b619:	75 25                	jne    10b640 <pthread_cond_destroy+0x44>
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
  10b61b:	83 ec 0c             	sub    $0xc,%esp                      
  10b61e:	8d 40 18             	lea    0x18(%eax),%eax                
  10b621:	50                   	push   %eax                           
  10b622:	e8 f1 3b 00 00       	call   10f218 <_Thread_queue_First>   
  10b627:	83 c4 10             	add    $0x10,%esp                     
  10b62a:	85 c0                	test   %eax,%eax                      
  10b62c:	74 1e                	je     10b64c <pthread_cond_destroy+0x50>
        _Thread_Enable_dispatch();                                    
  10b62e:	e8 01 35 00 00       	call   10eb34 <_Thread_Enable_dispatch>
        return EBUSY;                                                 
  10b633:	b8 10 00 00 00       	mov    $0x10,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10b638:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b63b:	c9                   	leave                                 
  10b63c:	c3                   	ret                                   
  10b63d:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10b640:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10b645:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b648:	c9                   	leave                                 
  10b649:	c3                   	ret                                   
  10b64a:	66 90                	xchg   %ax,%ax                        
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
        _Thread_Enable_dispatch();                                    
        return EBUSY;                                                 
      }                                                               
                                                                      
      _Objects_Close(                                                 
  10b64c:	83 ec 08             	sub    $0x8,%esp                      
  10b64f:	53                   	push   %ebx                           
  10b650:	68 80 a3 12 00       	push   $0x12a380                      
  10b655:	e8 92 25 00 00       	call   10dbec <_Objects_Close>        
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free (           
  POSIX_Condition_variables_Control *the_condition_variable           
)                                                                     
{                                                                     
  _Objects_Free(                                                      
  10b65a:	58                   	pop    %eax                           
  10b65b:	5a                   	pop    %edx                           
  10b65c:	53                   	push   %ebx                           
  10b65d:	68 80 a3 12 00       	push   $0x12a380                      
  10b662:	e8 7d 28 00 00       	call   10dee4 <_Objects_Free>         
        &_POSIX_Condition_variables_Information,                      
        &the_cond->Object                                             
      );                                                              
                                                                      
      _POSIX_Condition_variables_Free( the_cond );                    
      _Thread_Enable_dispatch();                                      
  10b667:	e8 c8 34 00 00       	call   10eb34 <_Thread_Enable_dispatch>
      return 0;                                                       
  10b66c:	83 c4 10             	add    $0x10,%esp                     
  10b66f:	31 c0                	xor    %eax,%eax                      
  10b671:	eb d2                	jmp    10b645 <pthread_cond_destroy+0x49>
                                                                      

0010b6c8 <pthread_cond_init>: int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) {
  10b6c8:	55                   	push   %ebp                           
  10b6c9:	89 e5                	mov    %esp,%ebp                      
  10b6cb:	53                   	push   %ebx                           
  10b6cc:	83 ec 14             	sub    $0x14,%esp                     
  10b6cf:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_Condition_variables_Control   *the_cond;                      
  const pthread_condattr_t            *the_attr;                      
                                                                      
  if ( attr ) the_attr = attr;                                        
  10b6d2:	85 db                	test   %ebx,%ebx                      
  10b6d4:	0f 84 86 00 00 00    	je     10b760 <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 )           
  10b6da:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)                 
  10b6de:	74 06                	je     10b6e6 <pthread_cond_init+0x1e><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  if ( !the_attr->is_initialized )                                    
  10b6e0:	8b 03                	mov    (%ebx),%eax                    
  10b6e2:	85 c0                	test   %eax,%eax                      
  10b6e4:	75 0a                	jne    10b6f0 <pthread_cond_init+0x28>
    return EINVAL;                                                    
  10b6e6:	b8 16 00 00 00       	mov    $0x16,%eax                     
  *cond = the_cond->Object.id;                                        
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return 0;                                                           
}                                                                     
  10b6eb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b6ee:	c9                   	leave                                 
  10b6ef:	c3                   	ret                                   
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b6f0:	a1 cc 9e 12 00       	mov    0x129ecc,%eax                  
  10b6f5:	40                   	inc    %eax                           
  10b6f6:	a3 cc 9e 12 00       	mov    %eax,0x129ecc                  
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control                
  *_POSIX_Condition_variables_Allocate( void )                        
{                                                                     
  return (POSIX_Condition_variables_Control *)                        
    _Objects_Allocate( &_POSIX_Condition_variables_Information );     
  10b6fb:	83 ec 0c             	sub    $0xc,%esp                      
  10b6fe:	68 80 a3 12 00       	push   $0x12a380                      
  10b703:	e8 68 24 00 00       	call   10db70 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
  10b708:	83 c4 10             	add    $0x10,%esp                     
  10b70b:	85 c0                	test   %eax,%eax                      
  10b70d:	74 5d                	je     10b76c <pthread_cond_init+0xa4>
    _Thread_Enable_dispatch();                                        
    return ENOMEM;                                                    
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
  10b70f:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b712:	89 50 10             	mov    %edx,0x10(%eax)                
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
  10b715:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)                
                                                                      
  _Thread_queue_Initialize(                                           
  10b71c:	6a 74                	push   $0x74                          
  10b71e:	68 00 08 00 10       	push   $0x10000800                    
  10b723:	6a 00                	push   $0x0                           
  10b725:	8d 50 18             	lea    0x18(%eax),%edx                
  10b728:	52                   	push   %edx                           
  10b729:	89 45 f4             	mov    %eax,-0xc(%ebp)                
  10b72c:	e8 63 3b 00 00       	call   10f294 <_Thread_queue_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10b731:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10b734:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b737:	0f b7 da             	movzwl %dx,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b73a:	8b 0d 9c a3 12 00    	mov    0x12a39c,%ecx                  
  10b740:	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;                                   
  10b743:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
    &_POSIX_Condition_variables_Information,                          
    &the_cond->Object,                                                
    0                                                                 
  );                                                                  
                                                                      
  *cond = the_cond->Object.id;                                        
  10b74a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b74d:	89 10                	mov    %edx,(%eax)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10b74f:	e8 e0 33 00 00       	call   10eb34 <_Thread_Enable_dispatch>
                                                                      
  return 0;                                                           
  10b754:	83 c4 10             	add    $0x10,%esp                     
  10b757:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b759:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b75c:	c9                   	leave                                 
  10b75d:	c3                   	ret                                   
  10b75e:	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;
  10b760:	bb 9c 35 12 00       	mov    $0x12359c,%ebx                 
  10b765:	e9 70 ff ff ff       	jmp    10b6da <pthread_cond_init+0x12>
  10b76a:	66 90                	xchg   %ax,%ax                        
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
    _Thread_Enable_dispatch();                                        
  10b76c:	e8 c3 33 00 00       	call   10eb34 <_Thread_Enable_dispatch>
    return ENOMEM;                                                    
  10b771:	b8 0c 00 00 00       	mov    $0xc,%eax                      
  10b776:	e9 70 ff ff ff       	jmp    10b6eb <pthread_cond_init+0x23>
                                                                      

0010b558 <pthread_condattr_destroy>: */ int pthread_condattr_destroy( pthread_condattr_t *attr ) {
  10b558:	55                   	push   %ebp                           
  10b559:	89 e5                	mov    %esp,%ebp                      
  10b55b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10b55e:	85 c0                	test   %eax,%eax                      
  10b560:	74 12                	je     10b574 <pthread_condattr_destroy+0x1c>
  10b562:	8b 10                	mov    (%eax),%edx                    
  10b564:	85 d2                	test   %edx,%edx                      
  10b566:	74 0c                	je     10b574 <pthread_condattr_destroy+0x1c><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10b568:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10b56e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b570:	c9                   	leave                                 
  10b571:	c3                   	ret                                   
  10b572:	66 90                	xchg   %ax,%ax                        
int pthread_condattr_destroy(                                         
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10b574:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10b579:	c9                   	leave                                 
  10b57a:	c3                   	ret                                   
                                                                      

0010b57c <pthread_condattr_getpshared>: int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) {
  10b57c:	55                   	push   %ebp                           
  10b57d:	89 e5                	mov    %esp,%ebp                      
  10b57f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr )                                                        
  10b582:	85 c0                	test   %eax,%eax                      
  10b584:	74 0e                	je     10b594 <pthread_condattr_getpshared+0x18>
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
  10b586:	8b 50 04             	mov    0x4(%eax),%edx                 
  10b589:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10b58c:	89 10                	mov    %edx,(%eax)                    
  return 0;                                                           
  10b58e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b590:	c9                   	leave                                 
  10b591:	c3                   	ret                                   
  10b592:	66 90                	xchg   %ax,%ax                        
  const pthread_condattr_t *attr,                                     
  int                      *pshared                                   
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
  10b594:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
}                                                                     
  10b599:	c9                   	leave                                 
  10b59a:	c3                   	ret                                   
                                                                      

0010b5c4 <pthread_condattr_setpshared>: int pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared ) {
  10b5c4:	55                   	push   %ebp                           
  10b5c5:	89 e5                	mov    %esp,%ebp                      
  10b5c7:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10b5ca:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr )                                                        
  10b5cd:	85 c0                	test   %eax,%eax                      
  10b5cf:	74 05                	je     10b5d6 <pthread_condattr_setpshared+0x12>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10b5d1:	83 fa 01             	cmp    $0x1,%edx                      
  10b5d4:	76 0a                	jbe    10b5e0 <pthread_condattr_setpshared+0x1c>
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10b5d6:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10b5db:	c9                   	leave                                 
  10b5dc:	c3                   	ret                                   
  10b5dd:	8d 76 00             	lea    0x0(%esi),%esi                 
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10b5e0:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10b5e3:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10b5e5:	c9                   	leave                                 
  10b5e6:	c3                   	ret                                   
                                                                      

0010ac80 <pthread_create>: pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)( void * ), void *arg ) {
  10ac80:	55                   	push   %ebp                           
  10ac81:	89 e5                	mov    %esp,%ebp                      
  10ac83:	57                   	push   %edi                           
  10ac84:	56                   	push   %esi                           
  10ac85:	53                   	push   %ebx                           
  10ac86:	83 ec 5c             	sub    $0x5c,%esp                     
  10ac89:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  int                                 schedpolicy = SCHED_RR;         
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
  10ac8c:	8b 75 10             	mov    0x10(%ebp),%esi                
  10ac8f:	85 f6                	test   %esi,%esi                      
  10ac91:	0f 84 8d 01 00 00    	je     10ae24 <pthread_create+0x1a4>  <== NEVER TAKEN
    return EFAULT;                                                    
                                                                      
  the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;      
  10ac97:	85 db                	test   %ebx,%ebx                      
  10ac99:	74 65                	je     10ad00 <pthread_create+0x80>   
                                                                      
  if ( !the_attr->is_initialized )                                    
  10ac9b:	8b 0b                	mov    (%ebx),%ecx                    
  10ac9d:	85 c9                	test   %ecx,%ecx                      
  10ac9f:	74 1e                	je     10acbf <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) )
  10aca1:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10aca4:	85 d2                	test   %edx,%edx                      
  10aca6:	74 0a                	je     10acb2 <pthread_create+0x32>   
  10aca8:	a1 d8 47 12 00       	mov    0x1247d8,%eax                  
  10acad:	39 43 08             	cmp    %eax,0x8(%ebx)                 
  10acb0:	72 0d                	jb     10acbf <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 ) {                                 
  10acb2:	8b 43 10             	mov    0x10(%ebx),%eax                
  10acb5:	83 f8 01             	cmp    $0x1,%eax                      
  10acb8:	74 4e                	je     10ad08 <pthread_create+0x88>   
  10acba:	83 f8 02             	cmp    $0x2,%eax                      
  10acbd:	74 11                	je     10acd0 <pthread_create+0x50>   
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
    return EINVAL;                                                    
  10acbf:	ba 16 00 00 00       	mov    $0x16,%edx                     
   */                                                                 
  *thread = the_thread->Object.id;                                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return 0;                                                           
}                                                                     
  10acc4:	89 d0                	mov    %edx,%eax                      
  10acc6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10acc9:	5b                   	pop    %ebx                           
  10acca:	5e                   	pop    %esi                           
  10accb:	5f                   	pop    %edi                           
  10accc:	c9                   	leave                                 
  10accd:	c3                   	ret                                   
  10acce:	66 90                	xchg   %ax,%ax                        
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
      break;                                                          
                                                                      
    case PTHREAD_EXPLICIT_SCHED:                                      
      schedpolicy = the_attr->schedpolicy;                            
  10acd0:	8b 4b 14             	mov    0x14(%ebx),%ecx                
  10acd3:	89 4d b0             	mov    %ecx,-0x50(%ebp)               
      schedparam  = the_attr->schedparam;                             
  10acd6:	8d 45 c4             	lea    -0x3c(%ebp),%eax               
  10acd9:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10acdc:	8d 73 18             	lea    0x18(%ebx),%esi                
  10acdf:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10ace4:	89 c7                	mov    %eax,%edi                      
  10ace6:	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 )           
  10ace8:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10aceb:	85 c0                	test   %eax,%eax                      
  10aced:	74 49                	je     10ad38 <pthread_create+0xb8>   <== ALWAYS TAKEN
    return ENOTSUP;                                                   
  10acef:	ba 86 00 00 00       	mov    $0x86,%edx                     
   */                                                                 
  *thread = the_thread->Object.id;                                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return 0;                                                           
}                                                                     
  10acf4:	89 d0                	mov    %edx,%eax                      
  10acf6:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10acf9:	5b                   	pop    %ebx                           
  10acfa:	5e                   	pop    %esi                           
  10acfb:	5f                   	pop    %edi                           
  10acfc:	c9                   	leave                                 
  10acfd:	c3                   	ret                                   
  10acfe:	66 90                	xchg   %ax,%ax                        
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
    return EFAULT;                                                    
                                                                      
  the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;      
  10ad00:	bb 40 21 12 00       	mov    $0x122140,%ebx                 
  10ad05:	eb 94                	jmp    10ac9b <pthread_create+0x1b>   
  10ad07:	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 ];    
  10ad08:	a1 f8 8f 12 00       	mov    0x128ff8,%eax                  
  10ad0d:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
      schedpolicy = api->schedpolicy;                                 
  10ad13:	8b 8e 84 00 00 00    	mov    0x84(%esi),%ecx                
  10ad19:	89 4d b0             	mov    %ecx,-0x50(%ebp)               
      schedparam  = api->schedparam;                                  
  10ad1c:	8d 45 c4             	lea    -0x3c(%ebp),%eax               
  10ad1f:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10ad22:	81 c6 88 00 00 00    	add    $0x88,%esi                     
  10ad28:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10ad2d:	89 c7                	mov    %eax,%edi                      
  10ad2f:	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 )           
  10ad31:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10ad34:	85 c0                	test   %eax,%eax                      
  10ad36:	75 b7                	jne    10acef <pthread_create+0x6f>   
    return ENOTSUP;                                                   
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
  10ad38:	83 ec 0c             	sub    $0xc,%esp                      
  10ad3b:	ff 75 c4             	pushl  -0x3c(%ebp)                    
  10ad3e:	e8 6d 62 00 00       	call   110fb0 <_POSIX_Priority_Is_valid>
  10ad43:	83 c4 10             	add    $0x10,%esp                     
  10ad46:	84 c0                	test   %al,%al                        
  10ad48:	0f 84 71 ff ff ff    	je     10acbf <pthread_create+0x3f>   <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  core_priority = _POSIX_Priority_To_core( schedparam.sched_priority );
  10ad4e:	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);
  10ad51:	0f b6 35 dc 47 12 00 	movzbl 0x1247dc,%esi                  
                                                                      
  /*                                                                  
   *  Set the core scheduling policy information.                     
   */                                                                 
  rc = _POSIX_Thread_Translate_sched_param(                           
  10ad58:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10ad5b:	50                   	push   %eax                           
  10ad5c:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10ad5f:	50                   	push   %eax                           
  10ad60:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10ad63:	ff 75 b0             	pushl  -0x50(%ebp)                    
  10ad66:	e8 61 62 00 00       	call   110fcc <_POSIX_Thread_Translate_sched_param>
  10ad6b:	89 c2                	mov    %eax,%edx                      
    schedpolicy,                                                      
    &schedparam,                                                      
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
  10ad6d:	83 c4 10             	add    $0x10,%esp                     
  10ad70:	85 c0                	test   %eax,%eax                      
  10ad72:	0f 85 4c ff ff ff    	jne    10acc4 <pthread_create+0x44>   
  #endif                                                              
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
  10ad78:	83 ec 0c             	sub    $0xc,%esp                      
  10ad7b:	ff 35 00 8b 12 00    	pushl  0x128b00                       
  10ad81:	89 45 a0             	mov    %eax,-0x60(%ebp)               
  10ad84:	e8 03 17 00 00       	call   10c48c <_API_Mutex_Lock>       
 *  _POSIX_Threads_Allocate                                           
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void )  
{                                                                     
  return (Thread_Control *) _Objects_Allocate( &_POSIX_Threads_Information );
  10ad89:	c7 04 24 e0 8c 12 00 	movl   $0x128ce0,(%esp)               
  10ad90:	e8 e3 1f 00 00       	call   10cd78 <_Objects_Allocate>     
  10ad95:	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 ) {                                                
  10ad98:	83 c4 10             	add    $0x10,%esp                     
  10ad9b:	85 c0                	test   %eax,%eax                      
  10ad9d:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10ada0:	0f 84 0f 01 00 00    	je     10aeb5 <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(                                        
  10ada6:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  10ada9:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10adac:	89 45 a4             	mov    %eax,-0x5c(%ebp)               
  10adaf:	8b 43 08             	mov    0x8(%ebx),%eax                 
  10adb2:	89 45 a8             	mov    %eax,-0x58(%ebp)               
  10adb5:	a1 d8 47 12 00       	mov    0x1247d8,%eax                  
  10adba:	d1 e0                	shl    %eax                           
  10adbc:	3b 45 a8             	cmp    -0x58(%ebp),%eax               
  10adbf:	73 03                	jae    10adc4 <pthread_create+0x144>  
  10adc1:	8b 45 a8             	mov    -0x58(%ebp),%eax               
  10adc4:	83 ec 04             	sub    $0x4,%esp                      
  10adc7:	6a 00                	push   $0x0                           
  10adc9:	6a 00                	push   $0x0                           
  10adcb:	51                   	push   %ecx                           
  10adcc:	ff 75 a4             	pushl  -0x5c(%ebp)                    
  10adcf:	6a 01                	push   $0x1                           
  10add1:	81 e6 ff 00 00 00    	and    $0xff,%esi                     
  10add7:	29 fe                	sub    %edi,%esi                      
  10add9:	56                   	push   %esi                           
  10adda:	6a 01                	push   $0x1                           
  10addc:	50                   	push   %eax                           
  10addd:	ff 73 04             	pushl  0x4(%ebx)                      
  10ade0:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10ade3:	68 e0 8c 12 00       	push   $0x128ce0                      
  10ade8:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10adeb:	e8 e8 2f 00 00       	call   10ddd8 <_Thread_Initialize>    
    budget_callout,                                                   
    0,                    /* isr level */                             
    name                  /* posix threads don't have a name */       
  );                                                                  
                                                                      
  if ( !status ) {                                                    
  10adf0:	83 c4 30             	add    $0x30,%esp                     
  10adf3:	84 c0                	test   %al,%al                        
  10adf5:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10adf8:	75 34                	jne    10ae2e <pthread_create+0x1ae>  
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free (                       
  Thread_Control *the_pthread                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 
  10adfa:	83 ec 08             	sub    $0x8,%esp                      
  10adfd:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10ae00:	68 e0 8c 12 00       	push   $0x128ce0                      
  10ae05:	e8 e2 22 00 00       	call   10d0ec <_Objects_Free>         
    _POSIX_Threads_Free( the_thread );                                
    _RTEMS_Unlock_allocator();                                        
  10ae0a:	59                   	pop    %ecx                           
  10ae0b:	ff 35 00 8b 12 00    	pushl  0x128b00                       
  10ae11:	e8 be 16 00 00       	call   10c4d4 <_API_Mutex_Unlock>     
    return EAGAIN;                                                    
  10ae16:	83 c4 10             	add    $0x10,%esp                     
  10ae19:	ba 0b 00 00 00       	mov    $0xb,%edx                      
  10ae1e:	e9 a1 fe ff ff       	jmp    10acc4 <pthread_create+0x44>   
  10ae23:	90                   	nop                                   
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
    return EFAULT;                                                    
  10ae24:	ba 0e 00 00 00       	mov    $0xe,%edx                      
  10ae29:	e9 96 fe ff ff       	jmp    10acc4 <pthread_create+0x44>   
  }                                                                   
                                                                      
  /*                                                                  
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  10ae2e:	8b 4d ac             	mov    -0x54(%ebp),%ecx               
  10ae31:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
  10ae37:	89 4d a8             	mov    %ecx,-0x58(%ebp)               
                                                                      
  api->Attributes  = *the_attr;                                       
  10ae3a:	b9 10 00 00 00       	mov    $0x10,%ecx                     
  10ae3f:	8b 7d a8             	mov    -0x58(%ebp),%edi               
  10ae42:	89 de                	mov    %ebx,%esi                      
  10ae44:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  api->detachstate = the_attr->detachstate;                           
  10ae46:	8b 43 3c             	mov    0x3c(%ebx),%eax                
  10ae49:	8b 4d a8             	mov    -0x58(%ebp),%ecx               
  10ae4c:	89 41 40             	mov    %eax,0x40(%ecx)                
  api->schedpolicy = schedpolicy;                                     
  10ae4f:	8b 45 b0             	mov    -0x50(%ebp),%eax               
  10ae52:	89 81 84 00 00 00    	mov    %eax,0x84(%ecx)                
  api->schedparam  = schedparam;                                      
  10ae58:	89 cf                	mov    %ecx,%edi                      
  10ae5a:	81 c7 88 00 00 00    	add    $0x88,%edi                     
  10ae60:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10ae65:	8b 75 b4             	mov    -0x4c(%ebp),%esi               
  10ae68:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /*                                                                  
   *  POSIX threads are allocated and started in one operation.       
   */                                                                 
  status = _Thread_Start(                                             
  10ae6a:	83 ec 0c             	sub    $0xc,%esp                      
  10ae6d:	6a 00                	push   $0x0                           
  10ae6f:	ff 75 14             	pushl  0x14(%ebp)                     
  10ae72:	ff 75 10             	pushl  0x10(%ebp)                     
  10ae75:	6a 01                	push   $0x1                           
  10ae77:	ff 75 ac             	pushl  -0x54(%ebp)                    
  10ae7a:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10ae7d:	e8 46 38 00 00       	call   10e6c8 <_Thread_Start>         
      _RTEMS_Unlock_allocator();                                      
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
  10ae82:	83 c4 20             	add    $0x20,%esp                     
  10ae85:	83 7d b0 04          	cmpl   $0x4,-0x50(%ebp)               
  10ae89:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10ae8c:	74 42                	je     10aed0 <pthread_create+0x250>  
  }                                                                   
                                                                      
  /*                                                                  
   *  Return the id and indicate we successfully created the thread   
   */                                                                 
  *thread = the_thread->Object.id;                                    
  10ae8e:	8b 45 ac             	mov    -0x54(%ebp),%eax               
  10ae91:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10ae94:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10ae97:	89 08                	mov    %ecx,(%eax)                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10ae99:	83 ec 0c             	sub    $0xc,%esp                      
  10ae9c:	ff 35 00 8b 12 00    	pushl  0x128b00                       
  10aea2:	89 55 a0             	mov    %edx,-0x60(%ebp)               
  10aea5:	e8 2a 16 00 00       	call   10c4d4 <_API_Mutex_Unlock>     
  return 0;                                                           
  10aeaa:	83 c4 10             	add    $0x10,%esp                     
  10aead:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10aeb0:	e9 0f fe ff ff       	jmp    10acc4 <pthread_create+0x44>   
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
  10aeb5:	83 ec 0c             	sub    $0xc,%esp                      
  10aeb8:	ff 35 00 8b 12 00    	pushl  0x128b00                       
  10aebe:	e8 11 16 00 00       	call   10c4d4 <_API_Mutex_Unlock>     
    return EAGAIN;                                                    
  10aec3:	83 c4 10             	add    $0x10,%esp                     
  10aec6:	ba 0b 00 00 00       	mov    $0xb,%edx                      
  10aecb:	e9 f4 fd ff ff       	jmp    10acc4 <pthread_create+0x44>   
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
    _Watchdog_Insert_ticks(                                           
  10aed0:	83 ec 0c             	sub    $0xc,%esp                      
      &api->Sporadic_timer,                                           
      _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period )     
  10aed3:	8b 45 a8             	mov    -0x58(%ebp),%eax               
  10aed6:	05 90 00 00 00       	add    $0x90,%eax                     
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
    _Watchdog_Insert_ticks(                                           
  10aedb:	50                   	push   %eax                           
  10aedc:	e8 77 39 00 00       	call   10e858 <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10aee1:	8b 4d a8             	mov    -0x58(%ebp),%ecx               
  10aee4:	89 81 b4 00 00 00    	mov    %eax,0xb4(%ecx)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10aeea:	58                   	pop    %eax                           
  10aeeb:	5a                   	pop    %edx                           
  10aeec:	89 c8                	mov    %ecx,%eax                      
  10aeee:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10aef3:	50                   	push   %eax                           
  10aef4:	68 20 8b 12 00       	push   $0x128b20                      
  10aef9:	e8 8a 3c 00 00       	call   10eb88 <_Watchdog_Insert>      
  10aefe:	83 c4 10             	add    $0x10,%esp                     
  10af01:	8b 55 a0             	mov    -0x60(%ebp),%edx               
  10af04:	eb 88                	jmp    10ae8e <pthread_create+0x20e>  
                                                                      

0010ad94 <pthread_detach>: #include <rtems/posix/pthread.h> int pthread_detach( pthread_t thread ) {
  10ad94:	55                   	push   %ebp                           
  10ad95:	89 e5                	mov    %esp,%ebp                      
  10ad97:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10ad9a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10ad9d:	50                   	push   %eax                           
  10ad9e:	ff 75 08             	pushl  0x8(%ebp)                      
  10ada1:	e8 9e 2c 00 00       	call   10da44 <_Thread_Get>           
  switch ( location ) {                                               
  10ada6:	83 c4 10             	add    $0x10,%esp                     
  10ada9:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10adac:	85 d2                	test   %edx,%edx                      
  10adae:	75 18                	jne    10adc8 <pthread_detach+0x34>   
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
      api->detachstate = PTHREAD_CREATE_DETACHED;                     
  10adb0:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10adb6:	c7 40 40 00 00 00 00 	movl   $0x0,0x40(%eax)                
      _Thread_Enable_dispatch();                                      
  10adbd:	e8 5e 2c 00 00       	call   10da20 <_Thread_Enable_dispatch>
      return 0;                                                       
  10adc2:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10adc4:	c9                   	leave                                 
  10adc5:	c3                   	ret                                   
  10adc6:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10adc8:	b8 03 00 00 00       	mov    $0x3,%eax                      
}                                                                     
  10adcd:	c9                   	leave                                 
  10adce:	c3                   	ret                                   
                                                                      

001128cc <pthread_exit>: } void pthread_exit( void *value_ptr ) {
  1128cc:	55                   	push   %ebp                           
  1128cd:	89 e5                	mov    %esp,%ebp                      
  1128cf:	83 ec 10             	sub    $0x10,%esp                     
  _POSIX_Thread_Exit( _Thread_Executing, value_ptr );                 
  1128d2:	ff 75 08             	pushl  0x8(%ebp)                      
  1128d5:	ff 35 98 7d 12 00    	pushl  0x127d98                       
  1128db:	e8 88 ff ff ff       	call   112868 <_POSIX_Thread_Exit>    
  1128e0:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
}                                                                     
  1128e3:	c9                   	leave                                 <== NOT EXECUTED
  1128e4:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010ce68 <pthread_getschedparam>: int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param ) {
  10ce68:	55                   	push   %ebp                           
  10ce69:	89 e5                	mov    %esp,%ebp                      
  10ce6b:	57                   	push   %edi                           
  10ce6c:	56                   	push   %esi                           
  10ce6d:	53                   	push   %ebx                           
  10ce6e:	83 ec 1c             	sub    $0x1c,%esp                     
  10ce71:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10ce74:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
  10ce77:	85 ff                	test   %edi,%edi                      
  10ce79:	74 65                	je     10cee0 <pthread_getschedparam+0x78>
  10ce7b:	85 db                	test   %ebx,%ebx                      
  10ce7d:	74 61                	je     10cee0 <pthread_getschedparam+0x78>
    return EINVAL;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  10ce7f:	83 ec 08             	sub    $0x8,%esp                      
  10ce82:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10ce85:	50                   	push   %eax                           
  10ce86:	ff 75 08             	pushl  0x8(%ebp)                      
  10ce89:	e8 46 2d 00 00       	call   10fbd4 <_Thread_Get>           
  switch ( location ) {                                               
  10ce8e:	83 c4 10             	add    $0x10,%esp                     
  10ce91:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10ce94:	85 d2                	test   %edx,%edx                      
  10ce96:	75 38                	jne    10ced0 <pthread_getschedparam+0x68>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  10ce98:	8b b0 ec 00 00 00    	mov    0xec(%eax),%esi                
      if ( policy )                                                   
        *policy = api->schedpolicy;                                   
  10ce9e:	8b 96 84 00 00 00    	mov    0x84(%esi),%edx                
  10cea4:	89 17                	mov    %edx,(%edi)                    
      if ( param ) {                                                  
        *param  = api->schedparam;                                    
  10cea6:	81 c6 88 00 00 00    	add    $0x88,%esi                     
  10ceac:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10ceb1:	89 df                	mov    %ebx,%edi                      
  10ceb3:	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);           
  10ceb5:	0f b6 15 dc 83 12 00 	movzbl 0x1283dc,%edx                  
  10cebc:	2b 50 14             	sub    0x14(%eax),%edx                
  10cebf:	89 13                	mov    %edx,(%ebx)                    
        param->sched_priority =                                       
          _POSIX_Priority_From_core( the_thread->current_priority );  
      }                                                               
      _Thread_Enable_dispatch();                                      
  10cec1:	e8 ea 2c 00 00       	call   10fbb0 <_Thread_Enable_dispatch>
      return 0;                                                       
  10cec6:	31 c0                	xor    %eax,%eax                      
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
                                                                      
}                                                                     
  10cec8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cecb:	5b                   	pop    %ebx                           
  10cecc:	5e                   	pop    %esi                           
  10cecd:	5f                   	pop    %edi                           
  10cece:	c9                   	leave                                 
  10cecf:	c3                   	ret                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10ced0:	b8 03 00 00 00       	mov    $0x3,%eax                      
                                                                      
}                                                                     
  10ced5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ced8:	5b                   	pop    %ebx                           
  10ced9:	5e                   	pop    %esi                           
  10ceda:	5f                   	pop    %edi                           
  10cedb:	c9                   	leave                                 
  10cedc:	c3                   	ret                                   
  10cedd:	8d 76 00             	lea    0x0(%esi),%esi                 
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
    return EINVAL;                                                    
  10cee0:	b8 16 00 00 00       	mov    $0x16,%eax                     
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
                                                                      
}                                                                     
  10cee5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10cee8:	5b                   	pop    %ebx                           
  10cee9:	5e                   	pop    %esi                           
  10ceea:	5f                   	pop    %edi                           
  10ceeb:	c9                   	leave                                 
  10ceec:	c3                   	ret                                   
                                                                      

0010ac60 <pthread_getspecific>: */ void *pthread_getspecific( pthread_key_t key ) {
  10ac60:	55                   	push   %ebp                           
  10ac61:	89 e5                	mov    %esp,%ebp                      
  10ac63:	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 );                        
  10ac66:	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 );
  10ac69:	50                   	push   %eax                           
  10ac6a:	ff 75 08             	pushl  0x8(%ebp)                      
  10ac6d:	68 c0 9a 12 00       	push   $0x129ac0                      
  10ac72:	e8 b5 23 00 00       	call   10d02c <_Objects_Get>          
  switch ( location ) {                                               
  10ac77:	83 c4 10             	add    $0x10,%esp                     
  10ac7a:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10ac7d:	85 d2                	test   %edx,%edx                      
  10ac7f:	75 2b                	jne    10acac <pthread_getspecific+0x4c>
                                                                      
    case OBJECTS_LOCAL:                                               
      api      = _Objects_Get_API( _Thread_Executing->Object.id );    
  10ac81:	8b 15 f8 9b 12 00    	mov    0x129bf8,%edx                  
  10ac87:	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);
  10ac8a:	89 ca                	mov    %ecx,%edx                      
  10ac8c:	c1 ea 18             	shr    $0x18,%edx                     
  10ac8f:	83 e2 07             	and    $0x7,%edx                      
      index    = _Objects_Get_index( _Thread_Executing->Object.id );  
  10ac92:	0f b7 c9             	movzwl %cx,%ecx                       
      key_data = (void *) the_key->Values[ api ][ index ];            
  10ac95:	8b 44 90 14          	mov    0x14(%eax,%edx,4),%eax         
  10ac99:	8b 04 88             	mov    (%eax,%ecx,4),%eax             
      _Thread_Enable_dispatch();                                      
  10ac9c:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10ac9f:	e8 98 2e 00 00       	call   10db3c <_Thread_Enable_dispatch>
      return key_data;                                                
  10aca4:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
}                                                                     
  10aca7:	c9                   	leave                                 
  10aca8:	c3                   	ret                                   
  10aca9:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
  10acac:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10acae:	c9                   	leave                                 
  10acaf:	c3                   	ret                                   
                                                                      

001106ac <pthread_join>: int pthread_join( pthread_t thread, void **value_ptr ) {
  1106ac:	55                   	push   %ebp                           
  1106ad:	89 e5                	mov    %esp,%ebp                      
  1106af:	53                   	push   %ebx                           
  1106b0:	83 ec 1c             	sub    $0x1c,%esp                     
  1106b3:	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 );                      
  1106b6:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1106b9:	50                   	push   %eax                           
  1106ba:	ff 75 08             	pushl  0x8(%ebp)                      
  1106bd:	e8 52 2d 00 00       	call   113414 <_Thread_Get>           
  switch ( location ) {                                               
  1106c2:	83 c4 10             	add    $0x10,%esp                     
  1106c5:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1106c8:	85 d2                	test   %edx,%edx                      
  1106ca:	74 0c                	je     1106d8 <pthread_join+0x2c>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  1106cc:	b8 03 00 00 00       	mov    $0x3,%eax                      
}                                                                     
  1106d1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1106d4:	c9                   	leave                                 
  1106d5:	c3                   	ret                                   
  1106d6:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  1106d8:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
                                                                      
      if ( api->detachstate == PTHREAD_CREATE_DETACHED ) {            
  1106de:	8b 4a 40             	mov    0x40(%edx),%ecx                
  1106e1:	85 c9                	test   %ecx,%ecx                      
  1106e3:	74 43                	je     110728 <pthread_join+0x7c>     
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
  1106e5:	8b 0d d8 26 13 00    	mov    0x1326d8,%ecx                  
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
  1106eb:	39 c8                	cmp    %ecx,%eax                      
  1106ed:	74 49                	je     110738 <pthread_join+0x8c>     
                                                                      
      /*                                                              
       *  Put ourself on the threads join list                        
       */                                                             
                                                                      
      _Thread_Executing->Wait.return_argument = &return_pointer;      
  1106ef:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  1106f2:	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;
  1106f5:	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 );  
  1106fc:	50                   	push   %eax                           
  1106fd:	68 c4 3b 11 00       	push   $0x113bc4                      
  110702:	6a 00                	push   $0x0                           
  110704:	83 c2 44             	add    $0x44,%edx                     
  110707:	52                   	push   %edx                           
  110708:	e8 8b 31 00 00       	call   113898 <_Thread_queue_Enqueue_with_handler>
                                                                      
      _Thread_Enable_dispatch();                                      
  11070d:	e8 de 2c 00 00       	call   1133f0 <_Thread_Enable_dispatch>
                                                                      
      if ( value_ptr )                                                
  110712:	83 c4 10             	add    $0x10,%esp                     
  110715:	85 db                	test   %ebx,%ebx                      
  110717:	74 2b                	je     110744 <pthread_join+0x98>     
        *value_ptr = return_pointer;                                  
  110719:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  11071c:	89 03                	mov    %eax,(%ebx)                    
      return 0;                                                       
  11071e:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  110720:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  110723:	c9                   	leave                                 
  110724:	c3                   	ret                                   
  110725:	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();                                    
  110728:	e8 c3 2c 00 00       	call   1133f0 <_Thread_Enable_dispatch>
        return EINVAL;                                                
  11072d:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  110732:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  110735:	c9                   	leave                                 
  110736:	c3                   	ret                                   
  110737:	90                   	nop                                   
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
        _Thread_Enable_dispatch();                                    
  110738:	e8 b3 2c 00 00       	call   1133f0 <_Thread_Enable_dispatch>
        return EDEADLK;                                               
  11073d:	b8 2d 00 00 00       	mov    $0x2d,%eax                     
  110742:	eb 8d                	jmp    1106d1 <pthread_join+0x25>     
                                                                      
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( value_ptr )                                                
        *value_ptr = return_pointer;                                  
      return 0;                                                       
  110744:	31 c0                	xor    %eax,%eax                      
  110746:	eb 89                	jmp    1106d1 <pthread_join+0x25>     
                                                                      

0010aaec <pthread_key_create>: int pthread_key_create( pthread_key_t *key, void (*destructor)( void * ) ) {
  10aaec:	55                   	push   %ebp                           
  10aaed:	89 e5                	mov    %esp,%ebp                      
  10aaef:	57                   	push   %edi                           
  10aaf0:	56                   	push   %esi                           
  10aaf1:	53                   	push   %ebx                           
  10aaf2:	83 ec 28             	sub    $0x28,%esp                     
  10aaf5:	a1 4c 96 12 00       	mov    0x12964c,%eax                  
  10aafa:	40                   	inc    %eax                           
  10aafb:	a3 4c 96 12 00       	mov    %eax,0x12964c                  
 *  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 );
  10ab00:	68 c0 9a 12 00       	push   $0x129ac0                      
  10ab05:	e8 6e 20 00 00       	call   10cb78 <_Objects_Allocate>     
  10ab0a:	89 c6                	mov    %eax,%esi                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
  10ab0c:	83 c4 10             	add    $0x10,%esp                     
  10ab0f:	85 c0                	test   %eax,%eax                      
  10ab11:	74 79                	je     10ab8c <pthread_key_create+0xa0>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_key->destructor = destructor;                                   
  10ab13:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ab16:	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++ ) {      
  10ab19:	bb 01 00 00 00       	mov    $0x1,%ebx                      
    the_key->Values[ the_api ] = NULL;                                
  10ab1e:	c7 44 9e 14 00 00 00 	movl   $0x0,0x14(%esi,%ebx,4)         
  10ab25:	00                                                          
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
  10ab26:	8b 04 9d 24 96 12 00 	mov    0x129624(,%ebx,4),%eax         
  10ab2d:	8b 40 04             	mov    0x4(%eax),%eax                 
  10ab30:	0f b7 40 10          	movzwl 0x10(%eax),%eax                
	  true,                                                              
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
  10ab34:	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 );                 
  10ab3b:	83 ec 0c             	sub    $0xc,%esp                      
  10ab3e:	51                   	push   %ecx                           
  10ab3f:	89 4d e4             	mov    %ecx,-0x1c(%ebp)               
  10ab42:	e8 d9 40 00 00       	call   10ec20 <_Workspace_Allocate>   
    if ( !table ) {                                                   
  10ab47:	83 c4 10             	add    $0x10,%esp                     
  10ab4a:	85 c0                	test   %eax,%eax                      
  10ab4c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10ab4f:	74 4f                	je     10aba0 <pthread_key_create+0xb4>
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
      return ENOMEM;                                                  
    }                                                                 
                                                                      
    the_key->Values[ the_api ] = table;                               
  10ab51:	89 44 9e 14          	mov    %eax,0x14(%esi,%ebx,4)         
    memset( table, '\0', bytes_to_allocate );                         
  10ab55:	89 c7                	mov    %eax,%edi                      
  10ab57:	31 c0                	xor    %eax,%eax                      
  10ab59:	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++ ) {      
  10ab5b:	43                   	inc    %ebx                           
  10ab5c:	83 fb 04             	cmp    $0x4,%ebx                      
  10ab5f:	75 bd                	jne    10ab1e <pthread_key_create+0x32>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10ab61:	8b 46 08             	mov    0x8(%esi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10ab64:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10ab67:	8b 15 dc 9a 12 00    	mov    0x129adc,%edx                  
  10ab6d:	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;                                   
  10ab70:	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;                                          
  10ab77:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10ab7a:	89 02                	mov    %eax,(%edx)                    
  _Thread_Enable_dispatch();                                          
  10ab7c:	e8 bb 2f 00 00       	call   10db3c <_Thread_Enable_dispatch>
  return 0;                                                           
  10ab81:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ab83:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ab86:	5b                   	pop    %ebx                           
  10ab87:	5e                   	pop    %esi                           
  10ab88:	5f                   	pop    %edi                           
  10ab89:	c9                   	leave                                 
  10ab8a:	c3                   	ret                                   
  10ab8b:	90                   	nop                                   
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
    _Thread_Enable_dispatch();                                        
  10ab8c:	e8 ab 2f 00 00       	call   10db3c <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10ab91:	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;                                                           
}                                                                     
  10ab96:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ab99:	5b                   	pop    %ebx                           
  10ab9a:	5e                   	pop    %esi                           
  10ab9b:	5f                   	pop    %edi                           
  10ab9c:	c9                   	leave                                 
  10ab9d:	c3                   	ret                                   
  10ab9e:	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 );                             
  10aba0:	83 ec 0c             	sub    $0xc,%esp                      
  10aba3:	56                   	push   %esi                           
  10aba4:	e8 87 00 00 00       	call   10ac30 <_POSIX_Keys_Free_memory>
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (                          
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );        
  10aba9:	58                   	pop    %eax                           
  10abaa:	5a                   	pop    %edx                           
  10abab:	56                   	push   %esi                           
  10abac:	68 c0 9a 12 00       	push   $0x129ac0                      
  10abb1:	e8 36 23 00 00       	call   10ceec <_Objects_Free>         
                                                                      
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
  10abb6:	e8 81 2f 00 00       	call   10db3c <_Thread_Enable_dispatch>
      return ENOMEM;                                                  
  10abbb:	83 c4 10             	add    $0x10,%esp                     
  10abbe:	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;                                                           
}                                                                     
  10abc3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10abc6:	5b                   	pop    %ebx                           
  10abc7:	5e                   	pop    %esi                           
  10abc8:	5f                   	pop    %edi                           
  10abc9:	c9                   	leave                                 
  10abca:	c3                   	ret                                   
                                                                      

0010abcc <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 ) {
  10abcc:	55                   	push   %ebp                           
  10abcd:	89 e5                	mov    %esp,%ebp                      
  10abcf:	53                   	push   %ebx                           
  10abd0:	83 ec 18             	sub    $0x18,%esp                     
  POSIX_Keys_Control *the_key;                                        
  Objects_Locations   location;                                       
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  10abd3:	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 );
  10abd6:	50                   	push   %eax                           
  10abd7:	ff 75 08             	pushl  0x8(%ebp)                      
  10abda:	68 c0 9a 12 00       	push   $0x129ac0                      
  10abdf:	e8 48 24 00 00       	call   10d02c <_Objects_Get>          
  10abe4:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10abe6:	83 c4 10             	add    $0x10,%esp                     
  10abe9:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10abec:	85 c9                	test   %ecx,%ecx                      
  10abee:	75 34                	jne    10ac24 <pthread_key_delete+0x58>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_POSIX_Keys_Information, &the_key->Object );   
  10abf0:	83 ec 08             	sub    $0x8,%esp                      
  10abf3:	50                   	push   %eax                           
  10abf4:	68 c0 9a 12 00       	push   $0x129ac0                      
  10abf9:	e8 f6 1f 00 00       	call   10cbf4 <_Objects_Close>        
                                                                      
      _POSIX_Keys_Free_memory( the_key );                             
  10abfe:	89 1c 24             	mov    %ebx,(%esp)                    
  10ac01:	e8 2a 00 00 00       	call   10ac30 <_POSIX_Keys_Free_memory>
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (                          
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );        
  10ac06:	58                   	pop    %eax                           
  10ac07:	5a                   	pop    %edx                           
  10ac08:	53                   	push   %ebx                           
  10ac09:	68 c0 9a 12 00       	push   $0x129ac0                      
  10ac0e:	e8 d9 22 00 00       	call   10ceec <_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();                                      
  10ac13:	e8 24 2f 00 00       	call   10db3c <_Thread_Enable_dispatch>
      return 0;                                                       
  10ac18:	83 c4 10             	add    $0x10,%esp                     
  10ac1b:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10ac1d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ac20:	c9                   	leave                                 
  10ac21:	c3                   	ret                                   
  10ac22:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10ac24:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10ac29:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ac2c:	c9                   	leave                                 
  10ac2d:	c3                   	ret                                   
                                                                      

001248ec <pthread_kill>: int pthread_kill( pthread_t thread, int sig ) {
  1248ec:	55                   	push   %ebp                           
  1248ed:	89 e5                	mov    %esp,%ebp                      
  1248ef:	57                   	push   %edi                           
  1248f0:	56                   	push   %esi                           
  1248f1:	53                   	push   %ebx                           
  1248f2:	83 ec 1c             	sub    $0x1c,%esp                     
  1248f5:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_API_Control  *api;                                            
  Thread_Control     *the_thread;                                     
  Objects_Locations  location;                                        
                                                                      
  if ( !sig )                                                         
  1248f8:	85 db                	test   %ebx,%ebx                      
  1248fa:	0f 84 80 00 00 00    	je     124980 <pthread_kill+0x94>     
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  124900:	8d 7b ff             	lea    -0x1(%ebx),%edi                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  124903:	83 ff 1f             	cmp    $0x1f,%edi                     
  124906:	77 78                	ja     124980 <pthread_kill+0x94>     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  124908:	83 ec 08             	sub    $0x8,%esp                      
  12490b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  12490e:	50                   	push   %eax                           
  12490f:	ff 75 08             	pushl  0x8(%ebp)                      
  124912:	e8 2d d5 fe ff       	call   111e44 <_Thread_Get>           
  124917:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  124919:	83 c4 10             	add    $0x10,%esp                     
  12491c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  12491f:	85 c9                	test   %ecx,%ecx                      
  124921:	75 71                	jne    124994 <pthread_kill+0xa8>     <== NEVER TAKEN
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  If sig == 0 then just validate arguments                    
       */                                                             
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  124923:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx                
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
  124929:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  12492c:	83 3c 85 a8 dc 12 00 	cmpl   $0x1,0x12dca8(,%eax,4)         
  124933:	01                                                          
  124934:	74 2d                	je     124963 <pthread_kill+0x77>     
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
  124936:	b8 01 00 00 00       	mov    $0x1,%eax                      
  12493b:	89 f9                	mov    %edi,%ecx                      
  12493d:	d3 e0                	shl    %cl,%eax                       
          return 0;                                                   
        }                                                             
                                                                      
        /* XXX critical section */                                    
                                                                      
        api->signals_pending |= signo_to_mask( sig );                 
  12493f:	09 82 d4 00 00 00    	or     %eax,0xd4(%edx)                
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
  124945:	52                   	push   %edx                           
  124946:	6a 00                	push   $0x0                           
  124948:	53                   	push   %ebx                           
  124949:	56                   	push   %esi                           
  12494a:	e8 7d fe ff ff       	call   1247cc <_POSIX_signals_Unblock_thread>
                                                                      
        if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  12494f:	83 c4 10             	add    $0x10,%esp                     
  124952:	a1 34 dc 12 00       	mov    0x12dc34,%eax                  
  124957:	85 c0                	test   %eax,%eax                      
  124959:	74 08                	je     124963 <pthread_kill+0x77>     
  12495b:	3b 35 38 dc 12 00    	cmp    0x12dc38,%esi                  
  124961:	74 11                	je     124974 <pthread_kill+0x88>     
	  _Thread_Dispatch_necessary = true;                                 
      }                                                               
      _Thread_Enable_dispatch();                                      
  124963:	e8 b8 d4 fe ff       	call   111e20 <_Thread_Enable_dispatch>
      return 0;                                                       
  124968:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
}                                                                     
  12496a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  12496d:	5b                   	pop    %ebx                           
  12496e:	5e                   	pop    %esi                           
  12496f:	5f                   	pop    %edi                           
  124970:	c9                   	leave                                 
  124971:	c3                   	ret                                   
  124972:	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;                                 
  124974:	c6 05 44 dc 12 00 01 	movb   $0x1,0x12dc44                  
  12497b:	eb e6                	jmp    124963 <pthread_kill+0x77>     
  12497d:	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 );                   
  124980:	e8 17 36 ff ff       	call   117f9c <__errno>               
  124985:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  12498b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  124990:	eb d8                	jmp    12496a <pthread_kill+0x7e>     
  124992:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
  124994:	e8 03 36 ff ff       	call   117f9c <__errno>               <== NOT EXECUTED
  124999:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    <== NOT EXECUTED
  12499f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               <== NOT EXECUTED
  1249a4:	eb c4                	jmp    12496a <pthread_kill+0x7e>     <== NOT EXECUTED
                                                                      

0010c734 <pthread_mutex_getprioceiling>: int pthread_mutex_getprioceiling( pthread_mutex_t *mutex, int *prioceiling ) {
  10c734:	55                   	push   %ebp                           
  10c735:	89 e5                	mov    %esp,%ebp                      
  10c737:	53                   	push   %ebx                           
  10c738:	83 ec 14             	sub    $0x14,%esp                     
  10c73b:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
                                                                      
  if ( !prioceiling )                                                 
  10c73e:	85 db                	test   %ebx,%ebx                      
  10c740:	74 19                	je     10c75b <pthread_mutex_getprioceiling+0x27>
    return EINVAL;                                                    
                                                                      
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
  10c742:	83 ec 08             	sub    $0x8,%esp                      
  10c745:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c748:	50                   	push   %eax                           
  10c749:	ff 75 08             	pushl  0x8(%ebp)                      
  10c74c:	e8 3b ff ff ff       	call   10c68c <_POSIX_Mutex_Get>      
  switch ( location ) {                                               
  10c751:	83 c4 10             	add    $0x10,%esp                     
  10c754:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c757:	85 d2                	test   %edx,%edx                      
  10c759:	74 0d                	je     10c768 <pthread_mutex_getprioceiling+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10c75b:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10c760:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c763:	c9                   	leave                                 
  10c764:	c3                   	ret                                   
  10c765:	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);           
  10c768:	0f b6 15 dc 83 12 00 	movzbl 0x1283dc,%edx                  
  10c76f:	2b 50 60             	sub    0x60(%eax),%edx                
  10c772:	89 13                	mov    %edx,(%ebx)                    
                                                                      
    case OBJECTS_LOCAL:                                               
      *prioceiling = _POSIX_Priority_From_core(                       
        the_mutex->Mutex.Attributes.priority_ceiling                  
      );                                                              
      _Thread_Enable_dispatch();                                      
  10c774:	e8 37 34 00 00       	call   10fbb0 <_Thread_Enable_dispatch>
      return 0;                                                       
  10c779:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10c77b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c77e:	c9                   	leave                                 
  10c77f:	c3                   	ret                                   
                                                                      

0010c780 <pthread_mutex_init>: int pthread_mutex_init( pthread_mutex_t *mutex, const pthread_mutexattr_t *attr ) {
  10c780:	55                   	push   %ebp                           
  10c781:	89 e5                	mov    %esp,%ebp                      
  10c783:	57                   	push   %edi                           
  10c784:	56                   	push   %esi                           
  10c785:	53                   	push   %ebx                           
  10c786:	83 ec 1c             	sub    $0x1c,%esp                     
  10c789:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10c78c:	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;                                        
  10c78f:	85 db                	test   %ebx,%ebx                      
  10c791:	0f 84 09 01 00 00    	je     10c8a0 <pthread_mutex_init+0x120>
  else        the_attr = &_POSIX_Mutex_Default_attributes;            
                                                                      
  /* Check for NULL mutex */                                          
  if ( !mutex )                                                       
  10c797:	85 f6                	test   %esi,%esi                      
  10c799:	0f 84 e5 00 00 00    	je     10c884 <pthread_mutex_init+0x104>
      }                                                               
    }                                                                 
  }                                                                   
  #endif                                                              
                                                                      
  if ( !the_attr->is_initialized )                                    
  10c79f:	8b 13                	mov    (%ebx),%edx                    
  10c7a1:	85 d2                	test   %edx,%edx                      
  10c7a3:	0f 84 db 00 00 00    	je     10c884 <pthread_mutex_init+0x104>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
  10c7a9:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10c7ac:	83 f8 01             	cmp    $0x1,%eax                      
  10c7af:	0f 84 f7 00 00 00    	je     10c8ac <pthread_mutex_init+0x12c>
    return ENOSYS;                                                    
                                                                      
  if ( the_attr->process_shared != PTHREAD_PROCESS_PRIVATE )          
  10c7b5:	85 c0                	test   %eax,%eax                      
  10c7b7:	0f 85 c7 00 00 00    	jne    10c884 <pthread_mutex_init+0x104>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  Determine the discipline of the mutex                           
   */                                                                 
  switch ( the_attr->protocol ) {                                     
  10c7bd:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10c7c0:	83 f8 01             	cmp    $0x1,%eax                      
  10c7c3:	0f 84 eb 00 00 00    	je     10c8b4 <pthread_mutex_init+0x134>
  10c7c9:	83 f8 02             	cmp    $0x2,%eax                      
  10c7cc:	0f 84 c2 00 00 00    	je     10c894 <pthread_mutex_init+0x114>
  10c7d2:	85 c0                	test   %eax,%eax                      
  10c7d4:	0f 85 aa 00 00 00    	jne    10c884 <pthread_mutex_init+0x104>
    case PTHREAD_PRIO_NONE:                                           
      the_discipline = CORE_MUTEX_DISCIPLINES_FIFO;                   
  10c7da:	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 ) )          
  10c7e1:	83 ec 0c             	sub    $0xc,%esp                      
  10c7e4:	ff 73 08             	pushl  0x8(%ebx)                      
  10c7e7:	e8 58 03 00 00       	call   10cb44 <_POSIX_Priority_Is_valid>
  10c7ec:	83 c4 10             	add    $0x10,%esp                     
  10c7ef:	84 c0                	test   %al,%al                        
  10c7f1:	0f 84 8d 00 00 00    	je     10c884 <pthread_mutex_init+0x104>
#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)                          
  /*                                                                  
   *  Validate the mutex type and set appropriate SuperCore mutex     
   *  attributes.                                                     
   */                                                                 
  switch ( the_attr->type ) {                                         
  10c7f7:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)                
  10c7fb:	0f 87 83 00 00 00    	ja     10c884 <pthread_mutex_init+0x104>
  10c801:	a1 8c c6 12 00       	mov    0x12c68c,%eax                  
  10c806:	40                   	inc    %eax                           
  10c807:	a3 8c c6 12 00       	mov    %eax,0x12c68c                  
 *  _POSIX_Mutex_Allocate                                             
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void )
{                                                                     
  return (POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information );
  10c80c:	83 ec 0c             	sub    $0xc,%esp                      
  10c80f:	68 60 ca 12 00       	push   $0x12ca60                      
  10c814:	e8 d3 23 00 00       	call   10ebec <_Objects_Allocate>     
  10c819:	89 c7                	mov    %eax,%edi                      
   */                                                                 
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
  10c81b:	83 c4 10             	add    $0x10,%esp                     
  10c81e:	85 c0                	test   %eax,%eax                      
  10c820:	0f 84 9a 00 00 00    	je     10c8c0 <pthread_mutex_init+0x140>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
  10c826:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10c829:	89 47 10             	mov    %eax,0x10(%edi)                
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
  10c82c:	8d 57 54             	lea    0x54(%edi),%edx                
                                                                      
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  10c82f:	31 c0                	xor    %eax,%eax                      
  10c831:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)                
  10c835:	0f 94 c0             	sete   %al                            
  10c838:	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;                          
  10c83b:	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);
  10c83f:	0f b6 05 dc 83 12 00 	movzbl 0x1283dc,%eax                  
  10c846:	2b 43 08             	sub    0x8(%ebx),%eax                 
  10c849:	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;                        
  10c84c:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c84f:	89 47 5c             	mov    %eax,0x5c(%edi)                
                                                                      
  /*                                                                  
   *  Must be initialized to unlocked.                                
   */                                                                 
  _CORE_mutex_Initialize(                                             
  10c852:	50                   	push   %eax                           
  10c853:	6a 01                	push   $0x1                           
  10c855:	52                   	push   %edx                           
  10c856:	8d 47 14             	lea    0x14(%edi),%eax                
  10c859:	50                   	push   %eax                           
  10c85a:	e8 19 1b 00 00       	call   10e378 <_CORE_mutex_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c85f:	8b 47 08             	mov    0x8(%edi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c862:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c865:	8b 15 7c ca 12 00    	mov    0x12ca7c,%edx                  
  10c86b:	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;                                   
  10c86e:	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;                                      
  10c875:	89 06                	mov    %eax,(%esi)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10c877:	e8 34 33 00 00       	call   10fbb0 <_Thread_Enable_dispatch>
  return 0;                                                           
  10c87c:	83 c4 10             	add    $0x10,%esp                     
  10c87f:	31 c0                	xor    %eax,%eax                      
  10c881:	eb 06                	jmp    10c889 <pthread_mutex_init+0x109>
  10c883:	90                   	nop                                   
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      break;                                                          
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10c884:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *mutex = the_mutex->Object.id;                                      
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10c889:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c88c:	5b                   	pop    %ebx                           
  10c88d:	5e                   	pop    %esi                           
  10c88e:	5f                   	pop    %edi                           
  10c88f:	c9                   	leave                                 
  10c890:	c3                   	ret                                   
  10c891:	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;       
  10c894:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)               
      break;                                                          
  10c89b:	e9 41 ff ff ff       	jmp    10c7e1 <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;            
  10c8a0:	bb e0 ca 12 00       	mov    $0x12cae0,%ebx                 
  10c8a5:	e9 ed fe ff ff       	jmp    10c797 <pthread_mutex_init+0x17>
  10c8aa:	66 90                	xchg   %ax,%ax                        
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
    return ENOSYS;                                                    
  10c8ac:	b8 58 00 00 00       	mov    $0x58,%eax                     
  10c8b1:	eb d6                	jmp    10c889 <pthread_mutex_init+0x109>
  10c8b3:	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;       
  10c8b4:	c7 45 e4 02 00 00 00 	movl   $0x2,-0x1c(%ebp)               
  10c8bb:	e9 21 ff ff ff       	jmp    10c7e1 <pthread_mutex_init+0x61>
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
    _Thread_Enable_dispatch();                                        
  10c8c0:	e8 eb 32 00 00       	call   10fbb0 <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10c8c5:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10c8ca:	eb bd                	jmp    10c889 <pthread_mutex_init+0x109>
                                                                      

0010c9d8 <pthread_mutex_timedlock>: int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) {
  10c9d8:	55                   	push   %ebp                           
  10c9d9:	89 e5                	mov    %esp,%ebp                      
  10c9db:	56                   	push   %esi                           
  10c9dc:	53                   	push   %ebx                           
  10c9dd:	83 ec 18             	sub    $0x18,%esp                     
  10c9e0:	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 );       
  10c9e3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10c9e6:	50                   	push   %eax                           
  10c9e7:	ff 75 0c             	pushl  0xc(%ebp)                      
  10c9ea:	e8 cd 00 00 00       	call   10cabc <_POSIX_Absolute_timeout_to_ticks>
  10c9ef:	89 c3                	mov    %eax,%ebx                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
  10c9f1:	83 c4 10             	add    $0x10,%esp                     
  10c9f4:	83 f8 03             	cmp    $0x3,%eax                      
  10c9f7:	74 2f                	je     10ca28 <pthread_mutex_timedlock+0x50>
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Mutex_Lock_support( mutex, do_wait, ticks );   
  10c9f9:	50                   	push   %eax                           
  10c9fa:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10c9fd:	6a 00                	push   $0x0                           
  10c9ff:	56                   	push   %esi                           
  10ca00:	e8 db fe ff ff       	call   10c8e0 <_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) ) {                         
  10ca05:	83 c4 10             	add    $0x10,%esp                     
  10ca08:	83 f8 10             	cmp    $0x10,%eax                     
  10ca0b:	74 07                	je     10ca14 <pthread_mutex_timedlock+0x3c><== ALWAYS TAKEN
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10ca0d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ca10:	5b                   	pop    %ebx                           
  10ca11:	5e                   	pop    %esi                           
  10ca12:	c9                   	leave                                 
  10ca13:	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 )                   
  10ca14:	85 db                	test   %ebx,%ebx                      
  10ca16:	74 28                	je     10ca40 <pthread_mutex_timedlock+0x68><== NEVER TAKEN
      return EINVAL;                                                  
    if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||               
  10ca18:	4b                   	dec    %ebx                           
  10ca19:	83 fb 01             	cmp    $0x1,%ebx                      
  10ca1c:	77 ef                	ja     10ca0d <pthread_mutex_timedlock+0x35><== NEVER TAKEN
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  10ca1e:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10ca23:	eb e8                	jmp    10ca0d <pthread_mutex_timedlock+0x35>
  10ca25:	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 );   
  10ca28:	52                   	push   %edx                           
  10ca29:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10ca2c:	6a 01                	push   $0x1                           
  10ca2e:	56                   	push   %esi                           
  10ca2f:	e8 ac fe ff ff       	call   10c8e0 <_POSIX_Mutex_Lock_support>
  10ca34:	83 c4 10             	add    $0x10,%esp                     
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10ca37:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ca3a:	5b                   	pop    %ebx                           
  10ca3b:	5e                   	pop    %esi                           
  10ca3c:	c9                   	leave                                 
  10ca3d:	c3                   	ret                                   
  10ca3e:	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;                                                  
  10ca40:	b8 16 00 00 00       	mov    $0x16,%eax                     <== NOT EXECUTED
  10ca45:	eb c6                	jmp    10ca0d <pthread_mutex_timedlock+0x35><== NOT EXECUTED
                                                                      

0010c4bc <pthread_mutexattr_destroy>: */ int pthread_mutexattr_destroy( pthread_mutexattr_t *attr ) {
  10c4bc:	55                   	push   %ebp                           
  10c4bd:	89 e5                	mov    %esp,%ebp                      
  10c4bf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || !attr->is_initialized )                               
  10c4c2:	85 c0                	test   %eax,%eax                      
  10c4c4:	74 12                	je     10c4d8 <pthread_mutexattr_destroy+0x1c>
  10c4c6:	8b 10                	mov    (%eax),%edx                    
  10c4c8:	85 d2                	test   %edx,%edx                      
  10c4ca:	74 0c                	je     10c4d8 <pthread_mutexattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10c4cc:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10c4d2:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c4d4:	c9                   	leave                                 
  10c4d5:	c3                   	ret                                   
  10c4d6:	66 90                	xchg   %ax,%ax                        
int pthread_mutexattr_destroy(                                        
  pthread_mutexattr_t *attr                                           
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
  10c4d8:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10c4dd:	c9                   	leave                                 
  10c4de:	c3                   	ret                                   
                                                                      

0010c584 <pthread_mutexattr_setprioceiling>: int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr, int prioceiling ) {
  10c584:	55                   	push   %ebp                           
  10c585:	89 e5                	mov    %esp,%ebp                      
  10c587:	56                   	push   %esi                           
  10c588:	53                   	push   %ebx                           
  10c589:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c58c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !attr || !attr->is_initialized )                               
  10c58f:	85 db                	test   %ebx,%ebx                      
  10c591:	74 06                	je     10c599 <pthread_mutexattr_setprioceiling+0x15>
  10c593:	8b 03                	mov    (%ebx),%eax                    
  10c595:	85 c0                	test   %eax,%eax                      
  10c597:	75 0f                	jne    10c5a8 <pthread_mutexattr_setprioceiling+0x24>
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
    return EINVAL;                                                    
  10c599:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->prio_ceiling = prioceiling;                                   
  return 0;                                                           
}                                                                     
  10c59e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c5a1:	5b                   	pop    %ebx                           
  10c5a2:	5e                   	pop    %esi                           
  10c5a3:	c9                   	leave                                 
  10c5a4:	c3                   	ret                                   
  10c5a5:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
  10c5a8:	83 ec 0c             	sub    $0xc,%esp                      
  10c5ab:	56                   	push   %esi                           
  10c5ac:	e8 93 05 00 00       	call   10cb44 <_POSIX_Priority_Is_valid>
  10c5b1:	83 c4 10             	add    $0x10,%esp                     
  10c5b4:	84 c0                	test   %al,%al                        
  10c5b6:	74 e1                	je     10c599 <pthread_mutexattr_setprioceiling+0x15>
    return EINVAL;                                                    
                                                                      
  attr->prio_ceiling = prioceiling;                                   
  10c5b8:	89 73 08             	mov    %esi,0x8(%ebx)                 
  return 0;                                                           
  10c5bb:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c5bd:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10c5c0:	5b                   	pop    %ebx                           
  10c5c1:	5e                   	pop    %esi                           
  10c5c2:	c9                   	leave                                 
  10c5c3:	c3                   	ret                                   
                                                                      

0010c5ec <pthread_mutexattr_setpshared>: int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) {
  10c5ec:	55                   	push   %ebp                           
  10c5ed:	89 e5                	mov    %esp,%ebp                      
  10c5ef:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c5f2:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  10c5f5:	85 c0                	test   %eax,%eax                      
  10c5f7:	74 0b                	je     10c604 <pthread_mutexattr_setpshared+0x18>
  10c5f9:	8b 08                	mov    (%eax),%ecx                    
  10c5fb:	85 c9                	test   %ecx,%ecx                      
  10c5fd:	74 05                	je     10c604 <pthread_mutexattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10c5ff:	83 fa 01             	cmp    $0x1,%edx                      
  10c602:	76 08                	jbe    10c60c <pthread_mutexattr_setpshared+0x20><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10c604:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10c609:	c9                   	leave                                 
  10c60a:	c3                   	ret                                   
  10c60b:	90                   	nop                                   
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10c60c:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10c60f:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10c611:	c9                   	leave                                 
  10c612:	c3                   	ret                                   
                                                                      

0010a7e0 <pthread_mutexattr_settype>: #if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) int pthread_mutexattr_settype( pthread_mutexattr_t *attr, int type ) {
  10a7e0:	55                   	push   %ebp                           
  10a7e1:	89 e5                	mov    %esp,%ebp                      
  10a7e3:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10a7e6:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr || !attr->is_initialized )                               
  10a7e9:	85 c0                	test   %eax,%eax                      
  10a7eb:	74 0b                	je     10a7f8 <pthread_mutexattr_settype+0x18>
  10a7ed:	8b 08                	mov    (%eax),%ecx                    
  10a7ef:	85 c9                	test   %ecx,%ecx                      
  10a7f1:	74 05                	je     10a7f8 <pthread_mutexattr_settype+0x18><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( type ) {                                                   
  10a7f3:	83 fa 03             	cmp    $0x3,%edx                      
  10a7f6:	76 08                	jbe    10a800 <pthread_mutexattr_settype+0x20>
    case PTHREAD_MUTEX_DEFAULT:                                       
      attr->type = type;                                              
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10a7f8:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10a7fd:	c9                   	leave                                 
  10a7fe:	c3                   	ret                                   
  10a7ff:	90                   	nop                                   
  switch ( type ) {                                                   
    case PTHREAD_MUTEX_NORMAL:                                        
    case PTHREAD_MUTEX_RECURSIVE:                                     
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      attr->type = type;                                              
  10a800:	89 50 10             	mov    %edx,0x10(%eax)                
      return 0;                                                       
  10a803:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10a805:	c9                   	leave                                 
  10a806:	c3                   	ret                                   
                                                                      

0010b344 <pthread_once>: int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) {
  10b344:	55                   	push   %ebp                           
  10b345:	89 e5                	mov    %esp,%ebp                      
  10b347:	57                   	push   %edi                           
  10b348:	56                   	push   %esi                           
  10b349:	53                   	push   %ebx                           
  10b34a:	83 ec 1c             	sub    $0x1c,%esp                     
  10b34d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b350:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  if ( !once_control || !init_routine )                               
  10b353:	85 db                	test   %ebx,%ebx                      
  10b355:	74 51                	je     10b3a8 <pthread_once+0x64>     
  10b357:	85 f6                	test   %esi,%esi                      
  10b359:	74 4d                	je     10b3a8 <pthread_once+0x64>     
    return EINVAL;                                                    
                                                                      
  if ( !once_control->init_executed ) {                               
  10b35b:	8b 7b 04             	mov    0x4(%ebx),%edi                 
  10b35e:	85 ff                	test   %edi,%edi                      
  10b360:	74 0a                	je     10b36c <pthread_once+0x28>     
      once_control->init_executed = true;                             
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
  10b362:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b364:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b367:	5b                   	pop    %ebx                           
  10b368:	5e                   	pop    %esi                           
  10b369:	5f                   	pop    %edi                           
  10b36a:	c9                   	leave                                 
  10b36b:	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); 
  10b36c:	51                   	push   %ecx                           
  10b36d:	8d 7d e4             	lea    -0x1c(%ebp),%edi               
  10b370:	57                   	push   %edi                           
  10b371:	68 00 01 00 00       	push   $0x100                         
  10b376:	68 00 01 00 00       	push   $0x100                         
  10b37b:	e8 3c 0b 00 00       	call   10bebc <rtems_task_mode>       
    if ( !once_control->init_executed ) {                             
  10b380:	83 c4 10             	add    $0x10,%esp                     
  10b383:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10b386:	85 d2                	test   %edx,%edx                      
  10b388:	74 2e                	je     10b3b8 <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);         
  10b38a:	50                   	push   %eax                           
  10b38b:	57                   	push   %edi                           
  10b38c:	68 00 01 00 00       	push   $0x100                         
  10b391:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10b394:	e8 23 0b 00 00       	call   10bebc <rtems_task_mode>       
  10b399:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
  return 0;                                                           
  10b39c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b39e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b3a1:	5b                   	pop    %ebx                           
  10b3a2:	5e                   	pop    %esi                           
  10b3a3:	5f                   	pop    %edi                           
  10b3a4:	c9                   	leave                                 
  10b3a5:	c3                   	ret                                   
  10b3a6:	66 90                	xchg   %ax,%ax                        
  pthread_once_t  *once_control,                                      
  void           (*init_routine)(void)                                
)                                                                     
{                                                                     
  if ( !once_control || !init_routine )                               
    return EINVAL;                                                    
  10b3a8:	b8 16 00 00 00       	mov    $0x16,%eax                     
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
}                                                                     
  10b3ad:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b3b0:	5b                   	pop    %ebx                           
  10b3b1:	5e                   	pop    %esi                           
  10b3b2:	5f                   	pop    %edi                           
  10b3b3:	c9                   	leave                                 
  10b3b4:	c3                   	ret                                   
  10b3b5:	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;                            
  10b3b8:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)                    
      once_control->init_executed = true;                             
  10b3be:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)                 
      (*init_routine)();                                              
  10b3c5:	ff d6                	call   *%esi                          
  10b3c7:	eb c1                	jmp    10b38a <pthread_once+0x46>     
                                                                      

0010ba28 <pthread_rwlock_destroy>: */ int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ) {
  10ba28:	55                   	push   %ebp                           
  10ba29:	89 e5                	mov    %esp,%ebp                      
  10ba2b:	53                   	push   %ebx                           
  10ba2c:	83 ec 14             	sub    $0x14,%esp                     
  10ba2f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  POSIX_RWLock_Control *the_rwlock = NULL;                            
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
  10ba32:	85 c0                	test   %eax,%eax                      
  10ba34:	74 42                	je     10ba78 <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(                       
  10ba36:	53                   	push   %ebx                           
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10ba37:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10ba3a:	52                   	push   %edx                           
  10ba3b:	ff 30                	pushl  (%eax)                         
  10ba3d:	68 40 b3 12 00       	push   $0x12b340                      
  10ba42:	e8 f1 29 00 00       	call   10e438 <_Objects_Get>          
  10ba47:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10ba49:	83 c4 10             	add    $0x10,%esp                     
  10ba4c:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10ba4f:	85 c9                	test   %ecx,%ecx                      
  10ba51:	75 25                	jne    10ba78 <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 ) {
  10ba53:	83 ec 0c             	sub    $0xc,%esp                      
  10ba56:	8d 40 10             	lea    0x10(%eax),%eax                
  10ba59:	50                   	push   %eax                           
  10ba5a:	e8 b9 3c 00 00       	call   10f718 <_Thread_queue_First>   
  10ba5f:	83 c4 10             	add    $0x10,%esp                     
  10ba62:	85 c0                	test   %eax,%eax                      
  10ba64:	74 1e                	je     10ba84 <pthread_rwlock_destroy+0x5c>
        _Thread_Enable_dispatch();                                    
  10ba66:	e8 dd 34 00 00       	call   10ef48 <_Thread_Enable_dispatch>
        return EBUSY;                                                 
  10ba6b:	b8 10 00 00 00       	mov    $0x10,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10ba70:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba73:	c9                   	leave                                 
  10ba74:	c3                   	ret                                   
  10ba75:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
  10ba78:	b8 16 00 00 00       	mov    $0x16,%eax                     
}                                                                     
  10ba7d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba80:	c9                   	leave                                 
  10ba81:	c3                   	ret                                   
  10ba82:	66 90                	xchg   %ax,%ax                        
                                                                      
      /*                                                              
       *  POSIX doesn't require behavior when it is locked.           
       */                                                             
                                                                      
      _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object );
  10ba84:	83 ec 08             	sub    $0x8,%esp                      
  10ba87:	53                   	push   %ebx                           
  10ba88:	68 40 b3 12 00       	push   $0x12b340                      
  10ba8d:	e8 6e 25 00 00       	call   10e000 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free (                        
  POSIX_RWLock_Control *the_RWLock                                    
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_RWLock_Information, &the_RWLock->Object );   
  10ba92:	58                   	pop    %eax                           
  10ba93:	5a                   	pop    %edx                           
  10ba94:	53                   	push   %ebx                           
  10ba95:	68 40 b3 12 00       	push   $0x12b340                      
  10ba9a:	e8 59 28 00 00       	call   10e2f8 <_Objects_Free>         
                                                                      
      _POSIX_RWLock_Free( the_rwlock );                               
                                                                      
      _Thread_Enable_dispatch();                                      
  10ba9f:	e8 a4 34 00 00       	call   10ef48 <_Thread_Enable_dispatch>
      return 0;                                                       
  10baa4:	83 c4 10             	add    $0x10,%esp                     
  10baa7:	31 c0                	xor    %eax,%eax                      
  10baa9:	eb d2                	jmp    10ba7d <pthread_rwlock_destroy+0x55>
                                                                      

0010baac <pthread_rwlock_init>: int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) {
  10baac:	55                   	push   %ebp                           
  10baad:	89 e5                	mov    %esp,%ebp                      
  10baaf:	56                   	push   %esi                           
  10bab0:	53                   	push   %ebx                           
  10bab1:	83 ec 20             	sub    $0x20,%esp                     
  10bab4:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10bab7:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  const pthread_rwlockattr_t  *the_attr;                              
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !rwlock )                                                      
  10baba:	85 db                	test   %ebx,%ebx                      
  10babc:	74 15                	je     10bad3 <pthread_rwlock_init+0x27>
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
  10babe:	85 f6                	test   %esi,%esi                      
  10bac0:	0f 84 8e 00 00 00    	je     10bb54 <pthread_rwlock_init+0xa8>
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
  10bac6:	8b 16                	mov    (%esi),%edx                    
  10bac8:	85 d2                	test   %edx,%edx                      
  10baca:	74 07                	je     10bad3 <pthread_rwlock_init+0x27><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
  10bacc:	8b 46 04             	mov    0x4(%esi),%eax                 
  10bacf:	85 c0                	test   %eax,%eax                      
  10bad1:	74 0d                	je     10bae0 <pthread_rwlock_init+0x34><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
  10bad3:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
  10bad8:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10badb:	5b                   	pop    %ebx                           
  10badc:	5e                   	pop    %esi                           
  10badd:	c9                   	leave                                 
  10bade:	c3                   	ret                                   
  10badf:	90                   	nop                                   
 */                                                                   
RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(         
  CORE_RWLock_Attributes *the_attributes                              
)                                                                     
{                                                                     
  the_attributes->XXX = 0;                                            
  10bae0:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10bae7:	a1 ec b0 12 00       	mov    0x12b0ec,%eax                  
  10baec:	40                   	inc    %eax                           
  10baed:	a3 ec b0 12 00       	mov    %eax,0x12b0ec                  
 *  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 );                  
  10baf2:	83 ec 0c             	sub    $0xc,%esp                      
  10baf5:	68 40 b3 12 00       	push   $0x12b340                      
  10bafa:	e8 85 24 00 00       	call   10df84 <_Objects_Allocate>     
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
  10baff:	83 c4 10             	add    $0x10,%esp                     
  10bb02:	85 c0                	test   %eax,%eax                      
  10bb04:	74 42                	je     10bb48 <pthread_rwlock_init+0x9c>
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes );    
  10bb06:	83 ec 08             	sub    $0x8,%esp                      
  10bb09:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10bb0c:	52                   	push   %edx                           
  10bb0d:	8d 50 10             	lea    0x10(%eax),%edx                
  10bb10:	52                   	push   %edx                           
  10bb11:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10bb14:	e8 53 1c 00 00       	call   10d76c <_CORE_RWLock_Initialize>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10bb19:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10bb1c:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10bb1f:	0f b7 f2             	movzwl %dx,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10bb22:	8b 0d 5c b3 12 00    	mov    0x12b35c,%ecx                  
  10bb28:	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;                                   
  10bb2b:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)                 
    &_POSIX_RWLock_Information,                                       
    &the_rwlock->Object,                                              
    0                                                                 
  );                                                                  
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
  10bb32:	89 13                	mov    %edx,(%ebx)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  10bb34:	e8 0f 34 00 00       	call   10ef48 <_Thread_Enable_dispatch>
  return 0;                                                           
  10bb39:	83 c4 10             	add    $0x10,%esp                     
  10bb3c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10bb3e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bb41:	5b                   	pop    %ebx                           
  10bb42:	5e                   	pop    %esi                           
  10bb43:	c9                   	leave                                 
  10bb44:	c3                   	ret                                   
  10bb45:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
    _Thread_Enable_dispatch();                                        
  10bb48:	e8 fb 33 00 00       	call   10ef48 <_Thread_Enable_dispatch>
    return EAGAIN;                                                    
  10bb4d:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  10bb52:	eb 84                	jmp    10bad8 <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 );                  
  10bb54:	83 ec 0c             	sub    $0xc,%esp                      
  10bb57:	8d 75 ec             	lea    -0x14(%ebp),%esi               
  10bb5a:	56                   	push   %esi                           
  10bb5b:	e8 84 09 00 00       	call   10c4e4 <pthread_rwlockattr_init>
  10bb60:	83 c4 10             	add    $0x10,%esp                     
  10bb63:	e9 5e ff ff ff       	jmp    10bac6 <pthread_rwlock_init+0x1a>
                                                                      

0010bbd0 <pthread_rwlock_timedrdlock>: int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
  10bbd0:	55                   	push   %ebp                           
  10bbd1:	89 e5                	mov    %esp,%ebp                      
  10bbd3:	56                   	push   %esi                           
  10bbd4:	53                   	push   %ebx                           
  10bbd5:	83 ec 20             	sub    $0x20,%esp                     
  10bbd8:	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 )                                                      
  10bbdb:	85 db                	test   %ebx,%ebx                      
  10bbdd:	74 7d                	je     10bc5c <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 );       
  10bbdf:	83 ec 08             	sub    $0x8,%esp                      
  10bbe2:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10bbe5:	50                   	push   %eax                           
  10bbe6:	ff 75 0c             	pushl  0xc(%ebp)                      
  10bbe9:	e8 a6 62 00 00       	call   111e94 <_POSIX_Absolute_timeout_to_ticks>
  10bbee:	89 c6                	mov    %eax,%esi                      
  10bbf0:	83 c4 0c             	add    $0xc,%esp                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10bbf3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bbf6:	50                   	push   %eax                           
  10bbf7:	ff 33                	pushl  (%ebx)                         
  10bbf9:	68 40 b3 12 00       	push   $0x12b340                      
  10bbfe:	e8 35 28 00 00       	call   10e438 <_Objects_Get>          
  switch ( location ) {                                               
  10bc03:	83 c4 10             	add    $0x10,%esp                     
  10bc06:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bc09:	85 d2                	test   %edx,%edx                      
  10bc0b:	75 4f                	jne    10bc5c <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,                                
  10bc0d:	83 fe 03             	cmp    $0x3,%esi                      
  10bc10:	0f 94 c2             	sete   %dl                            
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
  10bc13:	83 ec 0c             	sub    $0xc,%esp                      
  10bc16:	6a 00                	push   $0x0                           
  10bc18:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10bc1b:	0f b6 ca             	movzbl %dl,%ecx                       
  10bc1e:	51                   	push   %ecx                           
  10bc1f:	ff 33                	pushl  (%ebx)                         
  10bc21:	83 c0 10             	add    $0x10,%eax                     
  10bc24:	50                   	push   %eax                           
  10bc25:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10bc28:	e8 73 1b 00 00       	call   10d7a0 <_CORE_RWLock_Obtain_for_reading>
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10bc2d:	83 c4 20             	add    $0x20,%esp                     
  10bc30:	e8 13 33 00 00       	call   10ef48 <_Thread_Enable_dispatch>
      if ( !do_wait ) {                                               
  10bc35:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10bc38:	84 d2                	test   %dl,%dl                        
  10bc3a:	75 40                	jne    10bc7c <pthread_rwlock_timedrdlock+0xac>
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
  10bc3c:	a1 98 b6 12 00       	mov    0x12b698,%eax                  
  10bc41:	8b 40 34             	mov    0x34(%eax),%eax                
  10bc44:	83 f8 02             	cmp    $0x2,%eax                      
  10bc47:	74 1f                	je     10bc68 <pthread_rwlock_timedrdlock+0x98>
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
  10bc49:	83 ec 0c             	sub    $0xc,%esp                      
  10bc4c:	50                   	push   %eax                           
  10bc4d:	e8 ee 00 00 00       	call   10bd40 <_POSIX_RWLock_Translate_core_RWLock_return_code>
  10bc52:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10bc55:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bc58:	5b                   	pop    %ebx                           
  10bc59:	5e                   	pop    %esi                           
  10bc5a:	c9                   	leave                                 
  10bc5b:	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;                                                   
  10bc5c:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10bc61:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bc64:	5b                   	pop    %ebx                           
  10bc65:	5e                   	pop    %esi                           
  10bc66:	c9                   	leave                                 
  10bc67:	c3                   	ret                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
  10bc68:	85 f6                	test   %esi,%esi                      
  10bc6a:	74 f0                	je     10bc5c <pthread_rwlock_timedrdlock+0x8c><== NEVER TAKEN
	    return EINVAL;                                                   
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
  10bc6c:	4e                   	dec    %esi                           
  10bc6d:	83 fe 01             	cmp    $0x1,%esi                      
  10bc70:	77 d7                	ja     10bc49 <pthread_rwlock_timedrdlock+0x79><== NEVER TAKEN
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
  10bc72:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10bc77:	eb e8                	jmp    10bc61 <pthread_rwlock_timedrdlock+0x91>
  10bc79:	8d 76 00             	lea    0x0(%esi),%esi                 
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
  10bc7c:	a1 98 b6 12 00       	mov    0x12b698,%eax                  
  10bc81:	8b 40 34             	mov    0x34(%eax),%eax                
  10bc84:	eb c3                	jmp    10bc49 <pthread_rwlock_timedrdlock+0x79>
                                                                      

0010bc88 <pthread_rwlock_timedwrlock>: int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
  10bc88:	55                   	push   %ebp                           
  10bc89:	89 e5                	mov    %esp,%ebp                      
  10bc8b:	56                   	push   %esi                           
  10bc8c:	53                   	push   %ebx                           
  10bc8d:	83 ec 20             	sub    $0x20,%esp                     
  10bc90:	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 )                                                      
  10bc93:	85 db                	test   %ebx,%ebx                      
  10bc95:	74 7d                	je     10bd14 <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 );       
  10bc97:	83 ec 08             	sub    $0x8,%esp                      
  10bc9a:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10bc9d:	50                   	push   %eax                           
  10bc9e:	ff 75 0c             	pushl  0xc(%ebp)                      
  10bca1:	e8 ee 61 00 00       	call   111e94 <_POSIX_Absolute_timeout_to_ticks>
  10bca6:	89 c6                	mov    %eax,%esi                      
  10bca8:	83 c4 0c             	add    $0xc,%esp                      
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  10bcab:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bcae:	50                   	push   %eax                           
  10bcaf:	ff 33                	pushl  (%ebx)                         
  10bcb1:	68 40 b3 12 00       	push   $0x12b340                      
  10bcb6:	e8 7d 27 00 00       	call   10e438 <_Objects_Get>          
  switch ( location ) {                                               
  10bcbb:	83 c4 10             	add    $0x10,%esp                     
  10bcbe:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bcc1:	85 d2                	test   %edx,%edx                      
  10bcc3:	75 4f                	jne    10bd14 <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,                                
  10bcc5:	83 fe 03             	cmp    $0x3,%esi                      
  10bcc8:	0f 94 c2             	sete   %dl                            
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
  10bccb:	83 ec 0c             	sub    $0xc,%esp                      
  10bcce:	6a 00                	push   $0x0                           
  10bcd0:	ff 75 f0             	pushl  -0x10(%ebp)                    
  10bcd3:	0f b6 ca             	movzbl %dl,%ecx                       
  10bcd6:	51                   	push   %ecx                           
  10bcd7:	ff 33                	pushl  (%ebx)                         
  10bcd9:	83 c0 10             	add    $0x10,%eax                     
  10bcdc:	50                   	push   %eax                           
  10bcdd:	88 55 e4             	mov    %dl,-0x1c(%ebp)                
  10bce0:	e8 83 1b 00 00       	call   10d868 <_CORE_RWLock_Obtain_for_writing>
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  10bce5:	83 c4 20             	add    $0x20,%esp                     
  10bce8:	e8 5b 32 00 00       	call   10ef48 <_Thread_Enable_dispatch>
      if ( !do_wait &&                                                
  10bced:	8a 55 e4             	mov    -0x1c(%ebp),%dl                
  10bcf0:	84 d2                	test   %dl,%dl                        
  10bcf2:	75 40                	jne    10bd34 <pthread_rwlock_timedwrlock+0xac>
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
  10bcf4:	a1 98 b6 12 00       	mov    0x12b698,%eax                  
  10bcf9:	8b 40 34             	mov    0x34(%eax),%eax                
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
  10bcfc:	83 f8 02             	cmp    $0x2,%eax                      
  10bcff:	74 1f                	je     10bd20 <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(         
  10bd01:	83 ec 0c             	sub    $0xc,%esp                      
  10bd04:	50                   	push   %eax                           
  10bd05:	e8 36 00 00 00       	call   10bd40 <_POSIX_RWLock_Translate_core_RWLock_return_code>
  10bd0a:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10bd0d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd10:	5b                   	pop    %ebx                           
  10bd11:	5e                   	pop    %esi                           
  10bd12:	c9                   	leave                                 
  10bd13:	c3                   	ret                                   
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
	  return EINVAL;                                                     
  10bd14:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
  10bd19:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd1c:	5b                   	pop    %ebx                           
  10bd1d:	5e                   	pop    %esi                           
  10bd1e:	c9                   	leave                                 
  10bd1f:	c3                   	ret                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
  10bd20:	85 f6                	test   %esi,%esi                      
  10bd22:	74 f0                	je     10bd14 <pthread_rwlock_timedwrlock+0x8c><== NEVER TAKEN
	  return EINVAL;                                                     
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
  10bd24:	4e                   	dec    %esi                           
  10bd25:	83 fe 01             	cmp    $0x1,%esi                      
  10bd28:	77 d7                	ja     10bd01 <pthread_rwlock_timedwrlock+0x79><== NEVER TAKEN
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
  10bd2a:	b8 74 00 00 00       	mov    $0x74,%eax                     
  10bd2f:	eb e8                	jmp    10bd19 <pthread_rwlock_timedwrlock+0x91>
  10bd31:	8d 76 00             	lea    0x0(%esi),%esi                 
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
  10bd34:	a1 98 b6 12 00       	mov    0x12b698,%eax                  
  10bd39:	8b 40 34             	mov    0x34(%eax),%eax                
  10bd3c:	eb c3                	jmp    10bd01 <pthread_rwlock_timedwrlock+0x79>
                                                                      

0010c49c <pthread_rwlockattr_destroy>: */ int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr ) {
  10c49c:	55                   	push   %ebp                           
  10c49d:	89 e5                	mov    %esp,%ebp                      
  10c49f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !attr || attr->is_initialized == false )                       
  10c4a2:	85 c0                	test   %eax,%eax                      
  10c4a4:	74 12                	je     10c4b8 <pthread_rwlockattr_destroy+0x1c>
  10c4a6:	8b 10                	mov    (%eax),%edx                    
  10c4a8:	85 d2                	test   %edx,%edx                      
  10c4aa:	74 0c                	je     10c4b8 <pthread_rwlockattr_destroy+0x1c>
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
  10c4ac:	c7 00 00 00 00 00    	movl   $0x0,(%eax)                    
  return 0;                                                           
  10c4b2:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c4b4:	c9                   	leave                                 
  10c4b5:	c3                   	ret                                   
  10c4b6:	66 90                	xchg   %ax,%ax                        
int pthread_rwlockattr_destroy(                                       
  pthread_rwlockattr_t *attr                                          
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
  10c4b8:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
  10c4bd:	c9                   	leave                                 
  10c4be:	c3                   	ret                                   
                                                                      

0010c508 <pthread_rwlockattr_setpshared>: int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) {
  10c508:	55                   	push   %ebp                           
  10c509:	89 e5                	mov    %esp,%ebp                      
  10c50b:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c50e:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  if ( !attr )                                                        
  10c511:	85 c0                	test   %eax,%eax                      
  10c513:	74 0b                	je     10c520 <pthread_rwlockattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
  10c515:	8b 08                	mov    (%eax),%ecx                    
  10c517:	85 c9                	test   %ecx,%ecx                      
  10c519:	74 05                	je     10c520 <pthread_rwlockattr_setpshared+0x18>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
  10c51b:	83 fa 01             	cmp    $0x1,%edx                      
  10c51e:	76 08                	jbe    10c528 <pthread_rwlockattr_setpshared+0x20><== ALWAYS TAKEN
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
  10c520:	b8 16 00 00 00       	mov    $0x16,%eax                     
  }                                                                   
}                                                                     
  10c525:	c9                   	leave                                 
  10c526:	c3                   	ret                                   
  10c527:	90                   	nop                                   
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
  10c528:	89 50 04             	mov    %edx,0x4(%eax)                 
      return 0;                                                       
  10c52b:	31 c0                	xor    %eax,%eax                      
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
  10c52d:	c9                   	leave                                 
  10c52e:	c3                   	ret                                   
                                                                      

0010a7bc <pthread_setcancelstate>: int pthread_setcancelstate( int state, int *oldstate ) {
  10a7bc:	55                   	push   %ebp                           
  10a7bd:	89 e5                	mov    %esp,%ebp                      
  10a7bf:	53                   	push   %ebx                           
  10a7c0:	83 ec 04             	sub    $0x4,%esp                      
  10a7c3:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10a7c6:	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() )                                        
  10a7c9:	8b 0d 14 90 12 00    	mov    0x129014,%ecx                  
  10a7cf:	85 c9                	test   %ecx,%ecx                      
  10a7d1:	75 15                	jne    10a7e8 <pthread_setcancelstate+0x2c>
    return EPROTO;                                                    
                                                                      
  if ( !oldstate )                                                    
  10a7d3:	85 c0                	test   %eax,%eax                      
  10a7d5:	74 05                	je     10a7dc <pthread_setcancelstate+0x20>
    return EINVAL;                                                    
                                                                      
  if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE )
  10a7d7:	83 fa 01             	cmp    $0x1,%edx                      
  10a7da:	76 18                	jbe    10a7f4 <pthread_setcancelstate+0x38>
    return EINVAL;                                                    
  10a7dc:	b8 16 00 00 00       	mov    $0x16,%eax                     
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
  10a7e1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a7e4:	c9                   	leave                                 
  10a7e5:	c3                   	ret                                   
  10a7e6:	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;                                                    
  10a7e8:	b8 47 00 00 00       	mov    $0x47,%eax                     
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
  10a7ed:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a7f0:	c9                   	leave                                 
  10a7f1:	c3                   	ret                                   
  10a7f2:	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 ];
  10a7f4:	8b 0d 18 90 12 00    	mov    0x129018,%ecx                  
  10a7fa:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10a800:	8b 1d 6c 8a 12 00    	mov    0x128a6c,%ebx                  
  10a806:	43                   	inc    %ebx                           
  10a807:	89 1d 6c 8a 12 00    	mov    %ebx,0x128a6c                  
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldstate = thread_support->cancelability_state;                  
  10a80d:	8b 99 d8 00 00 00    	mov    0xd8(%ecx),%ebx                
  10a813:	89 18                	mov    %ebx,(%eax)                    
    thread_support->cancelability_state = state;                      
  10a815:	89 91 d8 00 00 00    	mov    %edx,0xd8(%ecx)                
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
  10a81b:	83 ec 0c             	sub    $0xc,%esp                      
  10a81e:	ff 35 18 90 12 00    	pushl  0x129018                       
  10a824:	e8 43 54 00 00       	call   10fc6c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
  10a829:	83 c4 10             	add    $0x10,%esp                     
  10a82c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10a82e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a831:	c9                   	leave                                 
  10a832:	c3                   	ret                                   
                                                                      

0010a834 <pthread_setcanceltype>: int pthread_setcanceltype( int type, int *oldtype ) {
  10a834:	55                   	push   %ebp                           
  10a835:	89 e5                	mov    %esp,%ebp                      
  10a837:	53                   	push   %ebx                           
  10a838:	83 ec 04             	sub    $0x4,%esp                      
  10a83b:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10a83e:	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() )                                        
  10a841:	8b 0d 14 90 12 00    	mov    0x129014,%ecx                  
  10a847:	85 c9                	test   %ecx,%ecx                      
  10a849:	75 15                	jne    10a860 <pthread_setcanceltype+0x2c>
    return EPROTO;                                                    
                                                                      
  if ( !oldtype )                                                     
  10a84b:	85 c0                	test   %eax,%eax                      
  10a84d:	74 05                	je     10a854 <pthread_setcanceltype+0x20>
    return EINVAL;                                                    
                                                                      
  if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS )
  10a84f:	83 fa 01             	cmp    $0x1,%edx                      
  10a852:	76 18                	jbe    10a86c <pthread_setcanceltype+0x38>
    return EINVAL;                                                    
  10a854:	b8 16 00 00 00       	mov    $0x16,%eax                     
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
}                                                                     
  10a859:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a85c:	c9                   	leave                                 
  10a85d:	c3                   	ret                                   
  10a85e:	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;                                                    
  10a860:	b8 47 00 00 00       	mov    $0x47,%eax                     
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
}                                                                     
  10a865:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a868:	c9                   	leave                                 
  10a869:	c3                   	ret                                   
  10a86a:	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 ];
  10a86c:	8b 0d 18 90 12 00    	mov    0x129018,%ecx                  
  10a872:	8b 89 ec 00 00 00    	mov    0xec(%ecx),%ecx                
  10a878:	8b 1d 6c 8a 12 00    	mov    0x128a6c,%ebx                  
  10a87e:	43                   	inc    %ebx                           
  10a87f:	89 1d 6c 8a 12 00    	mov    %ebx,0x128a6c                  
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldtype = thread_support->cancelability_type;                    
  10a885:	8b 99 dc 00 00 00    	mov    0xdc(%ecx),%ebx                
  10a88b:	89 18                	mov    %ebx,(%eax)                    
    thread_support->cancelability_type = type;                        
  10a88d:	89 91 dc 00 00 00    	mov    %edx,0xdc(%ecx)                
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
  10a893:	83 ec 0c             	sub    $0xc,%esp                      
  10a896:	ff 35 18 90 12 00    	pushl  0x129018                       
  10a89c:	e8 cb 53 00 00       	call   10fc6c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
  10a8a1:	83 c4 10             	add    $0x10,%esp                     
  10a8a4:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10a8a6:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a8a9:	c9                   	leave                                 
  10a8aa:	c3                   	ret                                   
                                                                      

0010d2a8 <pthread_setschedparam>: int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) {
  10d2a8:	55                   	push   %ebp                           
  10d2a9:	89 e5                	mov    %esp,%ebp                      
  10d2ab:	57                   	push   %edi                           
  10d2ac:	56                   	push   %esi                           
  10d2ad:	53                   	push   %ebx                           
  10d2ae:	83 ec 2c             	sub    $0x2c,%esp                     
  10d2b1:	8b 75 10             	mov    0x10(%ebp),%esi                
  int                                  rc;                            
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
  10d2b4:	85 f6                	test   %esi,%esi                      
  10d2b6:	0f 84 c8 00 00 00    	je     10d384 <pthread_setschedparam+0xdc>
    return EINVAL;                                                    
                                                                      
  rc = _POSIX_Thread_Translate_sched_param(                           
  10d2bc:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10d2bf:	50                   	push   %eax                           
  10d2c0:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10d2c3:	50                   	push   %eax                           
  10d2c4:	56                   	push   %esi                           
  10d2c5:	ff 75 0c             	pushl  0xc(%ebp)                      
  10d2c8:	e8 d3 5b 00 00       	call   112ea0 <_POSIX_Thread_Translate_sched_param>
  10d2cd:	89 c3                	mov    %eax,%ebx                      
    policy,                                                           
    param,                                                            
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
  10d2cf:	83 c4 10             	add    $0x10,%esp                     
  10d2d2:	85 c0                	test   %eax,%eax                      
  10d2d4:	74 0a                	je     10d2e0 <pthread_setschedparam+0x38>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10d2d6:	89 d8                	mov    %ebx,%eax                      
  10d2d8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d2db:	5b                   	pop    %ebx                           
  10d2dc:	5e                   	pop    %esi                           
  10d2dd:	5f                   	pop    %edi                           
  10d2de:	c9                   	leave                                 
  10d2df:	c3                   	ret                                   
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
  10d2e0:	83 ec 08             	sub    $0x8,%esp                      
  10d2e3:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10d2e6:	50                   	push   %eax                           
  10d2e7:	ff 75 08             	pushl  0x8(%ebp)                      
  10d2ea:	e8 e5 28 00 00       	call   10fbd4 <_Thread_Get>           
  10d2ef:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10d2f1:	83 c4 10             	add    $0x10,%esp                     
  10d2f4:	8b 7d dc             	mov    -0x24(%ebp),%edi               
  10d2f7:	85 ff                	test   %edi,%edi                      
  10d2f9:	0f 85 95 00 00 00    	jne    10d394 <pthread_setschedparam+0xec>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
  10d2ff:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10d305:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
  10d308:	83 b8 84 00 00 00 04 	cmpl   $0x4,0x84(%eax)                
  10d30f:	0f 84 cb 00 00 00    	je     10d3e0 <pthread_setschedparam+0x138>
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
  10d315:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10d318:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10d31b:	89 81 84 00 00 00    	mov    %eax,0x84(%ecx)                
      api->schedparam  = *param;                                      
  10d321:	89 cf                	mov    %ecx,%edi                      
  10d323:	81 c7 88 00 00 00    	add    $0x88,%edi                     
  10d329:	b9 07 00 00 00       	mov    $0x7,%ecx                      
  10d32e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
      the_thread->budget_algorithm = budget_algorithm;                
  10d330:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10d333:	89 42 7c             	mov    %eax,0x7c(%edx)                
      the_thread->budget_callout   = budget_callout;                  
  10d336:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10d339:	89 82 80 00 00 00    	mov    %eax,0x80(%edx)                
                                                                      
      switch ( api->schedpolicy ) {                                   
  10d33f:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10d342:	85 f6                	test   %esi,%esi                      
  10d344:	78 2e                	js     10d374 <pthread_setschedparam+0xcc><== NEVER TAKEN
  10d346:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)                 
  10d34a:	7f 58                	jg     10d3a4 <pthread_setschedparam+0xfc>
        case SCHED_OTHER:                                             
        case SCHED_FIFO:                                              
        case SCHED_RR:                                                
          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;  
  10d34c:	a1 60 c6 12 00       	mov    0x12c660,%eax                  
  10d351:	89 42 78             	mov    %eax,0x78(%edx)                
  10d354:	0f b6 05 dc 83 12 00 	movzbl 0x1283dc,%eax                  
  10d35b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10d35e:	2b 81 88 00 00 00    	sub    0x88(%ecx),%eax                
                                                                      
          the_thread->real_priority =                                 
  10d364:	89 42 18             	mov    %eax,0x18(%edx)                
            _POSIX_Priority_To_core( api->schedparam.sched_priority );
                                                                      
          _Thread_Change_priority(                                    
  10d367:	51                   	push   %ecx                           
  10d368:	6a 01                	push   $0x1                           
  10d36a:	50                   	push   %eax                           
  10d36b:	52                   	push   %edx                           
  10d36c:	e8 07 24 00 00       	call   10f778 <_Thread_Change_priority>
             the_thread,                                              
             the_thread->real_priority,                               
             true                                                     
          );                                                          
          break;                                                      
  10d371:	83 c4 10             	add    $0x10,%esp                     
          _Watchdog_Remove( &api->Sporadic_timer );                   
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
          break;                                                      
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
  10d374:	e8 37 28 00 00       	call   10fbb0 <_Thread_Enable_dispatch>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10d379:	89 d8                	mov    %ebx,%eax                      
  10d37b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d37e:	5b                   	pop    %ebx                           
  10d37f:	5e                   	pop    %esi                           
  10d380:	5f                   	pop    %edi                           
  10d381:	c9                   	leave                                 
  10d382:	c3                   	ret                                   
  10d383:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
    return EINVAL;                                                    
  10d384:	bb 16 00 00 00       	mov    $0x16,%ebx                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
  10d389:	89 d8                	mov    %ebx,%eax                      
  10d38b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d38e:	5b                   	pop    %ebx                           
  10d38f:	5e                   	pop    %esi                           
  10d390:	5f                   	pop    %edi                           
  10d391:	c9                   	leave                                 
  10d392:	c3                   	ret                                   
  10d393:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
  10d394:	bb 03 00 00 00       	mov    $0x3,%ebx                      
}                                                                     
  10d399:	89 d8                	mov    %ebx,%eax                      
  10d39b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d39e:	5b                   	pop    %ebx                           
  10d39f:	5e                   	pop    %esi                           
  10d3a0:	5f                   	pop    %edi                           
  10d3a1:	c9                   	leave                                 
  10d3a2:	c3                   	ret                                   
  10d3a3:	90                   	nop                                   
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
      the_thread->budget_algorithm = budget_algorithm;                
      the_thread->budget_callout   = budget_callout;                  
                                                                      
      switch ( api->schedpolicy ) {                                   
  10d3a4:	83 7d 0c 04          	cmpl   $0x4,0xc(%ebp)                 
  10d3a8:	75 ca                	jne    10d374 <pthread_setschedparam+0xcc><== NEVER TAKEN
             true                                                     
          );                                                          
          break;                                                      
                                                                      
        case SCHED_SPORADIC:                                          
          api->ss_high_priority = api->schedparam.sched_priority;     
  10d3aa:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  10d3ad:	8b 81 88 00 00 00    	mov    0x88(%ecx),%eax                
  10d3b3:	89 81 a4 00 00 00    	mov    %eax,0xa4(%ecx)                
          _Watchdog_Remove( &api->Sporadic_timer );                   
  10d3b9:	83 ec 0c             	sub    $0xc,%esp                      
  10d3bc:	89 c8                	mov    %ecx,%eax                      
  10d3be:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10d3c3:	50                   	push   %eax                           
  10d3c4:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10d3c7:	e8 ec 37 00 00       	call   110bb8 <_Watchdog_Remove>      
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
  10d3cc:	58                   	pop    %eax                           
  10d3cd:	5a                   	pop    %edx                           
  10d3ce:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  10d3d1:	52                   	push   %edx                           
  10d3d2:	6a 00                	push   $0x0                           
  10d3d4:	e8 b3 fd ff ff       	call   10d18c <_POSIX_Threads_Sporadic_budget_TSR>
          break;                                                      
  10d3d9:	83 c4 10             	add    $0x10,%esp                     
  10d3dc:	eb 96                	jmp    10d374 <pthread_setschedparam+0xcc>
  10d3de:	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 );              
  10d3e0:	83 ec 0c             	sub    $0xc,%esp                      
  10d3e3:	05 a8 00 00 00       	add    $0xa8,%eax                     
  10d3e8:	50                   	push   %eax                           
  10d3e9:	89 55 d0             	mov    %edx,-0x30(%ebp)               
  10d3ec:	e8 c7 37 00 00       	call   110bb8 <_Watchdog_Remove>      
  10d3f1:	83 c4 10             	add    $0x10,%esp                     
  10d3f4:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  10d3f7:	e9 19 ff ff ff       	jmp    10d315 <pthread_setschedparam+0x6d>
                                                                      

00111284 <pthread_sigmask>: int pthread_sigmask( int how, const sigset_t *set, sigset_t *oset ) {
  111284:	55                   	push   %ebp                           
  111285:	89 e5                	mov    %esp,%ebp                      
  111287:	56                   	push   %esi                           
  111288:	53                   	push   %ebx                           
  111289:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  11128c:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  11128f:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
  111292:	85 d2                	test   %edx,%edx                      
  111294:	0f 84 8a 00 00 00    	je     111324 <pthread_sigmask+0xa0>  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
  11129a:	a1 f8 9c 12 00       	mov    0x129cf8,%eax                  
  11129f:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
                                                                      
  if ( oset )                                                         
  1112a5:	85 db                	test   %ebx,%ebx                      
  1112a7:	74 0c                	je     1112b5 <pthread_sigmask+0x31>  
    *oset = api->signals_blocked;                                     
  1112a9:	8b b0 d0 00 00 00    	mov    0xd0(%eax),%esi                
  1112af:	89 33                	mov    %esi,(%ebx)                    
                                                                      
  if ( !set )                                                         
  1112b1:	85 d2                	test   %edx,%edx                      
  1112b3:	74 3b                	je     1112f0 <pthread_sigmask+0x6c>  
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
  1112b5:	83 f9 01             	cmp    $0x1,%ecx                      
  1112b8:	74 5e                	je     111318 <pthread_sigmask+0x94>  
  1112ba:	83 f9 02             	cmp    $0x2,%ecx                      
  1112bd:	74 39                	je     1112f8 <pthread_sigmask+0x74>  
  1112bf:	85 c9                	test   %ecx,%ecx                      
  1112c1:	75 41                	jne    111304 <pthread_sigmask+0x80>  
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
      break;                                                          
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
  1112c3:	8b 12                	mov    (%edx),%edx                    
  1112c5:	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) ) {            
  1112cb:	8b 15 68 9f 12 00    	mov    0x129f68,%edx                  
  1112d1:	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 &                                        
  1112d7:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax                
  1112dd:	f7 d0                	not    %eax                           
  1112df:	85 c2                	test   %eax,%edx                      
  1112e1:	74 0d                	je     1112f0 <pthread_sigmask+0x6c>  
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  1112e3:	e8 94 c7 ff ff       	call   10da7c <_Thread_Dispatch>      
  }                                                                   
                                                                      
  return 0;                                                           
  1112e8:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1112ea:	5b                   	pop    %ebx                           
  1112eb:	5e                   	pop    %esi                           
  1112ec:	c9                   	leave                                 
  1112ed:	c3                   	ret                                   
  1112ee:	66 90                	xchg   %ax,%ax                        
  if ( ~api->signals_blocked &                                        
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  }                                                                   
                                                                      
  return 0;                                                           
  1112f0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1112f2:	5b                   	pop    %ebx                           
  1112f3:	5e                   	pop    %esi                           
  1112f4:	c9                   	leave                                 
  1112f5:	c3                   	ret                                   
  1112f6:	66 90                	xchg   %ax,%ax                        
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
  1112f8:	8b 12                	mov    (%edx),%edx                    
  1112fa:	f7 d2                	not    %edx                           
  1112fc:	21 90 d0 00 00 00    	and    %edx,0xd0(%eax)                
      break;                                                          
  111302:	eb c7                	jmp    1112cb <pthread_sigmask+0x47>  
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
      break;                                                          
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  111304:	e8 d7 2a 00 00       	call   113de0 <__errno>               
  111309:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  11130f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
  111314:	5b                   	pop    %ebx                           
  111315:	5e                   	pop    %esi                           
  111316:	c9                   	leave                                 
  111317:	c3                   	ret                                   
  if ( !set )                                                         
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
  111318:	8b 12                	mov    (%edx),%edx                    
  11131a:	09 90 d0 00 00 00    	or     %edx,0xd0(%eax)                
      break;                                                          
  111320:	eb a9                	jmp    1112cb <pthread_sigmask+0x47>  
  111322:	66 90                	xchg   %ax,%ax                        
  sigset_t         *oset                                              
)                                                                     
{                                                                     
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
  111324:	85 db                	test   %ebx,%ebx                      
  111326:	74 dc                	je     111304 <pthread_sigmask+0x80>  <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
  111328:	a1 f8 9c 12 00       	mov    0x129cf8,%eax                  
  11132d:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  111333:	e9 71 ff ff ff       	jmp    1112a9 <pthread_sigmask+0x25>  
                                                                      

0010b128 <pthread_testcancel>: * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) {
  10b128:	55                   	push   %ebp                           
  10b129:	89 e5                	mov    %esp,%ebp                      
  10b12b:	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() )                                        
  10b12e:	8b 0d b4 97 12 00    	mov    0x1297b4,%ecx                  
  10b134:	85 c9                	test   %ecx,%ecx                      
  10b136:	75 44                	jne    10b17c <pthread_testcancel+0x54><== NEVER TAKEN
    return;                                                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
  10b138:	a1 b8 97 12 00       	mov    0x1297b8,%eax                  
  10b13d:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax                
  10b143:	8b 15 0c 92 12 00    	mov    0x12920c,%edx                  
  10b149:	42                   	inc    %edx                           
  10b14a:	89 15 0c 92 12 00    	mov    %edx,0x12920c                  
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
  10b150:	8b 90 d8 00 00 00    	mov    0xd8(%eax),%edx                
  10b156:	85 d2                	test   %edx,%edx                      
  10b158:	75 26                	jne    10b180 <pthread_testcancel+0x58><== NEVER TAKEN
  10b15a:	8b 80 e0 00 00 00    	mov    0xe0(%eax),%eax                
  10b160:	85 c0                	test   %eax,%eax                      
  10b162:	74 1c                	je     10b180 <pthread_testcancel+0x58>
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
  10b164:	e8 2f 27 00 00       	call   10d898 <_Thread_Enable_dispatch>
                                                                      
  if ( cancel )                                                       
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
  10b169:	83 ec 08             	sub    $0x8,%esp                      
  10b16c:	6a ff                	push   $0xffffffff                    
  10b16e:	ff 35 b8 97 12 00    	pushl  0x1297b8                       
  10b174:	e8 3f 5b 00 00       	call   110cb8 <_POSIX_Thread_Exit>    
  10b179:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
}                                                                     
  10b17c:	c9                   	leave                                 <== NOT EXECUTED
  10b17d:	c3                   	ret                                   <== NOT EXECUTED
  10b17e:	66 90                	xchg   %ax,%ax                        <== NOT EXECUTED
  10b180:	c9                   	leave                                 
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
  10b181:	e9 12 27 00 00       	jmp    10d898 <_Thread_Enable_dispatch>
                                                                      

0010baf8 <rtems_aio_enqueue>: * errno - otherwise */ int rtems_aio_enqueue (rtems_aio_request *req) {
  10baf8:	55                   	push   %ebp                           
  10baf9:	89 e5                	mov    %esp,%ebp                      
  10bafb:	57                   	push   %edi                           
  10bafc:	56                   	push   %esi                           
  10bafd:	53                   	push   %ebx                           
  10bafe:	83 ec 58             	sub    $0x58,%esp                     
  10bb01:	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);             
  10bb04:	68 a0 94 12 00       	push   $0x1294a0                      
  10bb09:	e8 86 09 00 00       	call   10c494 <pthread_mutex_lock>    
  10bb0e:	89 c6                	mov    %eax,%esi                      
  if (result != 0) {                                                  
  10bb10:	83 c4 10             	add    $0x10,%esp                     
  10bb13:	85 c0                	test   %eax,%eax                      
  10bb15:	0f 85 c1 00 00 00    	jne    10bbdc <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);            
  10bb1b:	e8 20 12 00 00       	call   10cd40 <pthread_self>          
  10bb20:	51                   	push   %ecx                           
  10bb21:	8d 55 c4             	lea    -0x3c(%ebp),%edx               
  10bb24:	52                   	push   %edx                           
  10bb25:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  10bb28:	52                   	push   %edx                           
  10bb29:	50                   	push   %eax                           
  10bb2a:	e8 e1 0d 00 00       	call   10c910 <pthread_getschedparam> 
                                                                      
  req->caller_thread = pthread_self ();                               
  10bb2f:	e8 0c 12 00 00       	call   10cd40 <pthread_self>          
  10bb34:	89 43 10             	mov    %eax,0x10(%ebx)                
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
  10bb37:	8b 43 14             	mov    0x14(%ebx),%eax                
  10bb3a:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10bb3d:	2b 50 14             	sub    0x14(%eax),%edx                
  10bb40:	89 53 0c             	mov    %edx,0xc(%ebx)                 
  req->policy = policy;                                               
  10bb43:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10bb46:	89 53 08             	mov    %edx,0x8(%ebx)                 
  req->aiocbp->error_code = EINPROGRESS;                              
  10bb49:	c7 40 30 77 00 00 00 	movl   $0x77,0x30(%eax)               
  req->aiocbp->return_value = 0;                                      
  10bb50:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
  10bb57:	83 c4 10             	add    $0x10,%esp                     
  10bb5a:	8b 15 08 95 12 00    	mov    0x129508,%edx                  
  10bb60:	85 d2                	test   %edx,%edx                      
  10bb62:	75 0d                	jne    10bb71 <rtems_aio_enqueue+0x79><== NEVER TAKEN
  10bb64:	83 3d 04 95 12 00 04 	cmpl   $0x4,0x129504                  
  10bb6b:	0f 8e 83 00 00 00    	jle    10bbf4 <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,     
  10bb71:	51                   	push   %ecx                           
  10bb72:	6a 00                	push   $0x0                           
  10bb74:	ff 30                	pushl  (%eax)                         
  10bb76:	68 e8 94 12 00       	push   $0x1294e8                      
  10bb7b:	e8 28 fb ff ff       	call   10b6a8 <rtems_aio_search_fd>   
  10bb80:	89 c7                	mov    %eax,%edi                      
				     req->aiocbp->aio_fildes, 0);                                 
      if (r_chain != NULL)                                            
  10bb82:	83 c4 10             	add    $0x10,%esp                     
  10bb85:	85 c0                	test   %eax,%eax                      
  10bb87:	0f 84 df 00 00 00    	je     10bc6c <rtems_aio_enqueue+0x174>
	{                                                                    
	  pthread_mutex_lock (&r_chain->mutex);                              
  10bb8d:	8d 57 1c             	lea    0x1c(%edi),%edx                
  10bb90:	83 ec 0c             	sub    $0xc,%esp                      
  10bb93:	52                   	push   %edx                           
  10bb94:	89 55 b4             	mov    %edx,-0x4c(%ebp)               
  10bb97:	e8 f8 08 00 00       	call   10c494 <pthread_mutex_lock>    
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
  10bb9c:	58                   	pop    %eax                           
  10bb9d:	5a                   	pop    %edx                           
  10bb9e:	53                   	push   %ebx                           
  10bb9f:	8d 47 08             	lea    0x8(%edi),%eax                 
  10bba2:	50                   	push   %eax                           
  10bba3:	e8 48 fe ff ff       	call   10b9f0 <rtems_aio_insert_prio> 
	  pthread_cond_signal (&r_chain->cond);                              
  10bba8:	83 c7 20             	add    $0x20,%edi                     
  10bbab:	89 3c 24             	mov    %edi,(%esp)                    
  10bbae:	e8 b1 04 00 00       	call   10c064 <pthread_cond_signal>   
	  pthread_mutex_unlock (&r_chain->mutex);                            
  10bbb3:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  10bbb6:	89 14 24             	mov    %edx,(%esp)                    
  10bbb9:	e8 5e 09 00 00       	call   10c51c <pthread_mutex_unlock>  
  10bbbe:	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);                    
  10bbc1:	83 ec 0c             	sub    $0xc,%esp                      
  10bbc4:	68 a0 94 12 00       	push   $0x1294a0                      
  10bbc9:	e8 4e 09 00 00       	call   10c51c <pthread_mutex_unlock>  
  return 0;                                                           
  10bbce:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10bbd1:	89 f0                	mov    %esi,%eax                      
  10bbd3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bbd6:	5b                   	pop    %ebx                           
  10bbd7:	5e                   	pop    %esi                           
  10bbd8:	5f                   	pop    %edi                           
  10bbd9:	c9                   	leave                                 
  10bbda:	c3                   	ret                                   
  10bbdb:	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);                                                       
  10bbdc:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10bbdf:	53                   	push   %ebx                           <== NOT EXECUTED
  10bbe0:	e8 cf c4 ff ff       	call   1080b4 <free>                  <== NOT EXECUTED
    return result;                                                    
  10bbe5:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
      }                                                               
    }                                                                 
                                                                      
  pthread_mutex_unlock (&aio_request_queue.mutex);                    
  return 0;                                                           
}                                                                     
  10bbe8:	89 f0                	mov    %esi,%eax                      <== NOT EXECUTED
  10bbea:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  10bbed:	5b                   	pop    %ebx                           <== NOT EXECUTED
  10bbee:	5e                   	pop    %esi                           <== NOT EXECUTED
  10bbef:	5f                   	pop    %edi                           <== NOT EXECUTED
  10bbf0:	c9                   	leave                                 <== NOT EXECUTED
  10bbf1:	c3                   	ret                                   <== NOT EXECUTED
  10bbf2:	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);
  10bbf4:	57                   	push   %edi                           
  10bbf5:	6a 01                	push   $0x1                           
  10bbf7:	ff 30                	pushl  (%eax)                         
  10bbf9:	68 e8 94 12 00       	push   $0x1294e8                      
  10bbfe:	e8 a5 fa ff ff       	call   10b6a8 <rtems_aio_search_fd>   
  10bc03:	89 c7                	mov    %eax,%edi                      
                                                                      
      if (r_chain->new_fd == 1) {                                     
  10bc05:	83 c4 10             	add    $0x10,%esp                     
  10bc08:	83 78 18 01          	cmpl   $0x1,0x18(%eax)                
  10bc0c:	0f 85 7b ff ff ff    	jne    10bb8d <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);                    
  10bc12:	83 ec 08             	sub    $0x8,%esp                      
  10bc15:	53                   	push   %ebx                           
  10bc16:	8d 40 08             	lea    0x8(%eax),%eax                 
  10bc19:	50                   	push   %eax                           
  10bc1a:	e8 c9 21 00 00       	call   10dde8 <_Chain_Insert>         
	rtems_chain_prepend (&r_chain->perfd, &req->next_prio);              
	r_chain->new_fd = 0;                                                 
  10bc1f:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
	pthread_mutex_init (&r_chain->mutex, NULL);                          
  10bc26:	5a                   	pop    %edx                           
  10bc27:	59                   	pop    %ecx                           
  10bc28:	6a 00                	push   $0x0                           
  10bc2a:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10bc2d:	50                   	push   %eax                           
  10bc2e:	e8 15 07 00 00       	call   10c348 <pthread_mutex_init>    
	pthread_cond_init (&r_chain->cond, NULL);                            
  10bc33:	5b                   	pop    %ebx                           
  10bc34:	58                   	pop    %eax                           
  10bc35:	6a 00                	push   $0x0                           
  10bc37:	8d 47 20             	lea    0x20(%edi),%eax                
  10bc3a:	50                   	push   %eax                           
  10bc3b:	e8 70 03 00 00       	call   10bfb0 <pthread_cond_init>     
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
  10bc40:	57                   	push   %edi                           
  10bc41:	68 a4 b7 10 00       	push   $0x10b7a4                      
  10bc46:	68 a8 94 12 00       	push   $0x1294a8                      
  10bc4b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10bc4e:	50                   	push   %eax                           
  10bc4f:	e8 34 0a 00 00       	call   10c688 <pthread_create>        
  10bc54:	89 c3                	mov    %eax,%ebx                      
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
  10bc56:	83 c4 20             	add    $0x20,%esp                     
  10bc59:	85 c0                	test   %eax,%eax                      
  10bc5b:	0f 85 8e 00 00 00    	jne    10bcef <rtems_aio_enqueue+0x1f7><== NEVER TAKEN
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
	  return result;                                                     
	}                                                                    
	++aio_request_queue.active_threads;                                  
  10bc61:	ff 05 04 95 12 00    	incl   0x129504                       
  10bc67:	e9 55 ff ff ff       	jmp    10bbc1 <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);   
  10bc6c:	57                   	push   %edi                           
  10bc6d:	6a 01                	push   $0x1                           
  10bc6f:	8b 43 14             	mov    0x14(%ebx),%eax                
  10bc72:	ff 30                	pushl  (%eax)                         
  10bc74:	68 f4 94 12 00       	push   $0x1294f4                      
  10bc79:	e8 2a fa ff ff       	call   10b6a8 <rtems_aio_search_fd>   
  10bc7e:	89 c7                	mov    %eax,%edi                      
                                                                      
	if (r_chain->new_fd == 1) {                                          
  10bc80:	83 c4 10             	add    $0x10,%esp                     
  10bc83:	83 78 18 01          	cmpl   $0x1,0x18(%eax)                
  10bc87:	74 33                	je     10bcbc <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);                      
  10bc89:	83 ec 08             	sub    $0x8,%esp                      
  10bc8c:	53                   	push   %ebx                           
  10bc8d:	83 c7 08             	add    $0x8,%edi                      
  10bc90:	57                   	push   %edi                           
  10bc91:	e8 5a fd ff ff       	call   10b9f0 <rtems_aio_insert_prio> 
  10bc96:	83 c4 10             	add    $0x10,%esp                     
	if (aio_request_queue.idle_threads > 0)                              
  10bc99:	8b 0d 08 95 12 00    	mov    0x129508,%ecx                  
  10bc9f:	85 c9                	test   %ecx,%ecx                      
  10bca1:	0f 8e 1a ff ff ff    	jle    10bbc1 <rtems_aio_enqueue+0xc9><== ALWAYS TAKEN
	  pthread_cond_signal (&aio_request_queue.new_req);                  
  10bca7:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10bcaa:	68 a4 94 12 00       	push   $0x1294a4                      <== NOT EXECUTED
  10bcaf:	e8 b0 03 00 00       	call   10c064 <pthread_cond_signal>   <== NOT EXECUTED
  10bcb4:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10bcb7:	e9 05 ff ff ff       	jmp    10bbc1 <rtems_aio_enqueue+0xc9><== NOT EXECUTED
  10bcbc:	83 ec 08             	sub    $0x8,%esp                      
  10bcbf:	53                   	push   %ebx                           
  10bcc0:	8d 40 08             	lea    0x8(%eax),%eax                 
  10bcc3:	50                   	push   %eax                           
  10bcc4:	e8 1f 21 00 00       	call   10dde8 <_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;                                               
  10bcc9:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
  10bcd0:	5a                   	pop    %edx                           
  10bcd1:	59                   	pop    %ecx                           
  10bcd2:	6a 00                	push   $0x0                           
  10bcd4:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10bcd7:	50                   	push   %eax                           
  10bcd8:	e8 6b 06 00 00       	call   10c348 <pthread_mutex_init>    
	  pthread_cond_init (&r_chain->cond, NULL);                          
  10bcdd:	5b                   	pop    %ebx                           
  10bcde:	58                   	pop    %eax                           
  10bcdf:	6a 00                	push   $0x0                           
  10bce1:	83 c7 20             	add    $0x20,%edi                     
  10bce4:	57                   	push   %edi                           
  10bce5:	e8 c6 02 00 00       	call   10bfb0 <pthread_cond_init>     
  10bcea:	83 c4 10             	add    $0x10,%esp                     
  10bced:	eb aa                	jmp    10bc99 <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);                   
  10bcef:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10bcf2:	68 a0 94 12 00       	push   $0x1294a0                      <== NOT EXECUTED
  10bcf7:	e8 20 08 00 00       	call   10c51c <pthread_mutex_unlock>  <== NOT EXECUTED
	  return result;                                                     
  10bcfc:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10bcff:	89 de                	mov    %ebx,%esi                      <== NOT EXECUTED
  10bd01:	e9 cb fe ff ff       	jmp    10bbd1 <rtems_aio_enqueue+0xd9><== NOT EXECUTED
                                                                      

0010b7a4 <rtems_aio_handle>: * NULL - if error */ static void * rtems_aio_handle (void *arg) {
  10b7a4:	55                   	push   %ebp                           
  10b7a5:	89 e5                	mov    %esp,%ebp                      
  10b7a7:	57                   	push   %edi                           
  10b7a8:	56                   	push   %esi                           
  10b7a9:	53                   	push   %ebx                           
  10b7aa:	83 ec 4c             	sub    $0x4c,%esp                     
                                                                      
  rtems_aio_request_chain *r_chain = arg;                             
  10b7ad:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  10b7b0:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10b7b3:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10b7b6:	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);                    
  10b7b8:	83 ec 0c             	sub    $0xc,%esp                      
  10b7bb:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10b7be:	e8 d1 0c 00 00       	call   10c494 <pthread_mutex_lock>    
    if (result != 0)                                                  
  10b7c3:	83 c4 10             	add    $0x10,%esp                     
  10b7c6:	85 c0                	test   %eax,%eax                      
  10b7c8:	0f 85 2a 01 00 00    	jne    10b8f8 <rtems_aio_handle+0x154><== NEVER TAKEN
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b7ce:	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 );                            
  10b7d1:	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)) {                              
  10b7d4:	39 c3                	cmp    %eax,%ebx                      
  10b7d6:	0f 84 d0 00 00 00    	je     10b8ac <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);        
  10b7dc:	e8 5f 15 00 00       	call   10cd40 <pthread_self>          
  10b7e1:	52                   	push   %edx                           
  10b7e2:	8d 55 c0             	lea    -0x40(%ebp),%edx               
  10b7e5:	52                   	push   %edx                           
  10b7e6:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
  10b7e9:	52                   	push   %edx                           
  10b7ea:	50                   	push   %eax                           
  10b7eb:	e8 20 11 00 00       	call   10c910 <pthread_getschedparam> 
      param.sched_priority = req->priority;                           
  10b7f0:	8b 43 0c             	mov    0xc(%ebx),%eax                 
  10b7f3:	89 45 c0             	mov    %eax,-0x40(%ebp)               
      pthread_setschedparam (pthread_self(), req->policy, ¶m);    
  10b7f6:	8b 73 08             	mov    0x8(%ebx),%esi                 
  10b7f9:	e8 42 15 00 00       	call   10cd40 <pthread_self>          
  10b7fe:	83 c4 0c             	add    $0xc,%esp                      
  10b801:	8d 55 c0             	lea    -0x40(%ebp),%edx               
  10b804:	52                   	push   %edx                           
  10b805:	56                   	push   %esi                           
  10b806:	50                   	push   %eax                           
  10b807:	e8 44 15 00 00       	call   10cd50 <pthread_setschedparam> 
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10b80c:	89 1c 24             	mov    %ebx,(%esp)                    
  10b80f:	e8 98 25 00 00       	call   10ddac <_Chain_Extract>        
                                                                      
      rtems_chain_extract (node);                                     
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10b814:	5e                   	pop    %esi                           
  10b815:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10b818:	e8 ff 0c 00 00       	call   10c51c <pthread_mutex_unlock>  
                                                                      
      switch (req->aiocbp->aio_lio_opcode) {                          
  10b81d:	8b 73 14             	mov    0x14(%ebx),%esi                
  10b820:	83 c4 10             	add    $0x10,%esp                     
  10b823:	8b 46 2c             	mov    0x2c(%esi),%eax                
  10b826:	83 f8 02             	cmp    $0x2,%eax                      
  10b829:	74 21                	je     10b84c <rtems_aio_handle+0xa8> 
  10b82b:	83 f8 03             	cmp    $0x3,%eax                      
  10b82e:	74 6c                	je     10b89c <rtems_aio_handle+0xf8> <== NEVER TAKEN
  10b830:	48                   	dec    %eax                           
  10b831:	74 4d                	je     10b880 <rtems_aio_handle+0xdc> <== ALWAYS TAKEN
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
        req->aiocbp->return_value = -1;                               
  10b833:	c7 46 34 ff ff ff ff 	movl   $0xffffffff,0x34(%esi)         <== NOT EXECUTED
	req->aiocbp->error_code = errno;                                     
  10b83a:	e8 bd 9e 00 00       	call   1156fc <__errno>               <== NOT EXECUTED
  10b83f:	8b 00                	mov    (%eax),%eax                    <== NOT EXECUTED
  10b841:	89 46 30             	mov    %eax,0x30(%esi)                <== NOT EXECUTED
  10b844:	e9 6f ff ff ff       	jmp    10b7b8 <rtems_aio_handle+0x14> <== NOT EXECUTED
  10b849:	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,                     
  10b84c:	83 ec 0c             	sub    $0xc,%esp                      
  10b84f:	ff 76 08             	pushl  0x8(%esi)                      
  10b852:	ff 76 04             	pushl  0x4(%esi)                      
  10b855:	ff 76 10             	pushl  0x10(%esi)                     
  10b858:	ff 76 0c             	pushl  0xc(%esi)                      
  10b85b:	ff 36                	pushl  (%esi)                         
  10b85d:	e8 32 a9 00 00       	call   116194 <pwrite>                
                         (void *) req->aiocbp->aio_buf,               
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
  10b862:	83 c4 20             	add    $0x20,%esp                     
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
  10b865:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10b868:	0f 84 78 01 00 00    	je     10b9e6 <rtems_aio_handle+0x242><== NEVER TAKEN
        req->aiocbp->return_value = -1;                               
	req->aiocbp->error_code = errno;                                     
      } else {                                                        
        req->aiocbp->return_value = result;                           
  10b86e:	8b 53 14             	mov    0x14(%ebx),%edx                
  10b871:	89 42 34             	mov    %eax,0x34(%edx)                
        req->aiocbp->error_code = 0;                                  
  10b874:	c7 42 30 00 00 00 00 	movl   $0x0,0x30(%edx)                
  10b87b:	e9 38 ff ff ff       	jmp    10b7b8 <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,                      
  10b880:	83 ec 0c             	sub    $0xc,%esp                      
  10b883:	ff 76 08             	pushl  0x8(%esi)                      
  10b886:	ff 76 04             	pushl  0x4(%esi)                      
  10b889:	ff 76 10             	pushl  0x10(%esi)                     
  10b88c:	ff 76 0c             	pushl  0xc(%esi)                      
  10b88f:	ff 36                	pushl  (%esi)                         
  10b891:	e8 4a a8 00 00       	call   1160e0 <pread>                 
                        (void *) req->aiocbp->aio_buf,                
                        req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
  10b896:	83 c4 20             	add    $0x20,%esp                     
  10b899:	eb ca                	jmp    10b865 <rtems_aio_handle+0xc1> 
  10b89b:	90                   	nop                                   
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_SYNC:                                                  
	AIO_printf ("sync\n");                                               
      	result = fsync (req->aiocbp->aio_fildes);                      
  10b89c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10b89f:	ff 36                	pushl  (%esi)                         <== NOT EXECUTED
  10b8a1:	e8 7a 66 00 00       	call   111f20 <fsync>                 <== NOT EXECUTED
      	break;                                                         
  10b8a6:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10b8a9:	eb ba                	jmp    10b865 <rtems_aio_handle+0xc1> <== NOT EXECUTED
  10b8ab:	90                   	nop                                   <== NOT EXECUTED
                                                                      
      struct timespec timeout;                                        
                                                                      
      AIO_printf ("Chain is empty [WQ], wait for work\n");            
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
  10b8ac:	83 ec 0c             	sub    $0xc,%esp                      
  10b8af:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10b8b2:	e8 65 0c 00 00       	call   10c51c <pthread_mutex_unlock>  
      pthread_mutex_lock (&aio_request_queue.mutex);                  
  10b8b7:	c7 04 24 a0 94 12 00 	movl   $0x1294a0,(%esp)               
  10b8be:	e8 d1 0b 00 00       	call   10c494 <pthread_mutex_lock>    
                                                                      
      if (rtems_chain_is_empty (chain))                               
  10b8c3:	83 c4 10             	add    $0x10,%esp                     
  10b8c6:	3b 5f 08             	cmp    0x8(%edi),%ebx                 
  10b8c9:	74 39                	je     10b904 <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);                
  10b8cb:	83 ec 0c             	sub    $0xc,%esp                      
  10b8ce:	68 a0 94 12 00       	push   $0x1294a0                      
  10b8d3:	e8 44 0c 00 00       	call   10c51c <pthread_mutex_unlock>  
  10b8d8:	83 c4 10             	add    $0x10,%esp                     
  10b8db:	e9 d8 fe ff ff       	jmp    10b7b8 <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;                                   
  10b8e0:	ff 0d 08 95 12 00    	decl   0x129508                       
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
  10b8e6:	83 ec 0c             	sub    $0xc,%esp                      
  10b8e9:	68 a0 94 12 00       	push   $0x1294a0                      
  10b8ee:	e8 29 0c 00 00       	call   10c51c <pthread_mutex_unlock>  
		return NULL;                                                        
  10b8f3:	83 c4 10             	add    $0x10,%esp                     
  10b8f6:	66 90                	xchg   %ax,%ax                        
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b8f8:	31 c0                	xor    %eax,%eax                      
  10b8fa:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b8fd:	5b                   	pop    %ebx                           
  10b8fe:	5e                   	pop    %esi                           
  10b8ff:	5f                   	pop    %edi                           
  10b900:	c9                   	leave                                 
  10b901:	c3                   	ret                                   
  10b902:	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);                          
  10b904:	83 ec 08             	sub    $0x8,%esp                      
  10b907:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10b90a:	50                   	push   %eax                           
  10b90b:	6a 01                	push   $0x1                           
  10b90d:	e8 66 05 00 00       	call   10be78 <clock_gettime>         
	  timeout.tv_sec += 3;                                               
  10b912:	83 45 dc 03          	addl   $0x3,-0x24(%ebp)               
	  timeout.tv_nsec = 0;                                               
  10b916:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
  10b91d:	8d 5f 20             	lea    0x20(%edi),%ebx                
  10b920:	83 c4 0c             	add    $0xc,%esp                      
  10b923:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  10b926:	52                   	push   %edx                           
  10b927:	68 a0 94 12 00       	push   $0x1294a0                      
  10b92c:	53                   	push   %ebx                           
  10b92d:	e8 b6 07 00 00       	call   10c0e8 <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) {                                         
  10b932:	83 c4 10             	add    $0x10,%esp                     
  10b935:	83 f8 74             	cmp    $0x74,%eax                     
  10b938:	75 91                	jne    10b8cb <rtems_aio_handle+0x127><== NEVER TAKEN
  10b93a:	83 ec 0c             	sub    $0xc,%esp                      
  10b93d:	57                   	push   %edi                           
  10b93e:	e8 69 24 00 00       	call   10ddac <_Chain_Extract>        
	    rtems_chain_extract (&r_chain->next_fd);                         
	    pthread_mutex_destroy (&r_chain->mutex);                         
  10b943:	59                   	pop    %ecx                           
  10b944:	ff 75 b4             	pushl  -0x4c(%ebp)                    
  10b947:	e8 dc 08 00 00       	call   10c228 <pthread_mutex_destroy> 
	    pthread_cond_destroy (&r_chain->cond);                           
  10b94c:	89 1c 24             	mov    %ebx,(%esp)                    
  10b94f:	e8 90 05 00 00       	call   10bee4 <pthread_cond_destroy>  
	    free (r_chain);                                                  
  10b954:	89 3c 24             	mov    %edi,(%esp)                    
  10b957:	e8 58 c7 ff ff       	call   1080b4 <free>                  
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b95c:	8b 3d f4 94 12 00    	mov    0x1294f4,%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)) {        
  10b962:	83 c4 10             	add    $0x10,%esp                     
  10b965:	81 ff f8 94 12 00    	cmp    $0x1294f8,%edi                 
  10b96b:	74 2b                	je     10b998 <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;                                
  10b96d:	ff 0d 08 95 12 00    	decl   0x129508                       
	    ++aio_request_queue.active_threads;                              
  10b973:	ff 05 04 95 12 00    	incl   0x129504                       
  10b979:	83 ec 0c             	sub    $0xc,%esp                      
  10b97c:	57                   	push   %edi                           
  10b97d:	e8 2a 24 00 00       	call   10ddac <_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);                                
  10b982:	89 3c 24             	mov    %edi,(%esp)                    
  10b985:	e8 de fd ff ff       	call   10b768 <rtems_aio_move_to_work>
  10b98a:	83 c4 10             	add    $0x10,%esp                     
  10b98d:	8d 47 1c             	lea    0x1c(%edi),%eax                
  10b990:	89 45 b4             	mov    %eax,-0x4c(%ebp)               
  10b993:	e9 33 ff ff ff       	jmp    10b8cb <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;                              
  10b998:	ff 05 08 95 12 00    	incl   0x129508                       
	      --aio_request_queue.active_threads;                            
  10b99e:	ff 0d 04 95 12 00    	decl   0x129504                       
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
  10b9a4:	52                   	push   %edx                           
  10b9a5:	52                   	push   %edx                           
  10b9a6:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10b9a9:	50                   	push   %eax                           
  10b9aa:	6a 01                	push   $0x1                           
  10b9ac:	e8 c7 04 00 00       	call   10be78 <clock_gettime>         
	      timeout.tv_sec += 3;                                           
  10b9b1:	83 45 dc 03          	addl   $0x3,-0x24(%ebp)               
	      timeout.tv_nsec = 0;                                           
  10b9b5:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
  10b9bc:	83 c4 0c             	add    $0xc,%esp                      
  10b9bf:	8d 55 dc             	lea    -0x24(%ebp),%edx               
  10b9c2:	52                   	push   %edx                           
  10b9c3:	68 a0 94 12 00       	push   $0x1294a0                      
  10b9c8:	68 a4 94 12 00       	push   $0x1294a4                      
  10b9cd:	e8 16 07 00 00       	call   10c0e8 <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) {                                     
  10b9d2:	83 c4 10             	add    $0x10,%esp                     
  10b9d5:	83 f8 74             	cmp    $0x74,%eax                     
  10b9d8:	0f 84 02 ff ff ff    	je     10b8e0 <rtems_aio_handle+0x13c><== ALWAYS TAKEN
  10b9de:	8b 3d f4 94 12 00    	mov    0x1294f4,%edi                  <== NOT EXECUTED
  10b9e4:	eb 87                	jmp    10b96d <rtems_aio_handle+0x1c9><== NOT EXECUTED
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
  10b9e6:	8b 73 14             	mov    0x14(%ebx),%esi                <== NOT EXECUTED
  10b9e9:	e9 45 fe ff ff       	jmp    10b833 <rtems_aio_handle+0x8f> <== NOT EXECUTED
                                                                      

0010b580 <rtems_aio_init>: * 0 - if initialization succeeded */ int rtems_aio_init (void) {
  10b580:	55                   	push   %ebp                           
  10b581:	89 e5                	mov    %esp,%ebp                      
  10b583:	53                   	push   %ebx                           
  10b584:	83 ec 10             	sub    $0x10,%esp                     
  int result = 0;                                                     
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
  10b587:	68 a8 94 12 00       	push   $0x1294a8                      
  10b58c:	e8 a3 10 00 00       	call   10c634 <pthread_attr_init>     
  10b591:	89 c3                	mov    %eax,%ebx                      
  if (result != 0)                                                    
  10b593:	83 c4 10             	add    $0x10,%esp                     
  10b596:	85 c0                	test   %eax,%eax                      
  10b598:	74 0a                	je     10b5a4 <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;                                                      
}                                                                     
  10b59a:	89 d8                	mov    %ebx,%eax                      <== NOT EXECUTED
  10b59c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10b59f:	c9                   	leave                                 <== NOT EXECUTED
  10b5a0:	c3                   	ret                                   <== NOT EXECUTED
  10b5a1:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
  if (result != 0)                                                    
    return result;                                                    
                                                                      
  result =                                                            
  10b5a4:	83 ec 08             	sub    $0x8,%esp                      
  10b5a7:	6a 00                	push   $0x0                           
  10b5a9:	68 a8 94 12 00       	push   $0x1294a8                      
  10b5ae:	e8 ad 10 00 00       	call   10c660 <pthread_attr_setdetachstate>
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
  10b5b3:	83 c4 10             	add    $0x10,%esp                     
  10b5b6:	85 c0                	test   %eax,%eax                      
  10b5b8:	0f 85 96 00 00 00    	jne    10b654 <rtems_aio_init+0xd4>   <== NEVER TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
  10b5be:	83 ec 08             	sub    $0x8,%esp                      
  10b5c1:	6a 00                	push   $0x0                           
  10b5c3:	68 a0 94 12 00       	push   $0x1294a0                      
  10b5c8:	e8 7b 0d 00 00       	call   10c348 <pthread_mutex_init>    
  if (result != 0)                                                    
  10b5cd:	83 c4 10             	add    $0x10,%esp                     
  10b5d0:	85 c0                	test   %eax,%eax                      
  10b5d2:	0f 85 b8 00 00 00    	jne    10b690 <rtems_aio_init+0x110>  <== NEVER TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
  10b5d8:	83 ec 08             	sub    $0x8,%esp                      
  10b5db:	6a 00                	push   $0x0                           
  10b5dd:	68 a4 94 12 00       	push   $0x1294a4                      
  10b5e2:	e8 c9 09 00 00       	call   10bfb0 <pthread_cond_init>     
  10b5e7:	89 c3                	mov    %eax,%ebx                      
  if (result != 0) {                                                  
  10b5e9:	83 c4 10             	add    $0x10,%esp                     
  10b5ec:	85 c0                	test   %eax,%eax                      
  10b5ee:	75 7c                	jne    10b66c <rtems_aio_init+0xec>   <== NEVER TAKEN
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10b5f0:	c7 05 e8 94 12 00 ec 	movl   $0x1294ec,0x1294e8             
  10b5f7:	94 12 00                                                    
  head->previous = NULL;                                              
  10b5fa:	c7 05 ec 94 12 00 00 	movl   $0x0,0x1294ec                  
  10b601:	00 00 00                                                    
  tail->previous = head;                                              
  10b604:	c7 05 f0 94 12 00 e8 	movl   $0x1294e8,0x1294f0             
  10b60b:	94 12 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  10b60e:	c7 05 f4 94 12 00 f8 	movl   $0x1294f8,0x1294f4             
  10b615:	94 12 00                                                    
  head->previous = NULL;                                              
  10b618:	c7 05 f8 94 12 00 00 	movl   $0x0,0x1294f8                  
  10b61f:	00 00 00                                                    
  tail->previous = head;                                              
  10b622:	c7 05 fc 94 12 00 f4 	movl   $0x1294f4,0x1294fc             
  10b629:	94 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;                               
  10b62c:	c7 05 04 95 12 00 00 	movl   $0x0,0x129504                  
  10b633:	00 00 00                                                    
  aio_request_queue.idle_threads = 0;                                 
  10b636:	c7 05 08 95 12 00 00 	movl   $0x0,0x129508                  
  10b63d:	00 00 00                                                    
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
  10b640:	c7 05 00 95 12 00 0b 	movl   $0xb00b,0x129500               
  10b647:	b0 00 00                                                    
                                                                      
  return result;                                                      
}                                                                     
  10b64a:	89 d8                	mov    %ebx,%eax                      
  10b64c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b64f:	c9                   	leave                                 
  10b650:	c3                   	ret                                   
  10b651:	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);                   
  10b654:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10b657:	68 a8 94 12 00       	push   $0x1294a8                      <== NOT EXECUTED
  10b65c:	e8 af 0f 00 00       	call   10c610 <pthread_attr_destroy>  <== NOT EXECUTED
  10b661:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10b664:	e9 55 ff ff ff       	jmp    10b5be <rtems_aio_init+0x3e>   <== NOT EXECUTED
  10b669:	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);                 
  10b66c:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10b66f:	68 a0 94 12 00       	push   $0x1294a0                      <== NOT EXECUTED
  10b674:	e8 af 0b 00 00       	call   10c228 <pthread_mutex_destroy> <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
  10b679:	c7 04 24 a8 94 12 00 	movl   $0x1294a8,(%esp)               <== NOT EXECUTED
  10b680:	e8 8b 0f 00 00       	call   10c610 <pthread_attr_destroy>  <== NOT EXECUTED
  10b685:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10b688:	e9 63 ff ff ff       	jmp    10b5f0 <rtems_aio_init+0x70>   <== NOT EXECUTED
  10b68d:	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);                   
  10b690:	83 ec 0c             	sub    $0xc,%esp                      <== NOT EXECUTED
  10b693:	68 a8 94 12 00       	push   $0x1294a8                      <== NOT EXECUTED
  10b698:	e8 73 0f 00 00       	call   10c610 <pthread_attr_destroy>  <== NOT EXECUTED
  10b69d:	83 c4 10             	add    $0x10,%esp                     <== NOT EXECUTED
  10b6a0:	e9 33 ff ff ff       	jmp    10b5d8 <rtems_aio_init+0x58>   <== NOT EXECUTED
                                                                      

0010b9f0 <rtems_aio_insert_prio>: * NONE */ void rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req) {
  10b9f0:	55                   	push   %ebp                           
  10b9f1:	89 e5                	mov    %esp,%ebp                      
  10b9f3:	56                   	push   %esi                           
  10b9f4:	53                   	push   %ebx                           
  10b9f5:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10b9f8:	8b 75 0c             	mov    0xc(%ebp),%esi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b9fb:	8b 02                	mov    (%edx),%eax                    
  10b9fd:	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)) {                                 
  10ba00:	39 c8                	cmp    %ecx,%eax                      
  10ba02:	74 27                	je     10ba2b <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 &&                         
  10ba04:	8b 56 14             	mov    0x14(%esi),%edx                
  10ba07:	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;     
  10ba0a:	8b 50 14             	mov    0x14(%eax),%edx                
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
  10ba0d:	39 5a 14             	cmp    %ebx,0x14(%edx)                
  10ba10:	7c 06                	jl     10ba18 <rtems_aio_insert_prio+0x28><== NEVER TAKEN
  10ba12:	eb 0e                	jmp    10ba22 <rtems_aio_insert_prio+0x32>
  10ba14:	39 c8                	cmp    %ecx,%eax                      <== NOT EXECUTED
  10ba16:	74 1c                	je     10ba34 <rtems_aio_insert_prio+0x44><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10ba18:	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;       
  10ba1a:	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 &&                         
  10ba1d:	39 5a 14             	cmp    %ebx,0x14(%edx)                <== NOT EXECUTED
  10ba20:	7c f2                	jl     10ba14 <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 );                              
  10ba22:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10ba25:	8b 40 04             	mov    0x4(%eax),%eax                 
  10ba28:	89 45 08             	mov    %eax,0x8(%ebp)                 
    }                                                                 
                                                                      
    rtems_chain_insert (node->previous, &req->next_prio);             
                                                                      
  }                                                                   
}                                                                     
  10ba2b:	5b                   	pop    %ebx                           
  10ba2c:	5e                   	pop    %esi                           
  10ba2d:	c9                   	leave                                 
  10ba2e:	e9 b5 23 00 00       	jmp    10dde8 <_Chain_Insert>         
  10ba33:	90                   	nop                                   
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10ba34:	89 c8                	mov    %ecx,%eax                      <== NOT EXECUTED
  10ba36:	eb ea                	jmp    10ba22 <rtems_aio_insert_prio+0x32><== NOT EXECUTED
                                                                      

0010b768 <rtems_aio_move_to_work>: * NONE */ void rtems_aio_move_to_work (rtems_aio_request_chain *r_chain) {
  10b768:	55                   	push   %ebp                           
  10b769:	89 e5                	mov    %esp,%ebp                      
  10b76b:	83 ec 08             	sub    $0x8,%esp                      
  10b76e:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b771:	a1 e8 94 12 00       	mov    0x1294e8,%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 &&                            
  10b776:	8b 51 14             	mov    0x14(%ecx),%edx                
  10b779:	39 50 14             	cmp    %edx,0x14(%eax)                
  10b77c:	7c 09                	jl     10b787 <rtems_aio_move_to_work+0x1f><== ALWAYS TAKEN
  10b77e:	eb 13                	jmp    10b793 <rtems_aio_move_to_work+0x2b><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b780:	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 &&                            
  10b782:	39 50 14             	cmp    %edx,0x14(%eax)                
  10b785:	7d 0c                	jge    10b793 <rtems_aio_move_to_work+0x2b>
  10b787:	3d ec 94 12 00       	cmp    $0x1294ec,%eax                 
  10b78c:	75 f2                	jne    10b780 <rtems_aio_move_to_work+0x18><== ALWAYS TAKEN
  10b78e:	b8 ec 94 12 00       	mov    $0x1294ec,%eax                 <== NOT EXECUTED
  10b793:	83 ec 08             	sub    $0x8,%esp                      
  10b796:	51                   	push   %ecx                           
  10b797:	ff 70 04             	pushl  0x4(%eax)                      
  10b79a:	e8 49 26 00 00       	call   10dde8 <_Chain_Insert>         
  10b79f:	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);
}                                                                     
  10b7a2:	c9                   	leave                                 
  10b7a3:	c3                   	ret                                   
                                                                      

0010ba38 <rtems_aio_remove_fd>: * Output parameters: * NONE */ void rtems_aio_remove_fd (rtems_aio_request_chain *r_chain) {
  10ba38:	55                   	push   %ebp                           
  10ba39:	89 e5                	mov    %esp,%ebp                      
  10ba3b:	57                   	push   %edi                           
  10ba3c:	56                   	push   %esi                           
  10ba3d:	53                   	push   %ebx                           
  10ba3e:	83 ec 0c             	sub    $0xc,%esp                      
  10ba41:	8b 7d 08             	mov    0x8(%ebp),%edi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10ba44:	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));                        
  10ba47:	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))                          
  10ba4a:	39 fb                	cmp    %edi,%ebx                      
  10ba4c:	75 04                	jne    10ba52 <rtems_aio_remove_fd+0x1a><== ALWAYS TAKEN
  10ba4e:	eb 2d                	jmp    10ba7d <rtems_aio_remove_fd+0x45><== NOT EXECUTED
    {                                                                 
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
  10ba50:	89 f3                	mov    %esi,%ebx                      
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
  10ba52:	83 ec 0c             	sub    $0xc,%esp                      
  10ba55:	53                   	push   %ebx                           
  10ba56:	e8 51 23 00 00       	call   10ddac <_Chain_Extract>        
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10ba5b:	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;                            
  10ba5d:	8b 43 14             	mov    0x14(%ebx),%eax                
  10ba60:	c7 40 30 8c 00 00 00 	movl   $0x8c,0x30(%eax)               
      req->aiocbp->return_value = -1;                                 
  10ba67:	c7 40 34 ff ff ff ff 	movl   $0xffffffff,0x34(%eax)         
      free (req);                                                     
  10ba6e:	89 1c 24             	mov    %ebx,(%esp)                    
  10ba71:	e8 3e c6 ff ff       	call   1080b4 <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))                          
  10ba76:	83 c4 10             	add    $0x10,%esp                     
  10ba79:	39 fe                	cmp    %edi,%esi                      
  10ba7b:	75 d3                	jne    10ba50 <rtems_aio_remove_fd+0x18>
      node = rtems_chain_next (node);                                 
      req->aiocbp->error_code = ECANCELED;                            
      req->aiocbp->return_value = -1;                                 
      free (req);                                                     
    }                                                                 
}                                                                     
  10ba7d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ba80:	5b                   	pop    %ebx                           
  10ba81:	5e                   	pop    %esi                           
  10ba82:	5f                   	pop    %edi                           
  10ba83:	c9                   	leave                                 
  10ba84:	c3                   	ret                                   
                                                                      

0010ba88 <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) {
  10ba88:	55                   	push   %ebp                           
  10ba89:	89 e5                	mov    %esp,%ebp                      
  10ba8b:	53                   	push   %ebx                           
  10ba8c:	83 ec 04             	sub    $0x4,%esp                      
  10ba8f:	8b 55 08             	mov    0x8(%ebp),%edx                 
  10ba92:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10ba95:	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 );                            
  10ba97:	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))                                   
  10ba9a:	39 d0                	cmp    %edx,%eax                      
  10ba9c:	74 4e                	je     10baec <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;                               
  10ba9e:	89 c3                	mov    %eax,%ebx                      
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
  10baa0:	39 48 14             	cmp    %ecx,0x14(%eax)                
  10baa3:	75 0a                	jne    10baaf <rtems_aio_remove_req+0x27><== NEVER TAKEN
  10baa5:	eb 19                	jmp    10bac0 <rtems_aio_remove_req+0x38>
  10baa7:	90                   	nop                                   
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
  10baa8:	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) {
  10baaa:	39 48 14             	cmp    %ecx,0x14(%eax)                <== NOT EXECUTED
  10baad:	74 11                	je     10bac0 <rtems_aio_remove_req+0x38><== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10baaf:	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) {
  10bab1:	39 d0                	cmp    %edx,%eax                      <== NOT EXECUTED
  10bab3:	75 f3                	jne    10baa8 <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;                                           
  10bab5:	b8 01 00 00 00       	mov    $0x1,%eax                      <== NOT EXECUTED
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
  10baba:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10babd:	c9                   	leave                                 <== NOT EXECUTED
  10babe:	c3                   	ret                                   <== NOT EXECUTED
  10babf:	90                   	nop                                   <== NOT EXECUTED
  10bac0:	83 ec 0c             	sub    $0xc,%esp                      
  10bac3:	50                   	push   %eax                           
  10bac4:	e8 e3 22 00 00       	call   10ddac <_Chain_Extract>        
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
  else                                                                
    {                                                                 
      rtems_chain_extract (node);                                     
      current->aiocbp->error_code = ECANCELED;                        
  10bac9:	8b 43 14             	mov    0x14(%ebx),%eax                
  10bacc:	c7 40 30 8c 00 00 00 	movl   $0x8c,0x30(%eax)               
      current->aiocbp->return_value = -1;                             
  10bad3:	c7 40 34 ff ff ff ff 	movl   $0xffffffff,0x34(%eax)         
      free (current);                                                 
  10bada:	89 1c 24             	mov    %ebx,(%esp)                    
  10badd:	e8 d2 c5 ff ff       	call   1080b4 <free>                  
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
  10bae2:	83 c4 10             	add    $0x10,%esp                     
  10bae5:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10bae7:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10baea:	c9                   	leave                                 
  10baeb:	c3                   	ret                                   
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
    return AIO_ALLDONE;                                               
  10baec:	b8 02 00 00 00       	mov    $0x2,%eax                      
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
  10baf1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10baf4:	c9                   	leave                                 
  10baf5:	c3                   	ret                                   
                                                                      

0010b6a8 <rtems_aio_search_fd>: * */ rtems_aio_request_chain * rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create) {
  10b6a8:	55                   	push   %ebp                           
  10b6a9:	89 e5                	mov    %esp,%ebp                      
  10b6ab:	57                   	push   %edi                           
  10b6ac:	56                   	push   %esi                           
  10b6ad:	53                   	push   %ebx                           
  10b6ae:	83 ec 1c             	sub    $0x1c,%esp                     
  10b6b1:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10b6b4:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b6b7:	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)) {
  10b6b9:	8b 50 14             	mov    0x14(%eax),%edx                
  10b6bc:	39 d3                	cmp    %edx,%ebx                      
  10b6be:	7e 28                	jle    10b6e8 <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));                        
  10b6c0:	8d 4e 04             	lea    0x4(%esi),%ecx                 
  10b6c3:	eb 0c                	jmp    10b6d1 <rtems_aio_search_fd+0x29>
  10b6c5:	8d 76 00             	lea    0x0(%esi),%esi                 
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b6c8:	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)) {
  10b6ca:	8b 50 14             	mov    0x14(%eax),%edx                
  10b6cd:	39 da                	cmp    %ebx,%edx                      
  10b6cf:	7d 17                	jge    10b6e8 <rtems_aio_search_fd+0x40>
  10b6d1:	39 c8                	cmp    %ecx,%eax                      
  10b6d3:	75 f3                	jne    10b6c8 <rtems_aio_search_fd+0x20>
  10b6d5:	89 c7                	mov    %eax,%edi                      
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
  10b6d7:	8b 45 10             	mov    0x10(%ebp),%eax                
  10b6da:	85 c0                	test   %eax,%eax                      
  10b6dc:	75 1f                	jne    10b6fd <rtems_aio_search_fd+0x55>
      r_chain = NULL;                                                 
  10b6de:	31 c0                	xor    %eax,%eax                      
      r_chain->new_fd = 1;                                            
	  r_chain->fildes = fildes;                                          
    }                                                                 
  }                                                                   
  return r_chain;                                                     
}                                                                     
  10b6e0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b6e3:	5b                   	pop    %ebx                           
  10b6e4:	5e                   	pop    %esi                           
  10b6e5:	5f                   	pop    %edi                           
  10b6e6:	c9                   	leave                                 
  10b6e7:	c3                   	ret                                   
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
  10b6e8:	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)                                      
  10b6ea:	39 d3                	cmp    %edx,%ebx                      
  10b6ec:	75 e9                	jne    10b6d7 <rtems_aio_search_fd+0x2f>
    r_chain->new_fd = 0;                                              
  10b6ee:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
      r_chain->new_fd = 1;                                            
	  r_chain->fildes = fildes;                                          
    }                                                                 
  }                                                                   
  return r_chain;                                                     
}                                                                     
  10b6f5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b6f8:	5b                   	pop    %ebx                           
  10b6f9:	5e                   	pop    %esi                           
  10b6fa:	5f                   	pop    %edi                           
  10b6fb:	c9                   	leave                                 
  10b6fc:	c3                   	ret                                   
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
      r_chain = NULL;                                                 
    else {                                                            
      r_chain = malloc (sizeof (rtems_aio_request_chain));            
  10b6fd:	83 ec 0c             	sub    $0xc,%esp                      
  10b700:	6a 24                	push   $0x24                          
  10b702:	e8 c1 ce ff ff       	call   1085c8 <malloc>                
  10b707:	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 );                        
  10b709:	8d 4a 0c             	lea    0xc(%edx),%ecx                 
  10b70c:	89 4a 08             	mov    %ecx,0x8(%edx)                 
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  10b70f:	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 );                        
  10b716:	8d 4a 08             	lea    0x8(%edx),%ecx                 
  10b719:	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 );                            
  10b71c:	8d 4e 04             	lea    0x4(%esi),%ecx                 
      rtems_chain_initialize_empty (&r_chain->perfd);                 
                                                                      
      if (rtems_chain_is_empty (chain))                               
  10b71f:	83 c4 10             	add    $0x10,%esp                     
  10b722:	39 0e                	cmp    %ecx,(%esi)                    
  10b724:	74 27                	je     10b74d <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 );                              
  10b726:	83 ec 08             	sub    $0x8,%esp                      
  10b729:	52                   	push   %edx                           
  10b72a:	ff 77 04             	pushl  0x4(%edi)                      
  10b72d:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b730:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  10b733:	e8 b0 26 00 00       	call   10dde8 <_Chain_Insert>         
  10b738:	83 c4 10             	add    $0x10,%esp                     
  10b73b:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10b73e:	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;                                            
  10b741:	c7 42 18 01 00 00 00 	movl   $0x1,0x18(%edx)                
	  r_chain->fildes = fildes;                                          
  10b748:	89 5a 14             	mov    %ebx,0x14(%edx)                
  10b74b:	eb a8                	jmp    10b6f5 <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);                    
  10b74d:	83 ec 08             	sub    $0x8,%esp                      
  10b750:	52                   	push   %edx                           
  10b751:	56                   	push   %esi                           
  10b752:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b755:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  10b758:	e8 8b 26 00 00       	call   10dde8 <_Chain_Insert>         
  10b75d:	83 c4 10             	add    $0x10,%esp                     
  10b760:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10b763:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  10b766:	eb d9                	jmp    10b741 <rtems_aio_search_fd+0x99>
                                                                      

00112c04 <rtems_barrier_create>: rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) {
  112c04:	55                   	push   %ebp                           
  112c05:	89 e5                	mov    %esp,%ebp                      
  112c07:	57                   	push   %edi                           
  112c08:	56                   	push   %esi                           
  112c09:	53                   	push   %ebx                           
  112c0a:	83 ec 2c             	sub    $0x2c,%esp                     
  112c0d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  112c10:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  112c13:	8b 45 10             	mov    0x10(%ebp),%eax                
  112c16:	8b 75 14             	mov    0x14(%ebp),%esi                
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  112c19:	85 db                	test   %ebx,%ebx                      
  112c1b:	0f 84 87 00 00 00    	je     112ca8 <rtems_barrier_create+0xa4>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  112c21:	85 f6                	test   %esi,%esi                      
  112c23:	0f 84 bf 00 00 00    	je     112ce8 <rtems_barrier_create+0xe4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Initialize core barrier attributes */                            
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
  112c29:	f7 c7 10 00 00 00    	test   $0x10,%edi                     
  112c2f:	0f 84 83 00 00 00    	je     112cb8 <rtems_barrier_create+0xb4>
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
  112c35:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)               
    if ( maximum_waiters == 0 )                                       
  112c3c:	85 c0                	test   %eax,%eax                      
  112c3e:	0f 84 80 00 00 00    	je     112cc4 <rtems_barrier_create+0xc0>
      return RTEMS_INVALID_NUMBER;                                    
  } else                                                              
    the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE;          
  the_attributes.maximum_count = maximum_waiters;                     
  112c44:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  112c47:	a1 4c a1 12 00       	mov    0x12a14c,%eax                  
  112c4c:	40                   	inc    %eax                           
  112c4d:	a3 4c a1 12 00       	mov    %eax,0x12a14c                  
 *  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 );
  112c52:	83 ec 0c             	sub    $0xc,%esp                      
  112c55:	68 40 ab 12 00       	push   $0x12ab40                      
  112c5a:	e8 b1 ae ff ff       	call   10db10 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
  112c5f:	83 c4 10             	add    $0x10,%esp                     
  112c62:	85 c0                	test   %eax,%eax                      
  112c64:	74 6e                	je     112cd4 <rtems_barrier_create+0xd0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_barrier->attribute_set = attribute_set;                         
  112c66:	89 78 10             	mov    %edi,0x10(%eax)                
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
  112c69:	83 ec 08             	sub    $0x8,%esp                      
  112c6c:	8d 55 e0             	lea    -0x20(%ebp),%edx               
  112c6f:	52                   	push   %edx                           
  112c70:	8d 50 14             	lea    0x14(%eax),%edx                
  112c73:	52                   	push   %edx                           
  112c74:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  112c77:	e8 44 0a 00 00       	call   1136c0 <_CORE_barrier_Initialize>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  112c7c:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  112c7f:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  112c82:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  112c85:	8b 0d 5c ab 12 00    	mov    0x12ab5c,%ecx                  
  112c8b:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  112c8e:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Barrier_Information,                                            
    &the_barrier->Object,                                             
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_barrier->Object.id;                                       
  112c91:	89 16                	mov    %edx,(%esi)                    
                                                                      
  _Thread_Enable_dispatch();                                          
  112c93:	e8 6c be ff ff       	call   10eb04 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  112c98:	83 c4 10             	add    $0x10,%esp                     
  112c9b:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112c9d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112ca0:	5b                   	pop    %ebx                           
  112ca1:	5e                   	pop    %esi                           
  112ca2:	5f                   	pop    %edi                           
  112ca3:	c9                   	leave                                 
  112ca4:	c3                   	ret                                   
  112ca5:	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;                                        
  112ca8:	b8 03 00 00 00       	mov    $0x3,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  112cad:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112cb0:	5b                   	pop    %ebx                           
  112cb1:	5e                   	pop    %esi                           
  112cb2:	5f                   	pop    %edi                           
  112cb3:	c9                   	leave                                 
  112cb4:	c3                   	ret                                   
  112cb5:	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;          
  112cb8:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)               
  112cbf:	eb 83                	jmp    112c44 <rtems_barrier_create+0x40>
  112cc1:	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;                                    
  112cc4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  112cc9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112ccc:	5b                   	pop    %ebx                           
  112ccd:	5e                   	pop    %esi                           
  112cce:	5f                   	pop    %edi                           
  112ccf:	c9                   	leave                                 
  112cd0:	c3                   	ret                                   
  112cd1:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
  112cd4:	e8 2b be ff ff       	call   10eb04 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  112cd9:	b8 05 00 00 00       	mov    $0x5,%eax                      
                                                                      
  *id = the_barrier->Object.id;                                       
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  112cde:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  112ce1:	5b                   	pop    %ebx                           
  112ce2:	5e                   	pop    %esi                           
  112ce3:	5f                   	pop    %edi                           
  112ce4:	c9                   	leave                                 
  112ce5:	c3                   	ret                                   
  112ce6:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  112ce8:	b8 09 00 00 00       	mov    $0x9,%eax                      
  112ced:	eb ae                	jmp    112c9d <rtems_barrier_create+0x99>
                                                                      

0010b708 <rtems_chain_append_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
  10b708:	55                   	push   %ebp                           
  10b709:	89 e5                	mov    %esp,%ebp                      
  10b70b:	56                   	push   %esi                           
  10b70c:	53                   	push   %ebx                           
  10b70d:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10b710:	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 );               
  10b713:	83 ec 08             	sub    $0x8,%esp                      
  10b716:	ff 75 0c             	pushl  0xc(%ebp)                      
  10b719:	ff 75 08             	pushl  0x8(%ebp)                      
  10b71c:	e8 eb 04 00 00       	call   10bc0c <_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 ) {                                                  
  10b721:	83 c4 10             	add    $0x10,%esp                     
  10b724:	84 c0                	test   %al,%al                        
  10b726:	75 0c                	jne    10b734 <rtems_chain_append_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b728:	31 c0                	xor    %eax,%eax                      
  10b72a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b72d:	5b                   	pop    %ebx                           
  10b72e:	5e                   	pop    %esi                           
  10b72f:	c9                   	leave                                 
  10b730:	c3                   	ret                                   
  10b731:	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 );                            
  10b734:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10b737:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b73a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b73d:	5b                   	pop    %ebx                           
  10b73e:	5e                   	pop    %esi                           
  10b73f:	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 );                            
  10b740:	e9 5f f6 ff ff       	jmp    10ada4 <rtems_event_send>      
                                                                      

0010b748 <rtems_chain_get_with_notification>: rtems_chain_control *chain, rtems_id task, rtems_event_set events, rtems_chain_node **node ) {
  10b748:	55                   	push   %ebp                           
  10b749:	89 e5                	mov    %esp,%ebp                      
  10b74b:	56                   	push   %esi                           
  10b74c:	53                   	push   %ebx                           
  10b74d:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b750:	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 );                  
  10b753:	83 ec 08             	sub    $0x8,%esp                      
  10b756:	ff 75 14             	pushl  0x14(%ebp)                     
  10b759:	ff 75 08             	pushl  0x8(%ebp)                      
  10b75c:	e8 13 05 00 00       	call   10bc74 <_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 ) {                                                   
  10b761:	83 c4 10             	add    $0x10,%esp                     
  10b764:	84 c0                	test   %al,%al                        
  10b766:	75 0c                	jne    10b774 <rtems_chain_get_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b768:	31 c0                	xor    %eax,%eax                      
  10b76a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b76d:	5b                   	pop    %ebx                           
  10b76e:	5e                   	pop    %esi                           
  10b76f:	c9                   	leave                                 
  10b770:	c3                   	ret                                   
  10b771:	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 );                            
  10b774:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10b777:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b77a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b77d:	5b                   	pop    %ebx                           
  10b77e:	5e                   	pop    %esi                           
  10b77f:	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 );                            
  10b780:	e9 1f f6 ff ff       	jmp    10ada4 <rtems_event_send>      
                                                                      

0010b788 <rtems_chain_get_with_wait>: rtems_chain_control *chain, rtems_event_set events, rtems_interval timeout, rtems_chain_node **node_ptr ) {
  10b788:	55                   	push   %ebp                           
  10b789:	89 e5                	mov    %esp,%ebp                      
  10b78b:	57                   	push   %edi                           
  10b78c:	56                   	push   %esi                           
  10b78d:	53                   	push   %ebx                           
  10b78e:	83 ec 1c             	sub    $0x1c,%esp                     
  10b791:	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(                                         
  10b794:	8d 7d e4             	lea    -0x1c(%ebp),%edi               
  10b797:	90                   	nop                                   
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
  10b798:	83 ec 0c             	sub    $0xc,%esp                      
  10b79b:	56                   	push   %esi                           
  10b79c:	e8 0f 05 00 00       	call   10bcb0 <_Chain_Get>            
  10b7a1:	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                    
  10b7a3:	83 c4 10             	add    $0x10,%esp                     
  10b7a6:	85 c0                	test   %eax,%eax                      
  10b7a8:	75 22                	jne    10b7cc <rtems_chain_get_with_wait+0x44>
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
  10b7aa:	57                   	push   %edi                           
  10b7ab:	ff 75 10             	pushl  0x10(%ebp)                     
  10b7ae:	6a 00                	push   $0x0                           
  10b7b0:	ff 75 0c             	pushl  0xc(%ebp)                      
  10b7b3:	e8 64 f4 ff ff       	call   10ac1c <rtems_event_receive>   
)                                                                     
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
  10b7b8:	83 c4 10             	add    $0x10,%esp                     
  10b7bb:	85 c0                	test   %eax,%eax                      
  10b7bd:	74 d9                	je     10b798 <rtems_chain_get_with_wait+0x10><== NEVER TAKEN
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
  10b7bf:	8b 55 14             	mov    0x14(%ebp),%edx                
  10b7c2:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  return sc;                                                          
}                                                                     
  10b7c4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7c7:	5b                   	pop    %ebx                           
  10b7c8:	5e                   	pop    %esi                           
  10b7c9:	5f                   	pop    %edi                           
  10b7ca:	c9                   	leave                                 
  10b7cb:	c3                   	ret                                   
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  10b7cc:	31 c0                	xor    %eax,%eax                      
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
  10b7ce:	8b 55 14             	mov    0x14(%ebp),%edx                
  10b7d1:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  return sc;                                                          
}                                                                     
  10b7d3:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7d6:	5b                   	pop    %ebx                           
  10b7d7:	5e                   	pop    %esi                           
  10b7d8:	5f                   	pop    %edi                           
  10b7d9:	c9                   	leave                                 
  10b7da:	c3                   	ret                                   
                                                                      

0010b7dc <rtems_chain_prepend_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
  10b7dc:	55                   	push   %ebp                           
  10b7dd:	89 e5                	mov    %esp,%ebp                      
  10b7df:	56                   	push   %esi                           
  10b7e0:	53                   	push   %ebx                           
  10b7e1:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10b7e4:	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 );              
  10b7e7:	83 ec 08             	sub    $0x8,%esp                      
  10b7ea:	ff 75 0c             	pushl  0xc(%ebp)                      
  10b7ed:	ff 75 08             	pushl  0x8(%ebp)                      
  10b7f0:	e8 ff 04 00 00       	call   10bcf4 <_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) {                                                    
  10b7f5:	83 c4 10             	add    $0x10,%esp                     
  10b7f8:	84 c0                	test   %al,%al                        
  10b7fa:	75 0c                	jne    10b808 <rtems_chain_prepend_with_notification+0x2c>
    sc = rtems_event_send( task, events );                            
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b7fc:	31 c0                	xor    %eax,%eax                      
  10b7fe:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b801:	5b                   	pop    %ebx                           
  10b802:	5e                   	pop    %esi                           
  10b803:	c9                   	leave                                 
  10b804:	c3                   	ret                                   
  10b805:	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 );                            
  10b808:	89 75 0c             	mov    %esi,0xc(%ebp)                 
  10b80b:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
  10b80e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b811:	5b                   	pop    %ebx                           
  10b812:	5e                   	pop    %esi                           
  10b813:	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 );                            
  10b814:	e9 8b f5 ff ff       	jmp    10ada4 <rtems_event_send>      
                                                                      

00115088 <rtems_clock_get>: rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) {
  115088:	55                   	push   %ebp                           
  115089:	89 e5                	mov    %esp,%ebp                      
  11508b:	53                   	push   %ebx                           
  11508c:	83 ec 04             	sub    $0x4,%esp                      
  11508f:	8b 45 08             	mov    0x8(%ebp),%eax                 
  115092:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  if ( !time_buffer )                                                 
  115095:	85 db                	test   %ebx,%ebx                      
  115097:	74 3b                	je     1150d4 <rtems_clock_get+0x4c>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
  115099:	85 c0                	test   %eax,%eax                      
  11509b:	74 2b                	je     1150c8 <rtems_clock_get+0x40>  
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
                                                                      
  if ( option == RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH )                
  11509d:	83 f8 01             	cmp    $0x1,%eax                      
  1150a0:	74 3e                	je     1150e0 <rtems_clock_get+0x58>  
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
  1150a2:	83 f8 02             	cmp    $0x2,%eax                      
  1150a5:	74 45                	je     1150ec <rtems_clock_get+0x64>  
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
  1150a7:	83 f8 03             	cmp    $0x3,%eax                      
  1150aa:	74 4c                	je     1150f8 <rtems_clock_get+0x70>  
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
  1150ac:	83 f8 04             	cmp    $0x4,%eax                      
  1150af:	74 0b                	je     1150bc <rtems_clock_get+0x34>  
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
  1150b1:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
}                                                                     
  1150b6:	5a                   	pop    %edx                           
  1150b7:	5b                   	pop    %ebx                           
  1150b8:	c9                   	leave                                 
  1150b9:	c3                   	ret                                   
  1150ba:	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 );
  1150bc:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
  1150bf:	59                   	pop    %ecx                           
  1150c0:	5b                   	pop    %ebx                           
  1150c1:	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 );
  1150c2:	e9 41 01 00 00       	jmp    115208 <rtems_clock_get_tod_timeval>
  1150c7:	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 );   
  1150c8:	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;                                        
                                                                      
}                                                                     
  1150cb:	58                   	pop    %eax                           
  1150cc:	5b                   	pop    %ebx                           
  1150cd:	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 );   
  1150ce:	e9 81 00 00 00       	jmp    115154 <rtems_clock_get_tod>   
  1150d3:	90                   	nop                                   
  rtems_clock_get_options  option,                                    
  void                    *time_buffer                                
)                                                                     
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  1150d4:	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;                                        
                                                                      
}                                                                     
  1150d9:	5a                   	pop    %edx                           
  1150da:	5b                   	pop    %ebx                           
  1150db:	c9                   	leave                                 
  1150dc:	c3                   	ret                                   
  1150dd:	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);
  1150e0:	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;                                        
                                                                      
}                                                                     
  1150e3:	5b                   	pop    %ebx                           
  1150e4:	5b                   	pop    %ebx                           
  1150e5:	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);
  1150e6:	e9 19 00 00 00       	jmp    115104 <rtems_clock_get_seconds_since_epoch>
  1150eb:	90                   	nop                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
  1150ec:	e8 57 00 00 00       	call   115148 <rtems_clock_get_ticks_since_boot>
  1150f1:	89 03                	mov    %eax,(%ebx)                    
    return RTEMS_SUCCESSFUL;                                          
  1150f3:	31 c0                	xor    %eax,%eax                      
  1150f5:	eb bf                	jmp    1150b6 <rtems_clock_get+0x2e>  
  1150f7:	90                   	nop                                   
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
  1150f8:	e8 37 00 00 00       	call   115134 <rtems_clock_get_ticks_per_second>
  1150fd:	89 03                	mov    %eax,(%ebx)                    
    return RTEMS_SUCCESSFUL;                                          
  1150ff:	31 c0                	xor    %eax,%eax                      
  115101:	eb b3                	jmp    1150b6 <rtems_clock_get+0x2e>  
                                                                      

00115208 <rtems_clock_get_tod_timeval>: #include <rtems/score/watchdog.h> rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) {
  115208:	55                   	push   %ebp                           
  115209:	89 e5                	mov    %esp,%ebp                      
  11520b:	56                   	push   %esi                           
  11520c:	53                   	push   %ebx                           
  11520d:	83 ec 10             	sub    $0x10,%esp                     
  115210:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  if ( !time )                                                        
  115213:	85 db                	test   %ebx,%ebx                      
  115215:	74 51                	je     115268 <rtems_clock_get_tod_timeval+0x60>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
  115217:	80 3d bc 20 14 00 00 	cmpb   $0x0,0x1420bc                  
  11521e:	75 0c                	jne    11522c <rtems_clock_get_tod_timeval+0x24>
    return RTEMS_NOT_DEFINED;                                         
  115220:	b8 0b 00 00 00       	mov    $0xb,%eax                      
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115225:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115228:	5b                   	pop    %ebx                           
  115229:	5e                   	pop    %esi                           
  11522a:	c9                   	leave                                 
  11522b:	c3                   	ret                                   
{                                                                     
  ISR_Level       level;                                              
  struct timespec now;                                                
  suseconds_t     useconds;                                           
                                                                      
  _ISR_Disable(level);                                                
  11522c:	9c                   	pushf                                 
  11522d:	fa                   	cli                                   
  11522e:	5e                   	pop    %esi                           
    _TOD_Get( &now );                                                 
  11522f:	83 ec 0c             	sub    $0xc,%esp                      
  115232:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  115235:	50                   	push   %eax                           
  115236:	e8 01 44 00 00       	call   11963c <_TOD_Get>              
  _ISR_Enable(level);                                                 
  11523b:	56                   	push   %esi                           
  11523c:	9d                   	popf                                  
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  11523d:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  115240:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  115243:	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;           
  115245:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax               
  11524a:	f7 e9                	imul   %ecx                           
  11524c:	89 d0                	mov    %edx,%eax                      
  11524e:	c1 f8 06             	sar    $0x6,%eax                      
  115251:	c1 f9 1f             	sar    $0x1f,%ecx                     
  115254:	29 c8                	sub    %ecx,%eax                      
  115256:	89 43 04             	mov    %eax,0x4(%ebx)                 
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  115259:	83 c4 10             	add    $0x10,%esp                     
  11525c:	31 c0                	xor    %eax,%eax                      
}                                                                     
  11525e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115261:	5b                   	pop    %ebx                           
  115262:	5e                   	pop    %esi                           
  115263:	c9                   	leave                                 
  115264:	c3                   	ret                                   
  115265:	8d 76 00             	lea    0x0(%esi),%esi                 
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  115268:	b8 09 00 00 00       	mov    $0x9,%eax                      
  11526d:	eb b6                	jmp    115225 <rtems_clock_get_tod_timeval+0x1d>
                                                                      

0010a77c <rtems_clock_get_uptime>: * error code - if unsuccessful */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) {
  10a77c:	55                   	push   %ebp                           
  10a77d:	89 e5                	mov    %esp,%ebp                      
  10a77f:	83 ec 08             	sub    $0x8,%esp                      
  10a782:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( !uptime )                                                      
  10a785:	85 c0                	test   %eax,%eax                      
  10a787:	74 13                	je     10a79c <rtems_clock_get_uptime+0x20>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
  10a789:	83 ec 0c             	sub    $0xc,%esp                      
  10a78c:	50                   	push   %eax                           
  10a78d:	e8 8e 14 00 00       	call   10bc20 <_TOD_Get_uptime_as_timespec>
  return RTEMS_SUCCESSFUL;                                            
  10a792:	83 c4 10             	add    $0x10,%esp                     
  10a795:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10a797:	c9                   	leave                                 
  10a798:	c3                   	ret                                   
  10a799:	8d 76 00             	lea    0x0(%esi),%esi                 
rtems_status_code rtems_clock_get_uptime(                             
  struct timespec *uptime                                             
)                                                                     
{                                                                     
  if ( !uptime )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  10a79c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10a7a1:	c9                   	leave                                 
  10a7a2:	c3                   	ret                                   
                                                                      

0010b6f0 <rtems_clock_set>: */ rtems_status_code rtems_clock_set( rtems_time_of_day *time_buffer ) {
  10b6f0:	55                   	push   %ebp                           
  10b6f1:	89 e5                	mov    %esp,%ebp                      
  10b6f3:	53                   	push   %ebx                           
  10b6f4:	83 ec 14             	sub    $0x14,%esp                     
  10b6f7:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  struct timespec  newtime;                                           
                                                                      
  if ( !time_buffer )                                                 
  10b6fa:	85 db                	test   %ebx,%ebx                      
  10b6fc:	74 66                	je     10b764 <rtems_clock_set+0x74>  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( _TOD_Validate( time_buffer ) ) {                               
  10b6fe:	83 ec 0c             	sub    $0xc,%esp                      
  10b701:	53                   	push   %ebx                           
  10b702:	e8 39 01 00 00       	call   10b840 <_TOD_Validate>         
  10b707:	83 c4 10             	add    $0x10,%esp                     
  10b70a:	84 c0                	test   %al,%al                        
  10b70c:	75 0a                	jne    10b718 <rtems_clock_set+0x28>  
    _Thread_Disable_dispatch();                                       
      _TOD_Set( &newtime );                                           
    _Thread_Enable_dispatch();                                        
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
  10b70e:	b8 14 00 00 00       	mov    $0x14,%eax                     
}                                                                     
  10b713:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b716:	c9                   	leave                                 
  10b717:	c3                   	ret                                   
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( _TOD_Validate( time_buffer ) ) {                               
    newtime.tv_sec = _TOD_To_seconds( time_buffer );                  
  10b718:	83 ec 0c             	sub    $0xc,%esp                      
  10b71b:	53                   	push   %ebx                           
  10b71c:	e8 93 00 00 00       	call   10b7b4 <_TOD_To_seconds>       
  10b721:	89 45 f0             	mov    %eax,-0x10(%ebp)               
    newtime.tv_nsec = time_buffer->ticks *                            
  10b724:	8b 43 18             	mov    0x18(%ebx),%eax                
  10b727:	0f af 05 6c 6c 12 00 	imul   0x126c6c,%eax                  
  10b72e:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b731:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b734:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10b737:	c1 e0 03             	shl    $0x3,%eax                      
  10b73a:	89 45 f4             	mov    %eax,-0xc(%ebp)                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b73d:	a1 6c b3 12 00       	mov    0x12b36c,%eax                  
  10b742:	40                   	inc    %eax                           
  10b743:	a3 6c b3 12 00       	mov    %eax,0x12b36c                  
      rtems_configuration_get_nanoseconds_per_tick();                 
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( &newtime );                                           
  10b748:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  10b74b:	89 04 24             	mov    %eax,(%esp)                    
  10b74e:	e8 6d 17 00 00       	call   10cec0 <_TOD_Set>              
    _Thread_Enable_dispatch();                                        
  10b753:	e8 54 2d 00 00       	call   10e4ac <_Thread_Enable_dispatch>
    return RTEMS_SUCCESSFUL;                                          
  10b758:	83 c4 10             	add    $0x10,%esp                     
  10b75b:	31 c0                	xor    %eax,%eax                      
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
}                                                                     
  10b75d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b760:	c9                   	leave                                 
  10b761:	c3                   	ret                                   
  10b762:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  struct timespec  newtime;                                           
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  10b764:	b8 09 00 00 00       	mov    $0x9,%eax                      
      _TOD_Set( &newtime );                                           
    _Thread_Enable_dispatch();                                        
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
  return RTEMS_INVALID_CLOCK;                                         
}                                                                     
  10b769:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b76c:	c9                   	leave                                 
  10b76d:	c3                   	ret                                   
                                                                      

0010a578 <rtems_clock_tick>: * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) {
  10a578:	55                   	push   %ebp                           
  10a579:	89 e5                	mov    %esp,%ebp                      
  10a57b:	83 ec 08             	sub    $0x8,%esp                      
  _TOD_Tickle_ticks();                                                
  10a57e:	e8 51 13 00 00       	call   10b8d4 <_TOD_Tickle_ticks>     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void )              
{                                                                     
                                                                      
  _Watchdog_Tickle( &_Watchdog_Ticks_chain );                         
  10a583:	83 ec 0c             	sub    $0xc,%esp                      
  10a586:	68 c0 78 12 00       	push   $0x1278c0                      
  10a58b:	e8 10 37 00 00       	call   10dca0 <_Watchdog_Tickle>      
                                                                      
  _Watchdog_Tickle_ticks();                                           
                                                                      
  _Thread_Tickle_timeslice();                                         
  10a590:	e8 d7 31 00 00       	call   10d76c <_Thread_Tickle_timeslice>
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) 
{                                                                     
  return ( _Thread_Dispatch_necessary );                              
  10a595:	a0 a4 7d 12 00       	mov    0x127da4,%al                   
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
  10a59a:	83 c4 10             	add    $0x10,%esp                     
  10a59d:	84 c0                	test   %al,%al                        
  10a59f:	74 09                	je     10a5aa <rtems_clock_tick+0x32> 
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )      
{                                                                     
  return ( _Thread_Dispatch_disable_level == 0 );                     
  10a5a1:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10a5a6:	85 c0                	test   %eax,%eax                      
  10a5a8:	74 06                	je     10a5b0 <rtems_clock_tick+0x38> 
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10a5aa:	31 c0                	xor    %eax,%eax                      
  10a5ac:	c9                   	leave                                 
  10a5ad:	c3                   	ret                                   
  10a5ae:	66 90                	xchg   %ax,%ax                        
                                                                      
  _Thread_Tickle_timeslice();                                         
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
  10a5b0:	e8 53 26 00 00       	call   10cc08 <_Thread_Dispatch>      
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10a5b5:	31 c0                	xor    %eax,%eax                      
  10a5b7:	c9                   	leave                                 
  10a5b8:	c3                   	ret                                   
                                                                      

0010a744 <rtems_event_send>: rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in ) {
  10a744:	55                   	push   %ebp                           
  10a745:	89 e5                	mov    %esp,%ebp                      
  10a747:	53                   	push   %ebx                           
  10a748:	83 ec 1c             	sub    $0x1c,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10a74b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10a74e:	50                   	push   %eax                           
  10a74f:	ff 75 08             	pushl  0x8(%ebp)                      
  10a752:	e8 4d 26 00 00       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  10a757:	83 c4 10             	add    $0x10,%esp                     
  10a75a:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10a75d:	85 d2                	test   %edx,%edx                      
  10a75f:	75 2b                	jne    10a78c <rtems_event_send+0x48> 
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
  10a761:	8b 90 e8 00 00 00    	mov    0xe8(%eax),%edx                
  rtems_event_set *the_event_set                                      
)                                                                     
{                                                                     
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
  10a767:	9c                   	pushf                                 
  10a768:	fa                   	cli                                   
  10a769:	59                   	pop    %ecx                           
    *the_event_set |= the_new_events;                                 
  10a76a:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10a76d:	09 1a                	or     %ebx,(%edx)                    
  _ISR_Enable( level );                                               
  10a76f:	51                   	push   %ecx                           
  10a770:	9d                   	popf                                  
      _Event_sets_Post( event_in, &api->pending_events );             
      _Event_Surrender( the_thread );                                 
  10a771:	83 ec 0c             	sub    $0xc,%esp                      
  10a774:	50                   	push   %eax                           
  10a775:	e8 1e 00 00 00       	call   10a798 <_Event_Surrender>      
      _Thread_Enable_dispatch();                                      
  10a77a:	e8 01 26 00 00       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10a77f:	83 c4 10             	add    $0x10,%esp                     
  10a782:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10a784:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a787:	c9                   	leave                                 
  10a788:	c3                   	ret                                   
  10a789:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10a78c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10a791:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10a794:	c9                   	leave                                 
  10a795:	c3                   	ret                                   
                                                                      

0010c6b8 <rtems_extension_create>: rtems_status_code rtems_extension_create( rtems_name name, const rtems_extensions_table *extension_table, rtems_id *id ) {
  10c6b8:	55                   	push   %ebp                           
  10c6b9:	89 e5                	mov    %esp,%ebp                      
  10c6bb:	57                   	push   %edi                           
  10c6bc:	56                   	push   %esi                           
  10c6bd:	53                   	push   %ebx                           
  10c6be:	83 ec 1c             	sub    $0x1c,%esp                     
  10c6c1:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10c6c4:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Extension_Control *the_extension;                                   
                                                                      
  if ( !id )                                                          
  10c6c7:	85 db                	test   %ebx,%ebx                      
  10c6c9:	0f 84 85 00 00 00    	je     10c754 <rtems_extension_create+0x9c><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10c6cf:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10c6d2:	85 c0                	test   %eax,%eax                      
  10c6d4:	75 0e                	jne    10c6e4 <rtems_extension_create+0x2c>
    return RTEMS_INVALID_NAME;                                        
  10c6d6:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_extension->Object.id;                                     
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c6db:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c6de:	5b                   	pop    %ebx                           
  10c6df:	5e                   	pop    %esi                           
  10c6e0:	5f                   	pop    %edi                           
  10c6e1:	c9                   	leave                                 
  10c6e2:	c3                   	ret                                   
  10c6e3:	90                   	nop                                   
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c6e4:	a1 6c b3 12 00       	mov    0x12b36c,%eax                  
  10c6e9:	40                   	inc    %eax                           
  10c6ea:	a3 6c b3 12 00       	mov    %eax,0x12b36c                  
#ifndef __EXTENSION_MANAGER_inl                                       
#define __EXTENSION_MANAGER_inl                                       
                                                                      
RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Allocate( void )   
{                                                                     
  return (Extension_Control *) _Objects_Allocate( &_Extension_Information );
  10c6ef:	83 ec 0c             	sub    $0xc,%esp                      
  10c6f2:	68 c0 b5 12 00       	push   $0x12b5c0                      
  10c6f7:	e8 04 0d 00 00       	call   10d400 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_extension = _Extension_Allocate();                              
                                                                      
  if ( !the_extension ) {                                             
  10c6fc:	83 c4 10             	add    $0x10,%esp                     
  10c6ff:	85 c0                	test   %eax,%eax                      
  10c701:	74 45                	je     10c748 <rtems_extension_create+0x90>
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
  10c703:	8d 78 24             	lea    0x24(%eax),%edi                
  10c706:	b9 08 00 00 00       	mov    $0x8,%ecx                      
  10c70b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  _User_extensions_Add_set( extension );                              
  10c70d:	83 ec 0c             	sub    $0xc,%esp                      
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  _User_extensions_Add_set_with_table( &the_extension->Extension, extension_table );
  10c710:	8d 50 10             	lea    0x10(%eax),%edx                
  10c713:	52                   	push   %edx                           
  10c714:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10c717:	e8 28 29 00 00       	call   10f044 <_User_extensions_Add_set>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10c71c:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10c71f:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10c722:	0f b7 f2             	movzwl %dx,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10c725:	8b 0d dc b5 12 00    	mov    0x12b5dc,%ecx                  
  10c72b:	89 04 b1             	mov    %eax,(%ecx,%esi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10c72e:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10c731:	89 48 0c             	mov    %ecx,0xc(%eax)                 
    &_Extension_Information,                                          
    &the_extension->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_extension->Object.id;                                     
  10c734:	89 13                	mov    %edx,(%ebx)                    
  _Thread_Enable_dispatch();                                          
  10c736:	e8 71 1d 00 00       	call   10e4ac <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10c73b:	83 c4 10             	add    $0x10,%esp                     
  10c73e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c740:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c743:	5b                   	pop    %ebx                           
  10c744:	5e                   	pop    %esi                           
  10c745:	5f                   	pop    %edi                           
  10c746:	c9                   	leave                                 
  10c747:	c3                   	ret                                   
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_extension = _Extension_Allocate();                              
                                                                      
  if ( !the_extension ) {                                             
    _Thread_Enable_dispatch();                                        
  10c748:	e8 5f 1d 00 00       	call   10e4ac <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10c74d:	b8 05 00 00 00       	mov    $0x5,%eax                      
  10c752:	eb 87                	jmp    10c6db <rtems_extension_create+0x23>
)                                                                     
{                                                                     
  Extension_Control *the_extension;                                   
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10c754:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10c759:	eb 80                	jmp    10c6db <rtems_extension_create+0x23>
                                                                      

0010c4f8 <rtems_extension_delete>: #include <rtems/extension.h> rtems_status_code rtems_extension_delete( rtems_id id ) {
  10c4f8:	55                   	push   %ebp                           
  10c4f9:	89 e5                	mov    %esp,%ebp                      
  10c4fb:	53                   	push   %ebx                           
  10c4fc:	83 ec 18             	sub    $0x18,%esp                     
  Extension_Control   *the_extension;                                 
  Objects_Locations    location;                                      
                                                                      
  the_extension = _Extension_Get( id, &location );                    
  10c4ff:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Extension_Control *)                                        
    _Objects_Get( &_Extension_Information, id, location );            
  10c502:	50                   	push   %eax                           
  10c503:	ff 75 08             	pushl  0x8(%ebp)                      
  10c506:	68 a0 af 12 00       	push   $0x12afa0                      
  10c50b:	e8 f0 10 00 00       	call   10d600 <_Objects_Get>          
  10c510:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10c512:	83 c4 10             	add    $0x10,%esp                     
  10c515:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10c518:	85 d2                	test   %edx,%edx                      
  10c51a:	75 38                	jne    10c554 <rtems_extension_delete+0x5c>
    case OBJECTS_LOCAL:                                               
      _User_extensions_Remove_set( &the_extension->Extension );       
  10c51c:	83 ec 0c             	sub    $0xc,%esp                      
  10c51f:	8d 40 10             	lea    0x10(%eax),%eax                
  10c522:	50                   	push   %eax                           
  10c523:	e8 bc 27 00 00       	call   10ece4 <_User_extensions_Remove_set>
      _Objects_Close( &_Extension_Information, &the_extension->Object );
  10c528:	59                   	pop    %ecx                           
  10c529:	58                   	pop    %eax                           
  10c52a:	53                   	push   %ebx                           
  10c52b:	68 a0 af 12 00       	push   $0x12afa0                      
  10c530:	e8 93 0c 00 00       	call   10d1c8 <_Objects_Close>        
                                                                      
RTEMS_INLINE_ROUTINE void _Extension_Free (                           
  Extension_Control *the_extension                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Extension_Information, &the_extension->Object );   
  10c535:	58                   	pop    %eax                           
  10c536:	5a                   	pop    %edx                           
  10c537:	53                   	push   %ebx                           
  10c538:	68 a0 af 12 00       	push   $0x12afa0                      
  10c53d:	e8 7e 0f 00 00       	call   10d4c0 <_Objects_Free>         
      _Extension_Free( the_extension );                               
      _Thread_Enable_dispatch();                                      
  10c542:	e8 c9 1b 00 00       	call   10e110 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10c547:	83 c4 10             	add    $0x10,%esp                     
  10c54a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10c54c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c54f:	c9                   	leave                                 
  10c550:	c3                   	ret                                   
  10c551:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10c554:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10c559:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10c55c:	c9                   	leave                                 
  10c55d:	c3                   	ret                                   
                                                                      

00112a60 <rtems_io_close>: rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112a60:	55                   	push   %ebp                           
  112a61:	89 e5                	mov    %esp,%ebp                      
  112a63:	53                   	push   %ebx                           
  112a64:	83 ec 04             	sub    $0x4,%esp                      
  112a67:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112a6a:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  112a70:	76 1a                	jbe    112a8c <rtems_io_close+0x2c>   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  112a72:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112a75:	c1 e2 03             	shl    $0x3,%edx                      
  112a78:	03 15 24 82 12 00    	add    0x128224,%edx                  
  112a7e:	8b 52 08             	mov    0x8(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112a81:	85 d2                	test   %edx,%edx                      
  112a83:	74 13                	je     112a98 <rtems_io_close+0x38>   
}                                                                     
  112a85:	59                   	pop    %ecx                           
  112a86:	5b                   	pop    %ebx                           
  112a87:	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;
  112a88:	ff e2                	jmp    *%edx                          
  112a8a:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112a8c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112a91:	5a                   	pop    %edx                           
  112a92:	5b                   	pop    %ebx                           
  112a93:	c9                   	leave                                 
  112a94:	c3                   	ret                                   
  112a95:	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;
  112a98:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112a9a:	5a                   	pop    %edx                           
  112a9b:	5b                   	pop    %ebx                           
  112a9c:	c9                   	leave                                 
  112a9d:	c3                   	ret                                   
                                                                      

00112aa0 <rtems_io_control>: rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112aa0:	55                   	push   %ebp                           
  112aa1:	89 e5                	mov    %esp,%ebp                      
  112aa3:	53                   	push   %ebx                           
  112aa4:	83 ec 04             	sub    $0x4,%esp                      
  112aa7:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112aaa:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  112ab0:	76 1a                	jbe    112acc <rtems_io_control+0x2c> 
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  112ab2:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112ab5:	c1 e2 03             	shl    $0x3,%edx                      
  112ab8:	03 15 24 82 12 00    	add    0x128224,%edx                  
  112abe:	8b 52 14             	mov    0x14(%edx),%edx                
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112ac1:	85 d2                	test   %edx,%edx                      
  112ac3:	74 13                	je     112ad8 <rtems_io_control+0x38> 
}                                                                     
  112ac5:	59                   	pop    %ecx                           
  112ac6:	5b                   	pop    %ebx                           
  112ac7:	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;
  112ac8:	ff e2                	jmp    *%edx                          
  112aca:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112acc:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112ad1:	5a                   	pop    %edx                           
  112ad2:	5b                   	pop    %ebx                           
  112ad3:	c9                   	leave                                 
  112ad4:	c3                   	ret                                   
  112ad5:	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;
  112ad8:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112ada:	5a                   	pop    %edx                           
  112adb:	5b                   	pop    %ebx                           
  112adc:	c9                   	leave                                 
  112add:	c3                   	ret                                   
                                                                      

001108a8 <rtems_io_initialize>: rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  1108a8:	55                   	push   %ebp                           
  1108a9:	89 e5                	mov    %esp,%ebp                      
  1108ab:	53                   	push   %ebx                           
  1108ac:	83 ec 04             	sub    $0x4,%esp                      
  1108af:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  1108b2:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  1108b8:	76 1a                	jbe    1108d4 <rtems_io_initialize+0x2c>
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  1108ba:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  1108bd:	c1 e2 03             	shl    $0x3,%edx                      
  1108c0:	03 15 24 82 12 00    	add    0x128224,%edx                  
  1108c6:	8b 12                	mov    (%edx),%edx                    
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  1108c8:	85 d2                	test   %edx,%edx                      
  1108ca:	74 14                	je     1108e0 <rtems_io_initialize+0x38>
}                                                                     
  1108cc:	59                   	pop    %ecx                           
  1108cd:	5b                   	pop    %ebx                           
  1108ce:	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;
  1108cf:	ff e2                	jmp    *%edx                          
  1108d1:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  1108d4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  1108d9:	5a                   	pop    %edx                           
  1108da:	5b                   	pop    %ebx                           
  1108db:	c9                   	leave                                 
  1108dc:	c3                   	ret                                   
  1108dd:	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;
  1108e0:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1108e2:	5a                   	pop    %edx                           
  1108e3:	5b                   	pop    %ebx                           
  1108e4:	c9                   	leave                                 
  1108e5:	c3                   	ret                                   
                                                                      

00112ae0 <rtems_io_open>: rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112ae0:	55                   	push   %ebp                           
  112ae1:	89 e5                	mov    %esp,%ebp                      
  112ae3:	53                   	push   %ebx                           
  112ae4:	83 ec 04             	sub    $0x4,%esp                      
  112ae7:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112aea:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  112af0:	76 1a                	jbe    112b0c <rtems_io_open+0x2c>    
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  112af2:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112af5:	c1 e2 03             	shl    $0x3,%edx                      
  112af8:	03 15 24 82 12 00    	add    0x128224,%edx                  
  112afe:	8b 52 04             	mov    0x4(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112b01:	85 d2                	test   %edx,%edx                      
  112b03:	74 13                	je     112b18 <rtems_io_open+0x38>    
}                                                                     
  112b05:	59                   	pop    %ecx                           
  112b06:	5b                   	pop    %ebx                           
  112b07:	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;
  112b08:	ff e2                	jmp    *%edx                          
  112b0a:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112b0c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112b11:	5a                   	pop    %edx                           
  112b12:	5b                   	pop    %ebx                           
  112b13:	c9                   	leave                                 
  112b14:	c3                   	ret                                   
  112b15:	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;
  112b18:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112b1a:	5a                   	pop    %edx                           
  112b1b:	5b                   	pop    %ebx                           
  112b1c:	c9                   	leave                                 
  112b1d:	c3                   	ret                                   
                                                                      

00112b20 <rtems_io_read>: rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112b20:	55                   	push   %ebp                           
  112b21:	89 e5                	mov    %esp,%ebp                      
  112b23:	53                   	push   %ebx                           
  112b24:	83 ec 04             	sub    $0x4,%esp                      
  112b27:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112b2a:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  112b30:	76 1a                	jbe    112b4c <rtems_io_read+0x2c>    
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  112b32:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112b35:	c1 e2 03             	shl    $0x3,%edx                      
  112b38:	03 15 24 82 12 00    	add    0x128224,%edx                  
  112b3e:	8b 52 0c             	mov    0xc(%edx),%edx                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112b41:	85 d2                	test   %edx,%edx                      
  112b43:	74 13                	je     112b58 <rtems_io_read+0x38>    
}                                                                     
  112b45:	59                   	pop    %ecx                           
  112b46:	5b                   	pop    %ebx                           
  112b47:	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;
  112b48:	ff e2                	jmp    *%edx                          
  112b4a:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112b4c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112b51:	5a                   	pop    %edx                           
  112b52:	5b                   	pop    %ebx                           
  112b53:	c9                   	leave                                 
  112b54:	c3                   	ret                                   
  112b55:	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;
  112b58:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112b5a:	5a                   	pop    %edx                           
  112b5b:	5b                   	pop    %ebx                           
  112b5c:	c9                   	leave                                 
  112b5d:	c3                   	ret                                   
                                                                      

0010c3b8 <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 ) {
  10c3b8:	55                   	push   %ebp                           
  10c3b9:	89 e5                	mov    %esp,%ebp                      
  10c3bb:	57                   	push   %edi                           
  10c3bc:	56                   	push   %esi                           
  10c3bd:	53                   	push   %ebx                           
  10c3be:	83 ec 0c             	sub    $0xc,%esp                      
  10c3c1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10c3c4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10c3c7:	8b 55 10             	mov    0x10(%ebp),%edx                
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
  10c3ca:	a1 c0 af 12 00       	mov    0x12afc0,%eax                  
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
  10c3cf:	8b 0d 34 ab 12 00    	mov    0x12ab34,%ecx                  
  10c3d5:	85 c9                	test   %ecx,%ecx                      
  10c3d7:	0f 85 ab 00 00 00    	jne    10c488 <rtems_io_register_driver+0xd0>
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
  10c3dd:	85 d2                	test   %edx,%edx                      
  10c3df:	0f 84 e7 00 00 00    	je     10c4cc <rtems_io_register_driver+0x114>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
  10c3e5:	89 02                	mov    %eax,(%edx)                    
                                                                      
  if ( driver_table == NULL )                                         
  10c3e7:	85 f6                	test   %esi,%esi                      
  10c3e9:	0f 84 dd 00 00 00    	je     10c4cc <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;
  10c3ef:	8b 3e                	mov    (%esi),%edi                    
  10c3f1:	85 ff                	test   %edi,%edi                      
  10c3f3:	0f 84 c7 00 00 00    	je     10c4c0 <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 )                                         
  10c3f9:	39 d8                	cmp    %ebx,%eax                      
  10c3fb:	76 7b                	jbe    10c478 <rtems_io_register_driver+0xc0>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10c3fd:	a1 8c a5 12 00       	mov    0x12a58c,%eax                  
  10c402:	40                   	inc    %eax                           
  10c403:	a3 8c a5 12 00       	mov    %eax,0x12a58c                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
  10c408:	85 db                	test   %ebx,%ebx                      
  10c40a:	0f 85 88 00 00 00    	jne    10c498 <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;                
  10c410:	8b 0d c0 af 12 00    	mov    0x12afc0,%ecx                  
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
  10c416:	85 c9                	test   %ecx,%ecx                      
  10c418:	0f 84 bb 00 00 00    	je     10c4d9 <rtems_io_register_driver+0x121><== NEVER TAKEN
  10c41e:	8b 3d c4 af 12 00    	mov    0x12afc4,%edi                  
  10c424:	89 f8                	mov    %edi,%eax                      
  10c426:	eb 08                	jmp    10c430 <rtems_io_register_driver+0x78>
  10c428:	43                   	inc    %ebx                           
  10c429:	83 c0 18             	add    $0x18,%eax                     
  10c42c:	39 d9                	cmp    %ebx,%ecx                      
  10c42e:	76 0b                	jbe    10c43b <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;
  10c430:	83 38 00             	cmpl   $0x0,(%eax)                    
  10c433:	75 f3                	jne    10c428 <rtems_io_register_driver+0x70>
  10c435:	83 78 04 00          	cmpl   $0x0,0x4(%eax)                 
  10c439:	75 ed                	jne    10c428 <rtems_io_register_driver+0x70>
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
  10c43b:	89 1a                	mov    %ebx,(%edx)                    
                                                                      
  if ( m != n )                                                       
  10c43d:	39 d9                	cmp    %ebx,%ecx                      
  10c43f:	0f 84 9b 00 00 00    	je     10c4e0 <rtems_io_register_driver+0x128>
  10c445:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  10c448:	c1 e0 03             	shl    $0x3,%eax                      
    }                                                                 
                                                                      
    *registered_major = major;                                        
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
  10c44b:	01 c7                	add    %eax,%edi                      
  10c44d:	b9 06 00 00 00       	mov    $0x6,%ecx                      
  10c452:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  _Thread_Enable_dispatch();                                          
  10c454:	e8 cb 1b 00 00       	call   10e024 <_Thread_Enable_dispatch>
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
  10c459:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)                
  10c460:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)                 
  10c467:	89 5d 08             	mov    %ebx,0x8(%ebp)                 
}                                                                     
  10c46a:	83 c4 0c             	add    $0xc,%esp                      
  10c46d:	5b                   	pop    %ebx                           
  10c46e:	5e                   	pop    %esi                           
  10c46f:	5f                   	pop    %edi                           
  10c470:	c9                   	leave                                 
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
  10c471:	e9 5e 81 00 00       	jmp    1145d4 <rtems_io_initialize>   
  10c476:	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;                                      
  10c478:	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 );                       
}                                                                     
  10c47d:	83 c4 0c             	add    $0xc,%esp                      
  10c480:	5b                   	pop    %ebx                           
  10c481:	5e                   	pop    %esi                           
  10c482:	5f                   	pop    %edi                           
  10c483:	c9                   	leave                                 
  10c484:	c3                   	ret                                   
  10c485:	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;                                     
  10c488:	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 );                       
}                                                                     
  10c48d:	83 c4 0c             	add    $0xc,%esp                      
  10c490:	5b                   	pop    %ebx                           
  10c491:	5e                   	pop    %esi                           
  10c492:	5f                   	pop    %edi                           
  10c493:	c9                   	leave                                 
  10c494:	c3                   	ret                                   
  10c495:	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;
  10c498:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax             
  10c49b:	c1 e0 03             	shl    $0x3,%eax                      
  10c49e:	8b 0d c4 af 12 00    	mov    0x12afc4,%ecx                  
  10c4a4:	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;
  10c4a6:	8b 39                	mov    (%ecx),%edi                    
  10c4a8:	85 ff                	test   %edi,%edi                      
  10c4aa:	74 40                	je     10c4ec <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();                                      
  10c4ac:	e8 73 1b 00 00       	call   10e024 <_Thread_Enable_dispatch>
      return RTEMS_RESOURCE_IN_USE;                                   
  10c4b1:	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 );                       
}                                                                     
  10c4b6:	83 c4 0c             	add    $0xc,%esp                      
  10c4b9:	5b                   	pop    %ebx                           
  10c4ba:	5e                   	pop    %esi                           
  10c4bb:	5f                   	pop    %edi                           
  10c4bc:	c9                   	leave                                 
  10c4bd:	c3                   	ret                                   
  10c4be:	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;
  10c4c0:	8b 4e 04             	mov    0x4(%esi),%ecx                 
  10c4c3:	85 c9                	test   %ecx,%ecx                      
  10c4c5:	0f 85 2e ff ff ff    	jne    10c3f9 <rtems_io_register_driver+0x41>
  10c4cb:	90                   	nop                                   
                                                                      
  if ( driver_table == NULL )                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
  10c4cc:	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 );                       
}                                                                     
  10c4d1:	83 c4 0c             	add    $0xc,%esp                      
  10c4d4:	5b                   	pop    %ebx                           
  10c4d5:	5e                   	pop    %esi                           
  10c4d6:	5f                   	pop    %edi                           
  10c4d7:	c9                   	leave                                 
  10c4d8:	c3                   	ret                                   
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
  10c4d9:	c7 02 00 00 00 00    	movl   $0x0,(%edx)                    <== NOT EXECUTED
  10c4df:	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();                                      
  10c4e0:	e8 3f 1b 00 00       	call   10e024 <_Thread_Enable_dispatch>
  *major = m;                                                         
                                                                      
  if ( m != n )                                                       
    return RTEMS_SUCCESSFUL;                                          
                                                                      
  return RTEMS_TOO_MANY;                                              
  10c4e5:	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;                                                      
  10c4ea:	eb 91                	jmp    10c47d <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;
  10c4ec:	8b 49 04             	mov    0x4(%ecx),%ecx                 
  10c4ef:	85 c9                	test   %ecx,%ecx                      
  10c4f1:	75 b9                	jne    10c4ac <rtems_io_register_driver+0xf4>
    if ( !rtems_io_is_empty_table( table ) ) {                        
      _Thread_Enable_dispatch();                                      
      return RTEMS_RESOURCE_IN_USE;                                   
    }                                                                 
                                                                      
    *registered_major = major;                                        
  10c4f3:	89 1a                	mov    %ebx,(%edx)                    
  10c4f5:	8b 3d c4 af 12 00    	mov    0x12afc4,%edi                  
  10c4fb:	e9 4b ff ff ff       	jmp    10c44b <rtems_io_register_driver+0x93>
                                                                      

0010c500 <rtems_io_unregister_driver>: */ rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) {
  10c500:	55                   	push   %ebp                           
  10c501:	89 e5                	mov    %esp,%ebp                      
  10c503:	57                   	push   %edi                           
  10c504:	83 ec 04             	sub    $0x4,%esp                      
  10c507:	8b 45 08             	mov    0x8(%ebp),%eax                 
  if ( rtems_interrupt_is_in_progress() )                             
  10c50a:	8b 0d 34 ab 12 00    	mov    0x12ab34,%ecx                  
  10c510:	85 c9                	test   %ecx,%ecx                      
  10c512:	75 44                	jne    10c558 <rtems_io_unregister_driver+0x58>
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
  10c514:	39 05 c0 af 12 00    	cmp    %eax,0x12afc0                  
  10c51a:	77 0c                	ja     10c528 <rtems_io_unregister_driver+0x28>
    _Thread_Enable_dispatch();                                        
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
  10c51c:	b8 0d 00 00 00       	mov    $0xd,%eax                      
}                                                                     
  10c521:	5a                   	pop    %edx                           
  10c522:	5f                   	pop    %edi                           
  10c523:	c9                   	leave                                 
  10c524:	c3                   	ret                                   
  10c525:	8d 76 00             	lea    0x0(%esi),%esi                 
  10c528:	8b 15 8c a5 12 00    	mov    0x12a58c,%edx                  
  10c52e:	42                   	inc    %edx                           
  10c52f:	89 15 8c a5 12 00    	mov    %edx,0x12a58c                  
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
    _Thread_Disable_dispatch();                                       
    memset(                                                           
      &_IO_Driver_address_table[major],                               
  10c535:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  10c538:	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(                                                           
  10c53b:	03 15 c4 af 12 00    	add    0x12afc4,%edx                  
  10c541:	b9 18 00 00 00       	mov    $0x18,%ecx                     
  10c546:	31 c0                	xor    %eax,%eax                      
  10c548:	89 d7                	mov    %edx,%edi                      
  10c54a:	f3 aa                	rep stos %al,%es:(%edi)               
      &_IO_Driver_address_table[major],                               
      0,                                                              
      sizeof( rtems_driver_address_table )                            
    );                                                                
    _Thread_Enable_dispatch();                                        
  10c54c:	e8 d3 1a 00 00       	call   10e024 <_Thread_Enable_dispatch>
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  10c551:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
}                                                                     
  10c553:	5a                   	pop    %edx                           
  10c554:	5f                   	pop    %edi                           
  10c555:	c9                   	leave                                 
  10c556:	c3                   	ret                                   
  10c557:	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;                                     
  10c558:	b8 12 00 00 00       	mov    $0x12,%eax                     
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
}                                                                     
  10c55d:	5a                   	pop    %edx                           
  10c55e:	5f                   	pop    %edi                           
  10c55f:	c9                   	leave                                 
  10c560:	c3                   	ret                                   
                                                                      

00112b60 <rtems_io_write>: rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) {
  112b60:	55                   	push   %ebp                           
  112b61:	89 e5                	mov    %esp,%ebp                      
  112b63:	53                   	push   %ebx                           
  112b64:	83 ec 04             	sub    $0x4,%esp                      
  112b67:	8b 45 08             	mov    0x8(%ebp),%eax                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
  112b6a:	39 05 20 82 12 00    	cmp    %eax,0x128220                  
  112b70:	76 1a                	jbe    112b8c <rtems_io_write+0x2c>   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  112b72:	8d 14 40             	lea    (%eax,%eax,2),%edx             
  112b75:	c1 e2 03             	shl    $0x3,%edx                      
  112b78:	03 15 24 82 12 00    	add    0x128224,%edx                  
  112b7e:	8b 52 10             	mov    0x10(%edx),%edx                
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
  112b81:	85 d2                	test   %edx,%edx                      
  112b83:	74 13                	je     112b98 <rtems_io_write+0x38>   
}                                                                     
  112b85:	59                   	pop    %ecx                           
  112b86:	5b                   	pop    %ebx                           
  112b87:	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;
  112b88:	ff e2                	jmp    *%edx                          
  112b8a:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    return RTEMS_INVALID_NUMBER;                                      
  112b8c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
}                                                                     
  112b91:	5a                   	pop    %edx                           
  112b92:	5b                   	pop    %ebx                           
  112b93:	c9                   	leave                                 
  112b94:	c3                   	ret                                   
  112b95:	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;
  112b98:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112b9a:	5a                   	pop    %edx                           
  112b9b:	5b                   	pop    %ebx                           
  112b9c:	c9                   	leave                                 
  112b9d:	c3                   	ret                                   
                                                                      

0010d39c <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) {
  10d39c:	55                   	push   %ebp                           
  10d39d:	89 e5                	mov    %esp,%ebp                      
  10d39f:	57                   	push   %edi                           
  10d3a0:	56                   	push   %esi                           
  10d3a1:	53                   	push   %ebx                           
  10d3a2:	83 ec 1c             	sub    $0x1c,%esp                     
  10d3a5:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
  10d3a8:	85 ff                	test   %edi,%edi                      
  10d3aa:	74 49                	je     10d3f5 <rtems_iterate_over_all_threads+0x59><== NEVER TAKEN
  10d3ac:	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 ];       
  10d3b3:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10d3b6:	8b 04 95 44 b3 12 00 	mov    0x12b344(,%edx,4),%eax         
  10d3bd:	8b 70 04             	mov    0x4(%eax),%esi                 
    if ( !information )                                               
  10d3c0:	85 f6                	test   %esi,%esi                      
  10d3c2:	74 28                	je     10d3ec <rtems_iterate_over_all_threads+0x50>
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
  10d3c4:	66 83 7e 10 00       	cmpw   $0x0,0x10(%esi)                
  10d3c9:	74 21                	je     10d3ec <rtems_iterate_over_all_threads+0x50>
  10d3cb:	bb 01 00 00 00       	mov    $0x1,%ebx                      
      the_thread = (Thread_Control *)information->local_table[ i ];   
  10d3d0:	8b 46 1c             	mov    0x1c(%esi),%eax                
  10d3d3:	8b 04 98             	mov    (%eax,%ebx,4),%eax             
                                                                      
      if ( !the_thread )                                              
  10d3d6:	85 c0                	test   %eax,%eax                      
  10d3d8:	74 09                	je     10d3e3 <rtems_iterate_over_all_threads+0x47><== NEVER TAKEN
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
  10d3da:	83 ec 0c             	sub    $0xc,%esp                      
  10d3dd:	50                   	push   %eax                           
  10d3de:	ff d7                	call   *%edi                          
  10d3e0:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
  10d3e3:	43                   	inc    %ebx                           
  10d3e4:	0f b7 46 10          	movzwl 0x10(%esi),%eax                
  10d3e8:	39 d8                	cmp    %ebx,%eax                      
  10d3ea:	73 e4                	jae    10d3d0 <rtems_iterate_over_all_threads+0x34>
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
  10d3ec:	ff 45 e4             	incl   -0x1c(%ebp)                    
  10d3ef:	83 7d e4 04          	cmpl   $0x4,-0x1c(%ebp)               
  10d3f3:	75 be                	jne    10d3b3 <rtems_iterate_over_all_threads+0x17>
                                                                      
      (*routine)(the_thread);                                         
    }                                                                 
  }                                                                   
                                                                      
}                                                                     
  10d3f5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10d3f8:	5b                   	pop    %ebx                           
  10d3f9:	5e                   	pop    %esi                           
  10d3fa:	5f                   	pop    %edi                           
  10d3fb:	c9                   	leave                                 
  10d3fc:	c3                   	ret                                   
                                                                      

001159e4 <rtems_message_queue_broadcast>: rtems_id id, const void *buffer, size_t size, uint32_t *count ) {
  1159e4:	55                   	push   %ebp                           
  1159e5:	89 e5                	mov    %esp,%ebp                      
  1159e7:	57                   	push   %edi                           
  1159e8:	56                   	push   %esi                           
  1159e9:	53                   	push   %ebx                           
  1159ea:	83 ec 1c             	sub    $0x1c,%esp                     
  1159ed:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  1159f0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  1159f3:	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 )                                                      
  1159f6:	85 db                	test   %ebx,%ebx                      
  1159f8:	74 62                	je     115a5c <rtems_message_queue_broadcast+0x78>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
  1159fa:	85 f6                	test   %esi,%esi                      
  1159fc:	74 5e                	je     115a5c <rtems_message_queue_broadcast+0x78>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  1159fe:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  1159ff:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  115a02:	50                   	push   %eax                           
  115a03:	57                   	push   %edi                           
  115a04:	68 a0 2a 14 00       	push   $0x142aa0                      
  115a09:	e8 ee 4e 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  115a0e:	83 c4 10             	add    $0x10,%esp                     
  115a11:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  115a14:	85 d2                	test   %edx,%edx                      
  115a16:	74 10                	je     115a28 <rtems_message_queue_broadcast+0x44>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  115a18:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115a1d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115a20:	5b                   	pop    %ebx                           
  115a21:	5e                   	pop    %esi                           
  115a22:	5f                   	pop    %edi                           
  115a23:	c9                   	leave                                 
  115a24:	c3                   	ret                                   
  115a25:	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(                    
  115a28:	83 ec 08             	sub    $0x8,%esp                      
  115a2b:	56                   	push   %esi                           
  115a2c:	6a 00                	push   $0x0                           
  115a2e:	57                   	push   %edi                           
  115a2f:	ff 75 10             	pushl  0x10(%ebp)                     
  115a32:	53                   	push   %ebx                           
  115a33:	83 c0 14             	add    $0x14,%eax                     
  115a36:	50                   	push   %eax                           
  115a37:	e8 ac 34 00 00       	call   118ee8 <_CORE_message_queue_Broadcast>
  115a3c:	89 c3                	mov    %eax,%ebx                      
                        NULL,                                         
                      #endif                                          
                      count                                           
                    );                                                
                                                                      
      _Thread_Enable_dispatch();                                      
  115a3e:	83 c4 20             	add    $0x20,%esp                     
  115a41:	e8 3e 5a 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return                                                          
  115a46:	83 ec 0c             	sub    $0xc,%esp                      
  115a49:	53                   	push   %ebx                           
  115a4a:	e8 69 03 00 00       	call   115db8 <_Message_queue_Translate_core_message_queue_return_code>
  115a4f:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115a52:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115a55:	5b                   	pop    %ebx                           
  115a56:	5e                   	pop    %esi                           
  115a57:	5f                   	pop    %edi                           
  115a58:	c9                   	leave                                 
  115a59:	c3                   	ret                                   
  115a5a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  115a5c:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115a61:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115a64:	5b                   	pop    %ebx                           
  115a65:	5e                   	pop    %esi                           
  115a66:	5f                   	pop    %edi                           
  115a67:	c9                   	leave                                 
  115a68:	c3                   	ret                                   
                                                                      

0011026c <rtems_message_queue_create>: uint32_t count, size_t max_message_size, rtems_attribute attribute_set, rtems_id *id ) {
  11026c:	55                   	push   %ebp                           
  11026d:	89 e5                	mov    %esp,%ebp                      
  11026f:	57                   	push   %edi                           
  110270:	56                   	push   %esi                           
  110271:	53                   	push   %ebx                           
  110272:	83 ec 2c             	sub    $0x2c,%esp                     
  110275:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  110278:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  11027b:	8b 4d 10             	mov    0x10(%ebp),%ecx                
  11027e:	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 ) )                                 
  110281:	85 db                	test   %ebx,%ebx                      
  110283:	74 2f                	je     1102b4 <rtems_message_queue_create+0x48>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  110285:	85 ff                	test   %edi,%edi                      
  110287:	0f 84 a3 00 00 00    	je     110330 <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 )                                                   
  11028d:	85 f6                	test   %esi,%esi                      
  11028f:	74 13                	je     1102a4 <rtems_message_queue_create+0x38>
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  if ( max_message_size == 0 )                                        
  110291:	85 c9                	test   %ecx,%ecx                      
  110293:	75 2f                	jne    1102c4 <rtems_message_queue_create+0x58>
      return RTEMS_INVALID_SIZE;                                      
  110295:	b8 08 00 00 00       	mov    $0x8,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  11029a:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11029d:	5b                   	pop    %ebx                           
  11029e:	5e                   	pop    %esi                           
  11029f:	5f                   	pop    %edi                           
  1102a0:	c9                   	leave                                 
  1102a1:	c3                   	ret                                   
  1102a2:	66 90                	xchg   %ax,%ax                        
       !_System_state_Is_multiprocessing )                            
    return RTEMS_MP_NOT_CONFIGURED;                                   
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
      return RTEMS_INVALID_NUMBER;                                    
  1102a4:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1102a9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1102ac:	5b                   	pop    %ebx                           
  1102ad:	5e                   	pop    %esi                           
  1102ae:	5f                   	pop    %edi                           
  1102af:	c9                   	leave                                 
  1102b0:	c3                   	ret                                   
  1102b1:	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;                                        
  1102b4:	b8 03 00 00 00       	mov    $0x3,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1102b9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1102bc:	5b                   	pop    %ebx                           
  1102bd:	5e                   	pop    %esi                           
  1102be:	5f                   	pop    %edi                           
  1102bf:	c9                   	leave                                 
  1102c0:	c3                   	ret                                   
  1102c1:	8d 76 00             	lea    0x0(%esi),%esi                 
  1102c4:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  1102c9:	40                   	inc    %eax                           
  1102ca:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
#endif                                                                
#endif                                                                
                                                                      
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
  1102cf:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  1102d2:	e8 11 26 00 00       	call   1128e8 <_Message_queue_Allocate>
  1102d7:	89 c2                	mov    %eax,%edx                      
                                                                      
  if ( !the_message_queue ) {                                         
  1102d9:	85 c0                	test   %eax,%eax                      
  1102db:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  1102de:	74 7c                	je     11035c <rtems_message_queue_create+0xf0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_message_queue->attribute_set = attribute_set;                   
  1102e0:	8b 45 14             	mov    0x14(%ebp),%eax                
  1102e3:	89 42 10             	mov    %eax,0x10(%edx)                
                                                                      
  if (_Attributes_Is_priority( attribute_set ) )                      
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY;
  1102e6:	a8 04                	test   $0x4,%al                       
  1102e8:	0f 95 c0             	setne  %al                            
  1102eb:	0f b6 c0             	movzbl %al,%eax                       
  1102ee:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  else                                                                
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;
                                                                      
  if ( ! _CORE_message_queue_Initialize(                              
  1102f1:	51                   	push   %ecx                           
  1102f2:	56                   	push   %esi                           
  1102f3:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  1102f6:	50                   	push   %eax                           
  1102f7:	8d 42 14             	lea    0x14(%edx),%eax                
  1102fa:	50                   	push   %eax                           
  1102fb:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  1102fe:	e8 c5 06 00 00       	call   1109c8 <_CORE_message_queue_Initialize>
  110303:	83 c4 10             	add    $0x10,%esp                     
  110306:	84 c0                	test   %al,%al                        
  110308:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  11030b:	75 2f                	jne    11033c <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 );
  11030d:	83 ec 08             	sub    $0x8,%esp                      
  110310:	52                   	push   %edx                           
  110311:	68 c0 82 12 00       	push   $0x1282c0                      
  110316:	e8 9d bd ff ff       	call   10c0b8 <_Objects_Free>         
        _Objects_MP_Close(                                            
          &_Message_queue_Information, the_message_queue->Object.id); 
#endif                                                                
                                                                      
    _Message_queue_Free( the_message_queue );                         
    _Thread_Enable_dispatch();                                        
  11031b:	e8 60 ca ff ff       	call   10cd80 <_Thread_Enable_dispatch>
    return RTEMS_UNSATISFIED;                                         
  110320:	83 c4 10             	add    $0x10,%esp                     
  110323:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  110328:	e9 6d ff ff ff       	jmp    11029a <rtems_message_queue_create+0x2e>
  11032d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  110330:	b8 09 00 00 00       	mov    $0x9,%eax                      
  110335:	e9 60 ff ff ff       	jmp    11029a <rtems_message_queue_create+0x2e>
  11033a:	66 90                	xchg   %ax,%ax                        
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  11033c:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  11033f:	0f b7 f0             	movzwl %ax,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  110342:	8b 0d dc 82 12 00    	mov    0x1282dc,%ecx                  
  110348:	89 14 b1             	mov    %edx,(%ecx,%esi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  11034b:	89 5a 0c             	mov    %ebx,0xc(%edx)                 
    &_Message_queue_Information,                                      
    &the_message_queue->Object,                                       
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_message_queue->Object.id;                                 
  11034e:	89 07                	mov    %eax,(%edi)                    
      name,                                                           
      0                                                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  110350:	e8 2b ca ff ff       	call   10cd80 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  110355:	31 c0                	xor    %eax,%eax                      
  110357:	e9 3e ff ff ff       	jmp    11029a <rtems_message_queue_create+0x2e>
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
                                                                      
  if ( !the_message_queue ) {                                         
    _Thread_Enable_dispatch();                                        
  11035c:	e8 1f ca ff ff       	call   10cd80 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  110361:	b8 05 00 00 00       	mov    $0x5,%eax                      
  110366:	e9 2f ff ff ff       	jmp    11029a <rtems_message_queue_create+0x2e>
                                                                      

0011036c <rtems_message_queue_delete>: */ rtems_status_code rtems_message_queue_delete( rtems_id id ) {
  11036c:	55                   	push   %ebp                           
  11036d:	89 e5                	mov    %esp,%ebp                      
  11036f:	53                   	push   %ebx                           
  110370:	83 ec 18             	sub    $0x18,%esp                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  110373:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  110376:	50                   	push   %eax                           
  110377:	ff 75 08             	pushl  0x8(%ebp)                      
  11037a:	68 c0 82 12 00       	push   $0x1282c0                      
  11037f:	e8 74 be ff ff       	call   10c1f8 <_Objects_Get>          
  110384:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  110386:	83 c4 10             	add    $0x10,%esp                     
  110389:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  11038c:	85 c9                	test   %ecx,%ecx                      
  11038e:	75 3c                	jne    1103cc <rtems_message_queue_delete+0x60>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Message_queue_Information,                    
  110390:	83 ec 08             	sub    $0x8,%esp                      
  110393:	50                   	push   %eax                           
  110394:	68 c0 82 12 00       	push   $0x1282c0                      
  110399:	e8 22 ba ff ff       	call   10bdc0 <_Objects_Close>        
                      &the_message_queue->Object );                   
                                                                      
      _CORE_message_queue_Close(                                      
  11039e:	83 c4 0c             	add    $0xc,%esp                      
  1103a1:	6a 05                	push   $0x5                           
  1103a3:	6a 00                	push   $0x0                           
  1103a5:	8d 43 14             	lea    0x14(%ebx),%eax                
  1103a8:	50                   	push   %eax                           
  1103a9:	e8 96 05 00 00       	call   110944 <_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 );
  1103ae:	58                   	pop    %eax                           
  1103af:	5a                   	pop    %edx                           
  1103b0:	53                   	push   %ebx                           
  1103b1:	68 c0 82 12 00       	push   $0x1282c0                      
  1103b6:	e8 fd bc ff ff       	call   10c0b8 <_Objects_Free>         
          0,                                 /* Not used */           
          0                                                           
        );                                                            
      }                                                               
#endif                                                                
      _Thread_Enable_dispatch();                                      
  1103bb:	e8 c0 c9 ff ff       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1103c0:	83 c4 10             	add    $0x10,%esp                     
  1103c3:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1103c5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1103c8:	c9                   	leave                                 
  1103c9:	c3                   	ret                                   
  1103ca:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1103cc:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1103d1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1103d4:	c9                   	leave                                 
  1103d5:	c3                   	ret                                   
                                                                      

00115bd8 <rtems_message_queue_flush>: rtems_status_code rtems_message_queue_flush( rtems_id id, uint32_t *count ) {
  115bd8:	55                   	push   %ebp                           
  115bd9:	89 e5                	mov    %esp,%ebp                      
  115bdb:	53                   	push   %ebx                           
  115bdc:	83 ec 14             	sub    $0x14,%esp                     
  115bdf:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
  115be2:	85 db                	test   %ebx,%ebx                      
  115be4:	74 46                	je     115c2c <rtems_message_queue_flush+0x54>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  115be6:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  115be7:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115bea:	50                   	push   %eax                           
  115beb:	ff 75 08             	pushl  0x8(%ebp)                      
  115bee:	68 a0 2a 14 00       	push   $0x142aa0                      
  115bf3:	e8 04 4d 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  115bf8:	83 c4 10             	add    $0x10,%esp                     
  115bfb:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  115bfe:	85 d2                	test   %edx,%edx                      
  115c00:	74 0a                	je     115c0c <rtems_message_queue_flush+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115c02:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115c07:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c0a:	c9                   	leave                                 
  115c0b:	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 );
  115c0c:	83 ec 0c             	sub    $0xc,%esp                      
  115c0f:	83 c0 14             	add    $0x14,%eax                     
  115c12:	50                   	push   %eax                           
  115c13:	e8 90 33 00 00       	call   118fa8 <_CORE_message_queue_Flush>
  115c18:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  115c1a:	e8 65 58 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115c1f:	83 c4 10             	add    $0x10,%esp                     
  115c22:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115c24:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c27:	c9                   	leave                                 
  115c28:	c3                   	ret                                   
  115c29:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  115c2c:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115c31:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c34:	c9                   	leave                                 
  115c35:	c3                   	ret                                   
                                                                      

00115c38 <rtems_message_queue_get_number_pending>: rtems_status_code rtems_message_queue_get_number_pending( rtems_id id, uint32_t *count ) {
  115c38:	55                   	push   %ebp                           
  115c39:	89 e5                	mov    %esp,%ebp                      
  115c3b:	53                   	push   %ebx                           
  115c3c:	83 ec 14             	sub    $0x14,%esp                     
  115c3f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
  115c42:	85 db                	test   %ebx,%ebx                      
  115c44:	74 3a                	je     115c80 <rtems_message_queue_get_number_pending+0x48>
  115c46:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  115c47:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115c4a:	50                   	push   %eax                           
  115c4b:	ff 75 08             	pushl  0x8(%ebp)                      
  115c4e:	68 a0 2a 14 00       	push   $0x142aa0                      
  115c53:	e8 a4 4c 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  115c58:	83 c4 10             	add    $0x10,%esp                     
  115c5b:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  115c5e:	85 d2                	test   %edx,%edx                      
  115c60:	74 0a                	je     115c6c <rtems_message_queue_get_number_pending+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115c62:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115c67:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c6a:	c9                   	leave                                 
  115c6b:	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;
  115c6c:	8b 40 5c             	mov    0x5c(%eax),%eax                
  115c6f:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  115c71:	e8 0e 58 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115c76:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115c78:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c7b:	c9                   	leave                                 
  115c7c:	c3                   	ret                                   
  115c7d:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
  115c80:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115c85:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  115c88:	c9                   	leave                                 
  115c89:	c3                   	ret                                   
                                                                      

001103d8 <rtems_message_queue_receive>: void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) {
  1103d8:	55                   	push   %ebp                           
  1103d9:	89 e5                	mov    %esp,%ebp                      
  1103db:	56                   	push   %esi                           
  1103dc:	53                   	push   %ebx                           
  1103dd:	83 ec 10             	sub    $0x10,%esp                     
  1103e0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  1103e3:	8b 75 10             	mov    0x10(%ebp),%esi                
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  bool                            wait;                               
                                                                      
  if ( !buffer )                                                      
  1103e6:	85 db                	test   %ebx,%ebx                      
  1103e8:	74 6e                	je     110458 <rtems_message_queue_receive+0x80>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
  1103ea:	85 f6                	test   %esi,%esi                      
  1103ec:	74 6a                	je     110458 <rtems_message_queue_receive+0x80>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
  1103ee:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  1103ef:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1103f2:	50                   	push   %eax                           
  1103f3:	ff 75 08             	pushl  0x8(%ebp)                      
  1103f6:	68 c0 82 12 00       	push   $0x1282c0                      
  1103fb:	e8 f8 bd ff ff       	call   10c1f8 <_Objects_Get>          
  switch ( location ) {                                               
  110400:	83 c4 10             	add    $0x10,%esp                     
  110403:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  110406:	85 d2                	test   %edx,%edx                      
  110408:	75 42                	jne    11044c <rtems_message_queue_receive+0x74>
      if ( _Options_Is_no_wait( option_set ) )                        
        wait = false;                                                 
      else                                                            
        wait = true;                                                  
                                                                      
      _CORE_message_queue_Seize(                                      
  11040a:	83 ec 08             	sub    $0x8,%esp                      
  11040d:	ff 75 18             	pushl  0x18(%ebp)                     
  110410:	8b 55 14             	mov    0x14(%ebp),%edx                
  110413:	83 e2 01             	and    $0x1,%edx                      
  110416:	83 f2 01             	xor    $0x1,%edx                      
  110419:	52                   	push   %edx                           
  11041a:	56                   	push   %esi                           
  11041b:	53                   	push   %ebx                           
  11041c:	ff 70 08             	pushl  0x8(%eax)                      
  11041f:	83 c0 14             	add    $0x14,%eax                     
  110422:	50                   	push   %eax                           
  110423:	e8 50 06 00 00       	call   110a78 <_CORE_message_queue_Seize>
        buffer,                                                       
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
  110428:	83 c4 20             	add    $0x20,%esp                     
  11042b:	e8 50 c9 ff ff       	call   10cd80 <_Thread_Enable_dispatch>
      return _Message_queue_Translate_core_message_queue_return_code( 
  110430:	83 ec 0c             	sub    $0xc,%esp                      
        _Thread_Executing->Wait.return_code                           
  110433:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _Message_queue_Translate_core_message_queue_return_code( 
  110438:	ff 70 34             	pushl  0x34(%eax)                     
  11043b:	e8 a0 00 00 00       	call   1104e0 <_Message_queue_Translate_core_message_queue_return_code>
  110440:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  110443:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110446:	5b                   	pop    %ebx                           
  110447:	5e                   	pop    %esi                           
  110448:	c9                   	leave                                 
  110449:	c3                   	ret                                   
  11044a:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  11044c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  110451:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110454:	5b                   	pop    %ebx                           
  110455:	5e                   	pop    %esi                           
  110456:	c9                   	leave                                 
  110457:	c3                   	ret                                   
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  110458:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11045d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110460:	5b                   	pop    %ebx                           
  110461:	5e                   	pop    %esi                           
  110462:	c9                   	leave                                 
  110463:	c3                   	ret                                   
                                                                      

00110464 <rtems_message_queue_send>: rtems_status_code rtems_message_queue_send( rtems_id id, const void *buffer, size_t size ) {
  110464:	55                   	push   %ebp                           
  110465:	89 e5                	mov    %esp,%ebp                      
  110467:	56                   	push   %esi                           
  110468:	53                   	push   %ebx                           
  110469:	83 ec 10             	sub    $0x10,%esp                     
  11046c:	8b 75 08             	mov    0x8(%ebp),%esi                 
  11046f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
  110472:	85 db                	test   %ebx,%ebx                      
  110474:	74 5e                	je     1104d4 <rtems_message_queue_send+0x70>
  110476:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  110477:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11047a:	50                   	push   %eax                           
  11047b:	56                   	push   %esi                           
  11047c:	68 c0 82 12 00       	push   $0x1282c0                      
  110481:	e8 72 bd ff ff       	call   10c1f8 <_Objects_Get>          
  switch ( location ) {                                               
  110486:	83 c4 10             	add    $0x10,%esp                     
  110489:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  11048c:	85 d2                	test   %edx,%edx                      
  11048e:	74 0c                	je     11049c <rtems_message_queue_send+0x38>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  110490:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  110495:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  110498:	5b                   	pop    %ebx                           
  110499:	5e                   	pop    %esi                           
  11049a:	c9                   	leave                                 
  11049b:	c3                   	ret                                   
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  bool                                    wait,                       
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
  return _CORE_message_queue_Submit(                                  
  11049c:	6a 00                	push   $0x0                           
  11049e:	6a 00                	push   $0x0                           
  1104a0:	68 ff ff ff 7f       	push   $0x7fffffff                    
  1104a5:	6a 00                	push   $0x0                           
  1104a7:	56                   	push   %esi                           
  1104a8:	ff 75 10             	pushl  0x10(%ebp)                     
  1104ab:	53                   	push   %ebx                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_message_queue_Send(                              
  1104ac:	83 c0 14             	add    $0x14,%eax                     
  1104af:	50                   	push   %eax                           
  1104b0:	e8 ef 06 00 00       	call   110ba4 <_CORE_message_queue_Submit>
  1104b5:	89 c3                	mov    %eax,%ebx                      
        MESSAGE_QUEUE_MP_HANDLER,                                     
        false,   /* sender does not block */                          
        0        /* no timeout */                                     
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
  1104b7:	83 c4 20             	add    $0x20,%esp                     
  1104ba:	e8 c1 c8 ff ff       	call   10cd80 <_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);
  1104bf:	83 ec 0c             	sub    $0xc,%esp                      
  1104c2:	53                   	push   %ebx                           
  1104c3:	e8 18 00 00 00       	call   1104e0 <_Message_queue_Translate_core_message_queue_return_code>
  1104c8:	83 c4 10             	add    $0x10,%esp                     
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1104cb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1104ce:	5b                   	pop    %ebx                           
  1104cf:	5e                   	pop    %esi                           
  1104d0:	c9                   	leave                                 
  1104d1:	c3                   	ret                                   
  1104d2:	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;                                     
  1104d4:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1104d9:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1104dc:	5b                   	pop    %ebx                           
  1104dd:	5e                   	pop    %esi                           
  1104de:	c9                   	leave                                 
  1104df:	c3                   	ret                                   
                                                                      

00115dc8 <rtems_message_queue_urgent>: rtems_status_code rtems_message_queue_urgent( rtems_id id, const void *buffer, size_t size ) {
  115dc8:	55                   	push   %ebp                           
  115dc9:	89 e5                	mov    %esp,%ebp                      
  115dcb:	56                   	push   %esi                           
  115dcc:	53                   	push   %ebx                           
  115dcd:	83 ec 10             	sub    $0x10,%esp                     
  115dd0:	8b 75 08             	mov    0x8(%ebp),%esi                 
  115dd3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Message_queue_Control  *the_message_queue;                 
  Objects_Locations                location;                          
  CORE_message_queue_Status        status;                            
                                                                      
  if ( !buffer )                                                      
  115dd6:	85 db                	test   %ebx,%ebx                      
  115dd8:	74 5e                	je     115e38 <rtems_message_queue_urgent+0x70>
  115dda:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  115ddb:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115dde:	50                   	push   %eax                           
  115ddf:	56                   	push   %esi                           
  115de0:	68 a0 2a 14 00       	push   $0x142aa0                      
  115de5:	e8 12 4b 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  115dea:	83 c4 10             	add    $0x10,%esp                     
  115ded:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  115df0:	85 d2                	test   %edx,%edx                      
  115df2:	74 0c                	je     115e00 <rtems_message_queue_urgent+0x38>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115df4:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115df9:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115dfc:	5b                   	pop    %ebx                           
  115dfd:	5e                   	pop    %esi                           
  115dfe:	c9                   	leave                                 
  115dff:	c3                   	ret                                   
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  bool                                    wait,                       
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
  return _CORE_message_queue_Submit(                                  
  115e00:	6a 00                	push   $0x0                           
  115e02:	6a 00                	push   $0x0                           
  115e04:	68 00 00 00 80       	push   $0x80000000                    
  115e09:	6a 00                	push   $0x0                           
  115e0b:	56                   	push   %esi                           
  115e0c:	ff 75 10             	pushl  0x10(%ebp)                     
  115e0f:	53                   	push   %ebx                           
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_message_queue_Urgent(                            
  115e10:	83 c0 14             	add    $0x14,%eax                     
  115e13:	50                   	push   %eax                           
  115e14:	e8 cf 33 00 00       	call   1191e8 <_CORE_message_queue_Submit>
  115e19:	89 c3                	mov    %eax,%ebx                      
        id,                                                           
        MESSAGE_QUEUE_MP_HANDLER,                                     
        false,   /* sender does not block */                          
        0        /* no timeout */                                     
      );                                                              
      _Thread_Enable_dispatch();                                      
  115e1b:	83 c4 20             	add    $0x20,%esp                     
  115e1e:	e8 61 56 00 00       	call   11b484 <_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);
  115e23:	83 ec 0c             	sub    $0xc,%esp                      
  115e26:	53                   	push   %ebx                           
  115e27:	e8 8c ff ff ff       	call   115db8 <_Message_queue_Translate_core_message_queue_return_code>
  115e2c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115e2f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115e32:	5b                   	pop    %ebx                           
  115e33:	5e                   	pop    %esi                           
  115e34:	c9                   	leave                                 
  115e35:	c3                   	ret                                   
  115e36:	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;                                     
  115e38:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  115e3d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115e40:	5b                   	pop    %ebx                           
  115e41:	5e                   	pop    %esi                           
  115e42:	c9                   	leave                                 
  115e43:	c3                   	ret                                   
                                                                      

0010ae70 <rtems_object_get_api_name>: }; const char *rtems_object_get_api_name( int api ) {
  10ae70:	55                   	push   %ebp                           
  10ae71:	89 e5                	mov    %esp,%ebp                      
  10ae73:	83 ec 10             	sub    $0x10,%esp                     
  const rtems_assoc_t *api_assoc;                                     
                                                                      
  api_assoc = rtems_assoc_ptr_by_local( rtems_objects_api_assoc, api );
  10ae76:	ff 75 08             	pushl  0x8(%ebp)                      
  10ae79:	68 00 76 12 00       	push   $0x127600                      
  10ae7e:	e8 ed 49 00 00       	call   10f870 <rtems_assoc_ptr_by_local>
  if ( api_assoc )                                                    
  10ae83:	83 c4 10             	add    $0x10,%esp                     
  10ae86:	85 c0                	test   %eax,%eax                      
  10ae88:	74 06                	je     10ae90 <rtems_object_get_api_name+0x20>
    return api_assoc->name;                                           
  10ae8a:	8b 00                	mov    (%eax),%eax                    
  return "BAD CLASS";                                                 
}                                                                     
  10ae8c:	c9                   	leave                                 
  10ae8d:	c3                   	ret                                   
  10ae8e:	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";                                                 
  10ae90:	b8 a3 26 12 00       	mov    $0x1226a3,%eax                 
}                                                                     
  10ae95:	c9                   	leave                                 
  10ae96:	c3                   	ret                                   
                                                                      

0010c588 <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 ) {
  10c588:	55                   	push   %ebp                           
  10c589:	89 e5                	mov    %esp,%ebp                      
  10c58b:	57                   	push   %edi                           
  10c58c:	56                   	push   %esi                           
  10c58d:	53                   	push   %ebx                           
  10c58e:	83 ec 0c             	sub    $0xc,%esp                      
  10c591:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  int                  i;                                             
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
  10c594:	85 db                	test   %ebx,%ebx                      
  10c596:	74 60                	je     10c5f8 <rtems_object_get_class_information+0x70>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  obj_info = _Objects_Get_information( the_api, the_class );          
  10c598:	83 ec 08             	sub    $0x8,%esp                      
  10c59b:	0f b7 45 0c          	movzwl 0xc(%ebp),%eax                 
  10c59f:	50                   	push   %eax                           
  10c5a0:	ff 75 08             	pushl  0x8(%ebp)                      
  10c5a3:	e8 14 1a 00 00       	call   10dfbc <_Objects_Get_information>
  if ( !obj_info )                                                    
  10c5a8:	83 c4 10             	add    $0x10,%esp                     
  10c5ab:	85 c0                	test   %eax,%eax                      
  10c5ad:	74 59                	je     10c608 <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;                           
  10c5af:	8b 50 08             	mov    0x8(%eax),%edx                 
  10c5b2:	89 13                	mov    %edx,(%ebx)                    
  info->maximum_id  = obj_info->maximum_id;                           
  10c5b4:	8b 50 0c             	mov    0xc(%eax),%edx                 
  10c5b7:	89 53 04             	mov    %edx,0x4(%ebx)                 
  info->auto_extend = obj_info->auto_extend;                          
  10c5ba:	8a 50 12             	mov    0x12(%eax),%dl                 
  10c5bd:	88 53 0c             	mov    %dl,0xc(%ebx)                  
  info->maximum     = obj_info->maximum;                              
  10c5c0:	0f b7 70 10          	movzwl 0x10(%eax),%esi                
  10c5c4:	89 73 08             	mov    %esi,0x8(%ebx)                 
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
  10c5c7:	85 f6                	test   %esi,%esi                      
  10c5c9:	74 44                	je     10c60f <rtems_object_get_class_information+0x87><== NEVER TAKEN
  10c5cb:	8b 78 1c             	mov    0x1c(%eax),%edi                
  10c5ce:	b9 01 00 00 00       	mov    $0x1,%ecx                      
  10c5d3:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10c5d8:	31 d2                	xor    %edx,%edx                      
  10c5da:	66 90                	xchg   %ax,%ax                        
    if ( !obj_info->local_table[i] )                                  
      unallocated++;                                                  
  10c5dc:	83 3c 8f 01          	cmpl   $0x1,(%edi,%ecx,4)             
  10c5e0:	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++ )               
  10c5e3:	40                   	inc    %eax                           
  10c5e4:	89 c1                	mov    %eax,%ecx                      
  10c5e6:	39 c6                	cmp    %eax,%esi                      
  10c5e8:	73 f2                	jae    10c5dc <rtems_object_get_class_information+0x54>
    if ( !obj_info->local_table[i] )                                  
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
  10c5ea:	89 53 10             	mov    %edx,0x10(%ebx)                
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  10c5ed:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10c5ef:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c5f2:	5b                   	pop    %ebx                           
  10c5f3:	5e                   	pop    %esi                           
  10c5f4:	5f                   	pop    %edi                           
  10c5f5:	c9                   	leave                                 
  10c5f6:	c3                   	ret                                   
  10c5f7:	90                   	nop                                   
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10c5f8:	b8 09 00 00 00       	mov    $0x9,%eax                      
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10c5fd:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10c600:	5b                   	pop    %ebx                           
  10c601:	5e                   	pop    %esi                           
  10c602:	5f                   	pop    %edi                           
  10c603:	c9                   	leave                                 
  10c604:	c3                   	ret                                   
  10c605:	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;                                      
  10c608:	b8 0a 00 00 00       	mov    $0xa,%eax                      
  10c60d:	eb e0                	jmp    10c5ef <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++ )               
  10c60f:	31 d2                	xor    %edx,%edx                      <== NOT EXECUTED
  10c611:	eb d7                	jmp    10c5ea <rtems_object_get_class_information+0x62><== NOT EXECUTED
                                                                      

0010ba18 <rtems_object_get_classic_name>: rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) {
  10ba18:	55                   	push   %ebp                           
  10ba19:	89 e5                	mov    %esp,%ebp                      
  10ba1b:	53                   	push   %ebx                           
  10ba1c:	83 ec 14             	sub    $0x14,%esp                     
  10ba1f:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
  10ba22:	85 db                	test   %ebx,%ebx                      
  10ba24:	74 26                	je     10ba4c <rtems_object_get_classic_name+0x34>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
  10ba26:	83 ec 08             	sub    $0x8,%esp                      
  10ba29:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10ba2c:	50                   	push   %eax                           
  10ba2d:	ff 75 08             	pushl  0x8(%ebp)                      
  10ba30:	e8 6f 1a 00 00       	call   10d4a4 <_Objects_Id_to_name>   
                                                                      
  *name = name_u.name_u32;                                            
  10ba35:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10ba38:	89 13                	mov    %edx,(%ebx)                    
  return _Status_Object_name_errors_to_status[ status ];              
  10ba3a:	8b 04 85 0c 33 12 00 	mov    0x12330c(,%eax,4),%eax         
  10ba41:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  10ba44:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba47:	c9                   	leave                                 
  10ba48:	c3                   	ret                                   
  10ba49:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10ba4c:	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 ];              
}                                                                     
  10ba51:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ba54:	c9                   	leave                                 
  10ba55:	c3                   	ret                                   
                                                                      

0010aea4 <rtems_object_set_name>: */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) {
  10aea4:	55                   	push   %ebp                           
  10aea5:	89 e5                	mov    %esp,%ebp                      
  10aea7:	57                   	push   %edi                           
  10aea8:	56                   	push   %esi                           
  10aea9:	53                   	push   %ebx                           
  10aeaa:	83 ec 1c             	sub    $0x1c,%esp                     
  10aead:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10aeb0:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  Objects_Information *information;                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
  10aeb3:	85 ff                	test   %edi,%edi                      
  10aeb5:	74 61                	je     10af18 <rtems_object_set_name+0x74>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10aeb7:	85 f6                	test   %esi,%esi                      
  10aeb9:	74 35                	je     10aef0 <rtems_object_set_name+0x4c>
                                                                      
  information  = _Objects_Get_information_id( tmpId );                
  10aebb:	83 ec 0c             	sub    $0xc,%esp                      
  10aebe:	56                   	push   %esi                           
  10aebf:	e8 ec 17 00 00       	call   10c6b0 <_Objects_Get_information_id>
  10aec4:	89 c3                	mov    %eax,%ebx                      
  if ( !information )                                                 
  10aec6:	83 c4 10             	add    $0x10,%esp                     
  10aec9:	85 c0                	test   %eax,%eax                      
  10aecb:	74 16                	je     10aee3 <rtems_object_set_name+0x3f>
    return RTEMS_INVALID_ID;                                          
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  10aecd:	50                   	push   %eax                           
  10aece:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10aed1:	50                   	push   %eax                           
  10aed2:	56                   	push   %esi                           
  10aed3:	53                   	push   %ebx                           
  10aed4:	e8 8f 19 00 00       	call   10c868 <_Objects_Get>          
  switch ( location ) {                                               
  10aed9:	83 c4 10             	add    $0x10,%esp                     
  10aedc:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10aedf:	85 c9                	test   %ecx,%ecx                      
  10aee1:	74 19                	je     10aefc <rtems_object_set_name+0x58>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10aee3:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10aee8:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10aeeb:	5b                   	pop    %ebx                           
  10aeec:	5e                   	pop    %esi                           
  10aeed:	5f                   	pop    %edi                           
  10aeee:	c9                   	leave                                 
  10aeef:	c3                   	ret                                   
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
  10aef0:	a1 b8 9f 12 00       	mov    0x129fb8,%eax                  
  10aef5:	8b 70 08             	mov    0x8(%eax),%esi                 
  10aef8:	eb c1                	jmp    10aebb <rtems_object_set_name+0x17>
  10aefa:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Set_name( information, the_object, name );             
  10aefc:	52                   	push   %edx                           
  10aefd:	57                   	push   %edi                           
  10aefe:	50                   	push   %eax                           
  10aeff:	53                   	push   %ebx                           
  10af00:	e8 e3 1a 00 00       	call   10c9e8 <_Objects_Set_name>     
      _Thread_Enable_dispatch();                                      
  10af05:	e8 4a 25 00 00       	call   10d454 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10af0a:	83 c4 10             	add    $0x10,%esp                     
  10af0d:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10af0f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10af12:	5b                   	pop    %ebx                           
  10af13:	5e                   	pop    %esi                           
  10af14:	5f                   	pop    %edi                           
  10af15:	c9                   	leave                                 
  10af16:	c3                   	ret                                   
  10af17:	90                   	nop                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10af18:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10af1d:	eb c9                	jmp    10aee8 <rtems_object_set_name+0x44>
                                                                      

00115e44 <rtems_partition_create>: uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, rtems_id *id ) {
  115e44:	55                   	push   %ebp                           
  115e45:	89 e5                	mov    %esp,%ebp                      
  115e47:	57                   	push   %edi                           
  115e48:	56                   	push   %esi                           
  115e49:	53                   	push   %ebx                           
  115e4a:	83 ec 1c             	sub    $0x1c,%esp                     
  115e4d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  115e50:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  115e53:	8b 55 10             	mov    0x10(%ebp),%edx                
  115e56:	8b 7d 14             	mov    0x14(%ebp),%edi                
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  115e59:	85 db                	test   %ebx,%ebx                      
  115e5b:	74 47                	je     115ea4 <rtems_partition_create+0x60>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
  115e5d:	85 f6                	test   %esi,%esi                      
  115e5f:	74 23                	je     115e84 <rtems_partition_create+0x40>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
  115e61:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  115e64:	85 c0                	test   %eax,%eax                      
  115e66:	74 1c                	je     115e84 <rtems_partition_create+0x40><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( length == 0 || buffer_size == 0 || length < buffer_size ||     
  115e68:	85 d2                	test   %edx,%edx                      
  115e6a:	74 28                	je     115e94 <rtems_partition_create+0x50>
  115e6c:	85 ff                	test   %edi,%edi                      
  115e6e:	74 24                	je     115e94 <rtems_partition_create+0x50>
  115e70:	39 fa                	cmp    %edi,%edx                      
  115e72:	72 20                	jb     115e94 <rtems_partition_create+0x50>
  115e74:	f7 c7 03 00 00 00    	test   $0x3,%edi                      
  115e7a:	75 18                	jne    115e94 <rtems_partition_create+0x50>
         !_Partition_Is_buffer_size_aligned( buffer_size ) )          
    return RTEMS_INVALID_SIZE;                                        
                                                                      
  if ( !_Addresses_Is_aligned( starting_address ) )                   
  115e7c:	f7 c6 03 00 00 00    	test   $0x3,%esi                      
  115e82:	74 30                	je     115eb4 <rtems_partition_create+0x70>
     return RTEMS_INVALID_ADDRESS;                                    
  115e84:	b8 09 00 00 00       	mov    $0x9,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115e89:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115e8c:	5b                   	pop    %ebx                           
  115e8d:	5e                   	pop    %esi                           
  115e8e:	5f                   	pop    %edi                           
  115e8f:	c9                   	leave                                 
  115e90:	c3                   	ret                                   
  115e91:	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;                                        
  115e94:	b8 08 00 00 00       	mov    $0x8,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115e99:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115e9c:	5b                   	pop    %ebx                           
  115e9d:	5e                   	pop    %esi                           
  115e9e:	5f                   	pop    %edi                           
  115e9f:	c9                   	leave                                 
  115ea0:	c3                   	ret                                   
  115ea1:	8d 76 00             	lea    0x0(%esi),%esi                 
)                                                                     
{                                                                     
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  115ea4:	b8 03 00 00 00       	mov    $0x3,%eax                      
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  115ea9:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  115eac:	5b                   	pop    %ebx                           
  115ead:	5e                   	pop    %esi                           
  115eae:	5f                   	pop    %edi                           
  115eaf:	c9                   	leave                                 
  115eb0:	c3                   	ret                                   
  115eb1:	8d 76 00             	lea    0x0(%esi),%esi                 
  115eb4:	a1 ac 20 14 00       	mov    0x1420ac,%eax                  
  115eb9:	40                   	inc    %eax                           
  115eba:	a3 ac 20 14 00       	mov    %eax,0x1420ac                  
 *  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 );
  115ebf:	83 ec 0c             	sub    $0xc,%esp                      
  115ec2:	68 40 1f 14 00       	push   $0x141f40                      
  115ec7:	89 55 e0             	mov    %edx,-0x20(%ebp)               
  115eca:	e8 3d 45 00 00       	call   11a40c <_Objects_Allocate>     
  115ecf:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
                                                                      
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
  115ed2:	83 c4 10             	add    $0x10,%esp                     
  115ed5:	85 c0                	test   %eax,%eax                      
  115ed7:	8b 55 e0             	mov    -0x20(%ebp),%edx               
  115eda:	74 58                	je     115f34 <rtems_partition_create+0xf0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_partition->starting_address      = starting_address;            
  115edc:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  115edf:	89 70 10             	mov    %esi,0x10(%eax)                
  the_partition->length                = length;                      
  115ee2:	89 50 14             	mov    %edx,0x14(%eax)                
  the_partition->buffer_size           = buffer_size;                 
  115ee5:	89 78 18             	mov    %edi,0x18(%eax)                
  the_partition->attribute_set         = attribute_set;               
  115ee8:	8b 4d 18             	mov    0x18(%ebp),%ecx                
  115eeb:	89 48 1c             	mov    %ecx,0x1c(%eax)                
  the_partition->number_of_used_blocks = 0;                           
  115eee:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)                
                                                                      
  _Chain_Initialize( &the_partition->Memory, starting_address,        
  115ef5:	57                   	push   %edi                           
  115ef6:	89 d0                	mov    %edx,%eax                      
  115ef8:	31 d2                	xor    %edx,%edx                      
  115efa:	f7 f7                	div    %edi                           
  115efc:	50                   	push   %eax                           
  115efd:	56                   	push   %esi                           
  115efe:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  115f01:	83 c0 24             	add    $0x24,%eax                     
  115f04:	50                   	push   %eax                           
  115f05:	e8 82 2f 00 00       	call   118e8c <_Chain_Initialize>     
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  115f0a:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  115f0d:	8b 47 08             	mov    0x8(%edi),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  115f10:	0f b7 f0             	movzwl %ax,%esi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  115f13:	8b 15 5c 1f 14 00    	mov    0x141f5c,%edx                  
  115f19:	89 3c b2             	mov    %edi,(%edx,%esi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  115f1c:	89 5f 0c             	mov    %ebx,0xc(%edi)                 
    &_Partition_Information,                                          
    &the_partition->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_partition->Object.id;                                     
  115f1f:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  115f22:	89 02                	mov    %eax,(%edx)                    
      name,                                                           
      0                  /* Not used */                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  115f24:	e8 5b 55 00 00       	call   11b484 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  115f29:	83 c4 10             	add    $0x10,%esp                     
  115f2c:	31 c0                	xor    %eax,%eax                      
  115f2e:	e9 66 ff ff ff       	jmp    115e99 <rtems_partition_create+0x55>
  115f33:	90                   	nop                                   
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
    _Thread_Enable_dispatch();                                        
  115f34:	e8 4b 55 00 00       	call   11b484 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  115f39:	b8 05 00 00 00       	mov    $0x5,%eax                      
  115f3e:	e9 56 ff ff ff       	jmp    115e99 <rtems_partition_create+0x55>
                                                                      

00115fb0 <rtems_partition_get_buffer>: rtems_status_code rtems_partition_get_buffer( rtems_id id, void **buffer ) {
  115fb0:	55                   	push   %ebp                           
  115fb1:	89 e5                	mov    %esp,%ebp                      
  115fb3:	56                   	push   %esi                           
  115fb4:	53                   	push   %ebx                           
  115fb5:	83 ec 20             	sub    $0x20,%esp                     
  115fb8:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
  void                       *the_buffer;                             
                                                                      
  if ( !buffer )                                                      
  115fbb:	85 db                	test   %ebx,%ebx                      
  115fbd:	74 59                	je     116018 <rtems_partition_get_buffer+0x68><== NEVER TAKEN
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
  115fbf:	52                   	push   %edx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  115fc0:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  115fc3:	50                   	push   %eax                           
  115fc4:	ff 75 08             	pushl  0x8(%ebp)                      
  115fc7:	68 40 1f 14 00       	push   $0x141f40                      
  115fcc:	e8 2b 49 00 00       	call   11a8fc <_Objects_Get>          
  115fd1:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  115fd3:	83 c4 10             	add    $0x10,%esp                     
  115fd6:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  115fd9:	85 c0                	test   %eax,%eax                      
  115fdb:	75 2f                	jne    11600c <rtems_partition_get_buffer+0x5c><== NEVER TAKEN
 */                                                                   
RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer (               
   Partition_Control *the_partition                                   
)                                                                     
{                                                                     
  return _Chain_Get( &the_partition->Memory );                        
  115fdd:	83 ec 0c             	sub    $0xc,%esp                      
  115fe0:	8d 46 24             	lea    0x24(%esi),%eax                
  115fe3:	50                   	push   %eax                           
  115fe4:	e8 7f 2e 00 00       	call   118e68 <_Chain_Get>            
                                                                      
    case OBJECTS_LOCAL:                                               
      the_buffer = _Partition_Allocate_buffer( the_partition );       
      if ( the_buffer ) {                                             
  115fe9:	83 c4 10             	add    $0x10,%esp                     
  115fec:	85 c0                	test   %eax,%eax                      
  115fee:	74 34                	je     116024 <rtems_partition_get_buffer+0x74>
        the_partition->number_of_used_blocks += 1;                    
  115ff0:	ff 46 20             	incl   0x20(%esi)                     
        _Thread_Enable_dispatch();                                    
  115ff3:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  115ff6:	e8 89 54 00 00       	call   11b484 <_Thread_Enable_dispatch>
        *buffer = the_buffer;                                         
  115ffb:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  115ffe:	89 03                	mov    %eax,(%ebx)                    
        return RTEMS_SUCCESSFUL;                                      
  116000:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116002:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116005:	5b                   	pop    %ebx                           
  116006:	5e                   	pop    %esi                           
  116007:	c9                   	leave                                 
  116008:	c3                   	ret                                   
  116009:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  11600c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116011:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116014:	5b                   	pop    %ebx                           
  116015:	5e                   	pop    %esi                           
  116016:	c9                   	leave                                 
  116017:	c3                   	ret                                   
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
  void                       *the_buffer;                             
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  116018:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11601d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116020:	5b                   	pop    %ebx                           
  116021:	5e                   	pop    %esi                           
  116022:	c9                   	leave                                 
  116023:	c3                   	ret                                   
        the_partition->number_of_used_blocks += 1;                    
        _Thread_Enable_dispatch();                                    
        *buffer = the_buffer;                                         
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  116024:	e8 5b 54 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_UNSATISFIED;                                       
  116029:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  11602e:	eb e1                	jmp    116011 <rtems_partition_get_buffer+0x61>
                                                                      

00116054 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
  116054:	55                   	push   %ebp                           
  116055:	89 e5                	mov    %esp,%ebp                      
  116057:	56                   	push   %esi                           
  116058:	53                   	push   %ebx                           
  116059:	83 ec 14             	sub    $0x14,%esp                     
  11605c:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  11605f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
  116062:	50                   	push   %eax                           
  116063:	ff 75 08             	pushl  0x8(%ebp)                      
  116066:	68 40 1f 14 00       	push   $0x141f40                      
  11606b:	e8 8c 48 00 00       	call   11a8fc <_Objects_Get>          
  116070:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  116072:	83 c4 10             	add    $0x10,%esp                     
  116075:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116078:	85 c0                	test   %eax,%eax                      
  11607a:	74 0c                	je     116088 <rtems_partition_return_buffer+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  11607c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116081:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116084:	5b                   	pop    %ebx                           
  116085:	5e                   	pop    %esi                           
  116086:	c9                   	leave                                 
  116087:	c3                   	ret                                   
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
  116088:	8b 43 10             	mov    0x10(%ebx),%eax                
  ending   = _Addresses_Add_offset( starting, the_partition->length );
  11608b:	8b 53 14             	mov    0x14(%ebx),%edx                
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
  11608e:	39 c6                	cmp    %eax,%esi                      
  116090:	72 3a                	jb     1160cc <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
  116092:	8d 14 10             	lea    (%eax,%edx,1),%edx             
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
  116095:	39 d6                	cmp    %edx,%esi                      
  116097:	77 33                	ja     1160cc <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);      
  116099:	89 f2                	mov    %esi,%edx                      
  11609b:	29 c2                	sub    %eax,%edx                      
  11609d:	89 d0                	mov    %edx,%eax                      
  offset = (uint32_t) _Addresses_Subtract(                            
    the_buffer,                                                       
    the_partition->starting_address                                   
  );                                                                  
                                                                      
  return ((offset % the_partition->buffer_size) == 0);                
  11609f:	31 d2                	xor    %edx,%edx                      
  1160a1:	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 ) &&         
  1160a4:	85 d2                	test   %edx,%edx                      
  1160a6:	75 24                	jne    1160cc <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 );                
  1160a8:	83 ec 08             	sub    $0x8,%esp                      
  1160ab:	56                   	push   %esi                           
  1160ac:	8d 43 24             	lea    0x24(%ebx),%eax                
  1160af:	50                   	push   %eax                           
  1160b0:	e8 77 2d 00 00       	call   118e2c <_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;                    
  1160b5:	ff 4b 20             	decl   0x20(%ebx)                     
        _Thread_Enable_dispatch();                                    
  1160b8:	e8 c7 53 00 00       	call   11b484 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  1160bd:	83 c4 10             	add    $0x10,%esp                     
  1160c0:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1160c2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1160c5:	5b                   	pop    %ebx                           
  1160c6:	5e                   	pop    %esi                           
  1160c7:	c9                   	leave                                 
  1160c8:	c3                   	ret                                   
  1160c9:	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();                                      
  1160cc:	e8 b3 53 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  1160d1:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1160d6:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1160d9:	5b                   	pop    %ebx                           
  1160da:	5e                   	pop    %esi                           
  1160db:	c9                   	leave                                 
  1160dc:	c3                   	ret                                   
                                                                      

00115478 <rtems_port_create>: void *internal_start, void *external_start, uint32_t length, rtems_id *id ) {
  115478:	55                   	push   %ebp                           
  115479:	89 e5                	mov    %esp,%ebp                      
  11547b:	57                   	push   %edi                           
  11547c:	56                   	push   %esi                           
  11547d:	53                   	push   %ebx                           
  11547e:	83 ec 1c             	sub    $0x1c,%esp                     
  115481:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  115484:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  115487:	8b 7d 10             	mov    0x10(%ebp),%edi                
  11548a:	8b 75 18             	mov    0x18(%ebp),%esi                
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  11548d:	85 db                	test   %ebx,%ebx                      
  11548f:	74 1b                	je     1154ac <rtems_port_create+0x34>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  115491:	85 f6                	test   %esi,%esi                      
  115493:	74 08                	je     11549d <rtems_port_create+0x25>
 *    id       - port id                                              
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code - if unsuccessful                                    
 */                                                                   
                                                                      
rtems_status_code rtems_port_create(                                  
  115495:	89 f8                	mov    %edi,%eax                      
  115497:	09 d0                	or     %edx,%eax                      
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_Addresses_Is_aligned( internal_start ) ||                    
  115499:	a8 03                	test   $0x3,%al                       
  11549b:	74 1f                	je     1154bc <rtems_port_create+0x44>
       !_Addresses_Is_aligned( external_start ) )                     
    return RTEMS_INVALID_ADDRESS;                                     
  11549d:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1154a2:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1154a5:	5b                   	pop    %ebx                           
  1154a6:	5e                   	pop    %esi                           
  1154a7:	5f                   	pop    %edi                           
  1154a8:	c9                   	leave                                 
  1154a9:	c3                   	ret                                   
  1154aa:	66 90                	xchg   %ax,%ax                        
)                                                                     
{                                                                     
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  1154ac:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  1154b1:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  1154b4:	5b                   	pop    %ebx                           
  1154b5:	5e                   	pop    %esi                           
  1154b6:	5f                   	pop    %edi                           
  1154b7:	c9                   	leave                                 
  1154b8:	c3                   	ret                                   
  1154b9:	8d 76 00             	lea    0x0(%esi),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  1154bc:	a1 ac 20 14 00       	mov    0x1420ac,%eax                  
  1154c1:	40                   	inc    %eax                           
  1154c2:	a3 ac 20 14 00       	mov    %eax,0x1420ac                  
 */                                                                   
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control                       
   *_Dual_ported_memory_Allocate ( void )                             
{                                                                     
  return (Dual_ported_memory_Control *)                               
     _Objects_Allocate( &_Dual_ported_memory_Information );           
  1154c7:	83 ec 0c             	sub    $0xc,%esp                      
  1154ca:	68 00 1f 14 00       	push   $0x141f00                      
  1154cf:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  1154d2:	e8 35 4f 00 00       	call   11a40c <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();             /* to prevent deletion */   
                                                                      
  the_port = _Dual_ported_memory_Allocate();                          
                                                                      
  if ( !the_port ) {                                                  
  1154d7:	83 c4 10             	add    $0x10,%esp                     
  1154da:	85 c0                	test   %eax,%eax                      
  1154dc:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  1154df:	74 33                	je     115514 <rtems_port_create+0x9c>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_port->internal_base = internal_start;                           
  1154e1:	89 50 10             	mov    %edx,0x10(%eax)                
  the_port->external_base = external_start;                           
  1154e4:	89 78 14             	mov    %edi,0x14(%eax)                
  the_port->length        = length - 1;                               
  1154e7:	8b 55 14             	mov    0x14(%ebp),%edx                
  1154ea:	4a                   	dec    %edx                           
  1154eb:	89 50 18             	mov    %edx,0x18(%eax)                
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  1154ee:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  1154f1:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  1154f4:	8b 0d 1c 1f 14 00    	mov    0x141f1c,%ecx                  
  1154fa:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  1154fd:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Dual_ported_memory_Information,                                 
    &the_port->Object,                                                
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  115500:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  115502:	e8 7d 5f 00 00       	call   11b484 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  115507:	31 c0                	xor    %eax,%eax                      
}                                                                     
  115509:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11550c:	5b                   	pop    %ebx                           
  11550d:	5e                   	pop    %esi                           
  11550e:	5f                   	pop    %edi                           
  11550f:	c9                   	leave                                 
  115510:	c3                   	ret                                   
  115511:	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();                                        
  115514:	e8 6b 5f 00 00       	call   11b484 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  115519:	b8 05 00 00 00       	mov    $0x5,%eax                      
  11551e:	eb 82                	jmp    1154a2 <rtems_port_create+0x2a>
                                                                      

00115520 <rtems_port_delete>: */ rtems_status_code rtems_port_delete( rtems_id id ) {
  115520:	55                   	push   %ebp                           
  115521:	89 e5                	mov    %esp,%ebp                      
  115523:	83 ec 2c             	sub    $0x2c,%esp                     
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  115526:	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 );  
  115529:	50                   	push   %eax                           
  11552a:	ff 75 08             	pushl  0x8(%ebp)                      
  11552d:	68 00 1f 14 00       	push   $0x141f00                      
  115532:	e8 c5 53 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  115537:	83 c4 10             	add    $0x10,%esp                     
  11553a:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  11553d:	85 c9                	test   %ecx,%ecx                      
  11553f:	75 2f                	jne    115570 <rtems_port_delete+0x50>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object );
  115541:	83 ec 08             	sub    $0x8,%esp                      
  115544:	50                   	push   %eax                           
  115545:	68 00 1f 14 00       	push   $0x141f00                      
  11554a:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  11554d:	e8 36 4f 00 00       	call   11a488 <_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 );
  115552:	58                   	pop    %eax                           
  115553:	5a                   	pop    %edx                           
  115554:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  115557:	50                   	push   %eax                           
  115558:	68 00 1f 14 00       	push   $0x141f00                      
  11555d:	e8 1e 52 00 00       	call   11a780 <_Objects_Free>         
      _Dual_ported_memory_Free( the_port );                           
      _Thread_Enable_dispatch();                                      
  115562:	e8 1d 5f 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115567:	83 c4 10             	add    $0x10,%esp                     
  11556a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11556c:	c9                   	leave                                 
  11556d:	c3                   	ret                                   
  11556e:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115570:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  115575:	c9                   	leave                                 
  115576:	c3                   	ret                                   
                                                                      

00115578 <rtems_port_external_to_internal>: rtems_status_code rtems_port_external_to_internal( rtems_id id, void *external, void **internal ) {
  115578:	55                   	push   %ebp                           
  115579:	89 e5                	mov    %esp,%ebp                      
  11557b:	56                   	push   %esi                           
  11557c:	53                   	push   %ebx                           
  11557d:	83 ec 10             	sub    $0x10,%esp                     
  115580:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  115583:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !internal )                                                    
  115586:	85 db                	test   %ebx,%ebx                      
  115588:	74 4e                	je     1155d8 <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 );  
  11558a:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  11558b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11558e:	50                   	push   %eax                           
  11558f:	ff 75 08             	pushl  0x8(%ebp)                      
  115592:	68 00 1f 14 00       	push   $0x141f00                      
  115597:	e8 60 53 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  11559c:	83 c4 10             	add    $0x10,%esp                     
  11559f:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1155a2:	85 d2                	test   %edx,%edx                      
  1155a4:	74 0e                	je     1155b4 <rtems_port_external_to_internal+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1155a6:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1155ab:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1155ae:	5b                   	pop    %ebx                           
  1155af:	5e                   	pop    %esi                           
  1155b0:	c9                   	leave                                 
  1155b1:	c3                   	ret                                   
  1155b2:	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);      
  1155b4:	89 f2                	mov    %esi,%edx                      
  1155b6:	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 )                                
  1155b9:	3b 50 18             	cmp    0x18(%eax),%edx                
  1155bc:	77 16                	ja     1155d4 <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);                          
  1155be:	03 50 10             	add    0x10(%eax),%edx                
  1155c1:	89 13                	mov    %edx,(%ebx)                    
        *internal = external;                                         
      else                                                            
        *internal = _Addresses_Add_offset( the_port->internal_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
  1155c3:	e8 bc 5e 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1155c8:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1155ca:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1155cd:	5b                   	pop    %ebx                           
  1155ce:	5e                   	pop    %esi                           
  1155cf:	c9                   	leave                                 
  1155d0:	c3                   	ret                                   
  1155d1:	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;                                         
  1155d4:	89 33                	mov    %esi,(%ebx)                    
  1155d6:	eb eb                	jmp    1155c3 <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;                                     
  1155d8:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1155dd:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1155e0:	5b                   	pop    %ebx                           
  1155e1:	5e                   	pop    %esi                           
  1155e2:	c9                   	leave                                 
  1155e3:	c3                   	ret                                   
                                                                      

00115608 <rtems_port_internal_to_external>: rtems_status_code rtems_port_internal_to_external( rtems_id id, void *internal, void **external ) {
  115608:	55                   	push   %ebp                           
  115609:	89 e5                	mov    %esp,%ebp                      
  11560b:	56                   	push   %esi                           
  11560c:	53                   	push   %ebx                           
  11560d:	83 ec 10             	sub    $0x10,%esp                     
  115610:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  115613:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
  115616:	85 db                	test   %ebx,%ebx                      
  115618:	74 4e                	je     115668 <rtems_port_internal_to_external+0x60>
  11561a:	51                   	push   %ecx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  11561b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11561e:	50                   	push   %eax                           
  11561f:	ff 75 08             	pushl  0x8(%ebp)                      
  115622:	68 00 1f 14 00       	push   $0x141f00                      
  115627:	e8 d0 52 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  11562c:	83 c4 10             	add    $0x10,%esp                     
  11562f:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  115632:	85 d2                	test   %edx,%edx                      
  115634:	74 0e                	je     115644 <rtems_port_internal_to_external+0x3c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  115636:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  11563b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11563e:	5b                   	pop    %ebx                           
  11563f:	5e                   	pop    %esi                           
  115640:	c9                   	leave                                 
  115641:	c3                   	ret                                   
  115642:	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);      
  115644:	89 f2                	mov    %esi,%edx                      
  115646:	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 )                                
  115649:	3b 50 18             	cmp    0x18(%eax),%edx                
  11564c:	77 16                	ja     115664 <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);                          
  11564e:	03 50 14             	add    0x14(%eax),%edx                
  115651:	89 13                	mov    %edx,(%ebx)                    
        *external = internal;                                         
      else                                                            
        *external = _Addresses_Add_offset( the_port->external_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
  115653:	e8 2c 5e 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  115658:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11565a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11565d:	5b                   	pop    %ebx                           
  11565e:	5e                   	pop    %esi                           
  11565f:	c9                   	leave                                 
  115660:	c3                   	ret                                   
  115661:	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;                                         
  115664:	89 33                	mov    %esi,(%ebx)                    
  115666:	eb eb                	jmp    115653 <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;                                     
  115668:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11566d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  115670:	5b                   	pop    %ebx                           
  115671:	5e                   	pop    %esi                           
  115672:	c9                   	leave                                 
  115673:	c3                   	ret                                   
                                                                      

001160e0 <rtems_rate_monotonic_cancel>: */ rtems_status_code rtems_rate_monotonic_cancel( rtems_id id ) {
  1160e0:	55                   	push   %ebp                           
  1160e1:	89 e5                	mov    %esp,%ebp                      
  1160e3:	53                   	push   %ebx                           
  1160e4:	83 ec 18             	sub    $0x18,%esp                     
  Rate_monotonic_Control *the_period;                                 
  Objects_Locations       location;                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  1160e7:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
  1160ea:	50                   	push   %eax                           
  1160eb:	ff 75 08             	pushl  0x8(%ebp)                      
  1160ee:	68 80 1f 14 00       	push   $0x141f80                      
  1160f3:	e8 04 48 00 00       	call   11a8fc <_Objects_Get>          
  1160f8:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  1160fa:	83 c4 10             	add    $0x10,%esp                     
  1160fd:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116100:	85 c0                	test   %eax,%eax                      
  116102:	74 0c                	je     116110 <rtems_rate_monotonic_cancel+0x30>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  116104:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116109:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11610c:	c9                   	leave                                 
  11610d:	c3                   	ret                                   
  11610e:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
  116110:	a1 58 26 14 00       	mov    0x142658,%eax                  
  116115:	39 43 40             	cmp    %eax,0x40(%ebx)                
  116118:	74 12                	je     11612c <rtems_rate_monotonic_cancel+0x4c>
        _Thread_Enable_dispatch();                                    
  11611a:	e8 65 53 00 00       	call   11b484 <_Thread_Enable_dispatch>
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
  11611f:	b8 17 00 00 00       	mov    $0x17,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  116124:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116127:	c9                   	leave                                 
  116128:	c3                   	ret                                   
  116129:	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 );                  
  11612c:	83 ec 0c             	sub    $0xc,%esp                      
  11612f:	8d 43 10             	lea    0x10(%ebx),%eax                
  116132:	50                   	push   %eax                           
  116133:	e8 14 64 00 00       	call   11c54c <_Watchdog_Remove>      
      the_period->state = RATE_MONOTONIC_INACTIVE;                    
  116138:	c7 43 38 00 00 00 00 	movl   $0x0,0x38(%ebx)                
      _Thread_Enable_dispatch();                                      
  11613f:	e8 40 53 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  116144:	83 c4 10             	add    $0x10,%esp                     
  116147:	31 c0                	xor    %eax,%eax                      
  116149:	eb be                	jmp    116109 <rtems_rate_monotonic_cancel+0x29>
                                                                      

0010b828 <rtems_rate_monotonic_create>: rtems_status_code rtems_rate_monotonic_create( rtems_name name, rtems_id *id ) {
  10b828:	55                   	push   %ebp                           
  10b829:	89 e5                	mov    %esp,%ebp                      
  10b82b:	57                   	push   %edi                           
  10b82c:	56                   	push   %esi                           
  10b82d:	53                   	push   %ebx                           
  10b82e:	83 ec 1c             	sub    $0x1c,%esp                     
  10b831:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b834:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10b837:	85 db                	test   %ebx,%ebx                      
  10b839:	0f 84 a9 00 00 00    	je     10b8e8 <rtems_rate_monotonic_create+0xc0>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10b83f:	85 f6                	test   %esi,%esi                      
  10b841:	0f 84 c5 00 00 00    	je     10b90c <rtems_rate_monotonic_create+0xe4>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10b847:	a1 6c ab 12 00       	mov    0x12ab6c,%eax                  
  10b84c:	40                   	inc    %eax                           
  10b84d:	a3 6c ab 12 00       	mov    %eax,0x12ab6c                  
 *  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 );                
  10b852:	83 ec 0c             	sub    $0xc,%esp                      
  10b855:	68 80 aa 12 00       	push   $0x12aa80                      
  10b85a:	e8 e9 1d 00 00       	call   10d648 <_Objects_Allocate>     
  10b85f:	89 c2                	mov    %eax,%edx                      
                                                                      
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
  10b861:	83 c4 10             	add    $0x10,%esp                     
  10b864:	85 c0                	test   %eax,%eax                      
  10b866:	0f 84 8c 00 00 00    	je     10b8f8 <rtems_rate_monotonic_create+0xd0>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_period->owner = _Thread_Executing;                              
  10b86c:	a1 18 b1 12 00       	mov    0x12b118,%eax                  
  10b871:	89 42 40             	mov    %eax,0x40(%edx)                
  the_period->state = RATE_MONOTONIC_INACTIVE;                        
  10b874:	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;                        
  10b87b:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  10b882:	c7 42 2c 00 00 00 00 	movl   $0x0,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  10b889:	c7 42 30 00 00 00 00 	movl   $0x0,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  10b890:	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 );                     
  10b897:	8d 42 54             	lea    0x54(%edx),%eax                
  10b89a:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  10b89d:	b9 38 00 00 00       	mov    $0x38,%ecx                     
  10b8a2:	31 c0                	xor    %eax,%eax                      
  10b8a4:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  10b8a7:	f3 aa                	rep stos %al,%es:(%edi)               
  10b8a9:	c7 42 5c ff ff ff 7f 	movl   $0x7fffffff,0x5c(%edx)         
  10b8b0:	c7 42 60 ff ff ff 7f 	movl   $0x7fffffff,0x60(%edx)         
  10b8b7:	c7 42 74 ff ff ff 7f 	movl   $0x7fffffff,0x74(%edx)         
  10b8be:	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 ),                             
  10b8c5:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b8c8:	0f b7 f8             	movzwl %ax,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b8cb:	8b 0d 9c aa 12 00    	mov    0x12aa9c,%ecx                  
  10b8d1:	89 14 b9             	mov    %edx,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10b8d4:	89 5a 0c             	mov    %ebx,0xc(%edx)                 
    &_Rate_monotonic_Information,                                     
    &the_period->Object,                                              
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  10b8d7:	89 06                	mov    %eax,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10b8d9:	e8 8e 2e 00 00       	call   10e76c <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10b8de:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b8e0:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b8e3:	5b                   	pop    %ebx                           
  10b8e4:	5e                   	pop    %esi                           
  10b8e5:	5f                   	pop    %edi                           
  10b8e6:	c9                   	leave                                 
  10b8e7:	c3                   	ret                                   
)                                                                     
{                                                                     
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10b8e8:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b8ed:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b8f0:	5b                   	pop    %ebx                           
  10b8f1:	5e                   	pop    %esi                           
  10b8f2:	5f                   	pop    %edi                           
  10b8f3:	c9                   	leave                                 
  10b8f4:	c3                   	ret                                   
  10b8f5:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
    _Thread_Enable_dispatch();                                        
  10b8f8:	e8 6f 2e 00 00       	call   10e76c <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10b8fd:	b8 05 00 00 00       	mov    $0x5,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b902:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b905:	5b                   	pop    %ebx                           
  10b906:	5e                   	pop    %esi                           
  10b907:	5f                   	pop    %edi                           
  10b908:	c9                   	leave                                 
  10b909:	c3                   	ret                                   
  10b90a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10b90c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b911:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b914:	5b                   	pop    %ebx                           
  10b915:	5e                   	pop    %esi                           
  10b916:	5f                   	pop    %edi                           
  10b917:	c9                   	leave                                 
  10b918:	c3                   	ret                                   
                                                                      

00112114 <rtems_rate_monotonic_get_status>: rtems_status_code rtems_rate_monotonic_get_status( rtems_id id, rtems_rate_monotonic_period_status *status ) {
  112114:	55                   	push   %ebp                           
  112115:	89 e5                	mov    %esp,%ebp                      
  112117:	53                   	push   %ebx                           
  112118:	83 ec 24             	sub    $0x24,%esp                     
  11211b:	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 )                                                      
  11211e:	85 db                	test   %ebx,%ebx                      
  112120:	0f 84 92 00 00 00    	je     1121b8 <rtems_rate_monotonic_get_status+0xa4>
  112126:	50                   	push   %eax                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  112127:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  11212a:	50                   	push   %eax                           
  11212b:	ff 75 08             	pushl  0x8(%ebp)                      
  11212e:	68 80 aa 12 00       	push   $0x12aa80                      
  112133:	e8 ac ba ff ff       	call   10dbe4 <_Objects_Get>          
  switch ( location ) {                                               
  112138:	83 c4 10             	add    $0x10,%esp                     
  11213b:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  11213e:	85 c9                	test   %ecx,%ecx                      
  112140:	74 0a                	je     11214c <rtems_rate_monotonic_get_status+0x38>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  112142:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  112147:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11214a:	c9                   	leave                                 
  11214b:	c3                   	ret                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = the_period->owner->Object.id;                   
  11214c:	8b 50 40             	mov    0x40(%eax),%edx                
  11214f:	8b 52 08             	mov    0x8(%edx),%edx                 
  112152:	89 13                	mov    %edx,(%ebx)                    
      status->state = the_period->state;                              
  112154:	8b 50 38             	mov    0x38(%eax),%edx                
  112157:	89 53 04             	mov    %edx,0x4(%ebx)                 
                                                                      
      /*                                                              
       *  If the period is inactive, there is no information.         
       */                                                             
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
  11215a:	85 d2                	test   %edx,%edx                      
  11215c:	75 2a                	jne    112188 <rtems_rate_monotonic_get_status+0x74>
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timespec_Set_to_zero( &status->since_last_period );        
  11215e:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)                 
  112165:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
          _Timespec_Set_to_zero( &status->executed_since_last_period );
  11216c:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
  112173:	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();                                      
  11217a:	e8 ed c5 ff ff       	call   10e76c <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  11217f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  112181:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  112184:	c9                   	leave                                 
  112185:	c3                   	ret                                   
  112186:	66 90                	xchg   %ax,%ax                        
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  112188:	52                   	push   %edx                           
          _Rate_monotonic_Get_status(                                 
  112189:	8d 55 ec             	lea    -0x14(%ebp),%edx               
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  11218c:	52                   	push   %edx                           
          _Rate_monotonic_Get_status(                                 
  11218d:	8d 55 e4             	lea    -0x1c(%ebp),%edx               
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
  112190:	52                   	push   %edx                           
  112191:	50                   	push   %eax                           
  112192:	e8 a9 97 ff ff       	call   10b940 <_Rate_monotonic_Get_status>
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
  112197:	83 c4 10             	add    $0x10,%esp                     
  11219a:	84 c0                	test   %al,%al                        
  11219c:	74 26                	je     1121c4 <rtems_rate_monotonic_get_status+0xb0>
          _Thread_Enable_dispatch();                                  
          return RTEMS_NOT_DEFINED;                                   
        }                                                             
                                                                      
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timestamp_To_timespec(                                     
  11219e:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1121a1:	8b 55 e8             	mov    -0x18(%ebp),%edx               
  1121a4:	89 43 08             	mov    %eax,0x8(%ebx)                 
  1121a7:	89 53 0c             	mov    %edx,0xc(%ebx)                 
            &since_last_period, &status->since_last_period            
          );                                                          
          _Timestamp_To_timespec(                                     
  1121aa:	8b 45 ec             	mov    -0x14(%ebp),%eax               
  1121ad:	8b 55 f0             	mov    -0x10(%ebp),%edx               
  1121b0:	89 43 10             	mov    %eax,0x10(%ebx)                
  1121b3:	89 53 14             	mov    %edx,0x14(%ebx)                
  1121b6:	eb c2                	jmp    11217a <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;                                     
  1121b8:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1121bd:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1121c0:	c9                   	leave                                 
  1121c1:	c3                   	ret                                   
  1121c2:	66 90                	xchg   %ax,%ax                        
        valid_status =                                                
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
          _Thread_Enable_dispatch();                                  
  1121c4:	e8 a3 c5 ff ff       	call   10e76c <_Thread_Enable_dispatch>
          return RTEMS_NOT_DEFINED;                                   
  1121c9:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  1121ce:	e9 74 ff ff ff       	jmp    112147 <rtems_rate_monotonic_get_status+0x33>
                                                                      

0010bb3c <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
  10bb3c:	55                   	push   %ebp                           
  10bb3d:	89 e5                	mov    %esp,%ebp                      
  10bb3f:	57                   	push   %edi                           
  10bb40:	56                   	push   %esi                           
  10bb41:	53                   	push   %ebx                           
  10bb42:	83 ec 30             	sub    $0x30,%esp                     
  10bb45:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10bb48:	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 );                  
  10bb4b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
  10bb4e:	50                   	push   %eax                           
  10bb4f:	53                   	push   %ebx                           
  10bb50:	68 80 aa 12 00       	push   $0x12aa80                      
  10bb55:	e8 8a 20 00 00       	call   10dbe4 <_Objects_Get>          
                                                                      
  switch ( location ) {                                               
  10bb5a:	83 c4 10             	add    $0x10,%esp                     
  10bb5d:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10bb60:	85 d2                	test   %edx,%edx                      
  10bb62:	74 10                	je     10bb74 <rtems_rate_monotonic_period+0x38>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10bb64:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bb69:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bb6c:	5b                   	pop    %ebx                           
  10bb6d:	5e                   	pop    %esi                           
  10bb6e:	5f                   	pop    %edi                           
  10bb6f:	c9                   	leave                                 
  10bb70:	c3                   	ret                                   
  10bb71:	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 ) ) {             
  10bb74:	8b 15 18 b1 12 00    	mov    0x12b118,%edx                  
  10bb7a:	39 50 40             	cmp    %edx,0x40(%eax)                
  10bb7d:	74 15                	je     10bb94 <rtems_rate_monotonic_period+0x58>
        _Thread_Enable_dispatch();                                    
  10bb7f:	e8 e8 2b 00 00       	call   10e76c <_Thread_Enable_dispatch>
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
  10bb84:	b8 17 00 00 00       	mov    $0x17,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bb89:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bb8c:	5b                   	pop    %ebx                           
  10bb8d:	5e                   	pop    %esi                           
  10bb8e:	5f                   	pop    %edi                           
  10bb8f:	c9                   	leave                                 
  10bb90:	c3                   	ret                                   
  10bb91:	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 ) {                          
  10bb94:	85 f6                	test   %esi,%esi                      
  10bb96:	75 1c                	jne    10bbb4 <rtems_rate_monotonic_period+0x78>
        switch ( the_period->state ) {                                
  10bb98:	8b 40 38             	mov    0x38(%eax),%eax                
  10bb9b:	83 f8 04             	cmp    $0x4,%eax                      
  10bb9e:	77 6c                	ja     10bc0c <rtems_rate_monotonic_period+0xd0><== NEVER TAKEN
  10bba0:	8b 04 85 bc 37 12 00 	mov    0x1237bc(,%eax,4),%eax         
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
  10bba7:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10bbaa:	e8 bd 2b 00 00       	call   10e76c <_Thread_Enable_dispatch>
        return( return_value );                                       
  10bbaf:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10bbb2:	eb b5                	jmp    10bb69 <rtems_rate_monotonic_period+0x2d>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
  10bbb4:	9c                   	pushf                                 
  10bbb5:	fa                   	cli                                   
  10bbb6:	5f                   	pop    %edi                           
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
  10bbb7:	8b 50 38             	mov    0x38(%eax),%edx                
  10bbba:	85 d2                	test   %edx,%edx                      
  10bbbc:	74 52                	je     10bc10 <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 ) {             
  10bbbe:	83 fa 02             	cmp    $0x2,%edx                      
  10bbc1:	0f 84 9e 00 00 00    	je     10bc65 <rtems_rate_monotonic_period+0x129>
                                                                      
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_EXPIRED ) {            
  10bbc7:	83 fa 04             	cmp    $0x4,%edx                      
  10bbca:	75 98                	jne    10bb64 <rtems_rate_monotonic_period+0x28><== NEVER TAKEN
        /*                                                            
         *  Update statistics from the concluding period              
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
  10bbcc:	83 ec 0c             	sub    $0xc,%esp                      
  10bbcf:	50                   	push   %eax                           
  10bbd0:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10bbd3:	e8 74 fe ff ff       	call   10ba4c <_Rate_monotonic_Update_statistics>
                                                                      
        _ISR_Enable( level );                                         
  10bbd8:	57                   	push   %edi                           
  10bbd9:	9d                   	popf                                  
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
  10bbda:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10bbdd:	c7 40 38 02 00 00 00 	movl   $0x2,0x38(%eax)                
        the_period->next_length = length;                             
  10bbe4:	89 70 3c             	mov    %esi,0x3c(%eax)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10bbe7:	89 70 1c             	mov    %esi,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10bbea:	5b                   	pop    %ebx                           
  10bbeb:	5e                   	pop    %esi                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
  10bbec:	83 c0 10             	add    $0x10,%eax                     
  10bbef:	50                   	push   %eax                           
  10bbf0:	68 40 ac 12 00       	push   $0x12ac40                      
  10bbf5:	e8 a6 39 00 00       	call   10f5a0 <_Watchdog_Insert>      
        _Thread_Enable_dispatch();                                    
  10bbfa:	e8 6d 2b 00 00       	call   10e76c <_Thread_Enable_dispatch>
        return RTEMS_TIMEOUT;                                         
  10bbff:	83 c4 10             	add    $0x10,%esp                     
  10bc02:	b8 06 00 00 00       	mov    $0x6,%eax                      
  10bc07:	e9 5d ff ff ff       	jmp    10bb69 <rtems_rate_monotonic_period+0x2d>
        _Thread_Enable_dispatch();                                    
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
        switch ( the_period->state ) {                                
  10bc0c:	31 c0                	xor    %eax,%eax                      
  10bc0e:	eb 97                	jmp    10bba7 <rtems_rate_monotonic_period+0x6b><== NOT EXECUTED
        return( return_value );                                       
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
        _ISR_Enable( level );                                         
  10bc10:	57                   	push   %edi                           
  10bc11:	9d                   	popf                                  
                                                                      
        /*                                                            
         *  Baseline statistics information for the beginning of a period.
         */                                                           
        _Rate_monotonic_Initiate_statistics( the_period );            
  10bc12:	83 ec 0c             	sub    $0xc,%esp                      
  10bc15:	50                   	push   %eax                           
  10bc16:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10bc19:	e8 ba fd ff ff       	call   10b9d8 <_Rate_monotonic_Initiate_statistics>
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
  10bc1e:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10bc21:	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;                        
  10bc28:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10bc2f:	c7 40 2c 94 bf 10 00 	movl   $0x10bf94,0x2c(%eax)           
  the_watchdog->id        = id;                                       
  10bc36:	89 58 30             	mov    %ebx,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10bc39:	c7 40 34 00 00 00 00 	movl   $0x0,0x34(%eax)                
          _Rate_monotonic_Timeout,                                    
          id,                                                         
          NULL                                                        
        );                                                            
                                                                      
        the_period->next_length = length;                             
  10bc40:	89 70 3c             	mov    %esi,0x3c(%eax)                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10bc43:	89 70 1c             	mov    %esi,0x1c(%eax)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10bc46:	5e                   	pop    %esi                           
  10bc47:	5f                   	pop    %edi                           
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
  10bc48:	83 c0 10             	add    $0x10,%eax                     
  10bc4b:	50                   	push   %eax                           
  10bc4c:	68 40 ac 12 00       	push   $0x12ac40                      
  10bc51:	e8 4a 39 00 00       	call   10f5a0 <_Watchdog_Insert>      
        _Thread_Enable_dispatch();                                    
  10bc56:	e8 11 2b 00 00       	call   10e76c <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10bc5b:	83 c4 10             	add    $0x10,%esp                     
  10bc5e:	31 c0                	xor    %eax,%eax                      
  10bc60:	e9 04 ff ff ff       	jmp    10bb69 <rtems_rate_monotonic_period+0x2d>
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
        /*                                                            
         *  Update statistics from the concluding period.             
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
  10bc65:	83 ec 0c             	sub    $0xc,%esp                      
  10bc68:	50                   	push   %eax                           
  10bc69:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10bc6c:	e8 db fd ff ff       	call   10ba4c <_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;         
  10bc71:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10bc74:	c7 40 38 01 00 00 00 	movl   $0x1,0x38(%eax)                
        the_period->next_length = length;                             
  10bc7b:	89 70 3c             	mov    %esi,0x3c(%eax)                
                                                                      
        _ISR_Enable( level );                                         
  10bc7e:	57                   	push   %edi                           
  10bc7f:	9d                   	popf                                  
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
  10bc80:	8b 15 18 b1 12 00    	mov    0x12b118,%edx                  
  10bc86:	8b 48 08             	mov    0x8(%eax),%ecx                 
  10bc89:	89 4a 20             	mov    %ecx,0x20(%edx)                
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
  10bc8c:	59                   	pop    %ecx                           
  10bc8d:	5b                   	pop    %ebx                           
  10bc8e:	68 00 40 00 00       	push   $0x4000                        
  10bc93:	52                   	push   %edx                           
  10bc94:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10bc97:	e8 f4 32 00 00       	call   10ef90 <_Thread_Set_state>     
                                                                      
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
  10bc9c:	9c                   	pushf                                 
  10bc9d:	fa                   	cli                                   
  10bc9e:	59                   	pop    %ecx                           
          local_state = the_period->state;                            
  10bc9f:	8b 45 d4             	mov    -0x2c(%ebp),%eax               
  10bca2:	8b 50 38             	mov    0x38(%eax),%edx                
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
  10bca5:	c7 40 38 02 00 00 00 	movl   $0x2,0x38(%eax)                
        _ISR_Enable( level );                                         
  10bcac:	51                   	push   %ecx                           
  10bcad:	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 )   
  10bcae:	83 c4 10             	add    $0x10,%esp                     
  10bcb1:	83 fa 03             	cmp    $0x3,%edx                      
  10bcb4:	74 0c                	je     10bcc2 <rtems_rate_monotonic_period+0x186>
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
                                                                      
        _Thread_Enable_dispatch();                                    
  10bcb6:	e8 b1 2a 00 00       	call   10e76c <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10bcbb:	31 c0                	xor    %eax,%eax                      
  10bcbd:	e9 a7 fe ff ff       	jmp    10bb69 <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 );
  10bcc2:	57                   	push   %edi                           
  10bcc3:	57                   	push   %edi                           
  10bcc4:	68 00 40 00 00       	push   $0x4000                        
  10bcc9:	ff 35 18 b1 12 00    	pushl  0x12b118                       
  10bccf:	e8 34 27 00 00       	call   10e408 <_Thread_Clear_state>   
  10bcd4:	83 c4 10             	add    $0x10,%esp                     
  10bcd7:	eb dd                	jmp    10bcb6 <rtems_rate_monotonic_period+0x17a>
                                                                      

0010bcdc <rtems_rate_monotonic_report_statistics_with_plugin>: */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) {
  10bcdc:	55                   	push   %ebp                           
  10bcdd:	89 e5                	mov    %esp,%ebp                      
  10bcdf:	57                   	push   %edi                           
  10bce0:	56                   	push   %esi                           
  10bce1:	53                   	push   %ebx                           
  10bce2:	81 ec 8c 00 00 00    	sub    $0x8c,%esp                     
  10bce8:	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 )                                                       
  10bceb:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10bcee:	85 ff                	test   %edi,%edi                      
  10bcf0:	0f 84 be 00 00 00    	je     10bdb4 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8><== NEVER TAKEN
    return;                                                           
                                                                      
  (*print)( context, "Period information by period\n" );              
  10bcf6:	83 ec 08             	sub    $0x8,%esp                      
  10bcf9:	68 d0 37 12 00       	push   $0x1237d0                      
  10bcfe:	56                   	push   %esi                           
  10bcff:	ff 55 0c             	call   *0xc(%ebp)                     
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    (*print)( context, "--- CPU times are in seconds ---\n" );        
  10bd02:	59                   	pop    %ecx                           
  10bd03:	5b                   	pop    %ebx                           
  10bd04:	68 08 38 12 00       	push   $0x123808                      
  10bd09:	56                   	push   %esi                           
  10bd0a:	ff 55 0c             	call   *0xc(%ebp)                     
    (*print)( context, "--- Wall times are in seconds ---\n" );       
  10bd0d:	58                   	pop    %eax                           
  10bd0e:	5a                   	pop    %edx                           
  10bd0f:	68 2c 38 12 00       	push   $0x12382c                      
  10bd14:	56                   	push   %esi                           
  10bd15:	ff 55 0c             	call   *0xc(%ebp)                     
  Be sure to test the various cases.                                  
  (*print)( context,"\                                                
1234567890123456789012345678901234567890123456789012345678901234567890123456789\
\n");                                                                 
*/                                                                    
  (*print)( context, "   ID     OWNER COUNT MISSED     "              
  10bd18:	5b                   	pop    %ebx                           
  10bd19:	5f                   	pop    %edi                           
  10bd1a:	68 50 38 12 00       	push   $0x123850                      
  10bd1f:	56                   	push   %esi                           
  10bd20:	ff 55 0c             	call   *0xc(%ebp)                     
       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                     
          "          "                                                
       #endif                                                         
          "   WALL TIME\n"                                            
  );                                                                  
  (*print)( context, "                               "                
  10bd23:	5a                   	pop    %edx                           
  10bd24:	59                   	pop    %ecx                           
  10bd25:	68 9c 38 12 00       	push   $0x12389c                      
  10bd2a:	56                   	push   %esi                           
  10bd2b:	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 ;                   
  10bd2e:	8b 1d 88 aa 12 00    	mov    0x12aa88,%ebx                  
  10bd34:	83 c4 10             	add    $0x10,%esp                     
  10bd37:	3b 1d 8c aa 12 00    	cmp    0x12aa8c,%ebx                  
  10bd3d:	77 75                	ja     10bdb4 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8><== NEVER TAKEN
  10bd3f:	8d 7d 88             	lea    -0x78(%ebp),%edi               
  10bd42:	eb 09                	jmp    10bd4d <rtems_rate_monotonic_report_statistics_with_plugin+0x71>
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
  10bd44:	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 ;                   
  10bd45:	39 1d 8c aa 12 00    	cmp    %ebx,0x12aa8c                  
  10bd4b:	72 67                	jb     10bdb4 <rtems_rate_monotonic_report_statistics_with_plugin+0xd8>
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
  10bd4d:	83 ec 08             	sub    $0x8,%esp                      
  10bd50:	57                   	push   %edi                           
  10bd51:	53                   	push   %ebx                           
  10bd52:	e8 11 63 00 00       	call   112068 <rtems_rate_monotonic_get_statistics>
    if ( status != RTEMS_SUCCESSFUL )                                 
  10bd57:	83 c4 10             	add    $0x10,%esp                     
  10bd5a:	85 c0                	test   %eax,%eax                      
  10bd5c:	75 e6                	jne    10bd44 <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 );      
  10bd5e:	83 ec 08             	sub    $0x8,%esp                      
  10bd61:	8d 45 c0             	lea    -0x40(%ebp),%eax               
  10bd64:	50                   	push   %eax                           
  10bd65:	53                   	push   %ebx                           
  10bd66:	e8 a9 63 00 00       	call   112114 <rtems_rate_monotonic_get_status>
    #endif                                                            
                                                                      
    rtems_object_get_name( the_status.owner, sizeof(name), name );    
  10bd6b:	83 c4 0c             	add    $0xc,%esp                      
  10bd6e:	8d 55 e3             	lea    -0x1d(%ebp),%edx               
  10bd71:	52                   	push   %edx                           
  10bd72:	6a 05                	push   $0x5                           
  10bd74:	ff 75 c0             	pushl  -0x40(%ebp)                    
  10bd77:	e8 b4 02 00 00       	call   10c030 <rtems_object_get_name> 
                                                                      
    /*                                                                
     *  Print part of report line that is not dependent on granularity
     */                                                               
    (*print)( context,                                                
  10bd7c:	59                   	pop    %ecx                           
  10bd7d:	58                   	pop    %eax                           
  10bd7e:	ff 75 8c             	pushl  -0x74(%ebp)                    
  10bd81:	ff 75 88             	pushl  -0x78(%ebp)                    
  10bd84:	8d 45 e3             	lea    -0x1d(%ebp),%eax               
  10bd87:	50                   	push   %eax                           
  10bd88:	53                   	push   %ebx                           
  10bd89:	68 ee 37 12 00       	push   $0x1237ee                      
  10bd8e:	56                   	push   %esi                           
  10bd8f:	ff 55 0c             	call   *0xc(%ebp)                     
    );                                                                
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
  10bd92:	8b 45 88             	mov    -0x78(%ebp),%eax               
  10bd95:	83 c4 20             	add    $0x20,%esp                     
  10bd98:	85 c0                	test   %eax,%eax                      
  10bd9a:	75 20                	jne    10bdbc <rtems_rate_monotonic_report_statistics_with_plugin+0xe0>
      (*print)( context, "\n" );                                      
  10bd9c:	83 ec 08             	sub    $0x8,%esp                      
  10bd9f:	68 f1 19 12 00       	push   $0x1219f1                      
  10bda4:	56                   	push   %esi                           
  10bda5:	ff 55 0c             	call   *0xc(%ebp)                     
      continue;                                                       
  10bda8:	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++ ) {                                                      
  10bdab:	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 ;                   
  10bdac:	39 1d 8c aa 12 00    	cmp    %ebx,0x12aa8c                  
  10bdb2:	73 99                	jae    10bd4d <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                                                            
    }                                                                 
  }                                                                   
}                                                                     
  10bdb4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bdb7:	5b                   	pop    %ebx                           
  10bdb8:	5e                   	pop    %esi                           
  10bdb9:	5f                   	pop    %edi                           
  10bdba:	c9                   	leave                                 
  10bdbb:	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 );
  10bdbc:	52                   	push   %edx                           
  10bdbd:	8d 55 d8             	lea    -0x28(%ebp),%edx               
  10bdc0:	52                   	push   %edx                           
  10bdc1:	50                   	push   %eax                           
  10bdc2:	8d 45 a0             	lea    -0x60(%ebp),%eax               
  10bdc5:	50                   	push   %eax                           
  10bdc6:	e8 35 34 00 00       	call   10f200 <_Timespec_Divide_by_integer>
      (*print)( context,                                              
  10bdcb:	b9 d3 4d 62 10       	mov    $0x10624dd3,%ecx               
  10bdd0:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10bdd3:	f7 e9                	imul   %ecx                           
  10bdd5:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10bddb:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10bde1:	c1 f8 06             	sar    $0x6,%eax                      
  10bde4:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10bde7:	c1 fa 1f             	sar    $0x1f,%edx                     
  10bdea:	29 d0                	sub    %edx,%eax                      
  10bdec:	50                   	push   %eax                           
  10bded:	ff 75 d8             	pushl  -0x28(%ebp)                    
  10bdf0:	8b 45 9c             	mov    -0x64(%ebp),%eax               
  10bdf3:	f7 e9                	imul   %ecx                           
  10bdf5:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10bdfb:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10be01:	c1 f8 06             	sar    $0x6,%eax                      
  10be04:	8b 55 9c             	mov    -0x64(%ebp),%edx               
  10be07:	c1 fa 1f             	sar    $0x1f,%edx                     
  10be0a:	29 d0                	sub    %edx,%eax                      
  10be0c:	50                   	push   %eax                           
  10be0d:	ff 75 98             	pushl  -0x68(%ebp)                    
  10be10:	8b 45 94             	mov    -0x6c(%ebp),%eax               
  10be13:	f7 e9                	imul   %ecx                           
  10be15:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)               
  10be1b:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10be21:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10be27:	c1 f8 06             	sar    $0x6,%eax                      
  10be2a:	8b 55 94             	mov    -0x6c(%ebp),%edx               
  10be2d:	c1 fa 1f             	sar    $0x1f,%edx                     
  10be30:	29 d0                	sub    %edx,%eax                      
  10be32:	50                   	push   %eax                           
  10be33:	ff 75 90             	pushl  -0x70(%ebp)                    
  10be36:	68 e8 38 12 00       	push   $0x1238e8                      
  10be3b:	56                   	push   %esi                           
  10be3c:	89 4d 84             	mov    %ecx,-0x7c(%ebp)               
  10be3f:	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);
  10be42:	83 c4 2c             	add    $0x2c,%esp                     
  10be45:	8d 55 d8             	lea    -0x28(%ebp),%edx               
  10be48:	52                   	push   %edx                           
  10be49:	ff 75 88             	pushl  -0x78(%ebp)                    
  10be4c:	8d 45 b8             	lea    -0x48(%ebp),%eax               
  10be4f:	50                   	push   %eax                           
  10be50:	e8 ab 33 00 00       	call   10f200 <_Timespec_Divide_by_integer>
      (*print)( context,                                              
  10be55:	8b 4d 84             	mov    -0x7c(%ebp),%ecx               
  10be58:	8b 45 dc             	mov    -0x24(%ebp),%eax               
  10be5b:	f7 e9                	imul   %ecx                           
  10be5d:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10be63:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10be69:	c1 f8 06             	sar    $0x6,%eax                      
  10be6c:	8b 55 dc             	mov    -0x24(%ebp),%edx               
  10be6f:	c1 fa 1f             	sar    $0x1f,%edx                     
  10be72:	29 d0                	sub    %edx,%eax                      
  10be74:	50                   	push   %eax                           
  10be75:	ff 75 d8             	pushl  -0x28(%ebp)                    
  10be78:	8b 45 b4             	mov    -0x4c(%ebp),%eax               
  10be7b:	f7 e9                	imul   %ecx                           
  10be7d:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10be83:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10be89:	c1 f8 06             	sar    $0x6,%eax                      
  10be8c:	8b 55 b4             	mov    -0x4c(%ebp),%edx               
  10be8f:	c1 fa 1f             	sar    $0x1f,%edx                     
  10be92:	29 d0                	sub    %edx,%eax                      
  10be94:	50                   	push   %eax                           
  10be95:	ff 75 b0             	pushl  -0x50(%ebp)                    
  10be98:	8b 45 ac             	mov    -0x54(%ebp),%eax               
  10be9b:	f7 e9                	imul   %ecx                           
  10be9d:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)               
  10bea3:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)               
  10bea9:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax               
  10beaf:	c1 f8 06             	sar    $0x6,%eax                      
  10beb2:	8b 55 ac             	mov    -0x54(%ebp),%edx               
  10beb5:	c1 fa 1f             	sar    $0x1f,%edx                     
  10beb8:	29 d0                	sub    %edx,%eax                      
  10beba:	50                   	push   %eax                           
  10bebb:	ff 75 a8             	pushl  -0x58(%ebp)                    
  10bebe:	68 08 39 12 00       	push   $0x123908                      
  10bec3:	56                   	push   %esi                           
  10bec4:	ff 55 0c             	call   *0xc(%ebp)                     
  10bec7:	83 c4 30             	add    $0x30,%esp                     
  10beca:	e9 75 fe ff ff       	jmp    10bd44 <rtems_rate_monotonic_report_statistics_with_plugin+0x68>
                                                                      

0010bee8 <rtems_rate_monotonic_reset_all_statistics>: /* * rtems_rate_monotonic_reset_all_statistics */ void rtems_rate_monotonic_reset_all_statistics( void ) {
  10bee8:	55                   	push   %ebp                           
  10bee9:	89 e5                	mov    %esp,%ebp                      
  10beeb:	53                   	push   %ebx                           
  10beec:	83 ec 04             	sub    $0x4,%esp                      
  10beef:	a1 6c ab 12 00       	mov    0x12ab6c,%eax                  
  10bef4:	40                   	inc    %eax                           
  10bef5:	a3 6c ab 12 00       	mov    %eax,0x12ab6c                  
                                                                      
    /*                                                                
     * 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 ;                 
  10befa:	8b 1d 88 aa 12 00    	mov    0x12aa88,%ebx                  
  10bf00:	3b 1d 8c aa 12 00    	cmp    0x12aa8c,%ebx                  
  10bf06:	77 15                	ja     10bf1d <rtems_rate_monotonic_reset_all_statistics+0x35><== NEVER TAKEN
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
      (void) rtems_rate_monotonic_reset_statistics( id );             
  10bf08:	83 ec 0c             	sub    $0xc,%esp                      
  10bf0b:	53                   	push   %ebx                           
  10bf0c:	e8 17 00 00 00       	call   10bf28 <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++ ) {                                                    
  10bf11:	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 ;                 
  10bf12:	83 c4 10             	add    $0x10,%esp                     
  10bf15:	39 1d 8c aa 12 00    	cmp    %ebx,0x12aa8c                  
  10bf1b:	73 eb                	jae    10bf08 <rtems_rate_monotonic_reset_all_statistics+0x20>
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
}                                                                     
  10bf1d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bf20:	c9                   	leave                                 
    }                                                                 
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
  10bf21:	e9 46 28 00 00       	jmp    10e76c <_Thread_Enable_dispatch>
                                                                      

0010bf28 <rtems_rate_monotonic_reset_statistics>: */ rtems_status_code rtems_rate_monotonic_reset_statistics( rtems_id id ) {
  10bf28:	55                   	push   %ebp                           
  10bf29:	89 e5                	mov    %esp,%ebp                      
  10bf2b:	57                   	push   %edi                           
  10bf2c:	53                   	push   %ebx                           
  10bf2d:	83 ec 14             	sub    $0x14,%esp                     
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  10bf30:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bf33:	50                   	push   %eax                           
  10bf34:	ff 75 08             	pushl  0x8(%ebp)                      
  10bf37:	68 80 aa 12 00       	push   $0x12aa80                      
  10bf3c:	e8 a3 1c 00 00       	call   10dbe4 <_Objects_Get>          
  10bf41:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10bf43:	83 c4 10             	add    $0x10,%esp                     
  10bf46:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10bf49:	85 c0                	test   %eax,%eax                      
  10bf4b:	75 3b                	jne    10bf88 <rtems_rate_monotonic_reset_statistics+0x60>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Rate_monotonic_Reset_statistics( the_period );                 
  10bf4d:	8d 5a 54             	lea    0x54(%edx),%ebx                
  10bf50:	b9 38 00 00 00       	mov    $0x38,%ecx                     
  10bf55:	31 c0                	xor    %eax,%eax                      
  10bf57:	89 df                	mov    %ebx,%edi                      
  10bf59:	f3 aa                	rep stos %al,%es:(%edi)               
  10bf5b:	c7 42 5c ff ff ff 7f 	movl   $0x7fffffff,0x5c(%edx)         
  10bf62:	c7 42 60 ff ff ff 7f 	movl   $0x7fffffff,0x60(%edx)         
  10bf69:	c7 42 74 ff ff ff 7f 	movl   $0x7fffffff,0x74(%edx)         
  10bf70:	c7 42 78 ff ff ff 7f 	movl   $0x7fffffff,0x78(%edx)         
      _Thread_Enable_dispatch();                                      
  10bf77:	e8 f0 27 00 00       	call   10e76c <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10bf7c:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bf7e:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bf81:	5b                   	pop    %ebx                           
  10bf82:	5f                   	pop    %edi                           
  10bf83:	c9                   	leave                                 
  10bf84:	c3                   	ret                                   
  10bf85:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10bf88:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bf8d:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bf90:	5b                   	pop    %ebx                           
  10bf91:	5f                   	pop    %edi                           
  10bf92:	c9                   	leave                                 
  10bf93:	c3                   	ret                                   
                                                                      

00116874 <rtems_region_create>: uintptr_t length, uintptr_t page_size, rtems_attribute attribute_set, rtems_id *id ) {
  116874:	55                   	push   %ebp                           
  116875:	89 e5                	mov    %esp,%ebp                      
  116877:	57                   	push   %edi                           
  116878:	56                   	push   %esi                           
  116879:	53                   	push   %ebx                           
  11687a:	83 ec 1c             	sub    $0x1c,%esp                     
  11687d:	8b 7d 08             	mov    0x8(%ebp),%edi                 
  116880:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  116883:	85 ff                	test   %edi,%edi                      
  116885:	0f 84 c1 00 00 00    	je     11694c <rtems_region_create+0xd8>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
  11688b:	85 f6                	test   %esi,%esi                      
  11688d:	0f 84 e1 00 00 00    	je     116974 <rtems_region_create+0x100>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
  116893:	8b 45 1c             	mov    0x1c(%ebp),%eax                
  116896:	85 c0                	test   %eax,%eax                      
  116898:	0f 84 d6 00 00 00    	je     116974 <rtems_region_create+0x100>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
  11689e:	83 ec 0c             	sub    $0xc,%esp                      
  1168a1:	ff 35 60 21 14 00    	pushl  0x142160                       
  1168a7:	e8 08 25 00 00       	call   118db4 <_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 );
  1168ac:	c7 04 24 c0 1f 14 00 	movl   $0x141fc0,(%esp)               
  1168b3:	e8 54 3b 00 00       	call   11a40c <_Objects_Allocate>     
  1168b8:	89 c3                	mov    %eax,%ebx                      
                                                                      
    the_region = _Region_Allocate();                                  
                                                                      
    if ( !the_region )                                                
  1168ba:	83 c4 10             	add    $0x10,%esp                     
  1168bd:	85 c0                	test   %eax,%eax                      
  1168bf:	0f 84 bf 00 00 00    	je     116984 <rtems_region_create+0x110>
      return_status = RTEMS_TOO_MANY;                                 
                                                                      
    else {                                                            
                                                                      
      the_region->maximum_segment_size = _Heap_Initialize(            
  1168c5:	ff 75 14             	pushl  0x14(%ebp)                     
  1168c8:	ff 75 10             	pushl  0x10(%ebp)                     
  1168cb:	56                   	push   %esi                           
  1168cc:	8d 40 68             	lea    0x68(%eax),%eax                
  1168cf:	50                   	push   %eax                           
  1168d0:	e8 43 37 00 00       	call   11a018 <_Heap_Initialize>      
  1168d5:	89 43 5c             	mov    %eax,0x5c(%ebx)                
        &the_region->Memory, starting_address, length, page_size      
      );                                                              
                                                                      
      if ( !the_region->maximum_segment_size ) {                      
  1168d8:	83 c4 10             	add    $0x10,%esp                     
  1168db:	85 c0                	test   %eax,%eax                      
  1168dd:	74 7d                	je     11695c <rtems_region_create+0xe8>
        return_status = RTEMS_INVALID_SIZE;                           
      }                                                               
                                                                      
      else {                                                          
                                                                      
        the_region->starting_address      = starting_address;         
  1168df:	89 73 50             	mov    %esi,0x50(%ebx)                
        the_region->length                = length;                   
  1168e2:	8b 45 10             	mov    0x10(%ebp),%eax                
  1168e5:	89 43 54             	mov    %eax,0x54(%ebx)                
        the_region->page_size             = page_size;                
  1168e8:	8b 55 14             	mov    0x14(%ebp),%edx                
  1168eb:	89 53 58             	mov    %edx,0x58(%ebx)                
        the_region->attribute_set         = attribute_set;            
  1168ee:	8b 45 18             	mov    0x18(%ebp),%eax                
  1168f1:	89 43 60             	mov    %eax,0x60(%ebx)                
        the_region->number_of_used_blocks = 0;                        
  1168f4:	c7 43 64 00 00 00 00 	movl   $0x0,0x64(%ebx)                
                                                                      
        _Thread_queue_Initialize(                                     
  1168fb:	6a 06                	push   $0x6                           
  1168fd:	6a 40                	push   $0x40                          
  1168ff:	a8 04                	test   $0x4,%al                       
  116901:	0f 95 c0             	setne  %al                            
  116904:	0f b6 c0             	movzbl %al,%eax                       
  116907:	50                   	push   %eax                           
  116908:	8d 43 10             	lea    0x10(%ebx),%eax                
  11690b:	50                   	push   %eax                           
  11690c:	e8 83 52 00 00       	call   11bb94 <_Thread_queue_Initialize>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  116911:	8b 43 08             	mov    0x8(%ebx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  116914:	0f b7 c8             	movzwl %ax,%ecx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  116917:	8b 15 dc 1f 14 00    	mov    0x141fdc,%edx                  
  11691d:	89 1c 8a             	mov    %ebx,(%edx,%ecx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  116920:	89 7b 0c             	mov    %edi,0xc(%ebx)                 
          &_Region_Information,                                       
          &the_region->Object,                                        
          (Objects_Name) name                                         
        );                                                            
                                                                      
        *id = the_region->Object.id;                                  
  116923:	8b 55 1c             	mov    0x1c(%ebp),%edx                
  116926:	89 02                	mov    %eax,(%edx)                    
  116928:	83 c4 10             	add    $0x10,%esp                     
        return_status = RTEMS_SUCCESSFUL;                             
  11692b:	31 c0                	xor    %eax,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  11692d:	83 ec 0c             	sub    $0xc,%esp                      
  116930:	ff 35 60 21 14 00    	pushl  0x142160                       
  116936:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  116939:	e8 be 24 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  11693e:	83 c4 10             	add    $0x10,%esp                     
  116941:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
}                                                                     
  116944:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116947:	5b                   	pop    %ebx                           
  116948:	5e                   	pop    %esi                           
  116949:	5f                   	pop    %edi                           
  11694a:	c9                   	leave                                 
  11694b:	c3                   	ret                                   
{                                                                     
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  11694c:	b8 03 00 00 00       	mov    $0x3,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116951:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116954:	5b                   	pop    %ebx                           
  116955:	5e                   	pop    %esi                           
  116956:	5f                   	pop    %edi                           
  116957:	c9                   	leave                                 
  116958:	c3                   	ret                                   
  116959:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Region_Free (                              
  Region_Control *the_region                                          
)                                                                     
{                                                                     
  _Objects_Free( &_Region_Information, &the_region->Object );         
  11695c:	83 ec 08             	sub    $0x8,%esp                      
  11695f:	53                   	push   %ebx                           
  116960:	68 c0 1f 14 00       	push   $0x141fc0                      
  116965:	e8 16 3e 00 00       	call   11a780 <_Objects_Free>         
  11696a:	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;                           
  11696d:	b8 08 00 00 00       	mov    $0x8,%eax                      
  116972:	eb b9                	jmp    11692d <rtems_region_create+0xb9>
                                                                      
  if ( !starting_address )                                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  116974:	b8 09 00 00 00       	mov    $0x9,%eax                      
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116979:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11697c:	5b                   	pop    %ebx                           
  11697d:	5e                   	pop    %esi                           
  11697e:	5f                   	pop    %edi                           
  11697f:	c9                   	leave                                 
  116980:	c3                   	ret                                   
  116981:	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;                                 
  116984:	b8 05 00 00 00       	mov    $0x5,%eax                      
  116989:	eb a2                	jmp    11692d <rtems_region_create+0xb9>
                                                                      

0011698c <rtems_region_delete>: */ rtems_status_code rtems_region_delete( rtems_id id ) {
  11698c:	55                   	push   %ebp                           
  11698d:	89 e5                	mov    %esp,%ebp                      
  11698f:	53                   	push   %ebx                           
  116990:	83 ec 30             	sub    $0x30,%esp                     
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  116993:	ff 35 60 21 14 00    	pushl  0x142160                       
  116999:	e8 16 24 00 00       	call   118db4 <_API_Mutex_Lock>       
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    _Objects_Get_no_protection( &_Region_Information, id, location ); 
  11699e:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  1169a1:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1169a4:	50                   	push   %eax                           
  1169a5:	ff 75 08             	pushl  0x8(%ebp)                      
  1169a8:	68 c0 1f 14 00       	push   $0x141fc0                      
  1169ad:	e8 0e 3f 00 00       	call   11a8c0 <_Objects_Get_no_protection>
    switch ( location ) {                                             
  1169b2:	83 c4 10             	add    $0x10,%esp                     
  1169b5:	8b 5d f4             	mov    -0xc(%ebp),%ebx                
  1169b8:	85 db                	test   %ebx,%ebx                      
  1169ba:	74 1c                	je     1169d8 <rtems_region_delete+0x4c>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  1169bc:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  1169c1:	83 ec 0c             	sub    $0xc,%esp                      
  1169c4:	ff 35 60 21 14 00    	pushl  0x142160                       
  1169ca:	e8 2d 24 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
}                                                                     
  1169cf:	89 d8                	mov    %ebx,%eax                      
  1169d1:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1169d4:	c9                   	leave                                 
  1169d5:	c3                   	ret                                   
  1169d6:	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 )                 
  1169d8:	8b 48 64             	mov    0x64(%eax),%ecx                
  1169db:	85 c9                	test   %ecx,%ecx                      
  1169dd:	74 09                	je     1169e8 <rtems_region_delete+0x5c>
          return_status = RTEMS_RESOURCE_IN_USE;                      
  1169df:	bb 0c 00 00 00       	mov    $0xc,%ebx                      
  1169e4:	eb db                	jmp    1169c1 <rtems_region_delete+0x35>
  1169e6:	66 90                	xchg   %ax,%ax                        
        else {                                                        
          _Objects_Close( &_Region_Information, &the_region->Object );
  1169e8:	83 ec 08             	sub    $0x8,%esp                      
  1169eb:	50                   	push   %eax                           
  1169ec:	68 c0 1f 14 00       	push   $0x141fc0                      
  1169f1:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  1169f4:	e8 8f 3a 00 00       	call   11a488 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Region_Free (                              
  Region_Control *the_region                                          
)                                                                     
{                                                                     
  _Objects_Free( &_Region_Information, &the_region->Object );         
  1169f9:	58                   	pop    %eax                           
  1169fa:	5a                   	pop    %edx                           
  1169fb:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1169fe:	50                   	push   %eax                           
  1169ff:	68 c0 1f 14 00       	push   $0x141fc0                      
  116a04:	e8 77 3d 00 00       	call   11a780 <_Objects_Free>         
  116a09:	83 c4 10             	add    $0x10,%esp                     
          _Region_Free( the_region );                                 
          return_status = RTEMS_SUCCESSFUL;                           
  116a0c:	31 db                	xor    %ebx,%ebx                      
  116a0e:	eb b1                	jmp    1169c1 <rtems_region_delete+0x35>
                                                                      

00116a10 <rtems_region_extend>: rtems_status_code rtems_region_extend( rtems_id id, void *starting_address, uintptr_t length ) {
  116a10:	55                   	push   %ebp                           
  116a11:	89 e5                	mov    %esp,%ebp                      
  116a13:	56                   	push   %esi                           
  116a14:	53                   	push   %ebx                           
  116a15:	83 ec 10             	sub    $0x10,%esp                     
  116a18:	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 )                                            
  116a1b:	85 db                	test   %ebx,%ebx                      
  116a1d:	74 75                	je     116a94 <rtems_region_extend+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
  116a1f:	83 ec 0c             	sub    $0xc,%esp                      
  116a22:	ff 35 60 21 14 00    	pushl  0x142160                       
  116a28:	e8 87 23 00 00       	call   118db4 <_API_Mutex_Lock>       
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    _Objects_Get_no_protection( &_Region_Information, id, location ); 
  116a2d:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  116a30:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  116a33:	50                   	push   %eax                           
  116a34:	ff 75 08             	pushl  0x8(%ebp)                      
  116a37:	68 c0 1f 14 00       	push   $0x141fc0                      
  116a3c:	e8 7f 3e 00 00       	call   11a8c0 <_Objects_Get_no_protection>
  116a41:	89 c6                	mov    %eax,%esi                      
    switch ( location ) {                                             
  116a43:	83 c4 10             	add    $0x10,%esp                     
  116a46:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  116a49:	85 c0                	test   %eax,%eax                      
  116a4b:	74 1f                	je     116a6c <rtems_region_extend+0x5c>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  116a4d:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  116a52:	83 ec 0c             	sub    $0xc,%esp                      
  116a55:	ff 35 60 21 14 00    	pushl  0x142160                       
  116a5b:	e8 9c 23 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  116a60:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  116a63:	89 d8                	mov    %ebx,%eax                      
  116a65:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116a68:	5b                   	pop    %ebx                           
  116a69:	5e                   	pop    %esi                           
  116a6a:	c9                   	leave                                 
  116a6b:	c3                   	ret                                   
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        extend_ok = _Heap_Extend(                                     
  116a6c:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  116a6f:	50                   	push   %eax                           
  116a70:	ff 75 10             	pushl  0x10(%ebp)                     
  116a73:	53                   	push   %ebx                           
  116a74:	8d 46 68             	lea    0x68(%esi),%eax                
  116a77:	50                   	push   %eax                           
  116a78:	e8 7b 2f 00 00       	call   1199f8 <_Heap_Extend>          
          starting_address,                                           
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
  116a7d:	83 c4 10             	add    $0x10,%esp                     
  116a80:	84 c0                	test   %al,%al                        
  116a82:	74 20                	je     116aa4 <rtems_region_extend+0x94>
          the_region->length                += amount_extended;       
  116a84:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116a87:	01 46 54             	add    %eax,0x54(%esi)                
          the_region->maximum_segment_size  += amount_extended;       
  116a8a:	01 46 5c             	add    %eax,0x5c(%esi)                
          return_status = RTEMS_SUCCESSFUL;                           
  116a8d:	31 db                	xor    %ebx,%ebx                      
  116a8f:	eb c1                	jmp    116a52 <rtems_region_extend+0x42>
  116a91:	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;                                     
  116a94:	bb 09 00 00 00       	mov    $0x9,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116a99:	89 d8                	mov    %ebx,%eax                      
  116a9b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116a9e:	5b                   	pop    %ebx                           
  116a9f:	5e                   	pop    %esi                           
  116aa0:	c9                   	leave                                 
  116aa1:	c3                   	ret                                   
  116aa2:	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;                      
  116aa4:	bb 09 00 00 00       	mov    $0x9,%ebx                      
  116aa9:	eb a7                	jmp    116a52 <rtems_region_extend+0x42>
                                                                      

00116aac <rtems_region_get_free_information>: rtems_status_code rtems_region_get_free_information( rtems_id id, Heap_Information_block *the_info ) {
  116aac:	55                   	push   %ebp                           
  116aad:	89 e5                	mov    %esp,%ebp                      
  116aaf:	53                   	push   %ebx                           
  116ab0:	83 ec 14             	sub    $0x14,%esp                     
  116ab3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
  116ab6:	85 db                	test   %ebx,%ebx                      
  116ab8:	74 76                	je     116b30 <rtems_region_get_free_information+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  116aba:	83 ec 0c             	sub    $0xc,%esp                      
  116abd:	ff 35 60 21 14 00    	pushl  0x142160                       
  116ac3:	e8 ec 22 00 00       	call   118db4 <_API_Mutex_Lock>       
  116ac8:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  116acb:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  116ace:	50                   	push   %eax                           
  116acf:	ff 75 08             	pushl  0x8(%ebp)                      
  116ad2:	68 c0 1f 14 00       	push   $0x141fc0                      
  116ad7:	e8 e4 3d 00 00       	call   11a8c0 <_Objects_Get_no_protection>
    switch ( location ) {                                             
  116adc:	83 c4 10             	add    $0x10,%esp                     
  116adf:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  116ae2:	85 d2                	test   %edx,%edx                      
  116ae4:	74 1e                	je     116b04 <rtems_region_get_free_information+0x58>
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  116ae6:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  116aeb:	83 ec 0c             	sub    $0xc,%esp                      
  116aee:	ff 35 60 21 14 00    	pushl  0x142160                       
  116af4:	e8 03 23 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  116af9:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  116afc:	89 d8                	mov    %ebx,%eax                      
  116afe:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116b01:	c9                   	leave                                 
  116b02:	c3                   	ret                                   
  116b03:	90                   	nop                                   
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        the_info->Used.number   = 0;                                  
  116b04:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)                 
        the_info->Used.total    = 0;                                  
  116b0b:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)                
        the_info->Used.largest  = 0;                                  
  116b12:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)                
                                                                      
        _Heap_Get_free_information( &the_region->Memory, &the_info->Free );
  116b19:	83 ec 08             	sub    $0x8,%esp                      
  116b1c:	53                   	push   %ebx                           
  116b1d:	83 c0 68             	add    $0x68,%eax                     
  116b20:	50                   	push   %eax                           
  116b21:	e8 ce 32 00 00       	call   119df4 <_Heap_Get_free_information>
                                                                      
        return_status = RTEMS_SUCCESSFUL;                             
        break;                                                        
  116b26:	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;                             
  116b29:	31 db                	xor    %ebx,%ebx                      
        break;                                                        
  116b2b:	eb be                	jmp    116aeb <rtems_region_get_free_information+0x3f>
  116b2d:	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;                                     
  116b30:	bb 09 00 00 00       	mov    $0x9,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116b35:	89 d8                	mov    %ebx,%eax                      
  116b37:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116b3a:	c9                   	leave                                 
  116b3b:	c3                   	ret                                   
                                                                      

00116bb4 <rtems_region_get_segment>: uintptr_t size, rtems_option option_set, rtems_interval timeout, void **segment ) {
  116bb4:	55                   	push   %ebp                           
  116bb5:	89 e5                	mov    %esp,%ebp                      
  116bb7:	57                   	push   %edi                           
  116bb8:	56                   	push   %esi                           
  116bb9:	53                   	push   %ebx                           
  116bba:	83 ec 2c             	sub    $0x2c,%esp                     
  116bbd:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  116bc0:	8b 5d 18             	mov    0x18(%ebp),%ebx                
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
  void               *the_segment;                                    
                                                                      
  if ( !segment )                                                     
  116bc3:	85 db                	test   %ebx,%ebx                      
  116bc5:	0f 84 a1 00 00 00    	je     116c6c <rtems_region_get_segment+0xb8>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  *segment = NULL;                                                    
  116bcb:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)                    
                                                                      
  if ( size == 0 )                                                    
  116bd1:	85 f6                	test   %esi,%esi                      
  116bd3:	75 0f                	jne    116be4 <rtems_region_get_segment+0x30>
    return RTEMS_INVALID_SIZE;                                        
  116bd5:	b8 08 00 00 00       	mov    $0x8,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116bda:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116bdd:	5b                   	pop    %ebx                           
  116bde:	5e                   	pop    %esi                           
  116bdf:	5f                   	pop    %edi                           
  116be0:	c9                   	leave                                 
  116be1:	c3                   	ret                                   
  116be2:	66 90                	xchg   %ax,%ax                        
  *segment = NULL;                                                    
                                                                      
  if ( size == 0 )                                                    
    return RTEMS_INVALID_SIZE;                                        
                                                                      
  _RTEMS_Lock_allocator();                                            
  116be4:	83 ec 0c             	sub    $0xc,%esp                      
  116be7:	ff 35 60 21 14 00    	pushl  0x142160                       
  116bed:	e8 c2 21 00 00       	call   118db4 <_API_Mutex_Lock>       
                                                                      
    executing  = _Thread_Executing;                                   
  116bf2:	a1 58 26 14 00       	mov    0x142658,%eax                  
  116bf7:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  116bfa:	83 c4 0c             	add    $0xc,%esp                      
    the_region = _Region_Get( id, &location );                        
  116bfd:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  116c00:	50                   	push   %eax                           
  116c01:	ff 75 08             	pushl  0x8(%ebp)                      
  116c04:	68 c0 1f 14 00       	push   $0x141fc0                      
  116c09:	e8 b2 3c 00 00       	call   11a8c0 <_Objects_Get_no_protection>
  116c0e:	89 c7                	mov    %eax,%edi                      
    switch ( location ) {                                             
  116c10:	83 c4 10             	add    $0x10,%esp                     
  116c13:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  116c16:	85 c0                	test   %eax,%eax                      
  116c18:	75 2a                	jne    116c44 <rtems_region_get_segment+0x90>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( size > the_region->maximum_segment_size )                
  116c1a:	3b 77 5c             	cmp    0x5c(%edi),%esi                
  116c1d:	76 2d                	jbe    116c4c <rtems_region_get_segment+0x98>
          return_status = RTEMS_INVALID_SIZE;                         
  116c1f:	b8 08 00 00 00       	mov    $0x8,%eax                      
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  116c24:	83 ec 0c             	sub    $0xc,%esp                      
  116c27:	ff 35 60 21 14 00    	pushl  0x142160                       
  116c2d:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  116c30:	e8 c7 21 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  116c35:	83 c4 10             	add    $0x10,%esp                     
  116c38:	8b 45 d0             	mov    -0x30(%ebp),%eax               
}                                                                     
  116c3b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  116c3e:	5b                   	pop    %ebx                           
  116c3f:	5e                   	pop    %esi                           
  116c40:	5f                   	pop    %edi                           
  116c41:	c9                   	leave                                 
  116c42:	c3                   	ret                                   
  116c43:	90                   	nop                                   
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  116c44:	b8 04 00 00 00       	mov    $0x4,%eax                      
  116c49:	eb d9                	jmp    116c24 <rtems_region_get_segment+0x70>
  116c4b:	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 );    
  116c4c:	6a 00                	push   $0x0                           
  116c4e:	6a 00                	push   $0x0                           
  116c50:	56                   	push   %esi                           
RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment (                 
  Region_Control *the_region,                                         
  uintptr_t       size                                                
)                                                                     
{                                                                     
  return _Heap_Allocate( &the_region->Memory, size );                 
  116c51:	8d 47 68             	lea    0x68(%edi),%eax                
  116c54:	50                   	push   %eax                           
  116c55:	e8 ca 2b 00 00       	call   119824 <_Heap_Allocate_aligned_with_boundary>
                                                                      
          the_segment = _Region_Allocate_segment( the_region, size ); 
                                                                      
          _Region_Debug_Walk( the_region, 2 );                        
                                                                      
          if ( the_segment ) {                                        
  116c5a:	83 c4 10             	add    $0x10,%esp                     
  116c5d:	85 c0                	test   %eax,%eax                      
  116c5f:	74 17                	je     116c78 <rtems_region_get_segment+0xc4>
            the_region->number_of_used_blocks += 1;                   
  116c61:	ff 47 64             	incl   0x64(%edi)                     
            *segment = the_segment;                                   
  116c64:	89 03                	mov    %eax,(%ebx)                    
            return_status = RTEMS_SUCCESSFUL;                         
  116c66:	31 c0                	xor    %eax,%eax                      
  116c68:	eb ba                	jmp    116c24 <rtems_region_get_segment+0x70>
  116c6a:	66 90                	xchg   %ax,%ax                        
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
  void               *the_segment;                                    
                                                                      
  if ( !segment )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  116c6c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  116c71:	e9 64 ff ff ff       	jmp    116bda <rtems_region_get_segment+0x26>
  116c76:	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 ) ) {           
  116c78:	f6 45 10 01          	testb  $0x1,0x10(%ebp)                
  116c7c:	74 07                	je     116c85 <rtems_region_get_segment+0xd1>
            return_status = RTEMS_UNSATISFIED;                        
  116c7e:	b8 0d 00 00 00       	mov    $0xd,%eax                      
  116c83:	eb 9f                	jmp    116c24 <rtems_region_get_segment+0x70>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  116c85:	a1 ac 20 14 00       	mov    0x1420ac,%eax                  
  116c8a:	40                   	inc    %eax                           
  116c8b:	a3 ac 20 14 00       	mov    %eax,0x1420ac                  
             *  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();                                
  116c90:	83 ec 0c             	sub    $0xc,%esp                      
  116c93:	ff 35 60 21 14 00    	pushl  0x142160                       
  116c99:	e8 5e 21 00 00       	call   118dfc <_API_Mutex_Unlock>     
                                                                      
            executing->Wait.queue           = &the_region->Wait_queue;
  116c9e:	8d 47 10             	lea    0x10(%edi),%eax                
  116ca1:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  116ca4:	89 42 44             	mov    %eax,0x44(%edx)                
            executing->Wait.id              = id;                     
  116ca7:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  116caa:	89 4a 20             	mov    %ecx,0x20(%edx)                
            executing->Wait.count           = size;                   
  116cad:	89 72 24             	mov    %esi,0x24(%edx)                
            executing->Wait.return_argument = segment;                
  116cb0:	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;
  116cb3:	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 );
  116cba:	83 c4 0c             	add    $0xc,%esp                      
  116cbd:	68 58 bc 11 00       	push   $0x11bc58                      
  116cc2:	ff 75 14             	pushl  0x14(%ebp)                     
  116cc5:	50                   	push   %eax                           
  116cc6:	e8 61 4c 00 00       	call   11b92c <_Thread_queue_Enqueue_with_handler>
                                                                      
            _Thread_Enable_dispatch();                                
  116ccb:	e8 b4 47 00 00       	call   11b484 <_Thread_Enable_dispatch>
                                                                      
            return (rtems_status_code) executing->Wait.return_code;   
  116cd0:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  116cd3:	8b 42 34             	mov    0x34(%edx),%eax                
  116cd6:	83 c4 10             	add    $0x10,%esp                     
  116cd9:	e9 fc fe ff ff       	jmp    116bda <rtems_region_get_segment+0x26>
                                                                      

00116d94 <rtems_region_resize_segment>: rtems_id id, void *segment, uintptr_t size, uintptr_t *old_size ) {
  116d94:	55                   	push   %ebp                           
  116d95:	89 e5                	mov    %esp,%ebp                      
  116d97:	56                   	push   %esi                           
  116d98:	53                   	push   %ebx                           
  116d99:	83 ec 20             	sub    $0x20,%esp                     
  116d9c:	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 )                                                    
  116d9f:	85 db                	test   %ebx,%ebx                      
  116da1:	0f 84 89 00 00 00    	je     116e30 <rtems_region_resize_segment+0x9c>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
  116da7:	83 ec 0c             	sub    $0xc,%esp                      
  116daa:	ff 35 60 21 14 00    	pushl  0x142160                       
  116db0:	e8 ff 1f 00 00       	call   118db4 <_API_Mutex_Lock>       
  116db5:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  116db8:	8d 45 f0             	lea    -0x10(%ebp),%eax               
  116dbb:	50                   	push   %eax                           
  116dbc:	ff 75 08             	pushl  0x8(%ebp)                      
  116dbf:	68 c0 1f 14 00       	push   $0x141fc0                      
  116dc4:	e8 f7 3a 00 00       	call   11a8c0 <_Objects_Get_no_protection>
  116dc9:	89 c6                	mov    %eax,%esi                      
    switch ( location ) {                                             
  116dcb:	83 c4 10             	add    $0x10,%esp                     
  116dce:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  116dd1:	85 c0                	test   %eax,%eax                      
  116dd3:	74 1f                	je     116df4 <rtems_region_resize_segment+0x60>
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  116dd5:	83 ec 0c             	sub    $0xc,%esp                      
  116dd8:	ff 35 60 21 14 00    	pushl  0x142160                       
  116dde:	e8 19 20 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  116de3:	83 c4 10             	add    $0x10,%esp                     
  116de6:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  116deb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116dee:	5b                   	pop    %ebx                           
  116def:	5e                   	pop    %esi                           
  116df0:	c9                   	leave                                 
  116df1:	c3                   	ret                                   
  116df2:	66 90                	xchg   %ax,%ax                        
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        _Region_Debug_Walk( the_region, 7 );                          
                                                                      
        status = _Heap_Resize_block(                                  
  116df4:	83 ec 0c             	sub    $0xc,%esp                      
  116df7:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  116dfa:	50                   	push   %eax                           
  116dfb:	8d 45 ec             	lea    -0x14(%ebp),%eax               
  116dfe:	50                   	push   %eax                           
  116dff:	ff 75 10             	pushl  0x10(%ebp)                     
  116e02:	ff 75 0c             	pushl  0xc(%ebp)                      
  116e05:	8d 46 68             	lea    0x68(%esi),%eax                
  116e08:	50                   	push   %eax                           
  116e09:	e8 12 34 00 00       	call   11a220 <_Heap_Resize_block>    
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
  116e0e:	8b 55 ec             	mov    -0x14(%ebp),%edx               
  116e11:	89 13                	mov    %edx,(%ebx)                    
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
  116e13:	83 c4 20             	add    $0x20,%esp                     
  116e16:	85 c0                	test   %eax,%eax                      
  116e18:	75 22                	jne    116e3c <rtems_region_resize_segment+0xa8>
          _Region_Process_queue( the_region );    /* unlocks allocator */
  116e1a:	83 ec 0c             	sub    $0xc,%esp                      
  116e1d:	56                   	push   %esi                           
  116e1e:	e8 7d 7e 00 00       	call   11eca0 <_Region_Process_queue> 
  116e23:	83 c4 10             	add    $0x10,%esp                     
        else                                                          
          _RTEMS_Unlock_allocator();                                  
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
  116e26:	31 c0                	xor    %eax,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116e28:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116e2b:	5b                   	pop    %ebx                           
  116e2c:	5e                   	pop    %esi                           
  116e2d:	c9                   	leave                                 
  116e2e:	c3                   	ret                                   
  116e2f:	90                   	nop                                   
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
  116e30:	b8 09 00 00 00       	mov    $0x9,%eax                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116e35:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116e38:	5b                   	pop    %ebx                           
  116e39:	5e                   	pop    %esi                           
  116e3a:	c9                   	leave                                 
  116e3b:	c3                   	ret                                   
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
          _Region_Process_queue( the_region );    /* unlocks allocator */
        else                                                          
          _RTEMS_Unlock_allocator();                                  
  116e3c:	83 ec 0c             	sub    $0xc,%esp                      
  116e3f:	ff 35 60 21 14 00    	pushl  0x142160                       
  116e45:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  116e48:	e8 af 1f 00 00       	call   118dfc <_API_Mutex_Unlock>     
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
        if (status == HEAP_RESIZE_UNSATISFIED)                        
  116e4d:	83 c4 10             	add    $0x10,%esp                     
          return RTEMS_UNSATISFIED;                                   
  116e50:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  116e53:	48                   	dec    %eax                           
  116e54:	0f 94 c0             	sete   %al                            
  116e57:	0f b6 c0             	movzbl %al,%eax                       
  116e5a:	8d 04 85 09 00 00 00 	lea    0x9(,%eax,4),%eax              
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116e61:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  116e64:	5b                   	pop    %ebx                           
  116e65:	5e                   	pop    %esi                           
  116e66:	c9                   	leave                                 
  116e67:	c3                   	ret                                   
                                                                      

00116e68 <rtems_region_return_segment>: rtems_status_code rtems_region_return_segment( rtems_id id, void *segment ) {
  116e68:	55                   	push   %ebp                           
  116e69:	89 e5                	mov    %esp,%ebp                      
  116e6b:	53                   	push   %ebx                           
  116e6c:	83 ec 20             	sub    $0x20,%esp                     
  uint32_t                 size;                                      
#endif                                                                
  int                      status;                                    
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
  116e6f:	ff 35 60 21 14 00    	pushl  0x142160                       
  116e75:	e8 3a 1f 00 00       	call   118db4 <_API_Mutex_Lock>       
  116e7a:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
    the_region = _Region_Get( id, &location );                        
  116e7d:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  116e80:	50                   	push   %eax                           
  116e81:	ff 75 08             	pushl  0x8(%ebp)                      
  116e84:	68 c0 1f 14 00       	push   $0x141fc0                      
  116e89:	e8 32 3a 00 00       	call   11a8c0 <_Objects_Get_no_protection>
  116e8e:	89 c3                	mov    %eax,%ebx                      
    switch ( location ) {                                             
  116e90:	83 c4 10             	add    $0x10,%esp                     
  116e93:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  116e96:	85 c0                	test   %eax,%eax                      
  116e98:	75 1e                	jne    116eb8 <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 );              
  116e9a:	83 ec 08             	sub    $0x8,%esp                      
  116e9d:	ff 75 0c             	pushl  0xc(%ebp)                      
  116ea0:	8d 43 68             	lea    0x68(%ebx),%eax                
  116ea3:	50                   	push   %eax                           
  116ea4:	e8 e7 2d 00 00       	call   119c90 <_Heap_Free>            
#endif                                                                
          status = _Region_Free_segment( the_region, segment );       
                                                                      
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
  116ea9:	83 c4 10             	add    $0x10,%esp                     
  116eac:	84 c0                	test   %al,%al                        
  116eae:	75 28                	jne    116ed8 <rtems_region_return_segment+0x70>
            return_status = RTEMS_INVALID_ADDRESS;                    
  116eb0:	bb 09 00 00 00       	mov    $0x9,%ebx                      
  116eb5:	eb 06                	jmp    116ebd <rtems_region_return_segment+0x55>
  116eb7:	90                   	nop                                   
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
  116eb8:	bb 04 00 00 00       	mov    $0x4,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  116ebd:	83 ec 0c             	sub    $0xc,%esp                      
  116ec0:	ff 35 60 21 14 00    	pushl  0x142160                       
  116ec6:	e8 31 1f 00 00       	call   118dfc <_API_Mutex_Unlock>     
  return return_status;                                               
  116ecb:	83 c4 10             	add    $0x10,%esp                     
}                                                                     
  116ece:	89 d8                	mov    %ebx,%eax                      
  116ed0:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116ed3:	c9                   	leave                                 
  116ed4:	c3                   	ret                                   
  116ed5:	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;                   
  116ed8:	ff 4b 64             	decl   0x64(%ebx)                     
                                                                      
            _Region_Process_queue(the_region); /* unlocks allocator */
  116edb:	83 ec 0c             	sub    $0xc,%esp                      
  116ede:	53                   	push   %ebx                           
  116edf:	e8 bc 7d 00 00       	call   11eca0 <_Region_Process_queue> 
                                                                      
            return RTEMS_SUCCESSFUL;                                  
  116ee4:	83 c4 10             	add    $0x10,%esp                     
  116ee7:	31 db                	xor    %ebx,%ebx                      
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
  116ee9:	89 d8                	mov    %ebx,%eax                      
  116eeb:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  116eee:	c9                   	leave                                 
  116eef:	c3                   	ret                                   
                                                                      

0010a92c <rtems_semaphore_create>: uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) {
  10a92c:	55                   	push   %ebp                           
  10a92d:	89 e5                	mov    %esp,%ebp                      
  10a92f:	57                   	push   %edi                           
  10a930:	56                   	push   %esi                           
  10a931:	53                   	push   %ebx                           
  10a932:	83 ec 3c             	sub    $0x3c,%esp                     
  10a935:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10a938:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  10a93b:	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 ) )                                 
  10a93e:	85 f6                	test   %esi,%esi                      
  10a940:	74 4a                	je     10a98c <rtems_semaphore_create+0x60>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10a942:	85 ff                	test   %edi,%edi                      
  10a944:	0f 84 f6 00 00 00    	je     10aa40 <rtems_semaphore_create+0x114><== NEVER TAKEN
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  } else                                                              
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
  10a94a:	89 da                	mov    %ebx,%edx                      
  10a94c:	81 e2 c0 00 00 00    	and    $0xc0,%edx                     
  10a952:	74 48                	je     10a99c <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);
  10a954:	89 d8                	mov    %ebx,%eax                      
  10a956:	83 e0 30             	and    $0x30,%eax                     
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
  10a959:	83 f8 10             	cmp    $0x10,%eax                     
  10a95c:	74 0e                	je     10a96c <rtems_semaphore_create+0x40>
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
  10a95e:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10a963:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a966:	5b                   	pop    %ebx                           
  10a967:	5e                   	pop    %esi                           
  10a968:	5f                   	pop    %edi                           
  10a969:	c9                   	leave                                 
  10a96a:	c3                   	ret                                   
  10a96b:	90                   	nop                                   
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
  10a96c:	f6 c3 04             	test   $0x4,%bl                       
  10a96f:	74 ed                	je     10a95e <rtems_semaphore_create+0x32>
            _Attributes_Is_priority( attribute_set ) ) )              
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
  10a971:	81 fa c0 00 00 00    	cmp    $0xc0,%edx                     
  10a977:	74 e5                	je     10a95e <rtems_semaphore_create+0x32>
  10a979:	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 ) )
  10a97e:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)                 
  10a982:	76 1f                	jbe    10a9a3 <rtems_semaphore_create+0x77>
    return RTEMS_INVALID_NUMBER;                                      
  10a984:	b8 0a 00 00 00       	mov    $0xa,%eax                      
  10a989:	eb d8                	jmp    10a963 <rtems_semaphore_create+0x37>
  10a98b:	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;                                        
  10a98c:	b8 03 00 00 00       	mov    $0x3,%eax                      
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10a991:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10a994:	5b                   	pop    %ebx                           
  10a995:	5e                   	pop    %esi                           
  10a996:	5f                   	pop    %edi                           
  10a997:	c9                   	leave                                 
  10a998:	c3                   	ret                                   
  10a999:	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 ) )
  10a99c:	89 d9                	mov    %ebx,%ecx                      
  10a99e:	83 e1 30             	and    $0x30,%ecx                     
  10a9a1:	75 db                	jne    10a97e <rtems_semaphore_create+0x52>
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10a9a3:	a1 ec 77 12 00       	mov    0x1277ec,%eax                  
  10a9a8:	40                   	inc    %eax                           
  10a9a9:	a3 ec 77 12 00       	mov    %eax,0x1277ec                  
 *  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 );
  10a9ae:	83 ec 0c             	sub    $0xc,%esp                      
  10a9b1:	68 40 77 12 00       	push   $0x127740                      
  10a9b6:	89 4d c4             	mov    %ecx,-0x3c(%ebp)               
  10a9b9:	e8 86 13 00 00       	call   10bd44 <_Objects_Allocate>     
  10a9be:	89 c2                	mov    %eax,%edx                      
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
  10a9c0:	83 c4 10             	add    $0x10,%esp                     
  10a9c3:	85 c0                	test   %eax,%eax                      
  10a9c5:	8b 4d c4             	mov    -0x3c(%ebp),%ecx               
  10a9c8:	0f 84 ba 00 00 00    	je     10aa88 <rtems_semaphore_create+0x15c>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_semaphore->attribute_set = attribute_set;                       
  10a9ce:	89 58 10             	mov    %ebx,0x10(%eax)                
                                                                      
  /*                                                                  
   *  Initialize it as a counting semaphore.                          
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
  10a9d1:	85 c9                	test   %ecx,%ecx                      
  10a9d3:	74 77                	je     10aa4c <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;    
  10a9d5:	31 c0                	xor    %eax,%eax                      
  10a9d7:	f6 c3 04             	test   $0x4,%bl                       
  10a9da:	0f 95 c0             	setne  %al                            
  10a9dd:	89 45 d8             	mov    %eax,-0x28(%ebp)               
    else                                                              
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_FIFO;        
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
  10a9e0:	83 f9 10             	cmp    $0x10,%ecx                     
  10a9e3:	0f 84 ae 00 00 00    	je     10aa97 <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;
  10a9e9:	c7 45 d0 02 00 00 00 	movl   $0x2,-0x30(%ebp)               
      the_mutex_attr.only_owner_release = false;                      
  10a9f0:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)               
    }                                                                 
                                                                      
    mutex_status = _CORE_mutex_Initialize(                            
  10a9f4:	50                   	push   %eax                           
  10a9f5:	31 c0                	xor    %eax,%eax                      
  10a9f7:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)                 
  10a9fb:	0f 94 c0             	sete   %al                            
  10a9fe:	50                   	push   %eax                           
  10a9ff:	8d 45 d0             	lea    -0x30(%ebp),%eax               
  10aa02:	50                   	push   %eax                           
  10aa03:	8d 42 14             	lea    0x14(%edx),%eax                
  10aa06:	50                   	push   %eax                           
  10aa07:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10aa0a:	e8 2d 0b 00 00       	call   10b53c <_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 ) {       
  10aa0f:	83 c4 10             	add    $0x10,%esp                     
  10aa12:	83 f8 06             	cmp    $0x6,%eax                      
  10aa15:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10aa18:	0f 84 a9 00 00 00    	je     10aac7 <rtems_semaphore_create+0x19b>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
  10aa1e:	8b 42 08             	mov    0x8(%edx),%eax                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10aa21:	0f b7 d8             	movzwl %ax,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10aa24:	8b 0d 5c 77 12 00    	mov    0x12775c,%ecx                  
  10aa2a:	89 14 99             	mov    %edx,(%ecx,%ebx,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10aa2d:	89 72 0c             	mov    %esi,0xc(%edx)                 
    &_Semaphore_Information,                                          
    &the_semaphore->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_semaphore->Object.id;                                     
  10aa30:	89 07                	mov    %eax,(%edi)                    
      the_semaphore->Object.id,                                       
      name,                                                           
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  10aa32:	e8 49 23 00 00       	call   10cd80 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10aa37:	31 c0                	xor    %eax,%eax                      
  10aa39:	e9 25 ff ff ff       	jmp    10a963 <rtems_semaphore_create+0x37>
  10aa3e:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10aa40:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10aa45:	e9 19 ff ff ff       	jmp    10a963 <rtems_semaphore_create+0x37>
  10aa4a:	66 90                	xchg   %ax,%ax                        
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
    the_semaphore_attr.maximum_count = 0xFFFFFFFF;                    
  10aa4c:	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;
  10aa53:	31 c0                	xor    %eax,%eax                      
  10aa55:	f6 c3 04             	test   $0x4,%bl                       
  10aa58:	0f 95 c0             	setne  %al                            
  10aa5b:	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;
  10aa5e:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)               
    the_mutex_attr.priority_ceiling = PRIORITY_MINIMUM;               
  10aa65:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)               
                                                                      
    _CORE_semaphore_Initialize(                                       
  10aa6c:	51                   	push   %ecx                           
  10aa6d:	ff 75 0c             	pushl  0xc(%ebp)                      
  10aa70:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10aa73:	50                   	push   %eax                           
  10aa74:	8d 42 14             	lea    0x14(%edx),%eax                
  10aa77:	50                   	push   %eax                           
  10aa78:	89 55 c4             	mov    %edx,-0x3c(%ebp)               
  10aa7b:	e8 4c 0d 00 00       	call   10b7cc <_CORE_semaphore_Initialize>
  10aa80:	83 c4 10             	add    $0x10,%esp                     
  10aa83:	8b 55 c4             	mov    -0x3c(%ebp),%edx               
  10aa86:	eb 96                	jmp    10aa1e <rtems_semaphore_create+0xf2>
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
  10aa88:	e8 f3 22 00 00       	call   10cd80 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10aa8d:	b8 05 00 00 00       	mov    $0x5,%eax                      
  10aa92:	e9 cc fe ff ff       	jmp    10a963 <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;        
  10aa97:	8b 45 14             	mov    0x14(%ebp),%eax                
  10aa9a:	89 45 dc             	mov    %eax,-0x24(%ebp)               
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  10aa9d:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)               
      the_mutex_attr.only_owner_release    = false;                   
  10aaa4:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)               
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
  10aaa8:	83 7d d8 01          	cmpl   $0x1,-0x28(%ebp)               
  10aaac:	0f 85 42 ff ff ff    	jne    10a9f4 <rtems_semaphore_create+0xc8>
        if ( _Attributes_Is_inherit_priority( attribute_set ) ) {     
  10aab2:	f6 c3 40             	test   $0x40,%bl                      
  10aab5:	74 30                	je     10aae7 <rtems_semaphore_create+0x1bb>
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
  10aab7:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)               
          the_mutex_attr.only_owner_release = true;                   
  10aabe:	c6 45 d4 01          	movb   $0x1,-0x2c(%ebp)               
  10aac2:	e9 2d ff ff ff       	jmp    10a9f4 <rtems_semaphore_create+0xc8>
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
  10aac7:	83 ec 08             	sub    $0x8,%esp                      
  10aaca:	52                   	push   %edx                           
  10aacb:	68 40 77 12 00       	push   $0x127740                      
  10aad0:	e8 e3 15 00 00       	call   10c0b8 <_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();                                      
  10aad5:	e8 a6 22 00 00       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_PRIORITY;                                  
  10aada:	83 c4 10             	add    $0x10,%esp                     
  10aadd:	b8 13 00 00 00       	mov    $0x13,%eax                     
  10aae2:	e9 7c fe ff ff       	jmp    10a963 <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 ) ) {
  10aae7:	81 e3 80 00 00 00    	and    $0x80,%ebx                     
  10aaed:	0f 84 01 ff ff ff    	je     10a9f4 <rtems_semaphore_create+0xc8>
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
  10aaf3:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)               
          the_mutex_attr.only_owner_release = true;                   
  10aafa:	c6 45 d4 01          	movb   $0x1,-0x2c(%ebp)               
  10aafe:	e9 f1 fe ff ff       	jmp    10a9f4 <rtems_semaphore_create+0xc8>
                                                                      

0010ab04 <rtems_semaphore_delete>: #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) {
  10ab04:	55                   	push   %ebp                           
  10ab05:	89 e5                	mov    %esp,%ebp                      
  10ab07:	53                   	push   %ebx                           
  10ab08:	83 ec 18             	sub    $0x18,%esp                     
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  10ab0b:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get( &_Semaphore_Information, id, location );            
  10ab0e:	50                   	push   %eax                           
  10ab0f:	ff 75 08             	pushl  0x8(%ebp)                      
  10ab12:	68 40 77 12 00       	push   $0x127740                      
  10ab17:	e8 dc 16 00 00       	call   10c1f8 <_Objects_Get>          
  10ab1c:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10ab1e:	83 c4 10             	add    $0x10,%esp                     
  10ab21:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10ab24:	85 c9                	test   %ecx,%ecx                      
  10ab26:	74 0c                	je     10ab34 <rtems_semaphore_delete+0x30>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10ab28:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10ab2d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ab30:	c9                   	leave                                 
  10ab31:	c3                   	ret                                   
  10ab32:	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);
  10ab34:	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) ) {
  10ab37:	83 e0 30             	and    $0x30,%eax                     
  10ab3a:	74 58                	je     10ab94 <rtems_semaphore_delete+0x90>
        if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) &&
  10ab3c:	8b 53 64             	mov    0x64(%ebx),%edx                
  10ab3f:	85 d2                	test   %edx,%edx                      
  10ab41:	75 15                	jne    10ab58 <rtems_semaphore_delete+0x54>
  10ab43:	83 f8 20             	cmp    $0x20,%eax                     
  10ab46:	74 10                	je     10ab58 <rtems_semaphore_delete+0x54>
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
  10ab48:	e8 33 22 00 00       	call   10cd80 <_Thread_Enable_dispatch>
          return RTEMS_RESOURCE_IN_USE;                               
  10ab4d:	b8 0c 00 00 00       	mov    $0xc,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ab52:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ab55:	c9                   	leave                                 
  10ab56:	c3                   	ret                                   
  10ab57:	90                   	nop                                   
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
          return RTEMS_RESOURCE_IN_USE;                               
        }                                                             
        _CORE_mutex_Flush(                                            
  10ab58:	50                   	push   %eax                           
  10ab59:	6a 04                	push   $0x4                           
  10ab5b:	6a 00                	push   $0x0                           
  10ab5d:	8d 43 14             	lea    0x14(%ebx),%eax                
  10ab60:	50                   	push   %eax                           
  10ab61:	e8 ca 09 00 00       	call   10b530 <_CORE_mutex_Flush>     
  10ab66:	83 c4 10             	add    $0x10,%esp                     
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_SEMAPHORE_WAS_DELETED                                  
        );                                                            
     }                                                                
                                                                      
      _Objects_Close( &_Semaphore_Information, &the_semaphore->Object );
  10ab69:	83 ec 08             	sub    $0x8,%esp                      
  10ab6c:	53                   	push   %ebx                           
  10ab6d:	68 40 77 12 00       	push   $0x127740                      
  10ab72:	e8 49 12 00 00       	call   10bdc0 <_Objects_Close>        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
  10ab77:	58                   	pop    %eax                           
  10ab78:	5a                   	pop    %edx                           
  10ab79:	53                   	push   %ebx                           
  10ab7a:	68 40 77 12 00       	push   $0x127740                      
  10ab7f:	e8 34 15 00 00       	call   10c0b8 <_Objects_Free>         
          0,                         /* Not used */                   
          0                          /* Not used */                   
        );                                                            
      }                                                               
#endif                                                                
      _Thread_Enable_dispatch();                                      
  10ab84:	e8 f7 21 00 00       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10ab89:	83 c4 10             	add    $0x10,%esp                     
  10ab8c:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ab8e:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ab91:	c9                   	leave                                 
  10ab92:	c3                   	ret                                   
  10ab93:	90                   	nop                                   
          &the_semaphore->Core_control.mutex,                         
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_MUTEX_WAS_DELETED                                      
        );                                                            
      } else {                                                        
        _CORE_semaphore_Flush(                                        
  10ab94:	51                   	push   %ecx                           
  10ab95:	6a 02                	push   $0x2                           
  10ab97:	6a 00                	push   $0x0                           
  10ab99:	8d 43 14             	lea    0x14(%ebx),%eax                
  10ab9c:	50                   	push   %eax                           
  10ab9d:	e8 1e 0c 00 00       	call   10b7c0 <_CORE_semaphore_Flush> 
  10aba2:	83 c4 10             	add    $0x10,%esp                     
  10aba5:	eb c2                	jmp    10ab69 <rtems_semaphore_delete+0x65>
                                                                      

0010aba8 <rtems_semaphore_obtain>: rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) {
  10aba8:	55                   	push   %ebp                           
  10aba9:	89 e5                	mov    %esp,%ebp                      
  10abab:	57                   	push   %edi                           
  10abac:	56                   	push   %esi                           
  10abad:	53                   	push   %ebx                           
  10abae:	83 ec 1c             	sub    $0x1c,%esp                     
  10abb1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10abb4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10abb7:	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 );
  10abba:	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 );
  10abbd:	50                   	push   %eax                           
  10abbe:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10abc1:	50                   	push   %eax                           
  10abc2:	53                   	push   %ebx                           
  10abc3:	68 40 77 12 00       	push   $0x127740                      
  10abc8:	e8 d3 15 00 00       	call   10c1a0 <_Objects_Get_isr_disable>
  switch ( location ) {                                               
  10abcd:	83 c4 10             	add    $0x10,%esp                     
  10abd0:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10abd3:	85 c9                	test   %ecx,%ecx                      
  10abd5:	74 0d                	je     10abe4 <rtems_semaphore_obtain+0x3c>
    case OBJECTS_ERROR:                                               
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10abd7:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10abdc:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10abdf:	5b                   	pop    %ebx                           
  10abe0:	5e                   	pop    %esi                           
  10abe1:	5f                   	pop    %edi                           
  10abe2:	c9                   	leave                                 
  10abe3:	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) ) {
  10abe4:	f6 40 10 30          	testb  $0x30,0x10(%eax)               
  10abe8:	74 36                	je     10ac20 <rtems_semaphore_obtain+0x78>
        _CORE_mutex_Seize(                                            
  10abea:	83 ec 0c             	sub    $0xc,%esp                      
  10abed:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10abf0:	57                   	push   %edi                           
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (                       
  rtems_option option_set                                             
)                                                                     
{                                                                     
   return (option_set & RTEMS_NO_WAIT) ? true : false;                
  10abf1:	83 e6 01             	and    $0x1,%esi                      
  10abf4:	83 f6 01             	xor    $0x1,%esi                      
  10abf7:	56                   	push   %esi                           
  10abf8:	53                   	push   %ebx                           
  10abf9:	83 c0 14             	add    $0x14,%eax                     
  10abfc:	50                   	push   %eax                           
  10abfd:	e8 32 0a 00 00       	call   10b634 <_CORE_mutex_Seize>     
          id,                                                         
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
  10ac02:	83 c4 14             	add    $0x14,%esp                     
                  _Thread_Executing->Wait.return_code );              
  10ac05:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
          id,                                                         
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
  10ac0a:	ff 70 34             	pushl  0x34(%eax)                     
  10ac0d:	e8 12 01 00 00       	call   10ad24 <_Semaphore_Translate_core_mutex_return_code>
  10ac12:	83 c4 10             	add    $0x10,%esp                     
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ac15:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ac18:	5b                   	pop    %ebx                           
  10ac19:	5e                   	pop    %esi                           
  10ac1a:	5f                   	pop    %edi                           
  10ac1b:	c9                   	leave                                 
  10ac1c:	c3                   	ret                                   
  10ac1d:	8d 76 00             	lea    0x0(%esi),%esi                 
{                                                                     
  Thread_Control *executing;                                          
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  10ac20:	8b 15 98 7d 12 00    	mov    0x127d98,%edx                  
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  10ac26:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)                
  if ( the_semaphore->count != 0 ) {                                  
  10ac2d:	8b 48 5c             	mov    0x5c(%eax),%ecx                
  10ac30:	85 c9                	test   %ecx,%ecx                      
  10ac32:	75 2c                	jne    10ac60 <rtems_semaphore_obtain+0xb8>
    the_semaphore->count -= 1;                                        
    _ISR_Enable( *level_p );                                          
    return;                                                           
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
  10ac34:	83 e6 01             	and    $0x1,%esi                      
  10ac37:	74 33                	je     10ac6c <rtems_semaphore_obtain+0xc4>
    _ISR_Enable( *level_p );                                          
  10ac39:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10ac3c:	9d                   	popf                                  
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
  10ac3d:	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(         
  10ac44:	83 ec 0c             	sub    $0xc,%esp                      
                  _Thread_Executing->Wait.return_code );              
  10ac47:	a1 98 7d 12 00       	mov    0x127d98,%eax                  
        id,                                                           
        ((_Options_Is_no_wait( option_set )) ? false : true),         
        timeout,                                                      
        &level                                                        
      );                                                              
      return _Semaphore_Translate_core_semaphore_return_code(         
  10ac4c:	ff 70 34             	pushl  0x34(%eax)                     
  10ac4f:	e8 e0 00 00 00       	call   10ad34 <_Semaphore_Translate_core_semaphore_return_code>
  10ac54:	83 c4 10             	add    $0x10,%esp                     
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ac57:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ac5a:	5b                   	pop    %ebx                           
  10ac5b:	5e                   	pop    %esi                           
  10ac5c:	5f                   	pop    %edi                           
  10ac5d:	c9                   	leave                                 
  10ac5e:	c3                   	ret                                   
  10ac5f:	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;                                        
  10ac60:	49                   	dec    %ecx                           
  10ac61:	89 48 5c             	mov    %ecx,0x5c(%eax)                
    _ISR_Enable( *level_p );                                          
  10ac64:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10ac67:	9d                   	popf                                  
  10ac68:	eb da                	jmp    10ac44 <rtems_semaphore_obtain+0x9c>
  10ac6a:	66 90                	xchg   %ax,%ax                        
  10ac6c:	8b 0d ec 77 12 00    	mov    0x1277ec,%ecx                  
  10ac72:	41                   	inc    %ecx                           
  10ac73:	89 0d ec 77 12 00    	mov    %ecx,0x1277ec                  
                                                                      
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;
  10ac79:	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;        
  10ac80:	83 c0 14             	add    $0x14,%eax                     
  10ac83:	89 42 44             	mov    %eax,0x44(%edx)                
  executing->Wait.id             = id;                                
  10ac86:	89 5a 20             	mov    %ebx,0x20(%edx)                
  _ISR_Enable( *level_p );                                            
  10ac89:	ff 75 e0             	pushl  -0x20(%ebp)                    
  10ac8c:	9d                   	popf                                  
                                                                      
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
  10ac8d:	52                   	push   %edx                           
  10ac8e:	68 54 d5 10 00       	push   $0x10d554                      
  10ac93:	57                   	push   %edi                           
  10ac94:	50                   	push   %eax                           
  10ac95:	e8 8e 25 00 00       	call   10d228 <_Thread_queue_Enqueue_with_handler>
  _Thread_Enable_dispatch();                                          
  10ac9a:	e8 e1 20 00 00       	call   10cd80 <_Thread_Enable_dispatch>
  10ac9f:	83 c4 10             	add    $0x10,%esp                     
  10aca2:	eb a0                	jmp    10ac44 <rtems_semaphore_obtain+0x9c>
                                                                      

0010aca4 <rtems_semaphore_release>: #endif rtems_status_code rtems_semaphore_release( rtems_id id ) {
  10aca4:	55                   	push   %ebp                           
  10aca5:	89 e5                	mov    %esp,%ebp                      
  10aca7:	53                   	push   %ebx                           
  10aca8:	83 ec 18             	sub    $0x18,%esp                     
  10acab:	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 );                    
  10acae:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get( &_Semaphore_Information, id, location );            
  10acb1:	50                   	push   %eax                           
  10acb2:	53                   	push   %ebx                           
  10acb3:	68 40 77 12 00       	push   $0x127740                      
  10acb8:	e8 3b 15 00 00       	call   10c1f8 <_Objects_Get>          
  switch ( location ) {                                               
  10acbd:	83 c4 10             	add    $0x10,%esp                     
  10acc0:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10acc3:	85 d2                	test   %edx,%edx                      
  10acc5:	74 0d                	je     10acd4 <rtems_semaphore_release+0x30>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10acc7:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10accc:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10accf:	c9                   	leave                                 
  10acd0:	c3                   	ret                                   
  10acd1:	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) ) {
  10acd4:	f6 40 10 30          	testb  $0x30,0x10(%eax)               
  10acd8:	75 26                	jne    10ad00 <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(                 
  10acda:	52                   	push   %edx                           
  10acdb:	6a 00                	push   $0x0                           
  10acdd:	53                   	push   %ebx                           
  10acde:	83 c0 14             	add    $0x14,%eax                     
  10ace1:	50                   	push   %eax                           
  10ace2:	e8 25 0b 00 00       	call   10b80c <_CORE_semaphore_Surrender>
  10ace7:	89 c3                	mov    %eax,%ebx                      
          &the_semaphore->Core_control.semaphore,                     
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
  10ace9:	e8 92 20 00 00       	call   10cd80 <_Thread_Enable_dispatch>
        return                                                        
  10acee:	89 1c 24             	mov    %ebx,(%esp)                    
  10acf1:	e8 3e 00 00 00       	call   10ad34 <_Semaphore_Translate_core_semaphore_return_code>
  10acf6:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10acf9:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10acfc:	c9                   	leave                                 
  10acfd:	c3                   	ret                                   
  10acfe:	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(                         
  10ad00:	51                   	push   %ecx                           
  10ad01:	6a 00                	push   $0x0                           
  10ad03:	53                   	push   %ebx                           
  10ad04:	83 c0 14             	add    $0x14,%eax                     
  10ad07:	50                   	push   %eax                           
  10ad08:	e8 c7 09 00 00       	call   10b6d4 <_CORE_mutex_Surrender> 
  10ad0d:	89 c3                	mov    %eax,%ebx                      
          &the_semaphore->Core_control.mutex,                         
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
  10ad0f:	e8 6c 20 00 00       	call   10cd80 <_Thread_Enable_dispatch>
        return _Semaphore_Translate_core_mutex_return_code( mutex_status );
  10ad14:	89 1c 24             	mov    %ebx,(%esp)                    
  10ad17:	e8 08 00 00 00       	call   10ad24 <_Semaphore_Translate_core_mutex_return_code>
  10ad1c:	83 c4 10             	add    $0x10,%esp                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ad1f:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10ad22:	c9                   	leave                                 
  10ad23:	c3                   	ret                                   
                                                                      

00117388 <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
  117388:	55                   	push   %ebp                           
  117389:	89 e5                	mov    %esp,%ebp                      
  11738b:	53                   	push   %ebx                           
  11738c:	83 ec 14             	sub    $0x14,%esp                     
  11738f:	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 )                                                  
  117392:	85 db                	test   %ebx,%ebx                      
  117394:	75 0a                	jne    1173a0 <rtems_signal_send+0x18>
    return RTEMS_INVALID_NUMBER;                                      
  117396:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11739b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11739e:	c9                   	leave                                 
  11739f:	c3                   	ret                                   
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  1173a0:	83 ec 08             	sub    $0x8,%esp                      
  1173a3:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1173a6:	50                   	push   %eax                           
  1173a7:	ff 75 08             	pushl  0x8(%ebp)                      
  1173aa:	e8 f9 40 00 00       	call   11b4a8 <_Thread_Get>           
  switch ( location ) {                                               
  1173af:	83 c4 10             	add    $0x10,%esp                     
  1173b2:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1173b5:	85 d2                	test   %edx,%edx                      
  1173b7:	74 0b                	je     1173c4 <rtems_signal_send+0x3c>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1173b9:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1173be:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  1173c1:	c9                   	leave                                 
  1173c2:	c3                   	ret                                   
  1173c3:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
  1173c4:	8b 90 e8 00 00 00    	mov    0xe8(%eax),%edx                
      asr = &api->Signal;                                             
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
  1173ca:	8b 4a 0c             	mov    0xc(%edx),%ecx                 
  1173cd:	85 c9                	test   %ecx,%ecx                      
  1173cf:	74 3f                	je     117410 <rtems_signal_send+0x88>
        if ( asr->is_enabled ) {                                      
  1173d1:	80 7a 08 00          	cmpb   $0x0,0x8(%edx)                 
  1173d5:	74 25                	je     1173fc <rtems_signal_send+0x74>
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
  1173d7:	9c                   	pushf                                 
  1173d8:	fa                   	cli                                   
  1173d9:	59                   	pop    %ecx                           
    *signal_set |= signals;                                           
  1173da:	09 5a 14             	or     %ebx,0x14(%edx)                
  _ISR_Enable( _level );                                              
  1173dd:	51                   	push   %ecx                           
  1173de:	9d                   	popf                                  
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
  1173df:	8b 15 54 26 14 00    	mov    0x142654,%edx                  
  1173e5:	85 d2                	test   %edx,%edx                      
  1173e7:	74 1b                	je     117404 <rtems_signal_send+0x7c>
  1173e9:	3b 05 58 26 14 00    	cmp    0x142658,%eax                  
  1173ef:	75 13                	jne    117404 <rtems_signal_send+0x7c><== NEVER TAKEN
            _Thread_Dispatch_necessary = true;                        
  1173f1:	c6 05 64 26 14 00 01 	movb   $0x1,0x142664                  
  1173f8:	eb 0a                	jmp    117404 <rtems_signal_send+0x7c>
  1173fa:	66 90                	xchg   %ax,%ax                        
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
  1173fc:	9c                   	pushf                                 
  1173fd:	fa                   	cli                                   
  1173fe:	58                   	pop    %eax                           
    *signal_set |= signals;                                           
  1173ff:	09 5a 18             	or     %ebx,0x18(%edx)                
  _ISR_Enable( _level );                                              
  117402:	50                   	push   %eax                           
  117403:	9d                   	popf                                  
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
  117404:	e8 7b 40 00 00       	call   11b484 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  117409:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11740b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  11740e:	c9                   	leave                                 
  11740f:	c3                   	ret                                   
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  117410:	e8 6f 40 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_NOT_DEFINED;                                       
  117415:	b8 0b 00 00 00       	mov    $0xb,%eax                      
  11741a:	e9 7c ff ff ff       	jmp    11739b <rtems_signal_send+0x13>
                                                                      

0010ad44 <rtems_task_create>: size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, rtems_id *id ) {
  10ad44:	55                   	push   %ebp                           
  10ad45:	89 e5                	mov    %esp,%ebp                      
  10ad47:	57                   	push   %edi                           
  10ad48:	56                   	push   %esi                           
  10ad49:	53                   	push   %ebx                           
  10ad4a:	83 ec 1c             	sub    $0x1c,%esp                     
  10ad4d:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10ad50:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10ad53:	8b 75 1c             	mov    0x1c(%ebp),%esi                
  Priority_Control         core_priority;                             
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
  10ad56:	85 f6                	test   %esi,%esi                      
  10ad58:	0f 84 3e 01 00 00    	je     10ae9c <rtems_task_create+0x158>
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10ad5e:	85 db                	test   %ebx,%ebx                      
  10ad60:	0f 84 d2 00 00 00    	je     10ae38 <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 ) ) {           
  10ad66:	f7 45 18 00 80 00 00 	testl  $0x8000,0x18(%ebp)             
  10ad6d:	75 17                	jne    10ad86 <rtems_task_create+0x42>
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10ad6f:	85 ff                	test   %edi,%edi                      
  10ad71:	0f 84 b1 00 00 00    	je     10ae28 <rtems_task_create+0xe4>
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
  10ad77:	0f b6 05 54 35 12 00 	movzbl 0x123554,%eax                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10ad7e:	39 c7                	cmp    %eax,%edi                      
  10ad80:	0f 87 a2 00 00 00    	ja     10ae28 <rtems_task_create+0xe4>
   */                                                                 
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
  10ad86:	83 ec 0c             	sub    $0xc,%esp                      
  10ad89:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10ad8f:	e8 c4 06 00 00       	call   10b458 <_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 );
  10ad94:	c7 04 24 80 77 12 00 	movl   $0x127780,(%esp)               
  10ad9b:	e8 a4 0f 00 00       	call   10bd44 <_Objects_Allocate>     
  10ada0:	89 c2                	mov    %eax,%edx                      
   *         the event of an error.                                   
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
  10ada2:	83 c4 10             	add    $0x10,%esp                     
  10ada5:	85 c0                	test   %eax,%eax                      
  10ada7:	0f 84 cf 00 00 00    	je     10ae7c <rtems_task_create+0x138>
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
                                                                      
  status = _Thread_Initialize(                                        
  10adad:	50                   	push   %eax                           
  10adae:	53                   	push   %ebx                           
 */                                                                   
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (           
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  return ( mode_set & RTEMS_INTERRUPT_MASK );                         
  10adaf:	8b 45 14             	mov    0x14(%ebp),%eax                
  10adb2:	83 e0 01             	and    $0x1,%eax                      
  10adb5:	50                   	push   %eax                           
  10adb6:	6a 00                	push   $0x0                           
  10adb8:	31 c0                	xor    %eax,%eax                      
  10adba:	f7 45 14 00 02 00 00 	testl  $0x200,0x14(%ebp)              
  10adc1:	0f 95 c0             	setne  %al                            
  10adc4:	50                   	push   %eax                           
  10adc5:	31 c0                	xor    %eax,%eax                      
  10adc7:	f7 45 14 00 01 00 00 	testl  $0x100,0x14(%ebp)              
  10adce:	0f 94 c0             	sete   %al                            
  10add1:	50                   	push   %eax                           
  10add2:	57                   	push   %edi                           
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_floating_point(              
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
   return ( attribute_set & RTEMS_FLOATING_POINT ) ? true : false;    
  10add3:	8b 45 18             	mov    0x18(%ebp),%eax                
  10add6:	83 e0 01             	and    $0x1,%eax                      
  10add9:	50                   	push   %eax                           
  10adda:	ff 75 10             	pushl  0x10(%ebp)                     
  10addd:	6a 00                	push   $0x0                           
  10addf:	52                   	push   %edx                           
  10ade0:	68 80 77 12 00       	push   $0x127780                      
  10ade5:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  10ade8:	e8 2f 20 00 00       	call   10ce1c <_Thread_Initialize>    
    NULL,        /* no budget algorithm callout */                    
    _Modes_Get_interrupt_level(initial_modes),                        
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  if ( !status ) {                                                    
  10aded:	83 c4 30             	add    $0x30,%esp                     
  10adf0:	84 c0                	test   %al,%al                        
  10adf2:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10adf5:	74 51                	je     10ae48 <rtems_task_create+0x104>
    _RTEMS_Unlock_allocator();                                        
    return RTEMS_UNSATISFIED;                                         
  }                                                                   
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
  asr = &api->Signal;                                                 
  10adf7:	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(                                  
  10adfd:	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;
  10ae04:	0f 94 40 08          	sete   0x8(%eax)                      
                                                                      
  *id = the_thread->Object.id;                                        
  10ae08:	8b 42 08             	mov    0x8(%edx),%eax                 
  10ae0b:	89 06                	mov    %eax,(%esi)                    
    );                                                                
                                                                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10ae0d:	83 ec 0c             	sub    $0xc,%esp                      
  10ae10:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10ae16:	e8 85 06 00 00       	call   10b4a0 <_API_Mutex_Unlock>     
  return RTEMS_SUCCESSFUL;                                            
  10ae1b:	83 c4 10             	add    $0x10,%esp                     
  10ae1e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ae20:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ae23:	5b                   	pop    %ebx                           
  10ae24:	5e                   	pop    %esi                           
  10ae25:	5f                   	pop    %edi                           
  10ae26:	c9                   	leave                                 
  10ae27:	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;                                  
  10ae28:	b8 13 00 00 00       	mov    $0x13,%eax                     
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10ae2d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ae30:	5b                   	pop    %ebx                           
  10ae31:	5e                   	pop    %esi                           
  10ae32:	5f                   	pop    %edi                           
  10ae33:	c9                   	leave                                 
  10ae34:	c3                   	ret                                   
  10ae35:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10ae38:	b8 03 00 00 00       	mov    $0x3,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10ae3d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ae40:	5b                   	pop    %ebx                           
  10ae41:	5e                   	pop    %esi                           
  10ae42:	5f                   	pop    %edi                           
  10ae43:	c9                   	leave                                 
  10ae44:	c3                   	ret                                   
  10ae45:	8d 76 00             	lea    0x0(%esi),%esi                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (                         
  Thread_Control *the_task                                            
)                                                                     
{                                                                     
  _Objects_Free(                                                      
  10ae48:	83 ec 0c             	sub    $0xc,%esp                      
  10ae4b:	ff 72 08             	pushl  0x8(%edx)                      
  10ae4e:	e8 d5 12 00 00       	call   10c128 <_Objects_Get_information_id>
  10ae53:	5a                   	pop    %edx                           
  10ae54:	59                   	pop    %ecx                           
  10ae55:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  10ae58:	52                   	push   %edx                           
  10ae59:	50                   	push   %eax                           
  10ae5a:	e8 59 12 00 00       	call   10c0b8 <_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();                                        
  10ae5f:	58                   	pop    %eax                           
  10ae60:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10ae66:	e8 35 06 00 00       	call   10b4a0 <_API_Mutex_Unlock>     
    return RTEMS_UNSATISFIED;                                         
  10ae6b:	83 c4 10             	add    $0x10,%esp                     
  10ae6e:	b8 0d 00 00 00       	mov    $0xd,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10ae73:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ae76:	5b                   	pop    %ebx                           
  10ae77:	5e                   	pop    %esi                           
  10ae78:	5f                   	pop    %edi                           
  10ae79:	c9                   	leave                                 
  10ae7a:	c3                   	ret                                   
  10ae7b:	90                   	nop                                   
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
  10ae7c:	83 ec 0c             	sub    $0xc,%esp                      
  10ae7f:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10ae85:	e8 16 06 00 00       	call   10b4a0 <_API_Mutex_Unlock>     
    return RTEMS_TOO_MANY;                                            
  10ae8a:	83 c4 10             	add    $0x10,%esp                     
  10ae8d:	b8 05 00 00 00       	mov    $0x5,%eax                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10ae92:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ae95:	5b                   	pop    %ebx                           
  10ae96:	5e                   	pop    %esi                           
  10ae97:	5f                   	pop    %edi                           
  10ae98:	c9                   	leave                                 
  10ae99:	c3                   	ret                                   
  10ae9a:	66 90                	xchg   %ax,%ax                        
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
  10ae9c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10aea1:	eb 8a                	jmp    10ae2d <rtems_task_create+0xe9>
                                                                      

0010aea4 <rtems_task_delete>: */ rtems_status_code rtems_task_delete( rtems_id id ) {
  10aea4:	55                   	push   %ebp                           
  10aea5:	89 e5                	mov    %esp,%ebp                      
  10aea7:	53                   	push   %ebx                           
  10aea8:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
  10aeab:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10aeb1:	e8 a2 05 00 00       	call   10b458 <_API_Mutex_Lock>       
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10aeb6:	5a                   	pop    %edx                           
  10aeb7:	59                   	pop    %ecx                           
  10aeb8:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10aebb:	50                   	push   %eax                           
  10aebc:	ff 75 08             	pushl  0x8(%ebp)                      
  10aebf:	e8 e0 1e 00 00       	call   10cda4 <_Thread_Get>           
  10aec4:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10aec6:	83 c4 10             	add    $0x10,%esp                     
  10aec9:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10aecc:	85 c0                	test   %eax,%eax                      
  10aece:	75 44                	jne    10af14 <rtems_task_delete+0x70>
                                                                      
    case OBJECTS_LOCAL:                                               
      the_information = _Objects_Get_information_id( the_thread->Object.id );
  10aed0:	83 ec 0c             	sub    $0xc,%esp                      
  10aed3:	ff 73 08             	pushl  0x8(%ebx)                      
  10aed6:	e8 4d 12 00 00       	call   10c128 <_Objects_Get_information_id>
            0                                /* Not used */           
          );                                                          
        }                                                             
      #endif                                                          
                                                                      
      _Thread_Close( the_information, the_thread );                   
  10aedb:	5a                   	pop    %edx                           
  10aedc:	59                   	pop    %ecx                           
  10aedd:	53                   	push   %ebx                           
  10aede:	50                   	push   %eax                           
  10aedf:	e8 74 1b 00 00       	call   10ca58 <_Thread_Close>         
  10aee4:	58                   	pop    %eax                           
  10aee5:	ff 73 08             	pushl  0x8(%ebx)                      
  10aee8:	e8 3b 12 00 00       	call   10c128 <_Objects_Get_information_id>
  10aeed:	5a                   	pop    %edx                           
  10aeee:	59                   	pop    %ecx                           
  10aeef:	53                   	push   %ebx                           
  10aef0:	50                   	push   %eax                           
  10aef1:	e8 c2 11 00 00       	call   10c0b8 <_Objects_Free>         
                                                                      
      _RTEMS_tasks_Free( the_thread );                                
                                                                      
      _RTEMS_Unlock_allocator();                                      
  10aef6:	58                   	pop    %eax                           
  10aef7:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10aefd:	e8 9e 05 00 00       	call   10b4a0 <_API_Mutex_Unlock>     
      _Thread_Enable_dispatch();                                      
  10af02:	e8 79 1e 00 00       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10af07:	83 c4 10             	add    $0x10,%esp                     
  10af0a:	31 c0                	xor    %eax,%eax                      
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10af0c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10af0f:	c9                   	leave                                 
  10af10:	c3                   	ret                                   
  10af11:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
  10af14:	83 ec 0c             	sub    $0xc,%esp                      
  10af17:	ff 35 a0 78 12 00    	pushl  0x1278a0                       
  10af1d:	e8 7e 05 00 00       	call   10b4a0 <_API_Mutex_Unlock>     
  return RTEMS_INVALID_ID;                                            
  10af22:	83 c4 10             	add    $0x10,%esp                     
  10af25:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10af2a:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10af2d:	c9                   	leave                                 
  10af2e:	c3                   	ret                                   
                                                                      

0010ca6c <rtems_task_get_note>: rtems_status_code rtems_task_get_note( rtems_id id, uint32_t notepad, uint32_t *note ) {
  10ca6c:	55                   	push   %ebp                           
  10ca6d:	89 e5                	mov    %esp,%ebp                      
  10ca6f:	56                   	push   %esi                           
  10ca70:	53                   	push   %ebx                           
  10ca71:	83 ec 10             	sub    $0x10,%esp                     
  10ca74:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10ca77:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  10ca7a:	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() )                  
  10ca7d:	80 3d e4 74 12 00 00 	cmpb   $0x0,0x1274e4                  
  10ca84:	74 6e                	je     10caf4 <rtems_task_get_note+0x88>
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
  10ca86:	85 db                	test   %ebx,%ebx                      
  10ca88:	74 7e                	je     10cb08 <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 )                                 
  10ca8a:	83 fe 0f             	cmp    $0xf,%esi                      
  10ca8d:	77 3d                	ja     10cacc <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 ) ||            
  10ca8f:	85 c0                	test   %eax,%eax                      
  10ca91:	74 45                	je     10cad8 <rtems_task_get_note+0x6c>
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
  10ca93:	8b 15 98 c0 12 00    	mov    0x12c098,%edx                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10ca99:	3b 42 08             	cmp    0x8(%edx),%eax                 
  10ca9c:	74 40                	je     10cade <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 );                          
  10ca9e:	83 ec 08             	sub    $0x8,%esp                      
  10caa1:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10caa4:	52                   	push   %edx                           
  10caa5:	50                   	push   %eax                           
  10caa6:	e8 d1 21 00 00       	call   10ec7c <_Thread_Get>           
  switch ( location ) {                                               
  10caab:	83 c4 10             	add    $0x10,%esp                     
  10caae:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10cab1:	85 d2                	test   %edx,%edx                      
  10cab3:	75 4b                	jne    10cb00 <rtems_task_get_note+0x94>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      *note = api->Notepads[ notepad ];                               
  10cab5:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax                
  10cabb:	8b 44 b0 20          	mov    0x20(%eax,%esi,4),%eax         
  10cabf:	89 03                	mov    %eax,(%ebx)                    
      _Thread_Enable_dispatch();                                      
  10cac1:	e8 92 21 00 00       	call   10ec58 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10cac6:	31 c0                	xor    %eax,%eax                      
  10cac8:	eb 07                	jmp    10cad1 <rtems_task_get_note+0x65>
  10caca:	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;                                      
  10cacc:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10cad1:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cad4:	5b                   	pop    %ebx                           
  10cad5:	5e                   	pop    %esi                           
  10cad6:	c9                   	leave                                 
  10cad7:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10cad8:	8b 15 98 c0 12 00    	mov    0x12c098,%edx                  
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
  10cade:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax                
  10cae4:	8b 44 b0 20          	mov    0x20(%eax,%esi,4),%eax         
  10cae8:	89 03                	mov    %eax,(%ebx)                    
      return RTEMS_SUCCESSFUL;                                        
  10caea:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10caec:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10caef:	5b                   	pop    %ebx                           
  10caf0:	5e                   	pop    %esi                           
  10caf1:	c9                   	leave                                 
  10caf2:	c3                   	ret                                   
  10caf3:	90                   	nop                                   
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
  10caf4:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10caf9:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cafc:	5b                   	pop    %ebx                           
  10cafd:	5e                   	pop    %esi                           
  10cafe:	c9                   	leave                                 
  10caff:	c3                   	ret                                   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10cb00:	b8 04 00 00 00       	mov    $0x4,%eax                      
  10cb05:	eb ca                	jmp    10cad1 <rtems_task_get_note+0x65>
  10cb07:	90                   	nop                                   
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
  10cb08:	b8 09 00 00 00       	mov    $0x9,%eax                      
  10cb0d:	eb c2                	jmp    10cad1 <rtems_task_get_note+0x65>
                                                                      

0011776c <rtems_task_is_suspended>: */ rtems_status_code rtems_task_is_suspended( rtems_id id ) {
  11776c:	55                   	push   %ebp                           
  11776d:	89 e5                	mov    %esp,%ebp                      
  11776f:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  117772:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  117775:	50                   	push   %eax                           
  117776:	ff 75 08             	pushl  0x8(%ebp)                      
  117779:	e8 2a 3d 00 00       	call   11b4a8 <_Thread_Get>           
  switch ( location ) {                                               
  11777e:	83 c4 10             	add    $0x10,%esp                     
  117781:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  117784:	85 d2                	test   %edx,%edx                      
  117786:	74 08                	je     117790 <rtems_task_is_suspended+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  117788:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  11778d:	c9                   	leave                                 
  11778e:	c3                   	ret                                   
  11778f:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
  117790:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  117794:	74 0e                	je     1177a4 <rtems_task_is_suspended+0x38>
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  117796:	e8 e9 3c 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_ALREADY_SUSPENDED;                                 
  11779b:	b8 0f 00 00 00       	mov    $0xf,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1177a0:	c9                   	leave                                 
  1177a1:	c3                   	ret                                   
  1177a2:	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();                                    
  1177a4:	e8 db 3c 00 00       	call   11b484 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  1177a9:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  1177ab:	c9                   	leave                                 
  1177ac:	c3                   	ret                                   
                                                                      

001128fc <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
  1128fc:	55                   	push   %ebp                           
  1128fd:	89 e5                	mov    %esp,%ebp                      
  1128ff:	57                   	push   %edi                           
  112900:	56                   	push   %esi                           
  112901:	53                   	push   %ebx                           
  112902:	83 ec 1c             	sub    $0x1c,%esp                     
  112905:	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 )                                           
  112908:	85 c9                	test   %ecx,%ecx                      
  11290a:	0f 84 40 01 00 00    	je     112a50 <rtems_task_mode+0x154> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  112910:	8b 1d 98 7d 12 00    	mov    0x127d98,%ebx                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  112916:	8b bb e8 00 00 00    	mov    0xe8(%ebx),%edi                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
  11291c:	80 7b 74 01          	cmpb   $0x1,0x74(%ebx)                
  112920:	19 f6                	sbb    %esi,%esi                      
  112922:	81 e6 00 01 00 00    	and    $0x100,%esi                    
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
  112928:	8b 53 7c             	mov    0x7c(%ebx),%edx                
  11292b:	85 d2                	test   %edx,%edx                      
  11292d:	0f 85 f1 00 00 00    	jne    112a24 <rtems_task_mode+0x128> 
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
  112933:	80 7f 08 01          	cmpb   $0x1,0x8(%edi)                 
  112937:	19 d2                	sbb    %edx,%edx                      
  112939:	81 e2 00 04 00 00    	and    $0x400,%edx                    
  old_mode |= _ISR_Get_level();                                       
  11293f:	89 55 e4             	mov    %edx,-0x1c(%ebp)               
  112942:	89 4d e0             	mov    %ecx,-0x20(%ebp)               
  112945:	e8 12 b8 ff ff       	call   10e15c <_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;           
  11294a:	8b 55 e4             	mov    -0x1c(%ebp),%edx               
  11294d:	09 d0                	or     %edx,%eax                      
  old_mode |= _ISR_Get_level();                                       
  11294f:	09 f0                	or     %esi,%eax                      
  112951:	8b 4d e0             	mov    -0x20(%ebp),%ecx               
  112954:	89 01                	mov    %eax,(%ecx)                    
  *previous_mode_set = old_mode;                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
  112956:	f7 45 0c 00 01 00 00 	testl  $0x100,0xc(%ebp)               
  11295d:	74 0b                	je     11296a <rtems_task_mode+0x6e>  
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
  11295f:	f7 45 08 00 01 00 00 	testl  $0x100,0x8(%ebp)               
  112966:	0f 94 43 74          	sete   0x74(%ebx)                     
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
  11296a:	f7 45 0c 00 02 00 00 	testl  $0x200,0xc(%ebp)               
  112971:	74 1c                	je     11298f <rtems_task_mode+0x93>  
    if ( _Modes_Is_timeslice(mode_set) ) {                            
  112973:	f7 45 08 00 02 00 00 	testl  $0x200,0x8(%ebp)               
  11297a:	0f 84 b8 00 00 00    	je     112a38 <rtems_task_mode+0x13c> 
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
  112980:	c7 43 7c 01 00 00 00 	movl   $0x1,0x7c(%ebx)                
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
  112987:	a1 c0 77 12 00       	mov    0x1277c0,%eax                  
  11298c:	89 43 78             	mov    %eax,0x78(%ebx)                
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
  11298f:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)                 
  112993:	74 0b                	je     1129a0 <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 ) );           
  112995:	f6 45 08 01          	testb  $0x1,0x8(%ebp)                 
  112999:	0f 84 91 00 00 00    	je     112a30 <rtems_task_mode+0x134> 
  11299f:	fa                   	cli                                   
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
  1129a0:	f7 45 0c 00 04 00 00 	testl  $0x400,0xc(%ebp)               
  1129a7:	74 3f                	je     1129e8 <rtems_task_mode+0xec>  
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
  1129a9:	f7 45 08 00 04 00 00 	testl  $0x400,0x8(%ebp)               
  1129b0:	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 ) {                        
  1129b3:	38 47 08             	cmp    %al,0x8(%edi)                  
  1129b6:	74 30                	je     1129e8 <rtems_task_mode+0xec>  
      asr->is_enabled = is_asr_enabled;                               
  1129b8:	88 47 08             	mov    %al,0x8(%edi)                  
)                                                                     
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
  1129bb:	9c                   	pushf                                 
  1129bc:	fa                   	cli                                   
  1129bd:	58                   	pop    %eax                           
    _signals                     = information->signals_pending;      
  1129be:	8b 57 18             	mov    0x18(%edi),%edx                
    information->signals_pending = information->signals_posted;       
  1129c1:	8b 4f 14             	mov    0x14(%edi),%ecx                
  1129c4:	89 4f 18             	mov    %ecx,0x18(%edi)                
    information->signals_posted  = _signals;                          
  1129c7:	89 57 14             	mov    %edx,0x14(%edi)                
  _ISR_Enable( _level );                                              
  1129ca:	50                   	push   %eax                           
  1129cb:	9d                   	popf                                  
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
  1129cc:	8b 47 14             	mov    0x14(%edi),%eax                
  1129cf:	85 c0                	test   %eax,%eax                      
  1129d1:	0f 95 c0             	setne  %al                            
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
  1129d4:	83 3d 80 79 12 00 03 	cmpl   $0x3,0x127980                  
  1129db:	74 16                	je     1129f3 <rtems_task_mode+0xf7>  <== ALWAYS TAKEN
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  1129dd:	31 c0                	xor    %eax,%eax                      
}                                                                     
  1129df:	83 c4 1c             	add    $0x1c,%esp                     
  1129e2:	5b                   	pop    %ebx                           
  1129e3:	5e                   	pop    %esi                           
  1129e4:	5f                   	pop    %edi                           
  1129e5:	c9                   	leave                                 
  1129e6:	c3                   	ret                                   
  1129e7:	90                   	nop                                   
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
  1129e8:	31 c0                	xor    %eax,%eax                      
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
  1129ea:	83 3d 80 79 12 00 03 	cmpl   $0x3,0x127980                  
  1129f1:	75 ea                	jne    1129dd <rtems_task_mode+0xe1>  
  bool are_signals_pending                                            
)                                                                     
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
  1129f3:	8b 15 98 7d 12 00    	mov    0x127d98,%edx                  
                                                                      
  if ( are_signals_pending ||                                         
  1129f9:	84 c0                	test   %al,%al                        
  1129fb:	75 0e                	jne    112a0b <rtems_task_mode+0x10f> 
  1129fd:	3b 15 9c 7d 12 00    	cmp    0x127d9c,%edx                  
  112a03:	74 d8                	je     1129dd <rtems_task_mode+0xe1>  
       (!_Thread_Is_heir( executing ) && executing->is_preemptible) ) {
  112a05:	80 7a 74 00          	cmpb   $0x0,0x74(%edx)                
  112a09:	74 d2                	je     1129dd <rtems_task_mode+0xe1>  <== NEVER TAKEN
    _Thread_Dispatch_necessary = true;                                
  112a0b:	c6 05 a4 7d 12 00 01 	movb   $0x1,0x127da4                  
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  112a12:	e8 f1 a1 ff ff       	call   10cc08 <_Thread_Dispatch>      
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
  112a17:	31 c0                	xor    %eax,%eax                      
}                                                                     
  112a19:	83 c4 1c             	add    $0x1c,%esp                     
  112a1c:	5b                   	pop    %ebx                           
  112a1d:	5e                   	pop    %esi                           
  112a1e:	5f                   	pop    %edi                           
  112a1f:	c9                   	leave                                 
  112a20:	c3                   	ret                                   
  112a21:	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;                                      
  112a24:	81 ce 00 02 00 00    	or     $0x200,%esi                    
  112a2a:	e9 04 ff ff ff       	jmp    112933 <rtems_task_mode+0x37>  
  112a2f:	90                   	nop                                   
  112a30:	fb                   	sti                                   
  112a31:	e9 6a ff ff ff       	jmp    1129a0 <rtems_task_mode+0xa4>  
  112a36:	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; 
  112a38:	c7 43 7c 00 00 00 00 	movl   $0x0,0x7c(%ebx)                
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
  112a3f:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)                 
  112a43:	0f 84 57 ff ff ff    	je     1129a0 <rtems_task_mode+0xa4>  
  112a49:	e9 47 ff ff ff       	jmp    112995 <rtems_task_mode+0x99>  
  112a4e:	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;                                     
  112a50:	b8 09 00 00 00       	mov    $0x9,%eax                      
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  112a55:	83 c4 1c             	add    $0x1c,%esp                     
  112a58:	5b                   	pop    %ebx                           
  112a59:	5e                   	pop    %esi                           
  112a5a:	5f                   	pop    %edi                           
  112a5b:	c9                   	leave                                 
  112a5c:	c3                   	ret                                   
                                                                      

0010e1c4 <rtems_task_resume>: */ rtems_status_code rtems_task_resume( rtems_id id ) {
  10e1c4:	55                   	push   %ebp                           
  10e1c5:	89 e5                	mov    %esp,%ebp                      
  10e1c7:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10e1ca:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10e1cd:	50                   	push   %eax                           
  10e1ce:	ff 75 08             	pushl  0x8(%ebp)                      
  10e1d1:	e8 7e 1e 00 00       	call   110054 <_Thread_Get>           
  switch ( location ) {                                               
  10e1d6:	83 c4 10             	add    $0x10,%esp                     
  10e1d9:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10e1dc:	85 d2                	test   %edx,%edx                      
  10e1de:	74 08                	je     10e1e8 <rtems_task_resume+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10e1e0:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10e1e5:	c9                   	leave                                 
  10e1e6:	c3                   	ret                                   
  10e1e7:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _States_Is_suspended( the_thread->current_state ) ) {      
  10e1e8:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  10e1ec:	75 0e                	jne    10e1fc <rtems_task_resume+0x38>
        _Thread_Resume( the_thread );                                 
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  10e1ee:	e8 3d 1e 00 00       	call   110030 <_Thread_Enable_dispatch>
      return RTEMS_INCORRECT_STATE;                                   
  10e1f3:	b8 0e 00 00 00       	mov    $0xe,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10e1f8:	c9                   	leave                                 
  10e1f9:	c3                   	ret                                   
  10e1fa:	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 );                                 
  10e1fc:	83 ec 08             	sub    $0x8,%esp                      
  10e1ff:	6a 02                	push   $0x2                           
  10e201:	50                   	push   %eax                           
  10e202:	e8 c5 1a 00 00       	call   10fccc <_Thread_Clear_state>   
        _Thread_Enable_dispatch();                                    
  10e207:	e8 24 1e 00 00       	call   110030 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10e20c:	83 c4 10             	add    $0x10,%esp                     
  10e20f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10e211:	c9                   	leave                                 
  10e212:	c3                   	ret                                   
                                                                      

0010cbe4 <rtems_task_set_note>: rtems_status_code rtems_task_set_note( rtems_id id, uint32_t notepad, uint32_t note ) {
  10cbe4:	55                   	push   %ebp                           
  10cbe5:	89 e5                	mov    %esp,%ebp                      
  10cbe7:	56                   	push   %esi                           
  10cbe8:	53                   	push   %ebx                           
  10cbe9:	83 ec 10             	sub    $0x10,%esp                     
  10cbec:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10cbef:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10cbf2:	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() )                  
  10cbf5:	80 3d e4 74 12 00 00 	cmpb   $0x0,0x1274e4                  
  10cbfc:	74 66                	je     10cc64 <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 )                                 
  10cbfe:	83 fb 0f             	cmp    $0xf,%ebx                      
  10cc01:	77 39                	ja     10cc3c <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 ) ||            
  10cc03:	85 c0                	test   %eax,%eax                      
  10cc05:	74 41                	je     10cc48 <rtems_task_set_note+0x64>
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
  10cc07:	8b 15 98 c0 12 00    	mov    0x12c098,%edx                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10cc0d:	3b 42 08             	cmp    0x8(%edx),%eax                 
  10cc10:	74 3c                	je     10cc4e <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 );                          
  10cc12:	83 ec 08             	sub    $0x8,%esp                      
  10cc15:	8d 55 f4             	lea    -0xc(%ebp),%edx                
  10cc18:	52                   	push   %edx                           
  10cc19:	50                   	push   %eax                           
  10cc1a:	e8 5d 20 00 00       	call   10ec7c <_Thread_Get>           
  switch ( location ) {                                               
  10cc1f:	83 c4 10             	add    $0x10,%esp                     
  10cc22:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10cc25:	85 d2                	test   %edx,%edx                      
  10cc27:	75 47                	jne    10cc70 <rtems_task_set_note+0x8c>
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      api->Notepads[ notepad ] = note;                                
  10cc29:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax                
  10cc2f:	89 74 98 20          	mov    %esi,0x20(%eax,%ebx,4)         
      _Thread_Enable_dispatch();                                      
  10cc33:	e8 20 20 00 00       	call   10ec58 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10cc38:	31 c0                	xor    %eax,%eax                      
  10cc3a:	eb 05                	jmp    10cc41 <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;                                      
  10cc3c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10cc41:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cc44:	5b                   	pop    %ebx                           
  10cc45:	5e                   	pop    %esi                           
  10cc46:	c9                   	leave                                 
  10cc47:	c3                   	ret                                   
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
  10cc48:	8b 15 98 c0 12 00    	mov    0x12c098,%edx                  
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      api->Notepads[ notepad ] = note;                                
  10cc4e:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax                
  10cc54:	89 74 98 20          	mov    %esi,0x20(%eax,%ebx,4)         
      return RTEMS_SUCCESSFUL;                                        
  10cc58:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10cc5a:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cc5d:	5b                   	pop    %ebx                           
  10cc5e:	5e                   	pop    %esi                           
  10cc5f:	c9                   	leave                                 
  10cc60:	c3                   	ret                                   
  10cc61:	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;                                      
  10cc64:	b8 16 00 00 00       	mov    $0x16,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10cc69:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cc6c:	5b                   	pop    %ebx                           
  10cc6d:	5e                   	pop    %esi                           
  10cc6e:	c9                   	leave                                 
  10cc6f:	c3                   	ret                                   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10cc70:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10cc75:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10cc78:	5b                   	pop    %ebx                           
  10cc79:	5e                   	pop    %esi                           
  10cc7a:	c9                   	leave                                 
  10cc7b:	c3                   	ret                                   
                                                                      

0010ee88 <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
  10ee88:	55                   	push   %ebp                           
  10ee89:	89 e5                	mov    %esp,%ebp                      
  10ee8b:	56                   	push   %esi                           
  10ee8c:	53                   	push   %ebx                           
  10ee8d:	83 ec 10             	sub    $0x10,%esp                     
  10ee90:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10ee93:	8b 75 10             	mov    0x10(%ebp),%esi                
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
  10ee96:	85 db                	test   %ebx,%ebx                      
  10ee98:	74 0b                	je     10eea5 <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 ) );             
  10ee9a:	0f b6 05 34 74 12 00 	movzbl 0x127434,%eax                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  10eea1:	39 c3                	cmp    %eax,%ebx                      
  10eea3:	77 5f                	ja     10ef04 <rtems_task_set_priority+0x7c>
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
  10eea5:	85 f6                	test   %esi,%esi                      
  10eea7:	74 67                	je     10ef10 <rtems_task_set_priority+0x88>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10eea9:	83 ec 08             	sub    $0x8,%esp                      
  10eeac:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10eeaf:	50                   	push   %eax                           
  10eeb0:	ff 75 08             	pushl  0x8(%ebp)                      
  10eeb3:	e8 dc 1f 00 00       	call   110e94 <_Thread_Get>           
  switch ( location ) {                                               
  10eeb8:	83 c4 10             	add    $0x10,%esp                     
  10eebb:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10eebe:	85 d2                	test   %edx,%edx                      
  10eec0:	75 36                	jne    10eef8 <rtems_task_set_priority+0x70>
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
  10eec2:	8b 50 14             	mov    0x14(%eax),%edx                
  10eec5:	89 16                	mov    %edx,(%esi)                    
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
  10eec7:	85 db                	test   %ebx,%ebx                      
  10eec9:	74 1c                	je     10eee7 <rtems_task_set_priority+0x5f>
        the_thread->real_priority = new_priority;                     
  10eecb:	89 58 18             	mov    %ebx,0x18(%eax)                
        if ( the_thread->resource_count == 0 ||                       
  10eece:	8b 48 1c             	mov    0x1c(%eax),%ecx                
  10eed1:	85 c9                	test   %ecx,%ecx                      
  10eed3:	74 05                	je     10eeda <rtems_task_set_priority+0x52>
  10eed5:	3b 58 14             	cmp    0x14(%eax),%ebx                
  10eed8:	73 0d                	jae    10eee7 <rtems_task_set_priority+0x5f><== ALWAYS TAKEN
             the_thread->current_priority > new_priority )            
          _Thread_Change_priority( the_thread, new_priority, false ); 
  10eeda:	52                   	push   %edx                           
  10eedb:	6a 00                	push   $0x0                           
  10eedd:	53                   	push   %ebx                           
  10eede:	50                   	push   %eax                           
  10eedf:	e8 54 1b 00 00       	call   110a38 <_Thread_Change_priority>
  10eee4:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10eee7:	e8 84 1f 00 00       	call   110e70 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10eeec:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10eeee:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10eef1:	5b                   	pop    %ebx                           
  10eef2:	5e                   	pop    %esi                           
  10eef3:	c9                   	leave                                 
  10eef4:	c3                   	ret                                   
  10eef5:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10eef8:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10eefd:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ef00:	5b                   	pop    %ebx                           
  10ef01:	5e                   	pop    %esi                           
  10ef02:	c9                   	leave                                 
  10ef03:	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;                                    
  10ef04:	b8 13 00 00 00       	mov    $0x13,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ef09:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ef0c:	5b                   	pop    %ebx                           
  10ef0d:	5e                   	pop    %esi                           
  10ef0e:	c9                   	leave                                 
  10ef0f:	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;                                     
  10ef10:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10ef15:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ef18:	5b                   	pop    %ebx                           
  10ef19:	5e                   	pop    %esi                           
  10ef1a:	c9                   	leave                                 
  10ef1b:	c3                   	ret                                   
                                                                      

0010afec <rtems_task_start>: rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) {
  10afec:	55                   	push   %ebp                           
  10afed:	89 e5                	mov    %esp,%ebp                      
  10afef:	53                   	push   %ebx                           
  10aff0:	83 ec 14             	sub    $0x14,%esp                     
  10aff3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
  10aff6:	85 db                	test   %ebx,%ebx                      
  10aff8:	74 4e                	je     10b048 <rtems_task_start+0x5c> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  10affa:	83 ec 08             	sub    $0x8,%esp                      
  10affd:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10b000:	50                   	push   %eax                           
  10b001:	ff 75 08             	pushl  0x8(%ebp)                      
  10b004:	e8 9b 1d 00 00       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  10b009:	83 c4 10             	add    $0x10,%esp                     
  10b00c:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10b00f:	85 d2                	test   %edx,%edx                      
  10b011:	75 29                	jne    10b03c <rtems_task_start+0x50> 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Start(                                             
  10b013:	83 ec 0c             	sub    $0xc,%esp                      
  10b016:	ff 75 10             	pushl  0x10(%ebp)                     
  10b019:	6a 00                	push   $0x0                           
  10b01b:	53                   	push   %ebx                           
  10b01c:	6a 00                	push   $0x0                           
  10b01e:	50                   	push   %eax                           
  10b01f:	e8 e8 26 00 00       	call   10d70c <_Thread_Start>         
  10b024:	83 c4 20             	add    $0x20,%esp                     
  10b027:	84 c0                	test   %al,%al                        
  10b029:	75 29                	jne    10b054 <rtems_task_start+0x68> 
             the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  10b02b:	e8 50 1d 00 00       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_INCORRECT_STATE;                                   
  10b030:	b8 0e 00 00 00       	mov    $0xe,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b035:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b038:	c9                   	leave                                 
  10b039:	c3                   	ret                                   
  10b03a:	66 90                	xchg   %ax,%ax                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b03c:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b041:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b044:	c9                   	leave                                 
  10b045:	c3                   	ret                                   
  10b046:	66 90                	xchg   %ax,%ax                        
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10b048:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b04d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b050:	c9                   	leave                                 
  10b051:	c3                   	ret                                   
  10b052:	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();                                    
  10b054:	e8 27 1d 00 00       	call   10cd80 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  10b059:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b05b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b05e:	c9                   	leave                                 
  10b05f:	c3                   	ret                                   
                                                                      

001107d4 <rtems_task_suspend>: */ rtems_status_code rtems_task_suspend( rtems_id id ) {
  1107d4:	55                   	push   %ebp                           
  1107d5:	89 e5                	mov    %esp,%ebp                      
  1107d7:	83 ec 20             	sub    $0x20,%esp                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  1107da:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1107dd:	50                   	push   %eax                           
  1107de:	ff 75 08             	pushl  0x8(%ebp)                      
  1107e1:	e8 be c5 ff ff       	call   10cda4 <_Thread_Get>           
  switch ( location ) {                                               
  1107e6:	83 c4 10             	add    $0x10,%esp                     
  1107e9:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  1107ec:	85 d2                	test   %edx,%edx                      
  1107ee:	74 08                	je     1107f8 <rtems_task_suspend+0x24>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1107f0:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1107f5:	c9                   	leave                                 
  1107f6:	c3                   	ret                                   
  1107f7:	90                   	nop                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
  1107f8:	f6 40 10 02          	testb  $0x2,0x10(%eax)                
  1107fc:	74 0e                	je     11080c <rtems_task_suspend+0x38>
        _Thread_Suspend( the_thread );                                
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  1107fe:	e8 7d c5 ff ff       	call   10cd80 <_Thread_Enable_dispatch>
      return RTEMS_ALREADY_SUSPENDED;                                 
  110803:	b8 0f 00 00 00       	mov    $0xf,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  110808:	c9                   	leave                                 
  110809:	c3                   	ret                                   
  11080a:	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 );                                
  11080c:	83 ec 08             	sub    $0x8,%esp                      
  11080f:	6a 02                	push   $0x2                           
  110811:	50                   	push   %eax                           
  110812:	e8 8d cd ff ff       	call   10d5a4 <_Thread_Set_state>     
        _Thread_Enable_dispatch();                                    
  110817:	e8 64 c5 ff ff       	call   10cd80 <_Thread_Enable_dispatch>
        return RTEMS_SUCCESSFUL;                                      
  11081c:	83 c4 10             	add    $0x10,%esp                     
  11081f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  110821:	c9                   	leave                                 
  110822:	c3                   	ret                                   
                                                                      

0010bb48 <rtems_task_variable_add>: rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) {
  10bb48:	55                   	push   %ebp                           
  10bb49:	89 e5                	mov    %esp,%ebp                      
  10bb4b:	57                   	push   %edi                           
  10bb4c:	56                   	push   %esi                           
  10bb4d:	53                   	push   %ebx                           
  10bb4e:	83 ec 1c             	sub    $0x1c,%esp                     
  10bb51:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10bb54:	8b 7d 10             	mov    0x10(%ebp),%edi                
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
  10bb57:	85 db                	test   %ebx,%ebx                      
  10bb59:	0f 84 9d 00 00 00    	je     10bbfc <rtems_task_variable_add+0xb4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10bb5f:	83 ec 08             	sub    $0x8,%esp                      
  10bb62:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10bb65:	50                   	push   %eax                           
  10bb66:	ff 75 08             	pushl  0x8(%ebp)                      
  10bb69:	e8 ce 1e 00 00       	call   10da3c <_Thread_Get>           
  10bb6e:	89 c6                	mov    %eax,%esi                      
  switch (location) {                                                 
  10bb70:	83 c4 10             	add    $0x10,%esp                     
  10bb73:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  10bb76:	85 c0                	test   %eax,%eax                      
  10bb78:	74 0e                	je     10bb88 <rtems_task_variable_add+0x40>
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  10bb7a:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bb7f:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bb82:	5b                   	pop    %ebx                           
  10bb83:	5e                   	pop    %esi                           
  10bb84:	5f                   	pop    %edi                           
  10bb85:	c9                   	leave                                 
  10bb86:	c3                   	ret                                   
  10bb87:	90                   	nop                                   
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
  10bb88:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax                
      while (tvp) {                                                   
  10bb8e:	85 c0                	test   %eax,%eax                      
  10bb90:	75 44                	jne    10bbd6 <rtems_task_variable_add+0x8e>
  10bb92:	66 90                	xchg   %ax,%ax                        
                                                                      
      /*                                                              
       *  Now allocate memory for this task variable.                 
       */                                                             
      new = (rtems_task_variable_t *)                                 
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
  10bb94:	83 ec 0c             	sub    $0xc,%esp                      
  10bb97:	6a 14                	push   $0x14                          
  10bb99:	e8 56 2e 00 00       	call   10e9f4 <_Workspace_Allocate>   
      if (new == NULL) {                                              
  10bb9e:	83 c4 10             	add    $0x10,%esp                     
  10bba1:	85 c0                	test   %eax,%eax                      
  10bba3:	74 4b                	je     10bbf0 <rtems_task_variable_add+0xa8>
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
  10bba5:	8b 13                	mov    (%ebx),%edx                    
  10bba7:	89 50 08             	mov    %edx,0x8(%eax)                 
      new->ptr = ptr;                                                 
  10bbaa:	89 58 04             	mov    %ebx,0x4(%eax)                 
      new->dtor = dtor;                                               
  10bbad:	89 78 10             	mov    %edi,0x10(%eax)                
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
  10bbb0:	8b 96 f4 00 00 00    	mov    0xf4(%esi),%edx                
  10bbb6:	89 10                	mov    %edx,(%eax)                    
      the_thread->task_variables = new;                               
  10bbb8:	89 86 f4 00 00 00    	mov    %eax,0xf4(%esi)                
      _Thread_Enable_dispatch();                                      
  10bbbe:	e8 55 1e 00 00       	call   10da18 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10bbc3:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bbc5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bbc8:	5b                   	pop    %ebx                           
  10bbc9:	5e                   	pop    %esi                           
  10bbca:	5f                   	pop    %edi                           
  10bbcb:	c9                   	leave                                 
  10bbcc:	c3                   	ret                                   
  10bbcd:	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;                     
  10bbd0:	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) {                                                   
  10bbd2:	85 c0                	test   %eax,%eax                      
  10bbd4:	74 be                	je     10bb94 <rtems_task_variable_add+0x4c>
        if (tvp->ptr == ptr) {                                        
  10bbd6:	39 58 04             	cmp    %ebx,0x4(%eax)                 
  10bbd9:	75 f5                	jne    10bbd0 <rtems_task_variable_add+0x88>
          tvp->dtor = dtor;                                           
  10bbdb:	89 78 10             	mov    %edi,0x10(%eax)                
          _Thread_Enable_dispatch();                                  
  10bbde:	e8 35 1e 00 00       	call   10da18 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10bbe3:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bbe5:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bbe8:	5b                   	pop    %ebx                           
  10bbe9:	5e                   	pop    %esi                           
  10bbea:	5f                   	pop    %edi                           
  10bbeb:	c9                   	leave                                 
  10bbec:	c3                   	ret                                   
  10bbed:	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();                                    
  10bbf0:	e8 23 1e 00 00       	call   10da18 <_Thread_Enable_dispatch>
        return RTEMS_NO_MEMORY;                                       
  10bbf5:	b8 1a 00 00 00       	mov    $0x1a,%eax                     
  10bbfa:	eb 83                	jmp    10bb7f <rtems_task_variable_add+0x37>
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
  10bbfc:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bc01:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10bc04:	5b                   	pop    %ebx                           
  10bc05:	5e                   	pop    %esi                           
  10bc06:	5f                   	pop    %edi                           
  10bc07:	c9                   	leave                                 
  10bc08:	c3                   	ret                                   
                                                                      

0010bc0c <rtems_task_variable_delete>: rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) {
  10bc0c:	55                   	push   %ebp                           
  10bc0d:	89 e5                	mov    %esp,%ebp                      
  10bc0f:	53                   	push   %ebx                           
  10bc10:	83 ec 14             	sub    $0x14,%esp                     
  10bc13:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
  10bc16:	85 db                	test   %ebx,%ebx                      
  10bc18:	74 76                	je     10bc90 <rtems_task_variable_delete+0x84>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10bc1a:	83 ec 08             	sub    $0x8,%esp                      
  10bc1d:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bc20:	50                   	push   %eax                           
  10bc21:	ff 75 08             	pushl  0x8(%ebp)                      
  10bc24:	e8 13 1e 00 00       	call   10da3c <_Thread_Get>           
  switch (location) {                                                 
  10bc29:	83 c4 10             	add    $0x10,%esp                     
  10bc2c:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bc2f:	85 d2                	test   %edx,%edx                      
  10bc31:	74 0d                	je     10bc40 <rtems_task_variable_delete+0x34>
                                                                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10bc33:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bc38:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bc3b:	c9                   	leave                                 
  10bc3c:	c3                   	ret                                   
  10bc3d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
  10bc40:	8b 88 f4 00 00 00    	mov    0xf4(%eax),%ecx                
      while (tvp) {                                                   
  10bc46:	85 c9                	test   %ecx,%ecx                      
  10bc48:	74 17                	je     10bc61 <rtems_task_variable_delete+0x55>
        if (tvp->ptr == ptr) {                                        
  10bc4a:	39 59 04             	cmp    %ebx,0x4(%ecx)                 
  10bc4d:	75 0c                	jne    10bc5b <rtems_task_variable_delete+0x4f>
  10bc4f:	eb 49                	jmp    10bc9a <rtems_task_variable_delete+0x8e>
  10bc51:	8d 76 00             	lea    0x0(%esi),%esi                 
  10bc54:	39 5a 04             	cmp    %ebx,0x4(%edx)                 
  10bc57:	74 17                	je     10bc70 <rtems_task_variable_delete+0x64>
  10bc59:	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;                     
  10bc5b:	8b 11                	mov    (%ecx),%edx                    
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
  10bc5d:	85 d2                	test   %edx,%edx                      
  10bc5f:	75 f3                	jne    10bc54 <rtems_task_variable_delete+0x48><== ALWAYS TAKEN
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10bc61:	e8 b2 1d 00 00       	call   10da18 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  10bc66:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bc6b:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bc6e:	c9                   	leave                                 
  10bc6f:	c3                   	ret                                   
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
  10bc70:	8b 1a                	mov    (%edx),%ebx                    
  10bc72:	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 );  
  10bc74:	83 ec 08             	sub    $0x8,%esp                      
  10bc77:	52                   	push   %edx                           
  10bc78:	50                   	push   %eax                           
  10bc79:	e8 b2 00 00 00       	call   10bd30 <_RTEMS_Tasks_Invoke_task_variable_dtor>
          _Thread_Enable_dispatch();                                  
  10bc7e:	e8 95 1d 00 00       	call   10da18 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10bc83:	83 c4 10             	add    $0x10,%esp                     
  10bc86:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bc88:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bc8b:	c9                   	leave                                 
  10bc8c:	c3                   	ret                                   
  10bc8d:	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;                                     
  10bc90:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bc95:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bc98:	c9                   	leave                                 
  10bc99:	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;
  10bc9a:	8b 11                	mov    (%ecx),%edx                    
  10bc9c:	89 90 f4 00 00 00    	mov    %edx,0xf4(%eax)                
  10bca2:	89 ca                	mov    %ecx,%edx                      
  10bca4:	eb ce                	jmp    10bc74 <rtems_task_variable_delete+0x68>
                                                                      

0010bca8 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
  10bca8:	55                   	push   %ebp                           
  10bca9:	89 e5                	mov    %esp,%ebp                      
  10bcab:	56                   	push   %esi                           
  10bcac:	53                   	push   %ebx                           
  10bcad:	83 ec 10             	sub    $0x10,%esp                     
  10bcb0:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10bcb3:	8b 75 10             	mov    0x10(%ebp),%esi                
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
  10bcb6:	85 db                	test   %ebx,%ebx                      
  10bcb8:	74 56                	je     10bd10 <rtems_task_variable_get+0x68>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
  10bcba:	85 f6                	test   %esi,%esi                      
  10bcbc:	74 52                	je     10bd10 <rtems_task_variable_get+0x68>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  10bcbe:	83 ec 08             	sub    $0x8,%esp                      
  10bcc1:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bcc4:	50                   	push   %eax                           
  10bcc5:	ff 75 08             	pushl  0x8(%ebp)                      
  10bcc8:	e8 6f 1d 00 00       	call   10da3c <_Thread_Get>           
  switch (location) {                                                 
  10bccd:	83 c4 10             	add    $0x10,%esp                     
  10bcd0:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10bcd3:	85 d2                	test   %edx,%edx                      
  10bcd5:	75 2d                	jne    10bd04 <rtems_task_variable_get+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
  10bcd7:	8b 80 f4 00 00 00    	mov    0xf4(%eax),%eax                
      while (tvp) {                                                   
  10bcdd:	85 c0                	test   %eax,%eax                      
  10bcdf:	75 09                	jne    10bcea <rtems_task_variable_get+0x42>
  10bce1:	eb 39                	jmp    10bd1c <rtems_task_variable_get+0x74>
  10bce3:	90                   	nop                                   
	   */                                                                
          *result = tvp->tval;                                        
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
  10bce4:	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) {                                                   
  10bce6:	85 c0                	test   %eax,%eax                      
  10bce8:	74 32                	je     10bd1c <rtems_task_variable_get+0x74><== NEVER TAKEN
        if (tvp->ptr == ptr) {                                        
  10bcea:	39 58 04             	cmp    %ebx,0x4(%eax)                 
  10bced:	75 f5                	jne    10bce4 <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;                                        
  10bcef:	8b 40 0c             	mov    0xc(%eax),%eax                 
  10bcf2:	89 06                	mov    %eax,(%esi)                    
          _Thread_Enable_dispatch();                                  
  10bcf4:	e8 1f 1d 00 00       	call   10da18 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10bcf9:	31 c0                	xor    %eax,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bcfb:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bcfe:	5b                   	pop    %ebx                           
  10bcff:	5e                   	pop    %esi                           
  10bd00:	c9                   	leave                                 
  10bd01:	c3                   	ret                                   
  10bd02:	66 90                	xchg   %ax,%ax                        
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
  10bd04:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10bd09:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd0c:	5b                   	pop    %ebx                           
  10bd0d:	5e                   	pop    %esi                           
  10bd0e:	c9                   	leave                                 
  10bd0f:	c3                   	ret                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
  10bd10:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bd15:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd18:	5b                   	pop    %ebx                           
  10bd19:	5e                   	pop    %esi                           
  10bd1a:	c9                   	leave                                 
  10bd1b:	c3                   	ret                                   
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
  10bd1c:	e8 f7 1c 00 00       	call   10da18 <_Thread_Enable_dispatch>
      return RTEMS_INVALID_ADDRESS;                                   
  10bd21:	b8 09 00 00 00       	mov    $0x9,%eax                      
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10bd26:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bd29:	5b                   	pop    %ebx                           
  10bd2a:	5e                   	pop    %esi                           
  10bd2b:	c9                   	leave                                 
  10bd2c:	c3                   	ret                                   
                                                                      

0010bea8 <rtems_task_wake_when>: */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) {
  10bea8:	55                   	push   %ebp                           
  10bea9:	89 e5                	mov    %esp,%ebp                      
  10beab:	53                   	push   %ebx                           
  10beac:	83 ec 14             	sub    $0x14,%esp                     
  10beaf:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
  10beb2:	80 3d 9c 95 12 00 00 	cmpb   $0x0,0x12959c                  
  10beb9:	0f 84 a9 00 00 00    	je     10bf68 <rtems_task_wake_when+0xc0>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
  10bebf:	85 db                	test   %ebx,%ebx                      
  10bec1:	0f 84 ad 00 00 00    	je     10bf74 <rtems_task_wake_when+0xcc>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
  10bec7:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)                
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
  10bece:	83 ec 0c             	sub    $0xc,%esp                      
  10bed1:	53                   	push   %ebx                           
  10bed2:	e8 81 f4 ff ff       	call   10b358 <_TOD_Validate>         
  10bed7:	83 c4 10             	add    $0x10,%esp                     
  10beda:	84 c0                	test   %al,%al                        
  10bedc:	75 0a                	jne    10bee8 <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;                                       
  10bede:	b8 14 00 00 00       	mov    $0x14,%eax                     
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10bee3:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bee6:	c9                   	leave                                 
  10bee7:	c3                   	ret                                   
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
  10bee8:	83 ec 0c             	sub    $0xc,%esp                      
  10beeb:	53                   	push   %ebx                           
  10beec:	e8 db f3 ff ff       	call   10b2cc <_TOD_To_seconds>       
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  10bef1:	83 c4 10             	add    $0x10,%esp                     
  10bef4:	3b 05 28 96 12 00    	cmp    0x129628,%eax                  
  10befa:	76 e2                	jbe    10bede <rtems_task_wake_when+0x36>
  10befc:	8b 15 8c 95 12 00    	mov    0x12958c,%edx                  
  10bf02:	42                   	inc    %edx                           
  10bf03:	89 15 8c 95 12 00    	mov    %edx,0x12958c                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
  10bf09:	83 ec 08             	sub    $0x8,%esp                      
  10bf0c:	6a 10                	push   $0x10                          
  10bf0e:	ff 35 38 9b 12 00    	pushl  0x129b38                       
  10bf14:	89 45 f4             	mov    %eax,-0xc(%ebp)                
  10bf17:	e8 50 25 00 00       	call   10e46c <_Thread_Set_state>     
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
  10bf1c:	8b 15 38 9b 12 00    	mov    0x129b38,%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(                                             
  10bf22:	8b 4a 08             	mov    0x8(%edx),%ecx                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10bf25:	c7 42 50 00 00 00 00 	movl   $0x0,0x50(%edx)                
  the_watchdog->routine   = routine;                                  
  10bf2c:	c7 42 64 94 da 10 00 	movl   $0x10da94,0x64(%edx)           
  the_watchdog->id        = id;                                       
  10bf33:	89 4a 68             	mov    %ecx,0x68(%edx)                
  the_watchdog->user_data = user_data;                                
  10bf36:	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(                                         
  10bf3d:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10bf40:	2b 05 28 96 12 00    	sub    0x129628,%eax                  
  10bf46:	89 42 54             	mov    %eax,0x54(%edx)                
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
  10bf49:	58                   	pop    %eax                           
  10bf4a:	59                   	pop    %ecx                           
  10bf4b:	83 c2 48             	add    $0x48,%edx                     
  10bf4e:	52                   	push   %edx                           
  10bf4f:	68 54 96 12 00       	push   $0x129654                      
  10bf54:	e8 db 2a 00 00       	call   10ea34 <_Watchdog_Insert>      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  10bf59:	e8 ea 1c 00 00       	call   10dc48 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10bf5e:	83 c4 10             	add    $0x10,%esp                     
  10bf61:	31 c0                	xor    %eax,%eax                      
  10bf63:	e9 7b ff ff ff       	jmp    10bee3 <rtems_task_wake_when+0x3b>
)                                                                     
{                                                                     
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
  10bf68:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10bf6d:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bf70:	c9                   	leave                                 
  10bf71:	c3                   	ret                                   
  10bf72:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
  10bf74:	b8 09 00 00 00       	mov    $0x9,%eax                      
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10bf79:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bf7c:	c9                   	leave                                 
  10bf7d:	c3                   	ret                                   
                                                                      

00117cfc <rtems_timer_cancel>: */ rtems_status_code rtems_timer_cancel( rtems_id id ) {
  117cfc:	55                   	push   %ebp                           
  117cfd:	89 e5                	mov    %esp,%ebp                      
  117cff:	83 ec 1c             	sub    $0x1c,%esp                     
  Timer_Control   *the_timer;                                         
  Objects_Locations       location;                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  117d02:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  117d05:	50                   	push   %eax                           
  117d06:	ff 75 08             	pushl  0x8(%ebp)                      
  117d09:	68 e0 2a 14 00       	push   $0x142ae0                      
  117d0e:	e8 e9 2b 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  117d13:	83 c4 10             	add    $0x10,%esp                     
  117d16:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  117d19:	85 d2                	test   %edx,%edx                      
  117d1b:	74 07                	je     117d24 <rtems_timer_cancel+0x28>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  117d1d:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  117d22:	c9                   	leave                                 
  117d23:	c3                   	ret                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Timer_Is_dormant_class( the_timer->the_class ) )         
  117d24:	83 78 38 04          	cmpl   $0x4,0x38(%eax)                
  117d28:	74 0f                	je     117d39 <rtems_timer_cancel+0x3d><== NEVER TAKEN
        (void) _Watchdog_Remove( &the_timer->Ticker );                
  117d2a:	83 ec 0c             	sub    $0xc,%esp                      
  117d2d:	83 c0 10             	add    $0x10,%eax                     
  117d30:	50                   	push   %eax                           
  117d31:	e8 16 48 00 00       	call   11c54c <_Watchdog_Remove>      
  117d36:	83 c4 10             	add    $0x10,%esp                     
      _Thread_Enable_dispatch();                                      
  117d39:	e8 46 37 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  117d3e:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117d40:	c9                   	leave                                 
  117d41:	c3                   	ret                                   
                                                                      

0010b4d8 <rtems_timer_create>: rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id ) {
  10b4d8:	55                   	push   %ebp                           
  10b4d9:	89 e5                	mov    %esp,%ebp                      
  10b4db:	57                   	push   %edi                           
  10b4dc:	56                   	push   %esi                           
  10b4dd:	53                   	push   %ebx                           
  10b4de:	83 ec 0c             	sub    $0xc,%esp                      
  10b4e1:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b4e4:	8b 75 0c             	mov    0xc(%ebp),%esi                 
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
  10b4e7:	85 db                	test   %ebx,%ebx                      
  10b4e9:	74 6d                	je     10b558 <rtems_timer_create+0x80>
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
  10b4eb:	85 f6                	test   %esi,%esi                      
  10b4ed:	0f 84 89 00 00 00    	je     10b57c <rtems_timer_create+0xa4>
  10b4f3:	a1 cc 91 12 00       	mov    0x1291cc,%eax                  
  10b4f8:	40                   	inc    %eax                           
  10b4f9:	a3 cc 91 12 00       	mov    %eax,0x1291cc                  
 *  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 );  
  10b4fe:	83 ec 0c             	sub    $0xc,%esp                      
  10b501:	68 c0 9b 12 00       	push   $0x129bc0                      
  10b506:	e8 f9 0d 00 00       	call   10c304 <_Objects_Allocate>     
                                                                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
  10b50b:	83 c4 10             	add    $0x10,%esp                     
  10b50e:	85 c0                	test   %eax,%eax                      
  10b510:	74 56                	je     10b568 <rtems_timer_create+0x90>
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_timer->the_class = TIMER_DORMANT;                               
  10b512:	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;                        
  10b519:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10b520:	c7 40 2c 00 00 00 00 	movl   $0x0,0x2c(%eax)                
  the_watchdog->id        = id;                                       
  10b527:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10b52e:	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 ),                             
  10b535:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10b538:	0f b7 fa             	movzwl %dx,%edi                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10b53b:	8b 0d dc 9b 12 00    	mov    0x129bdc,%ecx                  
  10b541:	89 04 b9             	mov    %eax,(%ecx,%edi,4)             
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
  10b544:	89 58 0c             	mov    %ebx,0xc(%eax)                 
    &_Timer_Information,                                              
    &the_timer->Object,                                               
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  10b547:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10b549:	e8 7a 1d 00 00       	call   10d2c8 <_Thread_Enable_dispatch>
  return RTEMS_SUCCESSFUL;                                            
  10b54e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b550:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b553:	5b                   	pop    %ebx                           
  10b554:	5e                   	pop    %esi                           
  10b555:	5f                   	pop    %edi                           
  10b556:	c9                   	leave                                 
  10b557:	c3                   	ret                                   
)                                                                     
{                                                                     
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
  10b558:	b8 03 00 00 00       	mov    $0x3,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b55d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b560:	5b                   	pop    %ebx                           
  10b561:	5e                   	pop    %esi                           
  10b562:	5f                   	pop    %edi                           
  10b563:	c9                   	leave                                 
  10b564:	c3                   	ret                                   
  10b565:	8d 76 00             	lea    0x0(%esi),%esi                 
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
    _Thread_Enable_dispatch();                                        
  10b568:	e8 5b 1d 00 00       	call   10d2c8 <_Thread_Enable_dispatch>
    return RTEMS_TOO_MANY;                                            
  10b56d:	b8 05 00 00 00       	mov    $0x5,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b572:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b575:	5b                   	pop    %ebx                           
  10b576:	5e                   	pop    %esi                           
  10b577:	5f                   	pop    %edi                           
  10b578:	c9                   	leave                                 
  10b579:	c3                   	ret                                   
  10b57a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
  10b57c:	b8 09 00 00 00       	mov    $0x9,%eax                      
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
  10b581:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b584:	5b                   	pop    %ebx                           
  10b585:	5e                   	pop    %esi                           
  10b586:	5f                   	pop    %edi                           
  10b587:	c9                   	leave                                 
  10b588:	c3                   	ret                                   
                                                                      

00117df8 <rtems_timer_delete>: */ rtems_status_code rtems_timer_delete( rtems_id id ) {
  117df8:	55                   	push   %ebp                           
  117df9:	89 e5                	mov    %esp,%ebp                      
  117dfb:	53                   	push   %ebx                           
  117dfc:	83 ec 18             	sub    $0x18,%esp                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  117dff:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  117e02:	50                   	push   %eax                           
  117e03:	ff 75 08             	pushl  0x8(%ebp)                      
  117e06:	68 e0 2a 14 00       	push   $0x142ae0                      
  117e0b:	e8 ec 2a 00 00       	call   11a8fc <_Objects_Get>          
  117e10:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  117e12:	83 c4 10             	add    $0x10,%esp                     
  117e15:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  117e18:	85 c9                	test   %ecx,%ecx                      
  117e1a:	75 38                	jne    117e54 <rtems_timer_delete+0x5c>
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_Timer_Information, &the_timer->Object );      
  117e1c:	83 ec 08             	sub    $0x8,%esp                      
  117e1f:	50                   	push   %eax                           
  117e20:	68 e0 2a 14 00       	push   $0x142ae0                      
  117e25:	e8 5e 26 00 00       	call   11a488 <_Objects_Close>        
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  117e2a:	8d 43 10             	lea    0x10(%ebx),%eax                
  117e2d:	89 04 24             	mov    %eax,(%esp)                    
  117e30:	e8 17 47 00 00       	call   11c54c <_Watchdog_Remove>      
 */                                                                   
RTEMS_INLINE_ROUTINE void _Timer_Free (                               
  Timer_Control *the_timer                                            
)                                                                     
{                                                                     
  _Objects_Free( &_Timer_Information, &the_timer->Object );           
  117e35:	58                   	pop    %eax                           
  117e36:	5a                   	pop    %edx                           
  117e37:	53                   	push   %ebx                           
  117e38:	68 e0 2a 14 00       	push   $0x142ae0                      
  117e3d:	e8 3e 29 00 00       	call   11a780 <_Objects_Free>         
      _Timer_Free( the_timer );                                       
      _Thread_Enable_dispatch();                                      
  117e42:	e8 3d 36 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  117e47:	83 c4 10             	add    $0x10,%esp                     
  117e4a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117e4c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117e4f:	c9                   	leave                                 
  117e50:	c3                   	ret                                   
  117e51:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  117e54:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  117e59:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  117e5c:	c9                   	leave                                 
  117e5d:	c3                   	ret                                   
                                                                      

0010b58c <rtems_timer_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
  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 2c             	sub    $0x2c,%esp                     
  10b595:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10b598:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
  10b59b:	85 db                	test   %ebx,%ebx                      
  10b59d:	0f 84 99 00 00 00    	je     10b63c <rtems_timer_fire_after+0xb0>
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
  10b5a3:	85 f6                	test   %esi,%esi                      
  10b5a5:	0f 84 b1 00 00 00    	je     10b65c <rtems_timer_fire_after+0xd0>
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
  10b5ab:	57                   	push   %edi                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  10b5ac:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10b5af:	50                   	push   %eax                           
  10b5b0:	ff 75 08             	pushl  0x8(%ebp)                      
  10b5b3:	68 c0 9b 12 00       	push   $0x129bc0                      
  10b5b8:	e8 fb 11 00 00       	call   10c7b8 <_Objects_Get>          
  10b5bd:	89 c7                	mov    %eax,%edi                      
  switch ( location ) {                                               
  10b5bf:	83 c4 10             	add    $0x10,%esp                     
  10b5c2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  10b5c5:	85 c9                	test   %ecx,%ecx                      
  10b5c7:	74 0f                	je     10b5d8 <rtems_timer_fire_after+0x4c>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  10b5c9:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  10b5ce:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b5d1:	5b                   	pop    %ebx                           
  10b5d2:	5e                   	pop    %esi                           
  10b5d3:	5f                   	pop    %edi                           
  10b5d4:	c9                   	leave                                 
  10b5d5:	c3                   	ret                                   
  10b5d6:	66 90                	xchg   %ax,%ax                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  10b5d8:	8d 50 10             	lea    0x10(%eax),%edx                
  10b5db:	83 ec 0c             	sub    $0xc,%esp                      
  10b5de:	52                   	push   %edx                           
  10b5df:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  10b5e2:	e8 95 2b 00 00       	call   10e17c <_Watchdog_Remove>      
                                                                      
      _ISR_Disable( level );                                          
  10b5e7:	9c                   	pushf                                 
  10b5e8:	fa                   	cli                                   
  10b5e9:	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 ) {         
  10b5ea:	83 c4 10             	add    $0x10,%esp                     
  10b5ed:	8b 57 18             	mov    0x18(%edi),%edx                
  10b5f0:	85 d2                	test   %edx,%edx                      
  10b5f2:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  10b5f5:	75 55                	jne    10b64c <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;                        
  10b5f7:	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;                        
  10b5fe:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)                
  the_watchdog->routine   = routine;                                  
  10b605:	89 77 2c             	mov    %esi,0x2c(%edi)                
  the_watchdog->id        = id;                                       
  10b608:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  10b60b:	89 4f 30             	mov    %ecx,0x30(%edi)                
  the_watchdog->user_data = user_data;                                
  10b60e:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  10b611:	89 4f 34             	mov    %ecx,0x34(%edi)                
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _ISR_Enable( level );                                           
  10b614:	50                   	push   %eax                           
  10b615:	9d                   	popf                                  
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10b616:	89 5f 1c             	mov    %ebx,0x1c(%edi)                
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10b619:	83 ec 08             	sub    $0x8,%esp                      
  10b61c:	52                   	push   %edx                           
  10b61d:	68 a0 92 12 00       	push   $0x1292a0                      
  10b622:	e8 15 2a 00 00       	call   10e03c <_Watchdog_Insert>      
                                                                      
                                                                      
      _Watchdog_Insert_ticks( &the_timer->Ticker, ticks );            
      _Thread_Enable_dispatch();                                      
  10b627:	e8 9c 1c 00 00       	call   10d2c8 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  10b62c:	83 c4 10             	add    $0x10,%esp                     
  10b62f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b631:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b634:	5b                   	pop    %ebx                           
  10b635:	5e                   	pop    %esi                           
  10b636:	5f                   	pop    %edi                           
  10b637:	c9                   	leave                                 
  10b638:	c3                   	ret                                   
  10b639:	8d 76 00             	lea    0x0(%esi),%esi                 
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
  10b63c:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b641:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b644:	5b                   	pop    %ebx                           
  10b645:	5e                   	pop    %esi                           
  10b646:	5f                   	pop    %edi                           
  10b647:	c9                   	leave                                 
  10b648:	c3                   	ret                                   
  10b649:	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 );                                       
  10b64c:	50                   	push   %eax                           
  10b64d:	9d                   	popf                                  
          _Thread_Enable_dispatch();                                  
  10b64e:	e8 75 1c 00 00       	call   10d2c8 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  10b653:	31 c0                	xor    %eax,%eax                      
  10b655:	e9 74 ff ff ff       	jmp    10b5ce <rtems_timer_fire_after+0x42>
  10b65a:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  10b65c:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  10b661:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b664:	5b                   	pop    %ebx                           
  10b665:	5e                   	pop    %esi                           
  10b666:	5f                   	pop    %edi                           
  10b667:	c9                   	leave                                 
  10b668:	c3                   	ret                                   
                                                                      

00117f40 <rtems_timer_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
  117f40:	55                   	push   %ebp                           
  117f41:	89 e5                	mov    %esp,%ebp                      
  117f43:	57                   	push   %edi                           
  117f44:	56                   	push   %esi                           
  117f45:	53                   	push   %ebx                           
  117f46:	83 ec 2c             	sub    $0x2c,%esp                     
  117f49:	8b 75 08             	mov    0x8(%ebp),%esi                 
  117f4c:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  117f4f:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
  117f52:	80 3d bc 20 14 00 00 	cmpb   $0x0,0x1420bc                  
  117f59:	75 0d                	jne    117f68 <rtems_timer_fire_when+0x28>
    return RTEMS_NOT_DEFINED;                                         
  117f5b:	b8 0b 00 00 00       	mov    $0xb,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117f60:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117f63:	5b                   	pop    %ebx                           
  117f64:	5e                   	pop    %esi                           
  117f65:	5f                   	pop    %edi                           
  117f66:	c9                   	leave                                 
  117f67:	c3                   	ret                                   
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
  117f68:	83 ec 0c             	sub    $0xc,%esp                      
  117f6b:	57                   	push   %edi                           
  117f6c:	e8 93 d4 ff ff       	call   115404 <_TOD_Validate>         
  117f71:	83 c4 10             	add    $0x10,%esp                     
  117f74:	84 c0                	test   %al,%al                        
  117f76:	74 1e                	je     117f96 <rtems_timer_fire_when+0x56>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
  117f78:	85 db                	test   %ebx,%ebx                      
  117f7a:	0f 84 a4 00 00 00    	je     118024 <rtems_timer_fire_when+0xe4><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  117f80:	83 ec 0c             	sub    $0xc,%esp                      
  117f83:	57                   	push   %edi                           
  117f84:	e8 ef d3 ff ff       	call   115378 <_TOD_To_seconds>       
  117f89:	89 c7                	mov    %eax,%edi                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  117f8b:	83 c4 10             	add    $0x10,%esp                     
  117f8e:	3b 05 48 21 14 00    	cmp    0x142148,%eax                  
  117f94:	77 0e                	ja     117fa4 <rtems_timer_fire_when+0x64>
    return RTEMS_INVALID_CLOCK;                                       
  117f96:	b8 14 00 00 00       	mov    $0x14,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  117f9b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  117f9e:	5b                   	pop    %ebx                           
  117f9f:	5e                   	pop    %esi                           
  117fa0:	5f                   	pop    %edi                           
  117fa1:	c9                   	leave                                 
  117fa2:	c3                   	ret                                   
  117fa3:	90                   	nop                                   
  117fa4:	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 );                            
  117fa5:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  117fa8:	50                   	push   %eax                           
  117fa9:	56                   	push   %esi                           
  117faa:	68 e0 2a 14 00       	push   $0x142ae0                      
  117faf:	e8 48 29 00 00       	call   11a8fc <_Objects_Get>          
  switch ( location ) {                                               
  117fb4:	83 c4 10             	add    $0x10,%esp                     
  117fb7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx               
  117fba:	85 c9                	test   %ecx,%ecx                      
  117fbc:	75 5a                	jne    118018 <rtems_timer_fire_when+0xd8><== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  117fbe:	8d 48 10             	lea    0x10(%eax),%ecx                
  117fc1:	83 ec 0c             	sub    $0xc,%esp                      
  117fc4:	51                   	push   %ecx                           
  117fc5:	89 45 d0             	mov    %eax,-0x30(%ebp)               
  117fc8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)               
  117fcb:	e8 7c 45 00 00       	call   11c54c <_Watchdog_Remove>      
      the_timer->the_class = TIMER_TIME_OF_DAY;                       
  117fd0:	8b 55 d0             	mov    -0x30(%ebp),%edx               
  117fd3:	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;                        
  117fda:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  117fe1:	89 5a 2c             	mov    %ebx,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  117fe4:	89 72 30             	mov    %esi,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  117fe7:	8b 45 14             	mov    0x14(%ebp),%eax                
  117fea:	89 42 34             	mov    %eax,0x34(%edx)                
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _Watchdog_Insert_seconds(                                       
  117fed:	2b 3d 48 21 14 00    	sub    0x142148,%edi                  
  117ff3:	89 7a 1c             	mov    %edi,0x1c(%edx)                
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
  117ff6:	58                   	pop    %eax                           
  117ff7:	5a                   	pop    %edx                           
  117ff8:	8b 4d d4             	mov    -0x2c(%ebp),%ecx               
  117ffb:	51                   	push   %ecx                           
  117ffc:	68 74 21 14 00       	push   $0x142174                      
  118001:	e8 06 44 00 00       	call   11c40c <_Watchdog_Insert>      
         &the_timer->Ticker,                                          
         seconds - _TOD_Seconds_since_epoch()                         
       );                                                             
      _Thread_Enable_dispatch();                                      
  118006:	e8 79 34 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  11800b:	83 c4 10             	add    $0x10,%esp                     
  11800e:	31 c0                	xor    %eax,%eax                      
  118010:	e9 4b ff ff ff       	jmp    117f60 <rtems_timer_fire_when+0x20>
  118015:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118018:	b8 04 00 00 00       	mov    $0x4,%eax                      
  11801d:	e9 3e ff ff ff       	jmp    117f60 <rtems_timer_fire_when+0x20>
  118022:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118024:	b8 09 00 00 00       	mov    $0x9,%eax                      
  118029:	e9 32 ff ff ff       	jmp    117f60 <rtems_timer_fire_when+0x20>
                                                                      

001186bc <rtems_timer_initiate_server>: rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) {
  1186bc:	55                   	push   %ebp                           
  1186bd:	89 e5                	mov    %esp,%ebp                      
  1186bf:	56                   	push   %esi                           
  1186c0:	53                   	push   %ebx                           
  1186c1:	83 ec 10             	sub    $0x10,%esp                     
  1186c4:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1186c7:	85 c0                	test   %eax,%eax                      
  1186c9:	74 41                	je     11870c <rtems_timer_initiate_server+0x50>
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
  1186cb:	0f b6 15 f4 99 13 00 	movzbl 0x1399f4,%edx                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
  1186d2:	39 d0                	cmp    %edx,%eax                      
  1186d4:	76 42                	jbe    118718 <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 )            
  1186d6:	40                   	inc    %eax                           
  1186d7:	75 33                	jne    11870c <rtems_timer_initiate_server+0x50>
      return RTEMS_INVALID_PRIORITY;                                  
    _priority = 0;                                                    
  1186d9:	31 f6                	xor    %esi,%esi                      
  1186db:	8b 15 ac 20 14 00    	mov    0x1420ac,%edx                  
  1186e1:	42                   	inc    %edx                           
  1186e2:	89 15 ac 20 14 00    	mov    %edx,0x1420ac                  
                                                                      
  /*                                                                  
   *  Just to make sure this is only called once.                     
   */                                                                 
  _Thread_Disable_dispatch();                                         
    tmpInitialized  = initialized;                                    
  1186e8:	8a 1d e0 d9 13 00    	mov    0x13d9e0,%bl                   
    initialized = true;                                               
  1186ee:	c6 05 e0 d9 13 00 01 	movb   $0x1,0x13d9e0                  
  _Thread_Enable_dispatch();                                          
  1186f5:	e8 8a 2d 00 00       	call   11b484 <_Thread_Enable_dispatch>
                                                                      
  if ( tmpInitialized )                                               
  1186fa:	84 db                	test   %bl,%bl                        
  1186fc:	74 1e                	je     11871c <rtems_timer_initiate_server+0x60>
    return RTEMS_INCORRECT_STATE;                                     
  1186fe:	b8 0e 00 00 00       	mov    $0xe,%eax                      
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  118703:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  118706:	5b                   	pop    %ebx                           
  118707:	5e                   	pop    %esi                           
  118708:	c9                   	leave                                 
  118709:	c3                   	ret                                   
  11870a:	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;                                  
  11870c:	b8 13 00 00 00       	mov    $0x13,%eax                     
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  118711:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  118714:	5b                   	pop    %ebx                           
  118715:	5e                   	pop    %esi                           
  118716:	c9                   	leave                                 
  118717:	c3                   	ret                                   
  118718:	89 c6                	mov    %eax,%esi                      
  11871a:	eb bf                	jmp    1186db <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(                                         
  11871c:	83 ec 08             	sub    $0x8,%esp                      
  11871f:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  118722:	50                   	push   %eax                           
  118723:	8b 45 10             	mov    0x10(%ebp),%eax                
  118726:	80 cc 80             	or     $0x80,%ah                      
  118729:	50                   	push   %eax                           
  11872a:	68 00 01 00 00       	push   $0x100                         
  11872f:	ff 75 0c             	pushl  0xc(%ebp)                      
  118732:	56                   	push   %esi                           
  118733:	68 45 4d 49 54       	push   $0x54494d45                    
  118738:	e8 e3 ec ff ff       	call   117420 <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) {                                                       
  11873d:	83 c4 20             	add    $0x20,%esp                     
  118740:	85 c0                	test   %eax,%eax                      
  118742:	74 10                	je     118754 <rtems_timer_initiate_server+0x98>
    initialized = false;                                              
  118744:	c6 05 e0 d9 13 00 00 	movb   $0x0,0x13d9e0                  
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
  11874b:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  11874e:	5b                   	pop    %ebx                           
  11874f:	5e                   	pop    %esi                           
  118750:	c9                   	leave                                 
  118751:	c3                   	ret                                   
  118752:	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)                                            
  118754:	8b 45 f4             	mov    -0xc(%ebp),%eax                
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return NULL;                                                    
  #endif                                                              
  return information->local_table[ index ];                           
  118757:	0f b7 c8             	movzwl %ax,%ecx                       
  11875a:	8b 15 5c 20 14 00    	mov    0x14205c,%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(           
  118760:	8b 14 8a             	mov    (%edx,%ecx,4),%edx             
  118763:	89 15 60 d9 13 00    	mov    %edx,0x13d960                  
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  118769:	c7 05 90 d9 13 00 94 	movl   $0x13d994,0x13d990             
  118770:	d9 13 00                                                    
  head->previous = NULL;                                              
  118773:	c7 05 94 d9 13 00 00 	movl   $0x0,0x13d994                  
  11877a:	00 00 00                                                    
  tail->previous = head;                                              
  11877d:	c7 05 98 d9 13 00 90 	movl   $0x13d990,0x13d998             
  118784:	d9 13 00                                                    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  118787:	c7 05 c8 d9 13 00 cc 	movl   $0x13d9cc,0x13d9c8             
  11878e:	d9 13 00                                                    
  head->previous = NULL;                                              
  118791:	c7 05 cc d9 13 00 00 	movl   $0x0,0x13d9cc                  
  118798:	00 00 00                                                    
  tail->previous = head;                                              
  11879b:	c7 05 d0 d9 13 00 c8 	movl   $0x13d9c8,0x13d9d0             
  1187a2:	d9 13 00                                                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  1187a5:	c7 05 70 d9 13 00 00 	movl   $0x0,0x13d970                  
  1187ac:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  1187af:	c7 05 84 d9 13 00 d0 	movl   $0x11b2d0,0x13d984             
  1187b6:	b2 11 00                                                    
  the_watchdog->id        = id;                                       
  1187b9:	a3 88 d9 13 00       	mov    %eax,0x13d988                  
  the_watchdog->user_data = user_data;                                
  1187be:	c7 05 8c d9 13 00 00 	movl   $0x0,0x13d98c                  
  1187c5:	00 00 00                                                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  1187c8:	c7 05 a8 d9 13 00 00 	movl   $0x0,0x13d9a8                  
  1187cf:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  1187d2:	c7 05 bc d9 13 00 d0 	movl   $0x11b2d0,0x13d9bc             
  1187d9:	b2 11 00                                                    
  the_watchdog->id        = id;                                       
  1187dc:	a3 c0 d9 13 00       	mov    %eax,0x13d9c0                  
  the_watchdog->user_data = user_data;                                
  1187e1:	c7 05 c4 d9 13 00 00 	movl   $0x0,0x13d9c4                  
  1187e8:	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;   
  1187eb:	c7 05 64 d9 13 00 8c 	movl   $0x11858c,0x13d964             
  1187f2:	85 11 00                                                    
                                                                      
  ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot;  
  1187f5:	8b 15 e4 21 14 00    	mov    0x1421e4,%edx                  
  1187fb:	89 15 9c d9 13 00    	mov    %edx,0x13d99c                  
  ts->TOD_watchdogs.last_snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
  118801:	8b 15 48 21 14 00    	mov    0x142148,%edx                  
  118807:	89 15 d4 d9 13 00    	mov    %edx,0x13d9d4                  
                                                                      
  ts->insert_chain = NULL;                                            
  11880d:	c7 05 d8 d9 13 00 00 	movl   $0x0,0x13d9d8                  
  118814:	00 00 00                                                    
  ts->active = false;                                                 
  118817:	c6 05 dc d9 13 00 00 	movb   $0x0,0x13d9dc                  
                                                                      
  /*                                                                  
   * The default timer server is now available.                       
   */                                                                 
  _Timer_server = ts;                                                 
  11881e:	c7 05 20 2b 14 00 60 	movl   $0x13d960,0x142b20             
  118825:	d9 13 00                                                    
                                                                      
  /*                                                                  
   *  Start the timer server                                          
   */                                                                 
  status = rtems_task_start(                                          
  118828:	53                   	push   %ebx                           
  118829:	68 60 d9 13 00       	push   $0x13d960                      
  11882e:	68 e0 83 11 00       	push   $0x1183e0                      
  118833:	50                   	push   %eax                           
  118834:	e8 a7 f2 ff ff       	call   117ae0 <rtems_task_start>      
    if (status) {                                                     
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
  118839:	83 c4 10             	add    $0x10,%esp                     
  11883c:	e9 d0 fe ff ff       	jmp    118711 <rtems_timer_initiate_server+0x55>
                                                                      

001180b8 <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( rtems_id id ) {
  1180b8:	55                   	push   %ebp                           
  1180b9:	89 e5                	mov    %esp,%ebp                      
  1180bb:	56                   	push   %esi                           
  1180bc:	53                   	push   %ebx                           
  1180bd:	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 );                            
  1180c0:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  1180c3:	50                   	push   %eax                           
  1180c4:	ff 75 08             	pushl  0x8(%ebp)                      
  1180c7:	68 e0 2a 14 00       	push   $0x142ae0                      
  1180cc:	e8 2b 28 00 00       	call   11a8fc <_Objects_Get>          
  1180d1:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  1180d3:	83 c4 10             	add    $0x10,%esp                     
  1180d6:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  1180d9:	85 c0                	test   %eax,%eax                      
  1180db:	74 0f                	je     1180ec <rtems_timer_reset+0x34>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1180dd:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  1180e2:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  1180e5:	5b                   	pop    %ebx                           
  1180e6:	5e                   	pop    %esi                           
  1180e7:	c9                   	leave                                 
  1180e8:	c3                   	ret                                   
  1180e9:	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 ) {                 
  1180ec:	8b 43 38             	mov    0x38(%ebx),%eax                
  1180ef:	85 c0                	test   %eax,%eax                      
  1180f1:	74 1d                	je     118110 <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 ) {  
  1180f3:	48                   	dec    %eax                           
  1180f4:	74 3a                	je     118130 <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;                                   
  1180f6:	b8 0b 00 00 00       	mov    $0xb,%eax                      
      }                                                               
      _Thread_Enable_dispatch();                                      
  1180fb:	89 45 e4             	mov    %eax,-0x1c(%ebp)               
  1180fe:	e8 81 33 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return status;                                                  
  118103:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  118106:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  118109:	5b                   	pop    %ebx                           
  11810a:	5e                   	pop    %esi                           
  11810b:	c9                   	leave                                 
  11810c:	c3                   	ret                                   
  11810d:	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 );                       
  118110:	83 c3 10             	add    $0x10,%ebx                     
  118113:	83 ec 0c             	sub    $0xc,%esp                      
  118116:	53                   	push   %ebx                           
  118117:	e8 30 44 00 00       	call   11c54c <_Watchdog_Remove>      
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
  11811c:	59                   	pop    %ecx                           
  11811d:	5e                   	pop    %esi                           
  11811e:	53                   	push   %ebx                           
  11811f:	68 80 21 14 00       	push   $0x142180                      
  118124:	e8 e3 42 00 00       	call   11c40c <_Watchdog_Insert>      
  118129:	83 c4 10             	add    $0x10,%esp                     
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
  11812c:	31 c0                	xor    %eax,%eax                      
  11812e:	eb cb                	jmp    1180fb <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;           
  118130:	8b 35 20 2b 14 00    	mov    0x142b20,%esi                  
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
  118136:	83 ec 0c             	sub    $0xc,%esp                      
  118139:	8d 43 10             	lea    0x10(%ebx),%eax                
  11813c:	50                   	push   %eax                           
  11813d:	e8 0a 44 00 00       	call   11c54c <_Watchdog_Remove>      
        (*timer_server->schedule_operation)( timer_server, the_timer );
  118142:	58                   	pop    %eax                           
  118143:	5a                   	pop    %edx                           
  118144:	53                   	push   %ebx                           
  118145:	56                   	push   %esi                           
  118146:	ff 56 04             	call   *0x4(%esi)                     
  118149:	83 c4 10             	add    $0x10,%esp                     
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
  11814c:	31 c0                	xor    %eax,%eax                      
  11814e:	eb ab                	jmp    1180fb <rtems_timer_reset+0x43>
                                                                      

00118150 <rtems_timer_server_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
  118150:	55                   	push   %ebp                           
  118151:	89 e5                	mov    %esp,%ebp                      
  118153:	57                   	push   %edi                           
  118154:	56                   	push   %esi                           
  118155:	53                   	push   %ebx                           
  118156:	83 ec 2c             	sub    $0x2c,%esp                     
  118159:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  11815c:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
  11815f:	8b 1d 20 2b 14 00    	mov    0x142b20,%ebx                  
                                                                      
  if ( !timer_server )                                                
  118165:	85 db                	test   %ebx,%ebx                      
  118167:	0f 84 9f 00 00 00    	je     11820c <rtems_timer_server_fire_after+0xbc>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
  11816d:	85 f6                	test   %esi,%esi                      
  11816f:	0f 84 a3 00 00 00    	je     118218 <rtems_timer_server_fire_after+0xc8>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
  118175:	85 ff                	test   %edi,%edi                      
  118177:	75 0f                	jne    118188 <rtems_timer_server_fire_after+0x38>
    return RTEMS_INVALID_NUMBER;                                      
  118179:	b8 0a 00 00 00       	mov    $0xa,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11817e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118181:	5b                   	pop    %ebx                           
  118182:	5e                   	pop    %esi                           
  118183:	5f                   	pop    %edi                           
  118184:	c9                   	leave                                 
  118185:	c3                   	ret                                   
  118186:	66 90                	xchg   %ax,%ax                        
  118188:	52                   	push   %edx                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  118189:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  11818c:	50                   	push   %eax                           
  11818d:	ff 75 08             	pushl  0x8(%ebp)                      
  118190:	68 e0 2a 14 00       	push   $0x142ae0                      
  118195:	e8 62 27 00 00       	call   11a8fc <_Objects_Get>          
  11819a:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  11819c:	83 c4 10             	add    $0x10,%esp                     
  11819f:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1181a2:	85 c0                	test   %eax,%eax                      
  1181a4:	75 56                	jne    1181fc <rtems_timer_server_fire_after+0xac>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  1181a6:	83 ec 0c             	sub    $0xc,%esp                      
  1181a9:	8d 42 10             	lea    0x10(%edx),%eax                
  1181ac:	50                   	push   %eax                           
  1181ad:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  1181b0:	e8 97 43 00 00       	call   11c54c <_Watchdog_Remove>      
                                                                      
      _ISR_Disable( level );                                          
  1181b5:	9c                   	pushf                                 
  1181b6:	fa                   	cli                                   
  1181b7:	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 ) {         
  1181b8:	83 c4 10             	add    $0x10,%esp                     
  1181bb:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  1181be:	8b 4a 18             	mov    0x18(%edx),%ecx                
  1181c1:	85 c9                	test   %ecx,%ecx                      
  1181c3:	75 5f                	jne    118224 <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;                
  1181c5:	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;                        
  1181cc:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  1181d3:	89 72 2c             	mov    %esi,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  1181d6:	8b 4d 08             	mov    0x8(%ebp),%ecx                 
  1181d9:	89 4a 30             	mov    %ecx,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  1181dc:	8b 4d 14             	mov    0x14(%ebp),%ecx                
  1181df:	89 4a 34             	mov    %ecx,0x34(%edx)                
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
        the_timer->Ticker.initial = ticks;                            
  1181e2:	89 7a 1c             	mov    %edi,0x1c(%edx)                
      _ISR_Enable( level );                                           
  1181e5:	50                   	push   %eax                           
  1181e6:	9d                   	popf                                  
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
  1181e7:	83 ec 08             	sub    $0x8,%esp                      
  1181ea:	52                   	push   %edx                           
  1181eb:	53                   	push   %ebx                           
  1181ec:	ff 53 04             	call   *0x4(%ebx)                     
                                                                      
      _Thread_Enable_dispatch();                                      
  1181ef:	e8 90 32 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1181f4:	83 c4 10             	add    $0x10,%esp                     
  1181f7:	31 c0                	xor    %eax,%eax                      
  1181f9:	eb 83                	jmp    11817e <rtems_timer_server_fire_after+0x2e>
  1181fb:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  1181fc:	b8 04 00 00 00       	mov    $0x4,%eax                      
}                                                                     
  118201:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118204:	5b                   	pop    %ebx                           
  118205:	5e                   	pop    %esi                           
  118206:	5f                   	pop    %edi                           
  118207:	c9                   	leave                                 
  118208:	c3                   	ret                                   
  118209:	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;                                     
  11820c:	b8 0e 00 00 00       	mov    $0xe,%eax                      
  118211:	e9 68 ff ff ff       	jmp    11817e <rtems_timer_server_fire_after+0x2e>
  118216:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118218:	b8 09 00 00 00       	mov    $0x9,%eax                      
  11821d:	e9 5c ff ff ff       	jmp    11817e <rtems_timer_server_fire_after+0x2e>
  118222:	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 );                                       
  118224:	50                   	push   %eax                           
  118225:	9d                   	popf                                  
          _Thread_Enable_dispatch();                                  
  118226:	e8 59 32 00 00       	call   11b484 <_Thread_Enable_dispatch>
          return RTEMS_SUCCESSFUL;                                    
  11822b:	31 c0                	xor    %eax,%eax                      
  11822d:	e9 4c ff ff ff       	jmp    11817e <rtems_timer_server_fire_after+0x2e>
                                                                      

00118234 <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
  118234:	55                   	push   %ebp                           
  118235:	89 e5                	mov    %esp,%ebp                      
  118237:	57                   	push   %edi                           
  118238:	56                   	push   %esi                           
  118239:	53                   	push   %ebx                           
  11823a:	83 ec 2c             	sub    $0x2c,%esp                     
  11823d:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  118240:	8b 75 10             	mov    0x10(%ebp),%esi                
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
  118243:	8b 1d 20 2b 14 00    	mov    0x142b20,%ebx                  
                                                                      
  if ( !timer_server )                                                
  118249:	85 db                	test   %ebx,%ebx                      
  11824b:	0f 84 d7 00 00 00    	je     118328 <rtems_timer_server_fire_when+0xf4>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
  118251:	80 3d bc 20 14 00 00 	cmpb   $0x0,0x1420bc                  
  118258:	0f 84 aa 00 00 00    	je     118308 <rtems_timer_server_fire_when+0xd4><== NEVER TAKEN
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
  11825e:	85 f6                	test   %esi,%esi                      
  118260:	0f 84 b2 00 00 00    	je     118318 <rtems_timer_server_fire_when+0xe4>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
  118266:	83 ec 0c             	sub    $0xc,%esp                      
  118269:	57                   	push   %edi                           
  11826a:	e8 95 d1 ff ff       	call   115404 <_TOD_Validate>         
  11826f:	83 c4 10             	add    $0x10,%esp                     
  118272:	84 c0                	test   %al,%al                        
  118274:	75 0e                	jne    118284 <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;                                       
  118276:	b8 14 00 00 00       	mov    $0x14,%eax                     
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11827b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  11827e:	5b                   	pop    %ebx                           
  11827f:	5e                   	pop    %esi                           
  118280:	5f                   	pop    %edi                           
  118281:	c9                   	leave                                 
  118282:	c3                   	ret                                   
  118283:	90                   	nop                                   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  118284:	83 ec 0c             	sub    $0xc,%esp                      
  118287:	57                   	push   %edi                           
  118288:	e8 eb d0 ff ff       	call   115378 <_TOD_To_seconds>       
  11828d:	89 c7                	mov    %eax,%edi                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
  11828f:	83 c4 10             	add    $0x10,%esp                     
  118292:	3b 05 48 21 14 00    	cmp    0x142148,%eax                  
  118298:	76 dc                	jbe    118276 <rtems_timer_server_fire_when+0x42>
  11829a:	52                   	push   %edx                           
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  11829b:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  11829e:	50                   	push   %eax                           
  11829f:	ff 75 08             	pushl  0x8(%ebp)                      
  1182a2:	68 e0 2a 14 00       	push   $0x142ae0                      
  1182a7:	e8 50 26 00 00       	call   11a8fc <_Objects_Get>          
  1182ac:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  1182ae:	83 c4 10             	add    $0x10,%esp                     
  1182b1:	8b 45 e4             	mov    -0x1c(%ebp),%eax               
  1182b4:	85 c0                	test   %eax,%eax                      
  1182b6:	75 7c                	jne    118334 <rtems_timer_server_fire_when+0x100>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
  1182b8:	83 ec 0c             	sub    $0xc,%esp                      
  1182bb:	8d 42 10             	lea    0x10(%edx),%eax                
  1182be:	50                   	push   %eax                           
  1182bf:	89 55 d4             	mov    %edx,-0x2c(%ebp)               
  1182c2:	e8 85 42 00 00       	call   11c54c <_Watchdog_Remove>      
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
  1182c7:	8b 55 d4             	mov    -0x2c(%ebp),%edx               
  1182ca:	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;                        
  1182d1:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)                
  the_watchdog->routine   = routine;                                  
  1182d8:	89 72 2c             	mov    %esi,0x2c(%edx)                
  the_watchdog->id        = id;                                       
  1182db:	8b 45 08             	mov    0x8(%ebp),%eax                 
  1182de:	89 42 30             	mov    %eax,0x30(%edx)                
  the_watchdog->user_data = user_data;                                
  1182e1:	8b 45 14             	mov    0x14(%ebp),%eax                
  1182e4:	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();
  1182e7:	2b 3d 48 21 14 00    	sub    0x142148,%edi                  
  1182ed:	89 7a 1c             	mov    %edi,0x1c(%edx)                
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
  1182f0:	58                   	pop    %eax                           
  1182f1:	59                   	pop    %ecx                           
  1182f2:	52                   	push   %edx                           
  1182f3:	53                   	push   %ebx                           
  1182f4:	ff 53 04             	call   *0x4(%ebx)                     
                                                                      
      _Thread_Enable_dispatch();                                      
  1182f7:	e8 88 31 00 00       	call   11b484 <_Thread_Enable_dispatch>
      return RTEMS_SUCCESSFUL;                                        
  1182fc:	83 c4 10             	add    $0x10,%esp                     
  1182ff:	31 c0                	xor    %eax,%eax                      
  118301:	e9 75 ff ff ff       	jmp    11827b <rtems_timer_server_fire_when+0x47>
  118306:	66 90                	xchg   %ax,%ax                        
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
  118308:	b8 0b 00 00 00       	mov    $0xb,%eax                      <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11830d:	8d 65 f4             	lea    -0xc(%ebp),%esp                <== NOT EXECUTED
  118310:	5b                   	pop    %ebx                           <== NOT EXECUTED
  118311:	5e                   	pop    %esi                           <== NOT EXECUTED
  118312:	5f                   	pop    %edi                           <== NOT EXECUTED
  118313:	c9                   	leave                                 <== NOT EXECUTED
  118314:	c3                   	ret                                   <== NOT EXECUTED
  118315:	8d 76 00             	lea    0x0(%esi),%esi                 <== NOT EXECUTED
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
  118318:	b8 09 00 00 00       	mov    $0x9,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
  11831d:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  118320:	5b                   	pop    %ebx                           
  118321:	5e                   	pop    %esi                           
  118322:	5f                   	pop    %edi                           
  118323:	c9                   	leave                                 
  118324:	c3                   	ret                                   
  118325:	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;                                     
  118328:	b8 0e 00 00 00       	mov    $0xe,%eax                      
  11832d:	e9 49 ff ff ff       	jmp    11827b <rtems_timer_server_fire_when+0x47>
  118332:	66 90                	xchg   %ax,%ax                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
  118334:	b8 04 00 00 00       	mov    $0x4,%eax                      
  118339:	e9 3d ff ff ff       	jmp    11827b <rtems_timer_server_fire_when+0x47>
                                                                      

0010b3dc <sched_get_priority_max>: #include <rtems/posix/priority.h> int sched_get_priority_max( int policy ) {
  10b3dc:	55                   	push   %ebp                           
  10b3dd:	89 e5                	mov    %esp,%ebp                      
  10b3df:	83 ec 08             	sub    $0x8,%esp                      
  10b3e2:	8b 45 08             	mov    0x8(%ebp),%eax                 
  switch ( policy ) {                                                 
  10b3e5:	85 c0                	test   %eax,%eax                      
  10b3e7:	78 0a                	js     10b3f3 <sched_get_priority_max+0x17>
  10b3e9:	83 f8 02             	cmp    $0x2,%eax                      
  10b3ec:	7e 1a                	jle    10b408 <sched_get_priority_max+0x2c>
  10b3ee:	83 f8 04             	cmp    $0x4,%eax                      
  10b3f1:	74 15                	je     10b408 <sched_get_priority_max+0x2c><== ALWAYS TAKEN
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  10b3f3:	e8 dc 86 00 00       	call   113ad4 <__errno>               
  10b3f8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b3fe:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
}                                                                     
  10b403:	c9                   	leave                                 
  10b404:	c3                   	ret                                   
  10b405:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
  10b408:	0f b6 05 dc 47 12 00 	movzbl 0x1247dc,%eax                  
  10b40f:	48                   	dec    %eax                           
}                                                                     
  10b410:	c9                   	leave                                 
  10b411:	c3                   	ret                                   
                                                                      

0010b414 <sched_get_priority_min>: #include <rtems/posix/priority.h> int sched_get_priority_min( int policy ) {
  10b414:	55                   	push   %ebp                           
  10b415:	89 e5                	mov    %esp,%ebp                      
  10b417:	83 ec 08             	sub    $0x8,%esp                      
  10b41a:	8b 45 08             	mov    0x8(%ebp),%eax                 
  switch ( policy ) {                                                 
  10b41d:	85 c0                	test   %eax,%eax                      
  10b41f:	78 0a                	js     10b42b <sched_get_priority_min+0x17>
  10b421:	83 f8 02             	cmp    $0x2,%eax                      
  10b424:	7e 1a                	jle    10b440 <sched_get_priority_min+0x2c><== ALWAYS TAKEN
  10b426:	83 f8 04             	cmp    $0x4,%eax                      <== NOT EXECUTED
  10b429:	74 15                	je     10b440 <sched_get_priority_min+0x2c><== NOT EXECUTED
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  10b42b:	e8 a4 86 00 00       	call   113ad4 <__errno>               
  10b430:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b436:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
}                                                                     
  10b43b:	c9                   	leave                                 
  10b43c:	c3                   	ret                                   
  10b43d:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
  10b440:	b8 01 00 00 00       	mov    $0x1,%eax                      
}                                                                     
  10b445:	c9                   	leave                                 
  10b446:	c3                   	ret                                   
                                                                      

0010b448 <sched_rr_get_interval>: int sched_rr_get_interval( pid_t pid, struct timespec *interval ) {
  10b448:	55                   	push   %ebp                           
  10b449:	89 e5                	mov    %esp,%ebp                      
  10b44b:	56                   	push   %esi                           
  10b44c:	53                   	push   %ebx                           
  10b44d:	8b 75 08             	mov    0x8(%ebp),%esi                 
  10b450:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
  10b453:	85 f6                	test   %esi,%esi                      
  10b455:	75 21                	jne    10b478 <sched_rr_get_interval+0x30><== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  if ( !interval )                                                    
  10b457:	85 db                	test   %ebx,%ebx                      
  10b459:	74 38                	je     10b493 <sched_rr_get_interval+0x4b>
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval );      
  10b45b:	83 ec 08             	sub    $0x8,%esp                      
  10b45e:	53                   	push   %ebx                           
  10b45f:	ff 35 20 8a 12 00    	pushl  0x128a20                       
  10b465:	e8 66 33 00 00       	call   10e7d0 <_Timespec_From_ticks>  
  return 0;                                                           
  10b46a:	83 c4 10             	add    $0x10,%esp                     
  10b46d:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b46f:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10b472:	5b                   	pop    %ebx                           
  10b473:	5e                   	pop    %esi                           
  10b474:	c9                   	leave                                 
  10b475:	c3                   	ret                                   
  10b476:	66 90                	xchg   %ax,%ax                        
{                                                                     
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
  10b478:	e8 d3 c8 ff ff       	call   107d50 <getpid>                
  10b47d:	39 f0                	cmp    %esi,%eax                      
  10b47f:	74 d6                	je     10b457 <sched_rr_get_interval+0xf>
    rtems_set_errno_and_return_minus_one( ESRCH );                    
  10b481:	e8 4e 86 00 00       	call   113ad4 <__errno>               
  10b486:	c7 00 03 00 00 00    	movl   $0x3,(%eax)                    
  10b48c:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b491:	eb dc                	jmp    10b46f <sched_rr_get_interval+0x27>
                                                                      
  if ( !interval )                                                    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  10b493:	e8 3c 86 00 00       	call   113ad4 <__errno>               
  10b498:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b49e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b4a3:	eb ca                	jmp    10b46f <sched_rr_get_interval+0x27>
                                                                      

0010db9c <sem_close>: */ int sem_close( sem_t *sem ) {
  10db9c:	55                   	push   %ebp                           
  10db9d:	89 e5                	mov    %esp,%ebp                      
  10db9f:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10dba2:	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 );
  10dba5:	50                   	push   %eax                           
  10dba6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10dba9:	ff 30                	pushl  (%eax)                         
  10dbab:	68 00 ca 12 00       	push   $0x12ca00                      
  10dbb0:	e8 d7 1f 00 00       	call   10fb8c <_Objects_Get>          
  switch ( location ) {                                               
  10dbb5:	83 c4 10             	add    $0x10,%esp                     
  10dbb8:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10dbbb:	85 d2                	test   %edx,%edx                      
  10dbbd:	74 15                	je     10dbd4 <sem_close+0x38>        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10dbbf:	e8 48 95 00 00       	call   11710c <__errno>               
  10dbc4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10dbca:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10dbcf:	c9                   	leave                                 
  10dbd0:	c3                   	ret                                   
  10dbd1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_semaphore->open_count -= 1;                                 
  10dbd4:	ff 48 18             	decl   0x18(%eax)                     
      _POSIX_Semaphore_Delete( the_semaphore );                       
  10dbd7:	83 ec 0c             	sub    $0xc,%esp                      
  10dbda:	50                   	push   %eax                           
  10dbdb:	e8 04 64 00 00       	call   113fe4 <_POSIX_Semaphore_Delete>
      _Thread_Enable_dispatch();                                      
  10dbe0:	e8 37 2b 00 00       	call   11071c <_Thread_Enable_dispatch>
      return 0;                                                       
  10dbe5:	83 c4 10             	add    $0x10,%esp                     
  10dbe8:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10dbea:	c9                   	leave                                 
  10dbeb:	c3                   	ret                                   
                                                                      

0010dbec <sem_destroy>: */ int sem_destroy( sem_t *sem ) {
  10dbec:	55                   	push   %ebp                           
  10dbed:	89 e5                	mov    %esp,%ebp                      
  10dbef:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10dbf2:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10dbf5:	50                   	push   %eax                           
  10dbf6:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10dbf9:	ff 30                	pushl  (%eax)                         
  10dbfb:	68 00 ca 12 00       	push   $0x12ca00                      
  10dc00:	e8 87 1f 00 00       	call   10fb8c <_Objects_Get>          
  switch ( location ) {                                               
  10dc05:	83 c4 10             	add    $0x10,%esp                     
  10dc08:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10dc0b:	85 d2                	test   %edx,%edx                      
  10dc0d:	74 15                	je     10dc24 <sem_destroy+0x38>      
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10dc0f:	e8 f8 94 00 00       	call   11710c <__errno>               
  10dc14:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10dc1a:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10dc1f:	c9                   	leave                                 
  10dc20:	c3                   	ret                                   
  10dc21:	8d 76 00             	lea    0x0(%esi),%esi                 
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
  10dc24:	80 78 14 00          	cmpb   $0x0,0x14(%eax)                
  10dc28:	75 16                	jne    10dc40 <sem_destroy+0x54>      
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EINVAL );               
      }                                                               
                                                                      
      _POSIX_Semaphore_Delete( the_semaphore );                       
  10dc2a:	83 ec 0c             	sub    $0xc,%esp                      
  10dc2d:	50                   	push   %eax                           
  10dc2e:	e8 b1 63 00 00       	call   113fe4 <_POSIX_Semaphore_Delete>
      _Thread_Enable_dispatch();                                      
  10dc33:	e8 e4 2a 00 00       	call   11071c <_Thread_Enable_dispatch>
      return 0;                                                       
  10dc38:	83 c4 10             	add    $0x10,%esp                     
  10dc3b:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10dc3d:	c9                   	leave                                 
  10dc3e:	c3                   	ret                                   
  10dc3f:	90                   	nop                                   
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
        _Thread_Enable_dispatch();                                    
  10dc40:	e8 d7 2a 00 00       	call   11071c <_Thread_Enable_dispatch>
        rtems_set_errno_and_return_minus_one( EINVAL );               
  10dc45:	e8 c2 94 00 00       	call   11710c <__errno>               
  10dc4a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10dc50:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10dc55:	c9                   	leave                                 
  10dc56:	c3                   	ret                                   
                                                                      

0010dc58 <sem_getvalue>: int sem_getvalue( sem_t *sem, int *sval ) {
  10dc58:	55                   	push   %ebp                           
  10dc59:	89 e5                	mov    %esp,%ebp                      
  10dc5b:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10dc5e:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10dc61:	50                   	push   %eax                           
  10dc62:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10dc65:	ff 30                	pushl  (%eax)                         
  10dc67:	68 00 ca 12 00       	push   $0x12ca00                      
  10dc6c:	e8 1b 1f 00 00       	call   10fb8c <_Objects_Get>          
  switch ( location ) {                                               
  10dc71:	83 c4 10             	add    $0x10,%esp                     
  10dc74:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10dc77:	85 d2                	test   %edx,%edx                      
  10dc79:	74 15                	je     10dc90 <sem_getvalue+0x38>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10dc7b:	e8 8c 94 00 00       	call   11710c <__errno>               
  10dc80:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10dc86:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10dc8b:	c9                   	leave                                 
  10dc8c:	c3                   	ret                                   
  10dc8d:	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 ); 
  10dc90:	8b 50 64             	mov    0x64(%eax),%edx                
  10dc93:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10dc96:	89 10                	mov    %edx,(%eax)                    
      _Thread_Enable_dispatch();                                      
  10dc98:	e8 7f 2a 00 00       	call   11071c <_Thread_Enable_dispatch>
      return 0;                                                       
  10dc9d:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10dc9f:	c9                   	leave                                 
  10dca0:	c3                   	ret                                   
                                                                      

0010dcec <sem_open>: int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) {
  10dcec:	55                   	push   %ebp                           
  10dced:	89 e5                	mov    %esp,%ebp                      
  10dcef:	57                   	push   %edi                           
  10dcf0:	56                   	push   %esi                           
  10dcf1:	53                   	push   %ebx                           
  10dcf2:	83 ec 2c             	sub    $0x2c,%esp                     
  10dcf5:	8b 75 08             	mov    0x8(%ebp),%esi                 
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10dcf8:	a1 ec c6 12 00       	mov    0x12c6ec,%eax                  
  10dcfd:	40                   	inc    %eax                           
  10dcfe:	a3 ec c6 12 00       	mov    %eax,0x12c6ec                  
  POSIX_Semaphore_Control   *the_semaphore;                           
  Objects_Locations          location;                                
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
  10dd03:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10dd06:	81 e7 00 02 00 00    	and    $0x200,%edi                    
  10dd0c:	0f 85 86 00 00 00    	jne    10dd98 <sem_open+0xac>         
  /* unsigned int value */                                            
)                                                                     
{                                                                     
  va_list                    arg;                                     
  mode_t                     mode;                                    
  unsigned int               value = 0;                               
  10dd12:	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 );    
  10dd19:	83 ec 08             	sub    $0x8,%esp                      
  10dd1c:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10dd1f:	50                   	push   %eax                           
  10dd20:	56                   	push   %esi                           
  10dd21:	e8 0e 63 00 00       	call   114034 <_POSIX_Semaphore_Name_to_id>
  10dd26:	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 ) {                                                     
  10dd28:	83 c4 10             	add    $0x10,%esp                     
  10dd2b:	85 c0                	test   %eax,%eax                      
  10dd2d:	74 25                	je     10dd54 <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) ) ) {               
  10dd2f:	83 f8 02             	cmp    $0x2,%eax                      
  10dd32:	75 04                	jne    10dd38 <sem_open+0x4c>         <== NEVER TAKEN
  10dd34:	85 ff                	test   %edi,%edi                      
  10dd36:	75 6c                	jne    10dda4 <sem_open+0xb8>         
      _Thread_Enable_dispatch();                                      
  10dd38:	e8 df 29 00 00       	call   11071c <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( status, sem_t * );   
  10dd3d:	e8 ca 93 00 00       	call   11710c <__errno>               
  10dd42:	89 18                	mov    %ebx,(%eax)                    
  10dd44:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
    id = &the_semaphore->Semaphore_id;                                
  #else                                                               
    id = (sem_t *)&the_semaphore->Object.id;                          
  #endif                                                              
  return id;                                                          
}                                                                     
  10dd49:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10dd4c:	5b                   	pop    %ebx                           
  10dd4d:	5e                   	pop    %esi                           
  10dd4e:	5f                   	pop    %edi                           
  10dd4f:	c9                   	leave                                 
  10dd50:	c3                   	ret                                   
  10dd51:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
  10dd54:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10dd57:	25 00 0a 00 00       	and    $0xa00,%eax                    
  10dd5c:	3d 00 0a 00 00       	cmp    $0xa00,%eax                    
  10dd61:	74 65                	je     10ddc8 <sem_open+0xdc>         
  10dd63:	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 );
  10dd64:	8d 45 dc             	lea    -0x24(%ebp),%eax               
  10dd67:	50                   	push   %eax                           
  10dd68:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10dd6b:	68 00 ca 12 00       	push   $0x12ca00                      
  10dd70:	e8 17 1e 00 00       	call   10fb8c <_Objects_Get>          
  10dd75:	89 45 e0             	mov    %eax,-0x20(%ebp)               
    the_semaphore->open_count += 1;                                   
  10dd78:	ff 40 18             	incl   0x18(%eax)                     
    _Thread_Enable_dispatch();                                        
  10dd7b:	e8 9c 29 00 00       	call   11071c <_Thread_Enable_dispatch>
    _Thread_Enable_dispatch();                                        
  10dd80:	e8 97 29 00 00       	call   11071c <_Thread_Enable_dispatch>
    goto return_id;                                                   
  10dd85:	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;                          
  10dd88:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10dd8b:	83 c0 08             	add    $0x8,%eax                      
  #endif                                                              
  return id;                                                          
}                                                                     
  10dd8e:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10dd91:	5b                   	pop    %ebx                           
  10dd92:	5e                   	pop    %esi                           
  10dd93:	5f                   	pop    %edi                           
  10dd94:	c9                   	leave                                 
  10dd95:	c3                   	ret                                   
  10dd96:	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 );                              
  10dd98:	8b 45 14             	mov    0x14(%ebp),%eax                
  10dd9b:	89 45 d4             	mov    %eax,-0x2c(%ebp)               
  10dd9e:	e9 76 ff ff ff       	jmp    10dd19 <sem_open+0x2d>         
  10dda3:	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(                            
  10dda4:	8d 45 e0             	lea    -0x20(%ebp),%eax               
  10dda7:	50                   	push   %eax                           
  10dda8:	ff 75 d4             	pushl  -0x2c(%ebp)                    
  10ddab:	6a 00                	push   $0x0                           
  10ddad:	56                   	push   %esi                           
  10ddae:	e8 25 61 00 00       	call   113ed8 <_POSIX_Semaphore_Create_support>
  10ddb3:	89 c3                	mov    %eax,%ebx                      
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
  10ddb5:	e8 62 29 00 00       	call   11071c <_Thread_Enable_dispatch>
                                                                      
  if ( status == -1 )                                                 
  10ddba:	83 c4 10             	add    $0x10,%esp                     
  10ddbd:	43                   	inc    %ebx                           
  10ddbe:	75 c8                	jne    10dd88 <sem_open+0x9c>         
    return SEM_FAILED;                                                
  10ddc0:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ddc5:	eb c7                	jmp    10dd8e <sem_open+0xa2>         
  10ddc7:	90                   	nop                                   
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _Thread_Enable_dispatch();                                      
  10ddc8:	e8 4f 29 00 00       	call   11071c <_Thread_Enable_dispatch>
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
  10ddcd:	e8 3a 93 00 00       	call   11710c <__errno>               
  10ddd2:	c7 00 11 00 00 00    	movl   $0x11,(%eax)                   
  10ddd8:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10dddd:	eb af                	jmp    10dd8e <sem_open+0xa2>         
                                                                      

0010dde0 <sem_post>: */ int sem_post( sem_t *sem ) {
  10dde0:	55                   	push   %ebp                           
  10dde1:	89 e5                	mov    %esp,%ebp                      
  10dde3:	83 ec 1c             	sub    $0x1c,%esp                     
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  10dde6:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10dde9:	50                   	push   %eax                           
  10ddea:	8b 45 08             	mov    0x8(%ebp),%eax                 
  10dded:	ff 30                	pushl  (%eax)                         
  10ddef:	68 00 ca 12 00       	push   $0x12ca00                      
  10ddf4:	e8 93 1d 00 00       	call   10fb8c <_Objects_Get>          
  switch ( location ) {                                               
  10ddf9:	83 c4 10             	add    $0x10,%esp                     
  10ddfc:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10ddff:	85 c9                	test   %ecx,%ecx                      
  10de01:	74 15                	je     10de18 <sem_post+0x38>         
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10de03:	e8 04 93 00 00       	call   11710c <__errno>               
  10de08:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10de0e:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10de13:	c9                   	leave                                 
  10de14:	c3                   	ret                                   
  10de15:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Surrender(                                      
  10de18:	52                   	push   %edx                           
  10de19:	6a 00                	push   $0x0                           
  10de1b:	ff 70 08             	pushl  0x8(%eax)                      
  10de1e:	83 c0 1c             	add    $0x1c,%eax                     
  10de21:	50                   	push   %eax                           
  10de22:	e8 79 13 00 00       	call   10f1a0 <_CORE_semaphore_Surrender>
        NULL         /* XXX need to define a routine to handle this case */
#else                                                                 
        NULL                                                          
#endif                                                                
      );                                                              
      _Thread_Enable_dispatch();                                      
  10de27:	e8 f0 28 00 00       	call   11071c <_Thread_Enable_dispatch>
      return 0;                                                       
  10de2c:	83 c4 10             	add    $0x10,%esp                     
  10de2f:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10de31:	c9                   	leave                                 
  10de32:	c3                   	ret                                   
                                                                      

0010de34 <sem_timedwait>: int sem_timedwait( sem_t *sem, const struct timespec *abstime ) {
  10de34:	55                   	push   %ebp                           
  10de35:	89 e5                	mov    %esp,%ebp                      
  10de37:	53                   	push   %ebx                           
  10de38:	83 ec 1c             	sub    $0x1c,%esp                     
  10de3b:	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 );       
  10de3e:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10de41:	50                   	push   %eax                           
  10de42:	ff 75 0c             	pushl  0xc(%ebp)                      
  10de45:	e8 1e 55 00 00       	call   113368 <_POSIX_Absolute_timeout_to_ticks>
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
  10de4a:	83 c4 10             	add    $0x10,%esp                     
  10de4d:	83 f8 03             	cmp    $0x3,%eax                      
  10de50:	74 16                	je     10de68 <sem_timedwait+0x34>    <== ALWAYS TAKEN
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 
  10de52:	50                   	push   %eax                           <== NOT EXECUTED
  10de53:	ff 75 f4             	pushl  -0xc(%ebp)                     <== NOT EXECUTED
  10de56:	6a 00                	push   $0x0                           <== NOT EXECUTED
  10de58:	53                   	push   %ebx                           <== NOT EXECUTED
  10de59:	e8 42 62 00 00       	call   1140a0 <_POSIX_Semaphore_Wait_support><== NOT EXECUTED
  10de5e:	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;                                                 
}                                                                     
  10de61:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10de64:	c9                   	leave                                 <== NOT EXECUTED
  10de65:	c3                   	ret                                   <== NOT EXECUTED
  10de66:	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 ); 
  10de68:	52                   	push   %edx                           
  10de69:	ff 75 f4             	pushl  -0xc(%ebp)                     
  10de6c:	6a 01                	push   $0x1                           
  10de6e:	53                   	push   %ebx                           
  10de6f:	e8 2c 62 00 00       	call   1140a0 <_POSIX_Semaphore_Wait_support>
  10de74:	83 c4 10             	add    $0x10,%esp                     
         lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )               
      rtems_set_errno_and_return_minus_one( ETIMEDOUT );              
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
  10de77:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10de7a:	c9                   	leave                                 
  10de7b:	c3                   	ret                                   
                                                                      

0010a89c <setitimer>: int setitimer( int which, const struct itimerval *value, struct itimerval *ovalue ) {
  10a89c:	55                   	push   %ebp                           
  10a89d:	89 e5                	mov    %esp,%ebp                      
  10a89f:	83 ec 08             	sub    $0x8,%esp                      
  if ( !value )                                                       
  10a8a2:	8b 55 0c             	mov    0xc(%ebp),%edx                 
  10a8a5:	85 d2                	test   %edx,%edx                      
  10a8a7:	74 33                	je     10a8dc <setitimer+0x40>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  if ( !ovalue )                                                      
  10a8a9:	8b 45 10             	mov    0x10(%ebp),%eax                
  10a8ac:	85 c0                	test   %eax,%eax                      
  10a8ae:	74 2c                	je     10a8dc <setitimer+0x40>        
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
  10a8b0:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)                 
  10a8b4:	76 12                	jbe    10a8c8 <setitimer+0x2c>        
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10a8b6:	e8 39 8c 00 00       	call   1134f4 <__errno>               
  10a8bb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
}                                                                     
  10a8c1:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10a8c6:	c9                   	leave                                 
  10a8c7:	c3                   	ret                                   
                                                                      
  switch ( which ) {                                                  
    case ITIMER_REAL:                                                 
    case ITIMER_VIRTUAL:                                              
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
  10a8c8:	e8 27 8c 00 00       	call   1134f4 <__errno>               
  10a8cd:	c7 00 58 00 00 00    	movl   $0x58,(%eax)                   
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10a8d3:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10a8d8:	c9                   	leave                                 
  10a8d9:	c3                   	ret                                   
  10a8da:	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 );                   
  10a8dc:	e8 13 8c 00 00       	call   1134f4 <__errno>               
  10a8e1:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)                    
  10a8e7:	eb d8                	jmp    10a8c1 <setitimer+0x25>        
                                                                      

0010b2ec <sigaction>: int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) {
  10b2ec:	55                   	push   %ebp                           
  10b2ed:	89 e5                	mov    %esp,%ebp                      
  10b2ef:	57                   	push   %edi                           
  10b2f0:	56                   	push   %esi                           
  10b2f1:	53                   	push   %ebx                           
  10b2f2:	83 ec 1c             	sub    $0x1c,%esp                     
  10b2f5:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b2f8:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10b2fb:	8b 55 10             	mov    0x10(%ebp),%edx                
  ISR_Level     level;                                                
                                                                      
  if ( oact )                                                         
  10b2fe:	85 d2                	test   %edx,%edx                      
  10b300:	74 13                	je     10b315 <sigaction+0x29>        
    *oact = _POSIX_signals_Vectors[ sig ];                            
  10b302:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx             
  10b305:	8d 34 8d 60 9d 12 00 	lea    0x129d60(,%ecx,4),%esi         
  10b30c:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10b311:	89 d7                	mov    %edx,%edi                      
  10b313:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  if ( !sig )                                                         
  10b315:	85 db                	test   %ebx,%ebx                      
  10b317:	74 77                	je     10b390 <sigaction+0xa4>        
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  10b319:	8d 53 ff             	lea    -0x1(%ebx),%edx                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
  10b31c:	83 fa 1f             	cmp    $0x1f,%edx                     
  10b31f:	77 6f                	ja     10b390 <sigaction+0xa4>        
   *                                                                  
   *  NOTE: Solaris documentation claims to "silently enforce" this which
   *        contradicts the POSIX specification.                      
   */                                                                 
                                                                      
  if ( sig == SIGKILL )                                               
  10b321:	83 fb 09             	cmp    $0x9,%ebx                      
  10b324:	74 6a                	je     10b390 <sigaction+0xa4>        
  /*                                                                  
   *  Evaluate the new action structure and set the global signal vector
   *  appropriately.                                                  
   */                                                                 
                                                                      
  if ( act ) {                                                        
  10b326:	85 c0                	test   %eax,%eax                      
  10b328:	74 62                	je     10b38c <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 );                                            
  10b32a:	9c                   	pushf                                 
  10b32b:	fa                   	cli                                   
  10b32c:	8f 45 e4             	popl   -0x1c(%ebp)                    
      if ( act->sa_handler == SIG_DFL ) {                             
  10b32f:	8b 50 08             	mov    0x8(%eax),%edx                 
  10b332:	85 d2                	test   %edx,%edx                      
  10b334:	74 36                	je     10b36c <sigaction+0x80>        
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
      } else {                                                        
         _POSIX_signals_Clear_process_signals( sig );                 
  10b336:	83 ec 0c             	sub    $0xc,%esp                      
  10b339:	53                   	push   %ebx                           
  10b33a:	89 45 e0             	mov    %eax,-0x20(%ebp)               
  10b33d:	e8 8a 57 00 00       	call   110acc <_POSIX_signals_Clear_process_signals>
         _POSIX_signals_Vectors[ sig ] = *act;                        
  10b342:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx             
  10b345:	8d 14 95 60 9d 12 00 	lea    0x129d60(,%edx,4),%edx         
  10b34c:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10b351:	8b 45 e0             	mov    -0x20(%ebp),%eax               
  10b354:	89 d7                	mov    %edx,%edi                      
  10b356:	89 c6                	mov    %eax,%esi                      
  10b358:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  10b35a:	83 c4 10             	add    $0x10,%esp                     
      }                                                               
    _ISR_Enable( level );                                             
  10b35d:	ff 75 e4             	pushl  -0x1c(%ebp)                    
  10b360:	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;                                                           
  10b361:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10b363:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b366:	5b                   	pop    %ebx                           
  10b367:	5e                   	pop    %esi                           
  10b368:	5f                   	pop    %edi                           
  10b369:	c9                   	leave                                 
  10b36a:	c3                   	ret                                   
  10b36b:	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 ];
  10b36c:	8d 34 5b             	lea    (%ebx,%ebx,2),%esi             
  10b36f:	c1 e6 02             	shl    $0x2,%esi                      
  10b372:	8d 86 60 9d 12 00    	lea    0x129d60(%esi),%eax            
  10b378:	81 c6 80 32 12 00    	add    $0x123280,%esi                 
  10b37e:	b9 03 00 00 00       	mov    $0x3,%ecx                      
  10b383:	89 c7                	mov    %eax,%edi                      
  10b385:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
  10b387:	eb d4                	jmp    10b35d <sigaction+0x71>        
  10b389:	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;                                                           
  10b38c:	31 c0                	xor    %eax,%eax                      
  10b38e:	eb d3                	jmp    10b363 <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 );                   
  10b390:	e8 4b 8a 00 00       	call   113de0 <__errno>               
  10b395:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b39b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10b3a0:	eb c1                	jmp    10b363 <sigaction+0x77>        
                                                                      

0010b6b4 <sigtimedwait>: int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) {
  10b6b4:	55                   	push   %ebp                           
  10b6b5:	89 e5                	mov    %esp,%ebp                      
  10b6b7:	57                   	push   %edi                           
  10b6b8:	56                   	push   %esi                           
  10b6b9:	53                   	push   %ebx                           
  10b6ba:	83 ec 2c             	sub    $0x2c,%esp                     
  10b6bd:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
  10b6c0:	8b 7d 0c             	mov    0xc(%ebp),%edi                 
  10b6c3:	8b 75 10             	mov    0x10(%ebp),%esi                
  ISR_Level          level;                                           
                                                                      
  /*                                                                  
   *  Error check parameters before disabling interrupts.             
   */                                                                 
  if ( !set )                                                         
  10b6c6:	85 db                	test   %ebx,%ebx                      
  10b6c8:	0f 84 9e 01 00 00    	je     10b86c <sigtimedwait+0x1b8>    
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  if ( timeout ) {                                                    
  10b6ce:	85 f6                	test   %esi,%esi                      
  10b6d0:	0f 84 3e 01 00 00    	je     10b814 <sigtimedwait+0x160>    
                                                                      
    if ( !_Timespec_Is_valid( timeout ) )                             
  10b6d6:	83 ec 0c             	sub    $0xc,%esp                      
  10b6d9:	56                   	push   %esi                           
  10b6da:	e8 f5 33 00 00       	call   10ead4 <_Timespec_Is_valid>    
  10b6df:	83 c4 10             	add    $0x10,%esp                     
  10b6e2:	84 c0                	test   %al,%al                        
  10b6e4:	0f 84 82 01 00 00    	je     10b86c <sigtimedwait+0x1b8>    
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
  10b6ea:	83 ec 0c             	sub    $0xc,%esp                      
  10b6ed:	56                   	push   %esi                           
  10b6ee:	e8 49 34 00 00       	call   10eb3c <_Timespec_To_ticks>    
                                                                      
    if ( !interval )                                                  
  10b6f3:	83 c4 10             	add    $0x10,%esp                     
  10b6f6:	85 c0                	test   %eax,%eax                      
  10b6f8:	0f 84 6e 01 00 00    	je     10b86c <sigtimedwait+0x1b8>    <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
  10b6fe:	85 ff                	test   %edi,%edi                      
  10b700:	0f 84 18 01 00 00    	je     10b81e <sigtimedwait+0x16a>    <== NEVER TAKEN
                                                                      
  the_thread = _Thread_Executing;                                     
  10b706:	8b 0d d8 a3 12 00    	mov    0x12a3d8,%ecx                  
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  10b70c:	8b 91 ec 00 00 00    	mov    0xec(%ecx),%edx                
   *  What if they are already pending?                               
   */                                                                 
                                                                      
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
  10b712:	9c                   	pushf                                 
  10b713:	fa                   	cli                                   
  10b714:	8f 45 d0             	popl   -0x30(%ebp)                    
  if ( *set & api->signals_pending ) {                                
  10b717:	8b 33                	mov    (%ebx),%esi                    
  10b719:	89 75 d4             	mov    %esi,-0x2c(%ebp)               
  10b71c:	8b b2 d4 00 00 00    	mov    0xd4(%edx),%esi                
  10b722:	85 75 d4             	test   %esi,-0x2c(%ebp)               
  10b725:	0f 85 fd 00 00 00    	jne    10b828 <sigtimedwait+0x174>    
    return the_info->si_signo;                                        
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
  10b72b:	8b 35 48 a6 12 00    	mov    0x12a648,%esi                  
  10b731:	85 75 d4             	test   %esi,-0x2c(%ebp)               
  10b734:	0f 85 96 00 00 00    	jne    10b7d0 <sigtimedwait+0x11c>    
    the_info->si_code = SI_USER;                                      
    the_info->si_value.sival_int = 0;                                 
    return signo;                                                     
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
  10b73a:	c7 07 ff ff ff ff    	movl   $0xffffffff,(%edi)             
  10b740:	8b 35 2c 9e 12 00    	mov    0x129e2c,%esi                  
  10b746:	46                   	inc    %esi                           
  10b747:	89 35 2c 9e 12 00    	mov    %esi,0x129e2c                  
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
  10b74d:	c7 41 44 e0 a5 12 00 	movl   $0x12a5e0,0x44(%ecx)           
    the_thread->Wait.return_code     = EINTR;                         
  10b754:	c7 41 34 04 00 00 00 	movl   $0x4,0x34(%ecx)                
    the_thread->Wait.option          = *set;                          
  10b75b:	8b 33                	mov    (%ebx),%esi                    
  10b75d:	89 71 30             	mov    %esi,0x30(%ecx)                
    the_thread->Wait.return_argument = the_info;                      
  10b760:	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;
  10b763:	c7 05 10 a6 12 00 01 	movl   $0x1,0x12a610                  
  10b76a:	00 00 00                                                    
    _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue );
    _ISR_Enable( level );                                             
  10b76d:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10b770:	9d                   	popf                                  
    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval );    
  10b771:	51                   	push   %ecx                           
  10b772:	68 14 e8 10 00       	push   $0x10e814                      
  10b777:	50                   	push   %eax                           
  10b778:	68 e0 a5 12 00       	push   $0x12a5e0                      
  10b77d:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10b780:	e8 63 2d 00 00       	call   10e4e8 <_Thread_queue_Enqueue_with_handler>
  _Thread_Enable_dispatch();                                          
  10b785:	e8 b6 28 00 00       	call   10e040 <_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 );
  10b78a:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10b791:	6a 00                	push   $0x0                           
  10b793:	57                   	push   %edi                           
  10b794:	ff 37                	pushl  (%edi)                         
  10b796:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10b799:	52                   	push   %edx                           
  10b79a:	e8 09 5a 00 00       	call   1111a8 <_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)                 
  10b79f:	83 c4 20             	add    $0x20,%esp                     
  10b7a2:	a1 d8 a3 12 00       	mov    0x12a3d8,%eax                  
  10b7a7:	83 78 34 04          	cmpl   $0x4,0x34(%eax)                
  10b7ab:	0f 85 d3 00 00 00    	jne    10b884 <sigtimedwait+0x1d0>    
       || !(*set & signo_to_mask( the_info->si_signo )) ) {           
  10b7b1:	8b 37                	mov    (%edi),%esi                    
  10b7b3:	8d 4e ff             	lea    -0x1(%esi),%ecx                
  10b7b6:	b8 01 00 00 00       	mov    $0x1,%eax                      
  10b7bb:	d3 e0                	shl    %cl,%eax                       
  10b7bd:	85 03                	test   %eax,(%ebx)                    
  10b7bf:	0f 84 bf 00 00 00    	je     10b884 <sigtimedwait+0x1d0>    
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10b7c5:	89 f0                	mov    %esi,%eax                      
  10b7c7:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b7ca:	5b                   	pop    %ebx                           
  10b7cb:	5e                   	pop    %esi                           
  10b7cc:	5f                   	pop    %edi                           
  10b7cd:	c9                   	leave                                 
  10b7ce:	c3                   	ret                                   
  10b7cf:	90                   	nop                                   
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
  10b7d0:	83 ec 0c             	sub    $0xc,%esp                      
  10b7d3:	56                   	push   %esi                           
  10b7d4:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10b7d7:	e8 94 fe ff ff       	call   10b670 <_POSIX_signals_Get_lowest>
  10b7dc:	89 c6                	mov    %eax,%esi                      
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
  10b7de:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10b7e5:	6a 01                	push   $0x1                           
  10b7e7:	57                   	push   %edi                           
  10b7e8:	50                   	push   %eax                           
  10b7e9:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10b7ec:	52                   	push   %edx                           
  10b7ed:	e8 b6 59 00 00       	call   1111a8 <_POSIX_signals_Clear_signals>
    _ISR_Enable( level );                                             
  10b7f2:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10b7f5:	9d                   	popf                                  
                                                                      
    the_info->si_signo = signo;                                       
  10b7f6:	89 37                	mov    %esi,(%edi)                    
    the_info->si_code = SI_USER;                                      
  10b7f8:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)                 
    the_info->si_value.sival_int = 0;                                 
  10b7ff:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)                 
    return signo;                                                     
  10b806:	83 c4 20             	add    $0x20,%esp                     
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10b809:	89 f0                	mov    %esi,%eax                      
  10b80b:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b80e:	5b                   	pop    %ebx                           
  10b80f:	5e                   	pop    %esi                           
  10b810:	5f                   	pop    %edi                           
  10b811:	c9                   	leave                                 
  10b812:	c3                   	ret                                   
  10b813:	90                   	nop                                   
                                                                      
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  10b814:	31 c0                	xor    %eax,%eax                      
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
  10b816:	85 ff                	test   %edi,%edi                      
  10b818:	0f 85 e8 fe ff ff    	jne    10b706 <sigtimedwait+0x52>     
  10b81e:	8d 7d dc             	lea    -0x24(%ebp),%edi               
  10b821:	e9 e0 fe ff ff       	jmp    10b706 <sigtimedwait+0x52>     
  10b826:	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 );
  10b828:	83 ec 0c             	sub    $0xc,%esp                      
  10b82b:	56                   	push   %esi                           
  10b82c:	89 55 cc             	mov    %edx,-0x34(%ebp)               
  10b82f:	e8 3c fe ff ff       	call   10b670 <_POSIX_signals_Get_lowest>
  10b834:	89 07                	mov    %eax,(%edi)                    
    _POSIX_signals_Clear_signals(                                     
  10b836:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)                    
  10b83d:	6a 00                	push   $0x0                           
  10b83f:	57                   	push   %edi                           
  10b840:	50                   	push   %eax                           
  10b841:	8b 55 cc             	mov    -0x34(%ebp),%edx               
  10b844:	52                   	push   %edx                           
  10b845:	e8 5e 59 00 00       	call   1111a8 <_POSIX_signals_Clear_signals>
      the_info->si_signo,                                             
      the_info,                                                       
      false,                                                          
      false                                                           
    );                                                                
    _ISR_Enable( level );                                             
  10b84a:	ff 75 d0             	pushl  -0x30(%ebp)                    
  10b84d:	9d                   	popf                                  
                                                                      
    the_info->si_code = SI_USER;                                      
  10b84e:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)                 
    the_info->si_value.sival_int = 0;                                 
  10b855:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)                 
    return the_info->si_signo;                                        
  10b85c:	8b 37                	mov    (%edi),%esi                    
  10b85e:	83 c4 20             	add    $0x20,%esp                     
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
  10b861:	89 f0                	mov    %esi,%eax                      
  10b863:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10b866:	5b                   	pop    %ebx                           
  10b867:	5e                   	pop    %esi                           
  10b868:	5f                   	pop    %edi                           
  10b869:	c9                   	leave                                 
  10b86a:	c3                   	ret                                   
  10b86b:	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 );                 
  10b86c:	e8 a3 8b 00 00       	call   114414 <__errno>               
  10b871:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b877:	be ff ff ff ff       	mov    $0xffffffff,%esi               
  10b87c:	e9 44 ff ff ff       	jmp    10b7c5 <sigtimedwait+0x111>    
  10b881:	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;                      
  10b884:	e8 8b 8b 00 00       	call   114414 <__errno>               
  10b889:	8b 15 d8 a3 12 00    	mov    0x12a3d8,%edx                  
  10b88f:	8b 52 34             	mov    0x34(%edx),%edx                
  10b892:	89 10                	mov    %edx,(%eax)                    
    return -1;                                                        
  10b894:	be ff ff ff ff       	mov    $0xffffffff,%esi               
  10b899:	e9 27 ff ff ff       	jmp    10b7c5 <sigtimedwait+0x111>    
                                                                      

0010d4dc <sigwait>: int sigwait( const sigset_t *set, int *sig ) {
  10d4dc:	55                   	push   %ebp                           
  10d4dd:	89 e5                	mov    %esp,%ebp                      
  10d4df:	53                   	push   %ebx                           
  10d4e0:	83 ec 08             	sub    $0x8,%esp                      
  10d4e3:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  int status;                                                         
                                                                      
  status = sigtimedwait( set, NULL, NULL );                           
  10d4e6:	6a 00                	push   $0x0                           
  10d4e8:	6a 00                	push   $0x0                           
  10d4ea:	ff 75 08             	pushl  0x8(%ebp)                      
  10d4ed:	e8 e6 fd ff ff       	call   10d2d8 <sigtimedwait>          
                                                                      
  if ( status != -1 ) {                                               
  10d4f2:	83 c4 10             	add    $0x10,%esp                     
  10d4f5:	83 f8 ff             	cmp    $0xffffffff,%eax               
  10d4f8:	74 0e                	je     10d508 <sigwait+0x2c>          
    if ( sig )                                                        
  10d4fa:	85 db                	test   %ebx,%ebx                      
  10d4fc:	74 16                	je     10d514 <sigwait+0x38>          <== NEVER TAKEN
      *sig = status;                                                  
  10d4fe:	89 03                	mov    %eax,(%ebx)                    
    return 0;                                                         
  10d500:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
  10d502:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d505:	c9                   	leave                                 
  10d506:	c3                   	ret                                   
  10d507:	90                   	nop                                   
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
  }                                                                   
                                                                      
  return errno;                                                       
  10d508:	e8 77 86 00 00       	call   115b84 <__errno>               
  10d50d:	8b 00                	mov    (%eax),%eax                    
}                                                                     
  10d50f:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10d512:	c9                   	leave                                 
  10d513:	c3                   	ret                                   
  status = sigtimedwait( set, NULL, NULL );                           
                                                                      
  if ( status != -1 ) {                                               
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
  10d514:	31 c0                	xor    %eax,%eax                      
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
  10d516:	8b 5d fc             	mov    -0x4(%ebp),%ebx                <== NOT EXECUTED
  10d519:	c9                   	leave                                 <== NOT EXECUTED
  10d51a:	c3                   	ret                                   <== NOT EXECUTED
                                                                      

0010aa98 <timer_create>: int timer_create( clockid_t clock_id, struct sigevent *evp, timer_t *timerid ) {
  10aa98:	55                   	push   %ebp                           
  10aa99:	89 e5                	mov    %esp,%ebp                      
  10aa9b:	56                   	push   %esi                           
  10aa9c:	53                   	push   %ebx                           
  10aa9d:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  10aaa0:	8b 75 10             	mov    0x10(%ebp),%esi                
  POSIX_Timer_Control *ptimer;                                        
                                                                      
  if ( clock_id != CLOCK_REALTIME )                                   
  10aaa3:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)                 
  10aaa7:	0f 85 db 00 00 00    	jne    10ab88 <timer_create+0xf0>     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !timerid )                                                     
  10aaad:	85 f6                	test   %esi,%esi                      
  10aaaf:	0f 84 d3 00 00 00    	je     10ab88 <timer_create+0xf0>     
 /*                                                                   
  *  The data of the structure evp are checked in order to verify if they
  *  are coherent.                                                    
  */                                                                  
                                                                      
  if (evp != NULL) {                                                  
  10aab5:	85 db                	test   %ebx,%ebx                      
  10aab7:	74 21                	je     10aada <timer_create+0x42>     
    /* The structure has data */                                      
    if ( ( evp->sigev_notify != SIGEV_NONE ) &&                       
  10aab9:	8b 03                	mov    (%ebx),%eax                    
  10aabb:	48                   	dec    %eax                           
  10aabc:	83 f8 01             	cmp    $0x1,%eax                      
  10aabf:	0f 87 c3 00 00 00    	ja     10ab88 <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 )                                         
  10aac5:	8b 43 04             	mov    0x4(%ebx),%eax                 
  10aac8:	85 c0                	test   %eax,%eax                      
  10aaca:	0f 84 b8 00 00 00    	je     10ab88 <timer_create+0xf0>     <== NEVER TAKEN
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
  10aad0:	48                   	dec    %eax                           
       rtems_set_errno_and_return_minus_one( EINVAL );                
                                                                      
     if ( !is_valid_signo(evp->sigev_signo) )                         
  10aad1:	83 f8 1f             	cmp    $0x1f,%eax                     
  10aad4:	0f 87 ae 00 00 00    	ja     10ab88 <timer_create+0xf0>     <== NEVER TAKEN
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
  10aada:	a1 8c 9a 12 00       	mov    0x129a8c,%eax                  
  10aadf:	40                   	inc    %eax                           
  10aae0:	a3 8c 9a 12 00       	mov    %eax,0x129a8c                  
 *  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 );
  10aae5:	83 ec 0c             	sub    $0xc,%esp                      
  10aae8:	68 e0 9d 12 00       	push   $0x129de0                      
  10aaed:	e8 b2 1c 00 00       	call   10c7a4 <_Objects_Allocate>     
                                                                      
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
  10aaf2:	83 c4 10             	add    $0x10,%esp                     
  10aaf5:	85 c0                	test   %eax,%eax                      
  10aaf7:	0f 84 a2 00 00 00    	je     10ab9f <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;                   
  10aafd:	c6 40 3c 02          	movb   $0x2,0x3c(%eax)                
  ptimer->thread_id = _Thread_Executing->Object.id;                   
  10ab01:	8b 15 38 a0 12 00    	mov    0x12a038,%edx                  
  10ab07:	8b 52 08             	mov    0x8(%edx),%edx                 
  10ab0a:	89 50 38             	mov    %edx,0x38(%eax)                
                                                                      
  if ( evp != NULL ) {                                                
  10ab0d:	85 db                	test   %ebx,%ebx                      
  10ab0f:	74 11                	je     10ab22 <timer_create+0x8a>     
    ptimer->inf.sigev_notify = evp->sigev_notify;                     
  10ab11:	8b 13                	mov    (%ebx),%edx                    
  10ab13:	89 50 40             	mov    %edx,0x40(%eax)                
    ptimer->inf.sigev_signo  = evp->sigev_signo;                      
  10ab16:	8b 53 04             	mov    0x4(%ebx),%edx                 
  10ab19:	89 50 44             	mov    %edx,0x44(%eax)                
    ptimer->inf.sigev_value  = evp->sigev_value;                      
  10ab1c:	8b 53 08             	mov    0x8(%ebx),%edx                 
  10ab1f:	89 50 48             	mov    %edx,0x48(%eax)                
  }                                                                   
                                                                      
  ptimer->overrun  = 0;                                               
  10ab22:	c7 40 68 00 00 00 00 	movl   $0x0,0x68(%eax)                
  ptimer->timer_data.it_value.tv_sec     = 0;                         
  10ab29:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)                
  ptimer->timer_data.it_value.tv_nsec    = 0;                         
  10ab30:	c7 40 60 00 00 00 00 	movl   $0x0,0x60(%eax)                
  ptimer->timer_data.it_interval.tv_sec  = 0;                         
  10ab37:	c7 40 54 00 00 00 00 	movl   $0x0,0x54(%eax)                
  ptimer->timer_data.it_interval.tv_nsec = 0;                         
  10ab3e:	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;                        
  10ab45:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)                
  the_watchdog->routine   = routine;                                  
  10ab4c:	c7 40 2c 00 00 00 00 	movl   $0x0,0x2c(%eax)                
  the_watchdog->id        = id;                                       
  10ab53:	c7 40 30 00 00 00 00 	movl   $0x0,0x30(%eax)                
  the_watchdog->user_data = user_data;                                
  10ab5a:	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 ),                             
  10ab61:	8b 50 08             	mov    0x8(%eax),%edx                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
  10ab64:	0f b7 da             	movzwl %dx,%ebx                       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
  10ab67:	8b 0d fc 9d 12 00    	mov    0x129dfc,%ecx                  
  10ab6d:	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;                                   
  10ab70:	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;                                      
  10ab77:	89 16                	mov    %edx,(%esi)                    
  _Thread_Enable_dispatch();                                          
  10ab79:	e8 ea 2b 00 00       	call   10d768 <_Thread_Enable_dispatch>
  return 0;                                                           
  10ab7e:	31 c0                	xor    %eax,%eax                      
}                                                                     
  10ab80:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ab83:	5b                   	pop    %ebx                           
  10ab84:	5e                   	pop    %esi                           
  10ab85:	c9                   	leave                                 
  10ab86:	c3                   	ret                                   
  10ab87:	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 );                
  10ab88:	e8 f7 8f 00 00       	call   113b84 <__errno>               
  10ab8d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10ab93:	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;                                                           
}                                                                     
  10ab98:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10ab9b:	5b                   	pop    %ebx                           
  10ab9c:	5e                   	pop    %esi                           
  10ab9d:	c9                   	leave                                 
  10ab9e:	c3                   	ret                                   
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
    _Thread_Enable_dispatch();                                        
  10ab9f:	e8 c4 2b 00 00       	call   10d768 <_Thread_Enable_dispatch>
    rtems_set_errno_and_return_minus_one( EAGAIN );                   
  10aba4:	e8 db 8f 00 00       	call   113b84 <__errno>               
  10aba9:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)                    
  10abaf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10abb4:	eb ca                	jmp    10ab80 <timer_create+0xe8>     
                                                                      

0010afdc <timer_delete>: int timer_delete( timer_t timerid ) {
  10afdc:	55                   	push   %ebp                           
  10afdd:	89 e5                	mov    %esp,%ebp                      
  10afdf:	53                   	push   %ebx                           
  10afe0:	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 );                    
  10afe3:	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 );
  10afe6:	50                   	push   %eax                           
  10afe7:	ff 75 08             	pushl  0x8(%ebp)                      
  10afea:	68 c0 9c 12 00       	push   $0x129cc0                      
  10afef:	e8 b4 1f 00 00       	call   10cfa8 <_Objects_Get>          
  10aff4:	89 c3                	mov    %eax,%ebx                      
  switch ( location ) {                                               
  10aff6:	83 c4 10             	add    $0x10,%esp                     
  10aff9:	8b 4d f4             	mov    -0xc(%ebp),%ecx                
  10affc:	85 c9                	test   %ecx,%ecx                      
  10affe:	74 18                	je     10b018 <timer_delete+0x3c>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10b000:	e8 7f 92 00 00       	call   114284 <__errno>               
  10b005:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10b00b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
}                                                                     
  10b010:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b013:	c9                   	leave                                 
  10b014:	c3                   	ret                                   
  10b015:	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 );   
  10b018:	83 ec 08             	sub    $0x8,%esp                      
  10b01b:	50                   	push   %eax                           
  10b01c:	68 c0 9c 12 00       	push   $0x129cc0                      
  10b021:	e8 4a 1b 00 00       	call   10cb70 <_Objects_Close>        
      ptimer->state = POSIX_TIMER_STATE_FREE;                         
  10b026:	c6 43 3c 01          	movb   $0x1,0x3c(%ebx)                
      (void) _Watchdog_Remove( &ptimer->Timer );                      
  10b02a:	8d 43 10             	lea    0x10(%ebx),%eax                
  10b02d:	89 04 24             	mov    %eax,(%esp)                    
  10b030:	e8 1f 3a 00 00       	call   10ea54 <_Watchdog_Remove>      
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Timer_Free (                         
  POSIX_Timer_Control *the_timer                                      
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Timer_Information, &the_timer->Object );     
  10b035:	58                   	pop    %eax                           
  10b036:	5a                   	pop    %edx                           
  10b037:	53                   	push   %ebx                           
  10b038:	68 c0 9c 12 00       	push   $0x129cc0                      
  10b03d:	e8 26 1e 00 00       	call   10ce68 <_Objects_Free>         
      _POSIX_Timer_Free( ptimer );                                    
      _Thread_Enable_dispatch();                                      
  10b042:	e8 71 2a 00 00       	call   10dab8 <_Thread_Enable_dispatch>
      return 0;                                                       
  10b047:	83 c4 10             	add    $0x10,%esp                     
  10b04a:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10b04c:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10b04f:	c9                   	leave                                 
  10b050:	c3                   	ret                                   
                                                                      

0010be98 <timer_getoverrun>: * its execution, _POSIX_Timer_TSR will have to set this counter to 0. */ int timer_getoverrun( timer_t timerid ) {
  10be98:	55                   	push   %ebp                           
  10be99:	89 e5                	mov    %esp,%ebp                      
  10be9b:	53                   	push   %ebx                           
  10be9c:	83 ec 18             	sub    $0x18,%esp                     
  int                  overrun;                                       
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10be9f:	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 );
  10bea2:	50                   	push   %eax                           
  10bea3:	ff 75 08             	pushl  0x8(%ebp)                      
  10bea6:	68 80 b3 12 00       	push   $0x12b380                      
  10beab:	e8 3c 1f 00 00       	call   10ddec <_Objects_Get>          
  switch ( location ) {                                               
  10beb0:	83 c4 10             	add    $0x10,%esp                     
  10beb3:	8b 55 f4             	mov    -0xc(%ebp),%edx                
  10beb6:	85 d2                	test   %edx,%edx                      
  10beb8:	74 1a                	je     10bed4 <timer_getoverrun+0x3c> 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10beba:	e8 45 8e 00 00       	call   114d04 <__errno>               
  10bebf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10bec5:	bb ff ff ff ff       	mov    $0xffffffff,%ebx               
}                                                                     
  10beca:	89 d8                	mov    %ebx,%eax                      
  10becc:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10becf:	c9                   	leave                                 
  10bed0:	c3                   	ret                                   
  10bed1:	8d 76 00             	lea    0x0(%esi),%esi                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      overrun = ptimer->overrun;                                      
  10bed4:	8b 58 68             	mov    0x68(%eax),%ebx                
      ptimer->overrun = 0;                                            
  10bed7:	c7 40 68 00 00 00 00 	movl   $0x0,0x68(%eax)                
      _Thread_Enable_dispatch();                                      
  10bede:	e8 19 2a 00 00       	call   10e8fc <_Thread_Enable_dispatch>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10bee3:	89 d8                	mov    %ebx,%eax                      
  10bee5:	8b 5d fc             	mov    -0x4(%ebp),%ebx                
  10bee8:	c9                   	leave                                 
  10bee9:	c3                   	ret                                   
                                                                      

0010beec <timer_gettime>: int timer_gettime( timer_t timerid, struct itimerspec *value ) {
  10beec:	55                   	push   %ebp                           
  10beed:	89 e5                	mov    %esp,%ebp                      
  10beef:	56                   	push   %esi                           
  10bef0:	53                   	push   %ebx                           
  10bef1:	83 ec 10             	sub    $0x10,%esp                     
  10bef4:	8b 5d 0c             	mov    0xc(%ebp),%ebx                 
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
  struct timespec      current_time;                                  
  Watchdog_Interval    left;                                          
                                                                      
  if ( !value )                                                       
  10bef7:	85 db                	test   %ebx,%ebx                      
  10bef9:	74 65                	je     10bf60 <timer_gettime+0x74>    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /* Reads the current time */                                        
  _TOD_Get( ¤t_time );                                          
  10befb:	83 ec 0c             	sub    $0xc,%esp                      
  10befe:	8d 45 ec             	lea    -0x14(%ebp),%eax               
  10bf01:	50                   	push   %eax                           
  10bf02:	e8 15 15 00 00       	call   10d41c <_TOD_Get>              
  10bf07:	83 c4 0c             	add    $0xc,%esp                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  10bf0a:	8d 45 f4             	lea    -0xc(%ebp),%eax                
  10bf0d:	50                   	push   %eax                           
  10bf0e:	ff 75 08             	pushl  0x8(%ebp)                      
  10bf11:	68 80 b3 12 00       	push   $0x12b380                      
  10bf16:	e8 d1 1e 00 00       	call   10ddec <_Objects_Get>          
  10bf1b:	89 c6                	mov    %eax,%esi                      
  switch ( location ) {                                               
  10bf1d:	83 c4 10             	add    $0x10,%esp                     
  10bf20:	8b 45 f4             	mov    -0xc(%ebp),%eax                
  10bf23:	85 c0                	test   %eax,%eax                      
  10bf25:	75 39                	jne    10bf60 <timer_gettime+0x74>    
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
  10bf27:	a1 64 b1 12 00       	mov    0x12b164,%eax                  
        _Watchdog_Ticks_since_boot;                          /* now */
                                                                      
      _Timespec_From_ticks( left, &value->it_value );                 
  10bf2c:	83 ec 08             	sub    $0x8,%esp                      
  10bf2f:	8d 53 08             	lea    0x8(%ebx),%edx                 
  10bf32:	52                   	push   %edx                           
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
  10bf33:	8b 56 1c             	mov    0x1c(%esi),%edx                
  10bf36:	03 56 24             	add    0x24(%esi),%edx                
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
  10bf39:	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 );                 
  10bf3b:	52                   	push   %edx                           
  10bf3c:	e8 4f 34 00 00       	call   10f390 <_Timespec_From_ticks>  
                                                                      
      value->it_interval  = ptimer->timer_data.it_interval;           
  10bf41:	8b 46 54             	mov    0x54(%esi),%eax                
  10bf44:	8b 56 58             	mov    0x58(%esi),%edx                
  10bf47:	89 03                	mov    %eax,(%ebx)                    
  10bf49:	89 53 04             	mov    %edx,0x4(%ebx)                 
                                                                      
      _Thread_Enable_dispatch();                                      
  10bf4c:	e8 ab 29 00 00       	call   10e8fc <_Thread_Enable_dispatch>
      return 0;                                                       
  10bf51:	83 c4 10             	add    $0x10,%esp                     
  10bf54:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10bf56:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10bf59:	5b                   	pop    %ebx                           
  10bf5a:	5e                   	pop    %esi                           
  10bf5b:	c9                   	leave                                 
  10bf5c:	c3                   	ret                                   
  10bf5d:	8d 76 00             	lea    0x0(%esi),%esi                 
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10bf60:	e8 9f 8d 00 00       	call   114d04 <__errno>               
  10bf65:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10bf6b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10bf70:	eb e4                	jmp    10bf56 <timer_gettime+0x6a>    
                                                                      

0010abb8 <timer_settime>: timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue ) {
  10abb8:	55                   	push   %ebp                           
  10abb9:	89 e5                	mov    %esp,%ebp                      
  10abbb:	57                   	push   %edi                           
  10abbc:	56                   	push   %esi                           
  10abbd:	53                   	push   %ebx                           
  10abbe:	83 ec 3c             	sub    $0x3c,%esp                     
  10abc1:	8b 5d 10             	mov    0x10(%ebp),%ebx                
  Objects_Locations    location;                                      
  bool                 activated;                                     
  uint32_t             initial_period;                                
  struct itimerspec    normalize;                                     
                                                                      
  if ( !value )                                                       
  10abc4:	85 db                	test   %ebx,%ebx                      
  10abc6:	0f 84 50 01 00 00    	je     10ad1c <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) ) ) {                  
  10abcc:	83 ec 0c             	sub    $0xc,%esp                      
  10abcf:	8d 43 08             	lea    0x8(%ebx),%eax                 
  10abd2:	50                   	push   %eax                           
  10abd3:	e8 48 36 00 00       	call   10e220 <_Timespec_Is_valid>    
  10abd8:	83 c4 10             	add    $0x10,%esp                     
  10abdb:	84 c0                	test   %al,%al                        
  10abdd:	0f 84 39 01 00 00    	je     10ad1c <timer_settime+0x164>   
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
  if ( !_Timespec_Is_valid( &(value->it_interval) ) ) {               
  10abe3:	83 ec 0c             	sub    $0xc,%esp                      
  10abe6:	53                   	push   %ebx                           
  10abe7:	e8 34 36 00 00       	call   10e220 <_Timespec_Is_valid>    
  10abec:	83 c4 10             	add    $0x10,%esp                     
  10abef:	84 c0                	test   %al,%al                        
  10abf1:	0f 84 25 01 00 00    	je     10ad1c <timer_settime+0x164>   <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
  10abf7:	83 7d 0c 04          	cmpl   $0x4,0xc(%ebp)                 
  10abfb:	0f 84 db 00 00 00    	je     10acdc <timer_settime+0x124>   
  10ac01:	8b 45 0c             	mov    0xc(%ebp),%eax                 
  10ac04:	85 c0                	test   %eax,%eax                      
  10ac06:	0f 85 10 01 00 00    	jne    10ad1c <timer_settime+0x164>   
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
  10ac0c:	8d 45 cc             	lea    -0x34(%ebp),%eax               
  10ac0f:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
  10ac12:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10ac17:	89 c7                	mov    %eax,%edi                      
  10ac19:	89 de                	mov    %ebx,%esi                      
  10ac1b:	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 );
  10ac1d:	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 );                    
  10ac1e:	8d 45 e4             	lea    -0x1c(%ebp),%eax               
  10ac21:	50                   	push   %eax                           
  10ac22:	ff 75 08             	pushl  0x8(%ebp)                      
  10ac25:	68 e0 9d 12 00       	push   $0x129de0                      
  10ac2a:	e8 29 20 00 00       	call   10cc58 <_Objects_Get>          
  10ac2f:	89 c2                	mov    %eax,%edx                      
  switch ( location ) {                                               
  10ac31:	83 c4 10             	add    $0x10,%esp                     
  10ac34:	8b 7d e4             	mov    -0x1c(%ebp),%edi               
  10ac37:	85 ff                	test   %edi,%edi                      
  10ac39:	0f 85 dd 00 00 00    	jne    10ad1c <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 ) {
  10ac3f:	8b 75 d4             	mov    -0x2c(%ebp),%esi               
  10ac42:	85 f6                	test   %esi,%esi                      
  10ac44:	75 0b                	jne    10ac51 <timer_settime+0x99>    
  10ac46:	8b 4d d8             	mov    -0x28(%ebp),%ecx               
  10ac49:	85 c9                	test   %ecx,%ecx                      
  10ac4b:	0f 84 df 00 00 00    	je     10ad30 <timer_settime+0x178>   
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
       }                                                              
                                                                      
       /* Convert from seconds and nanoseconds to ticks */            
       ptimer->ticks  = _Timespec_To_ticks( &value->it_interval );    
  10ac51:	83 ec 0c             	sub    $0xc,%esp                      
  10ac54:	53                   	push   %ebx                           
  10ac55:	89 55 c0             	mov    %edx,-0x40(%ebp)               
  10ac58:	e8 2b 36 00 00       	call   10e288 <_Timespec_To_ticks>    
  10ac5d:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10ac60:	89 42 64             	mov    %eax,0x64(%edx)                
       initial_period = _Timespec_To_ticks( &normalize.it_value );    
  10ac63:	8d 45 d4             	lea    -0x2c(%ebp),%eax               
  10ac66:	89 04 24             	mov    %eax,(%esp)                    
  10ac69:	e8 1a 36 00 00       	call   10e288 <_Timespec_To_ticks>    
                                                                      
                                                                      
       activated = _POSIX_Timer_Insert_helper(                        
  10ac6e:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10ac71:	89 14 24             	mov    %edx,(%esp)                    
  10ac74:	68 9c ad 10 00       	push   $0x10ad9c                      
  10ac79:	ff 72 08             	pushl  0x8(%edx)                      
  10ac7c:	50                   	push   %eax                           
  10ac7d:	8d 42 10             	lea    0x10(%edx),%eax                
  10ac80:	50                   	push   %eax                           
  10ac81:	e8 32 61 00 00       	call   110db8 <_POSIX_Timer_Insert_helper>
         initial_period,                                              
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
  10ac86:	83 c4 20             	add    $0x20,%esp                     
  10ac89:	84 c0                	test   %al,%al                        
  10ac8b:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10ac8e:	0f 84 e8 00 00 00    	je     10ad7c <timer_settime+0x1c4>   
                                                                      
       /*                                                             
        * The timer has been started and is running.  So we return the
        * old ones in "ovalue"                                        
        */                                                            
       if ( ovalue )                                                  
  10ac94:	8b 45 14             	mov    0x14(%ebp),%eax                
  10ac97:	85 c0                	test   %eax,%eax                      
  10ac99:	0f 84 ed 00 00 00    	je     10ad8c <timer_settime+0x1d4>   
         *ovalue = ptimer->timer_data;                                
  10ac9f:	8d 42 54             	lea    0x54(%edx),%eax                
  10aca2:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10aca7:	8b 7d 14             	mov    0x14(%ebp),%edi                
  10acaa:	89 c6                	mov    %eax,%esi                      
  10acac:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
       ptimer->timer_data = normalize;                                
  10acae:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10acb3:	89 c7                	mov    %eax,%edi                      
  10acb5:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  10acb8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
       /* Indicate that the time is running */                        
       ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                  
  10acba:	c6 42 3c 03          	movb   $0x3,0x3c(%edx)                
       _TOD_Get( &ptimer->time );                                     
  10acbe:	83 ec 0c             	sub    $0xc,%esp                      
  10acc1:	83 c2 6c             	add    $0x6c,%edx                     
  10acc4:	52                   	push   %edx                           
  10acc5:	e8 e2 15 00 00       	call   10c2ac <_TOD_Get>              
       _Thread_Enable_dispatch();                                     
  10acca:	e8 99 2a 00 00       	call   10d768 <_Thread_Enable_dispatch>
       return 0;                                                      
  10accf:	83 c4 10             	add    $0x10,%esp                     
  10acd2:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10acd4:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10acd7:	5b                   	pop    %ebx                           
  10acd8:	5e                   	pop    %esi                           
  10acd9:	5f                   	pop    %edi                           
  10acda:	c9                   	leave                                 
  10acdb:	c3                   	ret                                   
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
  10acdc:	8d 45 cc             	lea    -0x34(%ebp),%eax               
  10acdf:	89 45 c4             	mov    %eax,-0x3c(%ebp)               
  10ace2:	89 c7                	mov    %eax,%edi                      
  10ace4:	89 de                	mov    %ebx,%esi                      
  10ace6:	8b 4d 0c             	mov    0xc(%ebp),%ecx                 
  10ace9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
    struct timespec now;                                              
    _TOD_Get( &now );                                                 
  10aceb:	83 ec 0c             	sub    $0xc,%esp                      
  10acee:	8d 75 dc             	lea    -0x24(%ebp),%esi               
  10acf1:	56                   	push   %esi                           
  10acf2:	e8 b5 15 00 00       	call   10c2ac <_TOD_Get>              
    /* Check for seconds in the past */                               
    if ( _Timespec_Greater_than( &now, &normalize.it_value ) )        
  10acf7:	59                   	pop    %ecx                           
  10acf8:	5f                   	pop    %edi                           
  10acf9:	8d 7d d4             	lea    -0x2c(%ebp),%edi               
  10acfc:	57                   	push   %edi                           
  10acfd:	56                   	push   %esi                           
  10acfe:	e8 f9 34 00 00       	call   10e1fc <_Timespec_Greater_than>
  10ad03:	83 c4 10             	add    $0x10,%esp                     
  10ad06:	84 c0                	test   %al,%al                        
  10ad08:	75 12                	jne    10ad1c <timer_settime+0x164>   
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    _Timespec_Subtract( &now, &normalize.it_value, &normalize.it_value );
  10ad0a:	52                   	push   %edx                           
  10ad0b:	57                   	push   %edi                           
  10ad0c:	57                   	push   %edi                           
  10ad0d:	56                   	push   %esi                           
  10ad0e:	e8 35 35 00 00       	call   10e248 <_Timespec_Subtract>    
  10ad13:	83 c4 10             	add    $0x10,%esp                     
  10ad16:	e9 02 ff ff ff       	jmp    10ac1d <timer_settime+0x65>    
  10ad1b:	90                   	nop                                   
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
  10ad1c:	e8 63 8e 00 00       	call   113b84 <__errno>               
  10ad21:	c7 00 16 00 00 00    	movl   $0x16,(%eax)                   
  10ad27:	b8 ff ff ff ff       	mov    $0xffffffff,%eax               
  10ad2c:	eb a6                	jmp    10acd4 <timer_settime+0x11c>   
  10ad2e:	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 );                   
  10ad30:	83 ec 0c             	sub    $0xc,%esp                      
  10ad33:	8d 40 10             	lea    0x10(%eax),%eax                
  10ad36:	50                   	push   %eax                           
  10ad37:	89 55 c0             	mov    %edx,-0x40(%ebp)               
  10ad3a:	e8 7d 39 00 00       	call   10e6bc <_Watchdog_Remove>      
         /* The old data of the timer are returned */                 
         if ( ovalue )                                                
  10ad3f:	83 c4 10             	add    $0x10,%esp                     
  10ad42:	8b 55 14             	mov    0x14(%ebp),%edx                
  10ad45:	85 d2                	test   %edx,%edx                      
  10ad47:	8b 55 c0             	mov    -0x40(%ebp),%edx               
  10ad4a:	74 48                	je     10ad94 <timer_settime+0x1dc>   
           *ovalue = ptimer->timer_data;                              
  10ad4c:	8d 42 54             	lea    0x54(%edx),%eax                
  10ad4f:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10ad54:	8b 7d 14             	mov    0x14(%ebp),%edi                
  10ad57:	89 c6                	mov    %eax,%esi                      
  10ad59:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
         /* The new data are set */                                   
         ptimer->timer_data = normalize;                              
  10ad5b:	b9 04 00 00 00       	mov    $0x4,%ecx                      
  10ad60:	89 c7                	mov    %eax,%edi                      
  10ad62:	8b 75 c4             	mov    -0x3c(%ebp),%esi               
  10ad65:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)       
         /* Indicates that the timer is created and stopped */        
         ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;               
  10ad67:	c6 42 3c 04          	movb   $0x4,0x3c(%edx)                
         /* Returns with success */                                   
        _Thread_Enable_dispatch();                                    
  10ad6b:	e8 f8 29 00 00       	call   10d768 <_Thread_Enable_dispatch>
        return 0;                                                     
  10ad70:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10ad72:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ad75:	5b                   	pop    %ebx                           
  10ad76:	5e                   	pop    %esi                           
  10ad77:	5f                   	pop    %edi                           
  10ad78:	c9                   	leave                                 
  10ad79:	c3                   	ret                                   
  10ad7a:	66 90                	xchg   %ax,%ax                        
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
         _Thread_Enable_dispatch();                                   
  10ad7c:	e8 e7 29 00 00       	call   10d768 <_Thread_Enable_dispatch>
         return 0;                                                    
  10ad81:	31 c0                	xor    %eax,%eax                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
  10ad83:	8d 65 f4             	lea    -0xc(%ebp),%esp                
  10ad86:	5b                   	pop    %ebx                           
  10ad87:	5e                   	pop    %esi                           
  10ad88:	5f                   	pop    %edi                           
  10ad89:	c9                   	leave                                 
  10ad8a:	c3                   	ret                                   
  10ad8b:	90                   	nop                                   
  10ad8c:	8d 42 54             	lea    0x54(%edx),%eax                
  10ad8f:	e9 1a ff ff ff       	jmp    10acae <timer_settime+0xf6>    
  10ad94:	8d 42 54             	lea    0x54(%edx),%eax                
  10ad97:	eb c2                	jmp    10ad5b <timer_settime+0x1a3>   
                                                                      

0010a9b8 <ualarm>: useconds_t ualarm( useconds_t useconds, useconds_t interval ) {
  10a9b8:	55                   	push   %ebp                           
  10a9b9:	89 e5                	mov    %esp,%ebp                      
  10a9bb:	56                   	push   %esi                           
  10a9bc:	53                   	push   %ebx                           
  10a9bd:	83 ec 10             	sub    $0x10,%esp                     
  10a9c0:	8b 5d 08             	mov    0x8(%ebp),%ebx                 
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
  10a9c3:	8b 0d fc 9f 12 00    	mov    0x129ffc,%ecx                  
  10a9c9:	85 c9                	test   %ecx,%ecx                      
  10a9cb:	0f 84 8f 00 00 00    	je     10aa60 <ualarm+0xa8>           
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
  10a9d1:	83 ec 0c             	sub    $0xc,%esp                      
  10a9d4:	68 e0 9f 12 00       	push   $0x129fe0                      
  10a9d9:	e8 4e 38 00 00       	call   10e22c <_Watchdog_Remove>      
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
  10a9de:	83 e8 02             	sub    $0x2,%eax                      
  10a9e1:	83 c4 10             	add    $0x10,%esp                     
  10a9e4:	83 f8 01             	cmp    $0x1,%eax                      
  10a9e7:	0f 86 a3 00 00 00    	jbe    10aa90 <ualarm+0xd8>           <== ALWAYS TAKEN
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
  10a9ed:	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 ) {                                                   
  10a9ef:	85 db                	test   %ebx,%ebx                      
  10a9f1:	74 62                	je     10aa55 <ualarm+0x9d>           
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
  10a9f3:	ba 83 de 1b 43       	mov    $0x431bde83,%edx               
  10a9f8:	89 d8                	mov    %ebx,%eax                      
  10a9fa:	f7 e2                	mul    %edx                           
  10a9fc:	c1 ea 12             	shr    $0x12,%edx                     
  10a9ff:	89 55 f0             	mov    %edx,-0x10(%ebp)               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
  10aa02:	8d 04 92             	lea    (%edx,%edx,4),%eax             
  10aa05:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa08:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa0b:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa0e:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa11:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa14:	c1 e0 06             	shl    $0x6,%eax                      
  10aa17:	29 c3                	sub    %eax,%ebx                      
  10aa19:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax             
  10aa1c:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa1f:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aa22:	c1 e0 03             	shl    $0x3,%eax                      
  10aa25:	89 45 f4             	mov    %eax,-0xc(%ebp)                
    ticks = _Timespec_To_ticks( &tp );                                
  10aa28:	83 ec 0c             	sub    $0xc,%esp                      
  10aa2b:	8d 5d f0             	lea    -0x10(%ebp),%ebx               
  10aa2e:	53                   	push   %ebx                           
  10aa2f:	e8 4c 33 00 00       	call   10dd80 <_Timespec_To_ticks>    
    if ( ticks == 0 )                                                 
      ticks = 1;                                                      
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
  10aa34:	89 1c 24             	mov    %ebx,(%esp)                    
  10aa37:	e8 44 33 00 00       	call   10dd80 <_Timespec_To_ticks>    
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
  10aa3c:	a3 ec 9f 12 00       	mov    %eax,0x129fec                  
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
  10aa41:	58                   	pop    %eax                           
  10aa42:	5a                   	pop    %edx                           
  10aa43:	68 e0 9f 12 00       	push   $0x129fe0                      
  10aa48:	68 00 97 12 00       	push   $0x129700                      
  10aa4d:	e8 9a 36 00 00       	call   10e0ec <_Watchdog_Insert>      
  10aa52:	83 c4 10             	add    $0x10,%esp                     
  }                                                                   
                                                                      
  return remaining;                                                   
}                                                                     
  10aa55:	89 f0                	mov    %esi,%eax                      
  10aa57:	8d 65 f8             	lea    -0x8(%ebp),%esp                
  10aa5a:	5b                   	pop    %ebx                           
  10aa5b:	5e                   	pop    %esi                           
  10aa5c:	c9                   	leave                                 
  10aa5d:	c3                   	ret                                   
  10aa5e:	66 90                	xchg   %ax,%ax                        
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  10aa60:	c7 05 e8 9f 12 00 00 	movl   $0x0,0x129fe8                  
  10aa67:	00 00 00                                                    
  the_watchdog->routine   = routine;                                  
  10aa6a:	c7 05 fc 9f 12 00 7c 	movl   $0x10a97c,0x129ffc             
  10aa71:	a9 10 00                                                    
  the_watchdog->id        = id;                                       
  10aa74:	c7 05 00 a0 12 00 00 	movl   $0x0,0x12a000                  
  10aa7b:	00 00 00                                                    
  the_watchdog->user_data = user_data;                                
  10aa7e:	c7 05 04 a0 12 00 00 	movl   $0x0,0x12a004                  
  10aa85:	00 00 00                                                    
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
  10aa88:	31 f6                	xor    %esi,%esi                      
  10aa8a:	e9 60 ff ff ff       	jmp    10a9ef <ualarm+0x37>           
  10aa8f:	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);        
  10aa90:	a1 f4 9f 12 00       	mov    0x129ff4,%eax                  
  10aa95:	03 05 ec 9f 12 00    	add    0x129fec,%eax                  
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
  10aa9b:	83 ec 08             	sub    $0x8,%esp                      
  10aa9e:	8d 55 f0             	lea    -0x10(%ebp),%edx               
  10aaa1:	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);        
  10aaa2:	2b 05 f8 9f 12 00    	sub    0x129ff8,%eax                  
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
  10aaa8:	50                   	push   %eax                           
  10aaa9:	e8 4a 32 00 00       	call   10dcf8 <_Timespec_From_ticks>  
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
  10aaae:	8b 45 f0             	mov    -0x10(%ebp),%eax               
  10aab1:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aab4:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aab7:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aaba:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aabd:	8d 04 80             	lea    (%eax,%eax,4),%eax             
  10aac0:	8d 0c 80             	lea    (%eax,%eax,4),%ecx             
  10aac3:	c1 e1 06             	shl    $0x6,%ecx                      
      remaining += tp.tv_nsec / 1000;                                 
  10aac6:	8b 75 f4             	mov    -0xc(%ebp),%esi                
  10aac9:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax               
  10aace:	f7 ee                	imul   %esi                           
  10aad0:	89 d0                	mov    %edx,%eax                      
  10aad2:	c1 f8 06             	sar    $0x6,%eax                      
  10aad5:	c1 fe 1f             	sar    $0x1f,%esi                     
  10aad8:	29 f0                	sub    %esi,%eax                      
  10aada:	8d 34 08             	lea    (%eax,%ecx,1),%esi             
  10aadd:	83 c4 10             	add    $0x10,%esp                     
  10aae0:	e9 0a ff ff ff       	jmp    10a9ef <ualarm+0x37>